1

Compare commits

...

4 Commits

Author SHA1 Message Date
05ed0caab9 Migrate config to lazy 2024-06-01 22:12:27 +02:00
49d769cad2 Add help-closure to shell.nix 2024-06-01 19:33:36 +02:00
adcc104f8f Reformat 2024-06-01 19:33:30 +02:00
0abf1fc657 Add toLuaObject generator from nixvim 2024-06-01 13:59:34 +02:00
11 changed files with 1803 additions and 1152 deletions

File diff suppressed because it is too large Load Diff

View File

@ -68,7 +68,7 @@
# NOTE: Obsidian 1.5.3 depends on an unsupported Electron version. As long as Obsidian isn't updated, allow this version.
config.permittedInsecurePackages = pkgs.lib.optional (pkgs.obsidian.version == "1.5.3") "electron-25.9.0";
# NOTE: Probably shouldn't enable CUDA globally, but in the environment flakes where it is needed?
# Would it even work here? Since the flake imports its own nixpkgs...
# config.cudaSupport = true;

View File

@ -460,19 +460,21 @@ rec {
# vale # Why not lint everything (including english)?
# TODO: Development module, I need multiple modules to be able to add python packages to a single python install...
(python311.withPackages (p: with p; [
# p.rich
# p.numpy
# p.scipy
# p.matplotlib
# p.pillow # for ranger
# p.pygments # for emacs
(python311.withPackages (p:
with p; [
# p.rich
# p.numpy
# p.scipy
# p.matplotlib
# p.pillow # for ranger
# p.pygments # for emacs
# For nvim CHADtree
pyyaml
std2
pynvim
]))
# For nvim CHADtree
pyyaml
std2
pynvim
pynvim-pp
]))
jetbrains.clion
jetbrains.rust-rover
jetbrains.pycharm-professional

View File

@ -14,12 +14,13 @@ in {
options.modules.chromium = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
home.packages = with pkgs; builtins.concatLists [
(optionals cfg.google [
google-chrome # Trash, but required for decker pdf export
(pkgs.writeShellScriptBin "chrome" "exec -a $0 ${google-chrome}/bin/google-chrome-stable $@")
])
];
home.packages = with pkgs;
builtins.concatLists [
(optionals cfg.google [
google-chrome # Trash, but required for decker pdf export
(pkgs.writeShellScriptBin "chrome" "exec -a $0 ${google-chrome}/bin/google-chrome-stable $@")
])
];
programs.chromium = {
enable = true;

File diff suppressed because it is too large Load Diff

View File

@ -9,4 +9,5 @@
networking = import ./networking.nix {inherit inputs pkgs lib;};
virtualisation = import ./virtualisation.nix {inherit inputs pkgs lib;};
rofi = import ./rofi.nix {inherit inputs pkgs lib;};
generators = import ./generators.nix {inherit inputs pkgs lib;};
}

49
lib/generators.nix Normal file
View File

@ -0,0 +1,49 @@
{
inputs,
pkgs,
lib,
...
}: rec {
# NOTE: Taken from NixVim https://github.com/nix-community/nixvim/blob/main/lib/to-lua.nix
toLuaObject = args:
if builtins.isAttrs args
then
if lib.hasAttr "__raw" args
then args.__raw
else if lib.hasAttr "__empty" args
then "{ }"
else
"{"
+ (lib.concatStringsSep "," (
lib.mapAttrsToList (
n: v: let
valueString = toLuaObject v;
in
if lib.hasPrefix "__unkeyed" n
then valueString
else if lib.hasPrefix "__rawKey__" n
then ''[${lib.removePrefix "__rawKey__" n}] = '' + valueString
else if n == "__emptyString"
then "[''] = " + valueString
else "[${toLuaObject n}] = " + valueString
) (lib.filterAttrs (n: v: v != null && (toLuaObject v != "{}")) args)
))
+ "}"
else if builtins.isList args
then "{" + lib.concatMapStringsSep "," toLuaObject args + "}"
else if builtins.isString args
then
# This should be enough!
builtins.toJSON args
else if builtins.isPath args
then builtins.toJSON (toString args)
else if builtins.isBool args
then "${lib.boolToString args}"
else if builtins.isFloat args
then "${toString args}"
else if builtins.isInt args
then "${toString args}"
else if (args == null)
then "nil"
else "";
}

View File

@ -30,7 +30,10 @@
linkConfig = {
# This corresponds to the [LINK] section
# RequiredForOnline = "routable";
RequiredForOnline = if routable then "routable" else "no"; # Don't make nixos-rebuild wait for systemd-networkd-wait-online.service
RequiredForOnline =
if routable
then "routable"
else "no"; # Don't make nixos-rebuild wait for systemd-networkd-wait-online.service
};
};
@ -76,7 +79,10 @@
linkConfig = {
# This corresponds to the [LINK] section
# RequiredForOnline = "routable";
RequiredForOnline = if routable then "routable" else "no"; # Don't make nixos-rebuild wait for systemd-networkd-wait-online.service
RequiredForOnline =
if routable
then "routable"
else "no"; # Don't make nixos-rebuild wait for systemd-networkd-wait-online.service
};
};

View File

@ -136,5 +136,10 @@ pkgs.devshell.mkShell {
help = "Display the wanted dynamic libraries by a binary";
command = "echo 'ldd (readlink -f (which <arg>))'";
}
{
name = "help-closure";
help = "Display the closure of a package";
command = "echo 'nix path-info --recursive --size --closure-size --human-readable (readlink -f (which <arg>))'";
}
];
}

View File

@ -26,7 +26,7 @@ in {
wait-online.timeout = 10;
# Don't wait for all networks to be configured, as e.g. wg0 will only be upon manual activation
wait-online.anyInterface = true;
wait-online.anyInterface = true;
# TODO: Apparently anyInterface doesn't work?
# wait-online.ignoredInterfaces = [

View File

@ -96,18 +96,18 @@
# videoDrivers = ["amdgpu"];
};
# NOTE: This has been relocated here from the default config, because it forces en-US keyboard layout
# The laptop needs de-DE...
# Chinese Input
i18n.inputMethod.enabled = "fcitx5";
i18n.inputMethod.fcitx5 = {
waylandFrontend = true;
# NOTE: This has been relocated here from the default config, because it forces en-US keyboard layout
# The laptop needs de-DE...
# Chinese Input
i18n.inputMethod.enabled = "fcitx5";
i18n.inputMethod.fcitx5 = {
waylandFrontend = true;
addons = with pkgs; [
fcitx5-gtk
libsForQt5.fcitx5-qt
fcitx5-chinese-addons
fcitx5-configtool # TODO: Remove this and set config through HomeManager
];
};
addons = with pkgs; [
fcitx5-gtk
libsForQt5.fcitx5-qt
fcitx5-chinese-addons
fcitx5-configtool # TODO: Remove this and set config through HomeManager
];
};
}