diff --git a/flake.lock b/flake.lock index b95f5c7..9b05423 100644 --- a/flake.lock +++ b/flake.lock @@ -2,22 +2,16 @@ "nodes": { "catppuccin": { "inputs": { - "catppuccin-v1_1": "catppuccin-v1_1", - "catppuccin-v1_2": "catppuccin-v1_2", - "home-manager": "home-manager", - "home-manager-stable": "home-manager-stable", "nixpkgs": [ "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable", - "nuscht-search": "nuscht-search" + ] }, "locked": { - "lastModified": 1736069220, - "narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=", + "lastModified": 1737579274, + "narHash": "sha256-8kBIYfn8TI9jbffhDNS12SdbQHb9ITXflwcgIJBeGqw=", "owner": "catppuccin", "repo": "nix", - "rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e", + "rev": "06f0ea19334bcc8112e6d671fd53e61f9e3ad63a", "type": "github" }, "original": { @@ -26,52 +20,6 @@ "type": "github" } }, - "catppuccin-v1_1": { - "locked": { - "lastModified": 1734055249, - "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=", - "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7", - "revCount": 326, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz" - } - }, - "catppuccin-v1_2": { - "locked": { - "lastModified": 1734728407, - "narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=", - "rev": "23ee86dbf4ed347878115a78971d43025362fab1", - "revCount": 341, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz" - } - }, - "elanmoc2": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1731852525, - "narHash": "sha256-t3wgLs3I38Ijc/JuxUKuVGZFF3eeYeFNibps5wbSsv4=", - "owner": "sandptel", - "repo": "elanmoc2", - "rev": "8b049aa1f184b34b7f6829472b10ea8453bd5806", - "type": "github" - }, - "original": { - "owner": "sandptel", - "repo": "elanmoc2", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { @@ -109,11 +57,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", "type": "github" }, "original": { @@ -124,7 +72,7 @@ }, "flake-utils-plus": { "inputs": { - "flake-utils": "flake-utils_3" + "flake-utils": "flake-utils_2" }, "locked": { "lastModified": 1715533576, @@ -145,24 +93,6 @@ "inputs": { "systems": "systems_2" }, - "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" - }, "locked": { "lastModified": 1694529238, "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", @@ -180,16 +110,16 @@ "ghostty": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs-stable": "nixpkgs-stable_2", + "nixpkgs-stable": "nixpkgs-stable", "nixpkgs-unstable": "nixpkgs-unstable", "zig": "zig" }, "locked": { - "lastModified": 1736402835, - "narHash": "sha256-SiG2B2KfU4BIOggrJJa9nKoagXtLXWWo9vXJ88a+ls8=", + "lastModified": 1738275804, + "narHash": "sha256-n9cSCLlWjc8Bc5QyZYLo5+c6MfTZjgDpUGx/FGxBiY8=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "2d7706ec4f7042b9072d3b8ac8ea496dee209bc8", + "rev": "c5508e7d1922842ecd3160ea73b97da1282168b3", "type": "github" }, "original": { @@ -200,11 +130,11 @@ }, "hardware": { "locked": { - "lastModified": 1736283893, - "narHash": "sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM=", + "lastModified": 1737751639, + "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "4f339f6be2b61662f957c2ee9eda0fa597d8a6d6", + "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4", "type": "github" }, "original": { @@ -217,16 +147,15 @@ "home-manager": { "inputs": { "nixpkgs": [ - "catppuccin", "nixpkgs" ] }, "locked": { - "lastModified": 1734622215, - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", + "lastModified": 1738275749, + "narHash": "sha256-PM+cGduJ05EZ+YXulqAwUFjvfKpPmW080mcuN6R1POw=", "owner": "nix-community", "repo": "home-manager", - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", + "rev": "a8159195bfaef3c64df75d3b1e6a68d49d392be9", "type": "github" }, "original": { @@ -235,125 +164,39 @@ "type": "github" } }, - "home-manager-stable": { - "inputs": { - "nixpkgs": [ - "catppuccin", - "nixpkgs-stable" - ] - }, - "locked": { - "lastModified": 1734366194, - "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.11", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736366465, - "narHash": "sha256-Fo68EF6p/N9GJyHiAUbXtiE7IJlb3IMjK86LuxFMsRU=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "7e00856596891850ba5ad4c5ecd2ed74468c08c5", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "ixx": { - "inputs": { - "flake-utils": [ - "catppuccin", - "nuscht-search", - "flake-utils" - ], - "nixpkgs": [ - "catppuccin", - "nuscht-search", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729958008, - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", - "owner": "NuschtOS", - "repo": "ixx", - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "ref": "v0.0.6", - "repo": "ixx", - "type": "github" - } - }, "nix-flatpak": { "locked": { - "lastModified": 1711997201, - "narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=", + "lastModified": 1734128415, + "narHash": "sha256-HLwdVNxpuTsLlM3tCkpbQU6yCehdgf3kOS1G2SDlkzY=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd", + "rev": "8bdc2540da516006d07b04019eb57ae0781a04b3", "type": "github" }, "original": { "owner": "gmodena", - "ref": "v0.4.1", + "ref": "latest", "repo": "nix-flatpak", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1737062831, - "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=", + "lastModified": 1738136902, + "narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c", + "rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-stable": { - "locked": { - "lastModified": 1734600368, - "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_2": { "locked": { "lastModified": 1733423277, "narHash": "sha256-TxabjxEgkNbCGFRHgM/b9yZWlBj60gUOUnRT/wbVQR8=", @@ -385,57 +228,16 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1736241350, - "narHash": "sha256-CHd7yhaDigUuJyDeX0SADbTM9FXfiWaeNyY34FL1wQU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "8c9fd3e564728e90829ee7dbac6edc972971cd0f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nuscht-search": { - "inputs": { - "flake-utils": "flake-utils", - "ixx": "ixx", - "nixpkgs": [ - "catppuccin", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733773348, - "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", - "owner": "NuschtOS", - "repo": "search", - "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "repo": "search", - "type": "github" - } - }, "root": { "inputs": { "catppuccin": "catppuccin", - "elanmoc2": "elanmoc2", "ghostty": "ghostty", "hardware": "hardware", - "home-manager": "home-manager_2", + "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "snowfall-lib": "snowfall-lib", - "sops-nix": "sops-nix", - "zen-browser": "zen-browser" + "sops-nix": "sops-nix" } }, "snowfall-lib": { @@ -467,11 +269,11 @@ ] }, "locked": { - "lastModified": 1736203741, - "narHash": "sha256-eSjkBwBdQk+TZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4=", + "lastModified": 1737411508, + "narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c9c88f08e3ee495e888b8d7c8624a0b2519cb773", + "rev": "015d461c16678fc02a2f405eb453abb509d4e1d4", "type": "github" }, "original": { @@ -510,47 +312,12 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "zen-browser": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736267677, - "narHash": "sha256-7FH/gFShKOzf46yKqA4VWAaWxuyHBRnXOdaffbTxVo4=", - "owner": "0xc000022070", - "repo": "zen-browser-flake", - "rev": "c96c6a1ebf1bea782f9528dc316d986a6087ebc0", - "type": "github" - }, - "original": { - "owner": "0xc000022070", - "repo": "zen-browser-flake", - "type": "github" - } - }, "zig": { "inputs": { "flake-compat": [ "ghostty" ], - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": [ "ghostty", "nixpkgs-stable" diff --git a/flake.nix b/flake.nix index 9c2ffc4..4df67e9 100644 --- a/flake.nix +++ b/flake.nix @@ -17,17 +17,11 @@ # Hardware specific tweaks and performance optimizations. hardware = { url = "github:NixOS/nixos-hardware/master"; }; - # Support for ElanTech fingerprint scanner 04f3:0c00 - elanmoc2 = { - url = "github:sandptel/elanmoc2"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Catppuccin theme nix configuration. catppuccin = { url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; # Declarative management of Flatpak packages. - nix-flatpak = { url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; }; + nix-flatpak = { url = "github:gmodena/nix-flatpak/?ref=latest"; }; # Apps ghostty = { url = "github:ghostty-org/ghostty"; }; diff --git a/homes/x86_64-linux/cyn@absolutesolver/default.nix b/homes/x86_64-linux/cyn@absolutesolver/default.nix index cb1d7d7..509682d 100644 --- a/homes/x86_64-linux/cyn@absolutesolver/default.nix +++ b/homes/x86_64-linux/cyn@absolutesolver/default.nix @@ -1,9 +1,7 @@ { - lib, pkgs, - namespace, ... -}: with lib; with lib.${namespace}; +}: { # Declare user packages. home.packages = with pkgs; [ diff --git a/homes/x86_64-linux/jo@puzzlevision/default.nix b/homes/x86_64-linux/jo@puzzlevision/default.nix index db665de..dfe391a 100644 --- a/homes/x86_64-linux/jo@puzzlevision/default.nix +++ b/homes/x86_64-linux/jo@puzzlevision/default.nix @@ -1,9 +1,7 @@ { - lib, pkgs, - namespace, ... -}: with lib; with lib.${namespace}; +}: { puzzlevision = { themes.catppuccin = { @@ -24,6 +22,60 @@ packages = []; }; + programs = { + nushell = { + enable = true; + + # for editing directly to config.nu + extraConfig = '' + let carapace_completer = {|spans| + carapace $spans.0 nushell $spans | from json + } + $env.config = { + show_banner: false, + completions: { + case_sensitive: false # case-sensitive completions + quick: true # set to false to prevent auto-selecting completions + partial: true # set to false to prevent partial filling of the prompt + algorithm: "fuzzy" # prefix or fuzzy + external: { + # set to false to prevent nushell looking into $env.PATH to find more suggestions + enable: true + # set to lower can improve completion performance at the cost of omitting some options + max_results: 100 + completer: $carapace_completer # check 'carapace_completer' + } + } + } + $env.PATH = ($env.PATH | + split row (char esep) | + prepend /home/myuser/.apps | + append /usr/bin/env + ) + ''; + + shellAliases = { + vi = "hx"; + vim = "hx"; + nano = "hx"; + }; + }; + + carapace.enable = true; + carapace.enableNushellIntegration = true; + + starship = { + enable = true; + settings = { + add_newline = true; + character = { + success_symbol = "[➜](bold green)"; + error_symbol = "[➜](bold red)"; + }; + }; + }; + }; + # TODO: look at git-sync for syncing stuff like obsidian vaults. programs.git-credential-oauth.enable = true; @@ -45,17 +97,16 @@ avra avrdude jetbrains.phpstorm - jetbrains-toolbox git - nodejs_22 bun devenv python39 - poetry + nixd nil zed-editor bruno deno + carapace ### Work teams-for-linux diff --git a/lib/module/default.nix b/lib/module/default.nix index 6f99f78..386c102 100644 --- a/lib/module/default.nix +++ b/lib/module/default.nix @@ -1,8 +1,11 @@ { lib, ... -}: with lib; -rec { +}: +let + inherit (lib) mkOption; +in +{ ## Create a NixOS module option. (Stolen from Jake Hamilton) ## ## ```nix diff --git a/modules/home/desktop/gnome/default.nix b/modules/home/desktop/gnome/default.nix index 8f9701c..3b8384f 100644 --- a/modules/home/desktop/gnome/default.nix +++ b/modules/home/desktop/gnome/default.nix @@ -5,12 +5,14 @@ osConfig, namespace, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkIf mkOption; + inherit (lib.${namespace}) mkOpt; cfg = config.${namespace}.desktop.gnome; in { - options.${namespace}.desktop.gnome = with types; { + options.${namespace}.desktop.gnome = with lib.types; { enabled-extensions = mkOption { type = listOf package; default = with pkgs.gnomeExtensions; [ dash-to-dock user-themes blur-my-shell appindicator unite color-picker clipboard-history ]; @@ -19,7 +21,7 @@ in }; favorite-apps = mkOption { type = listOf str; - default = ["org.gnome.Nautilus.desktop" "obsidian.desktop" "zen.desktop" "dev.zed.Zed.desktop"]; + default = ["org.gnome.Nautilus.desktop" "obsidian.desktop" "firefox.desktop" "dev.zed.Zed.desktop"]; example = ["org.gnome.Nautilus.desktop" "obsidian.desktop"]; description = "Specify your favorite apps (sorted left to right)."; }; @@ -42,7 +44,7 @@ in enable-blur = mkOpt bool false "Whether to enable blur-my-shell application blur."; }; }; - wallpaper = mkOpt str (builtins.toString ./wallpapers/abstract/amber-d.jxl) "Specify the path of your prefered Gnome wallpaper."; + wallpaper = mkOpt str (builtins.toString ./wallpapers/arcane/jinx_flare.jpg) "Specify the path of your prefered Gnome wallpaper."; }; config = mkIf osConfig.${namespace}.desktop.gnome.enable { @@ -51,7 +53,7 @@ in dconf.settings = { "org/gnome/shell" = { favorite-apps = cfg.favorite-apps; - enabled-extensions = forEach cfg.enabled-extensions (x: x.extensionUuid); + enabled-extensions = lib.forEach cfg.enabled-extensions (x: x.extensionUuid); disabled-extensions = []; # Make sure none of our extensions are disabled on system rebuild }; "org/gnome/shell/extensions/unite" = mkIf (builtins.elem pkgs.gnomeExtensions.unite cfg.enabled-extensions) { diff --git a/modules/home/desktop/gnome/wallpapers/arcane/jinx_flare.jpg b/modules/home/desktop/gnome/wallpapers/arcane/jinx_flare.jpg new file mode 100644 index 0000000..3a7ba06 Binary files /dev/null and b/modules/home/desktop/gnome/wallpapers/arcane/jinx_flare.jpg differ diff --git a/modules/home/desktop/gnome/wallpapers/arcane/jinx_stand.webp b/modules/home/desktop/gnome/wallpapers/arcane/jinx_stand.webp new file mode 100644 index 0000000..09fc71e Binary files /dev/null and b/modules/home/desktop/gnome/wallpapers/arcane/jinx_stand.webp differ diff --git a/modules/home/palette/default.nix b/modules/home/palette/default.nix index b1b2439..efec6fb 100644 --- a/modules/home/palette/default.nix +++ b/modules/home/palette/default.nix @@ -1,15 +1,15 @@ { lib, - namespace, config, pkgs, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkOption; palette = (pkgs.lib.importJSON (config.catppuccin.sources.palette + "/palette.json")).${config.catppuccin.flavor}.colors; in { - options.palette = mkOption { type = types.attrsOf types.raw; }; + options.palette = mkOption { type = lib.types.attrsOf lib.types.raw; }; config = { inherit palette; diff --git a/modules/home/themes/catppuccin/gnome/default.nix b/modules/home/themes/catppuccin/gnome/default.nix index 265f883..ca6c9df 100644 --- a/modules/home/themes/catppuccin/gnome/default.nix +++ b/modules/home/themes/catppuccin/gnome/default.nix @@ -4,8 +4,10 @@ config, pkgs, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; + # Stolen from Oli @ git.gay, basically just themes default libadwaita components. css = pkgs.writeTextFile { name = "gtk-css"; diff --git a/modules/nixos/admin/default.nix b/modules/nixos/admin/default.nix index bb2d1fe..96a6be1 100644 --- a/modules/nixos/admin/default.nix +++ b/modules/nixos/admin/default.nix @@ -4,11 +4,10 @@ ... }: let - inherit (lib) types; inherit (lib.${namespace}) mkOpt; in { - options.${namespace}.admin = with types; { + options.${namespace}.admin = with lib.types; { name = mkOpt str "Jo" "The short name of the system admin."; full-name = mkOpt str "Johannes Reckers" "The full name of the system admin."; email = mkOpt str "system@thevoid.cafe" "The E-Mail of the system admin. (Used for system services by default)"; diff --git a/modules/nixos/archetypes/server/default.nix b/modules/nixos/archetypes/server/default.nix index 6d44abb..d979720 100644 --- a/modules/nixos/archetypes/server/default.nix +++ b/modules/nixos/archetypes/server/default.nix @@ -3,8 +3,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.archetypes.server; in { options.${namespace}.archetypes.server = { enable = mkEnableOption "Enable the server archetype for your current system"; }; diff --git a/modules/nixos/archetypes/workstation/default.nix b/modules/nixos/archetypes/workstation/default.nix index 2993636..c1f15a9 100644 --- a/modules/nixos/archetypes/workstation/default.nix +++ b/modules/nixos/archetypes/workstation/default.nix @@ -3,8 +3,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.archetypes.workstation; in { options.${namespace}.archetypes.workstation = { enable = mkEnableOption "Enable the workstation archetype for your current system"; }; diff --git a/modules/nixos/common/audio/default.nix b/modules/nixos/common/audio/default.nix index a117a1b..c2b1a7f 100644 --- a/modules/nixos/common/audio/default.nix +++ b/modules/nixos/common/audio/default.nix @@ -3,8 +3,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.common.audio; in { options.${namespace}.common.audio = { enable = mkEnableOption "whether to enable common audio support and tweaks"; }; diff --git a/modules/nixos/common/bluetooth/default.nix b/modules/nixos/common/bluetooth/default.nix index 2271e8b..c508644 100644 --- a/modules/nixos/common/bluetooth/default.nix +++ b/modules/nixos/common/bluetooth/default.nix @@ -4,8 +4,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.common.bluetooth; in { options.${namespace}.common.bluetooth = { enable = mkEnableOption "Enable bluetooth support on your current system"; }; diff --git a/modules/nixos/common/fonts/default.nix b/modules/nixos/common/fonts/default.nix index 3284cc9..9f6eb1d 100644 --- a/modules/nixos/common/fonts/default.nix +++ b/modules/nixos/common/fonts/default.nix @@ -4,11 +4,12 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf mkOption; cfg = config.${namespace}.common.fonts; in { - options.${namespace}.common.fonts = with types; { + options.${namespace}.common.fonts = with lib.types; { enable = mkEnableOption "Enable system font management"; fonts = mkOption { type = listOf package; diff --git a/modules/nixos/common/grub/default.nix b/modules/nixos/common/grub/default.nix index 5031ed2..0b21337 100644 --- a/modules/nixos/common/grub/default.nix +++ b/modules/nixos/common/grub/default.nix @@ -3,8 +3,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.common.grub; in { options.${namespace}.common.grub = { enable = mkEnableOption "grub"; }; diff --git a/modules/nixos/common/hardware/default.nix b/modules/nixos/common/hardware/default.nix index 23106e8..81a1f46 100644 --- a/modules/nixos/common/hardware/default.nix +++ b/modules/nixos/common/hardware/default.nix @@ -3,8 +3,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.common.hardware; in { options.${namespace}.common.hardware = { enable = mkEnableOption "whether to enable common hardware support"; }; diff --git a/modules/nixos/common/kernel/default.nix b/modules/nixos/common/kernel/default.nix index e5fbbbd..69b4248 100644 --- a/modules/nixos/common/kernel/default.nix +++ b/modules/nixos/common/kernel/default.nix @@ -4,18 +4,15 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; + inherit (lib.${namespace}) mkOpt; cfg = config.${namespace}.common.kernel; in { options.${namespace}.common.kernel = { enable = mkEnableOption "Modify the standard kernel settings"; - version = mkOption { - type = types.str; - default = "linuxPackages_latest"; - example = "linuxPackages_latest"; - description = "Set the kernel version to be used by your system"; - }; + version = mkOpt lib.types.str "linuxPackages_latest" "Set the kernel version to be used by your system"; }; config = mkIf cfg.enable { diff --git a/modules/nixos/common/locale/default.nix b/modules/nixos/common/locale/default.nix index 7ac250a..5a792bf 100644 --- a/modules/nixos/common/locale/default.nix +++ b/modules/nixos/common/locale/default.nix @@ -3,29 +3,30 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf mkOption; cfg = config.${namespace}.common.locale; in { options.${namespace}.common.locale = { enable = mkEnableOption "whether to enable common locale tweaks"; language = mkOption { - type = types.str; + type = lib.types.str; default = "en_US"; example = "en_US"; description = "Sets the language for most text, doesn't include monetary or measurement settings"; }; country = mkOption { - type = types.str; + type = lib.types.str; default = "de_DE"; example = "de_DE"; description = "Sets the language used for monetary or measurement settings (USD vs Euro, etc...)"; }; keymap = mkOption { - type = types.str; + type = lib.types.str; default = "de"; example = "de"; description = "Sets the keymap to be used by the system"; diff --git a/modules/nixos/common/nix/default.nix b/modules/nixos/common/nix/default.nix index 6b1628d..b1868d1 100644 --- a/modules/nixos/common/nix/default.nix +++ b/modules/nixos/common/nix/default.nix @@ -4,8 +4,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.common.nix; in { options.${namespace}.common.nix = { diff --git a/modules/nixos/common/shell/default.nix b/modules/nixos/common/shell/default.nix index 5e5f04b..a161b4a 100644 --- a/modules/nixos/common/shell/default.nix +++ b/modules/nixos/common/shell/default.nix @@ -4,8 +4,9 @@ config, pkgs, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.common.shell; in { options.${namespace}.common.shell = { @@ -13,8 +14,8 @@ in { }; config = mkIf cfg.enable { - environment.shells = with pkgs; [ fish ]; - users.defaultUserShell = pkgs.fish; + environment.shells = with pkgs; [ nushell fish ]; + users.defaultUserShell = pkgs.nushell; programs.fish.enable = true; }; } diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix index 3025a1f..89be810 100644 --- a/modules/nixos/desktop/gnome/default.nix +++ b/modules/nixos/desktop/gnome/default.nix @@ -4,8 +4,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.desktop.gnome; in { options.${namespace}.desktop.gnome = { enable = mkEnableOption "gnome"; }; diff --git a/modules/nixos/desktop/plasma/default.nix b/modules/nixos/desktop/plasma/default.nix index 628f118..348a49a 100644 --- a/modules/nixos/desktop/plasma/default.nix +++ b/modules/nixos/desktop/plasma/default.nix @@ -3,8 +3,9 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.desktop.plasma; in { options.${namespace}.desktop.plasma = { enable = mkEnableOption "Whether to enable the KDE Plasma desktop environment"; }; @@ -17,4 +18,4 @@ in { programs.kdeconnect.enable = true; }; -} \ No newline at end of file +} diff --git a/modules/nixos/security/yubikey/default.nix b/modules/nixos/security/yubikey/default.nix index d4c8cd3..90ee33e 100644 --- a/modules/nixos/security/yubikey/default.nix +++ b/modules/nixos/security/yubikey/default.nix @@ -4,12 +4,13 @@ config, namespace, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf mkOption; cfg = config.${namespace}.security.yubikey; in { - options.${namespace}.security.yubikey = with types; { + options.${namespace}.security.yubikey = with lib.types; { enable = mkEnableOption "Enable the Yubikey as a security device."; key-id = mkOption { type = listOf str; diff --git a/modules/nixos/services/bluesky/pds/default.nix b/modules/nixos/services/bluesky/pds/default.nix index 81f78c9..aae99a8 100644 --- a/modules/nixos/services/bluesky/pds/default.nix +++ b/modules/nixos/services/bluesky/pds/default.nix @@ -4,8 +4,9 @@ config, host, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.services.bluesky.pds; in { options.${namespace}.services.bluesky.pds = { diff --git a/modules/nixos/services/duckdns/default.nix b/modules/nixos/services/duckdns/default.nix index e24d864..49def34 100644 --- a/modules/nixos/services/duckdns/default.nix +++ b/modules/nixos/services/duckdns/default.nix @@ -4,8 +4,9 @@ config, host, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.services.duckdns; in { options.${namespace}.services.duckdns = { diff --git a/modules/nixos/services/homepage/default.nix b/modules/nixos/services/homepage/default.nix index fa31f84..fe20073 100644 --- a/modules/nixos/services/homepage/default.nix +++ b/modules/nixos/services/homepage/default.nix @@ -4,9 +4,11 @@ config, host, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.services.homepage; + homepageConfigDirectory = lib.snowfall.fs.get-file "resources/services/homepage"; in { options.${namespace}.services.homepage = { enable = mkEnableOption "Enable Homepage, an intuitive dashboard for your services."; }; diff --git a/modules/nixos/services/sharkey/default.nix b/modules/nixos/services/sharkey/default.nix index 902298b..9061608 100644 --- a/modules/nixos/services/sharkey/default.nix +++ b/modules/nixos/services/sharkey/default.nix @@ -4,8 +4,9 @@ config, host, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.services.sharkey; in { options.${namespace}.services.sharkey = { enable = mkEnableOption "Enable Sharkey, the activitypub-based microblogging service."; }; diff --git a/modules/nixos/services/traefik/default.nix b/modules/nixos/services/traefik/default.nix index 645d69d..0fc27a0 100644 --- a/modules/nixos/services/traefik/default.nix +++ b/modules/nixos/services/traefik/default.nix @@ -3,14 +3,15 @@ namespace, config, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf mkOption; cfg = config.${namespace}.services.traefik; in { options.${namespace}.services.traefik = { enable = mkEnableOption "Enable the Traefik service."; cloudflareEmail = mkOption { - type = types.str; + type = lib.types.str; default = config.${namespace}.admin.email; example = "system@thevoid.cafe"; description = "Specify the E-Mail associated with your Cloudflare account for ACME."; diff --git a/modules/nixos/services/vaultwarden/default.nix b/modules/nixos/services/vaultwarden/default.nix index 019a728..b260dc8 100644 --- a/modules/nixos/services/vaultwarden/default.nix +++ b/modules/nixos/services/vaultwarden/default.nix @@ -4,8 +4,9 @@ config, host, ... -}: with lib; with lib.${namespace}; +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.services.vaultwarden; in { options.${namespace}.services.vaultwarden = { enable = mkEnableOption "Enable Vaultwarden, a self-hostable password manager."; }; diff --git a/modules/nixos/tools/cachix/default.nix b/modules/nixos/tools/cachix/default.nix index 14012db..daa513f 100644 --- a/modules/nixos/tools/cachix/default.nix +++ b/modules/nixos/tools/cachix/default.nix @@ -3,9 +3,10 @@ pkgs, namespace, config, - ... -}: with lib; with lib.${namespace}; + ... +}: let + inherit (lib) mkEnableOption mkIf; cfg = config.${namespace}.tools.cachix; in { options.${namespace}.tools.cachix = { enable = mkEnableOption "Enable the cachix binary cache service on your system."; }; @@ -14,4 +15,3 @@ in { environment.systemPackages = with pkgs; [ cachix ]; }; } - diff --git a/systems/x86_64-linux/absolutesolver/default.nix b/systems/x86_64-linux/absolutesolver/default.nix index e9572d8..a3071f8 100644 --- a/systems/x86_64-linux/absolutesolver/default.nix +++ b/systems/x86_64-linux/absolutesolver/default.nix @@ -2,9 +2,8 @@ lib, pkgs, inputs, - namespace, ... -}: with lib; with lib.${namespace}; +}: { imports = [ ./hardware-configuration.nix diff --git a/systems/x86_64-linux/puzzlevision/default.nix b/systems/x86_64-linux/puzzlevision/default.nix index fb344ea..5c74d65 100644 --- a/systems/x86_64-linux/puzzlevision/default.nix +++ b/systems/x86_64-linux/puzzlevision/default.nix @@ -2,17 +2,15 @@ lib, pkgs, inputs, - namespace, config, ... -}: with lib; with lib.${namespace}; +}: { imports = [ ./hardware-configuration.nix inputs.hardware.nixosModules.common-pc-laptop inputs.hardware.nixosModules.common-cpu-intel inputs.hardware.nixosModules.common-pc-laptop-ssd - inputs.elanmoc2.nixosModules.elanmoc2 ]; # Configure Sops @@ -29,7 +27,7 @@ boot = { # Configure additional kernel modules. extraModulePackages = [ - pkgs.linuxPackages_latest.rtl8821ce # Use custom network-card driver. + pkgs.linuxKernel.packages.linux_6_12.rtl8821ce # Use custom network-card driver. ]; blacklistedKernelModules = [ @@ -46,15 +44,14 @@ # Enable printing. services.printing.enable = true; - # Enable fingerprint support for ElanTech scanner 04f3:0c00 - services.fprintd.elanmoc2.enable = true; - # Enable docker virtualisation.docker.enable = true; # Set system configuration puzzlevision = { archetypes.workstation.enable = true; + common.kernel.version = "linuxPackages_6_12"; + security.yubikey = { enable = true; enable-agent = true; @@ -67,10 +64,15 @@ # Set trusted users (Primarily used for cachix) nix.settings.trusted-users = [ "root" "jo" ]; + # Configure additional groups + users.groups.www-data = { + gid = 33; + }; + # Configure users. snowfallorg.users.jo.admin = true; users.users.jo.isNormalUser = true; - users.users.jo.extraGroups = [ "dialout" "docker" ]; + users.users.jo.extraGroups = [ "dialout" "docker" "www-data" ]; users.users.jo.hashedPasswordFile = config.sops.secrets."user/jo/password_hash".path; # Configure home-manager