From f1c89a0ec19b99f59010b8bfa8f1f569de0c2380 Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Thu, 24 Jul 2025 11:33:23 +0200 Subject: [PATCH] more progress --- _modules/system/common/qbittorrent.nix | 144 ------ _modules/system/virtualisation/default.nix | 7 - _modules/system/virtualisation/podman.nix | 26 -- flake.lock | 426 +++++++----------- flake.nix | 12 + homes/user-configurations/chris.nix | 8 + homes/x86_64-linux/chris@manwe/default.nix | 6 +- .../toolset/{bat.nix => bat/default.nix} | 0 .../toolset/{btop.nix => btop/default.nix} | 0 .../toolset/{eza.nix => eza/default.nix} | 0 .../toolset/{fzf.nix => fzf/default.nix} | 0 .../toolset/{git.nix => git/default.nix} | 0 .../toolset/{gnupg.nix => gnugpg/default.nix} | 0 .../{starship.nix => starship/default.nix} | 0 .../toolset/{tmux.nix => tmux/default.nix} | 0 .../toolset/{yazi.nix => yazi/default.nix} | 0 .../{zellij.nix => zellij/default.nix} | 0 .../{zoxide.nix => zoxide/default.nix} | 0 .../home/themes/catppuccin-latte.jpg | Bin {_modules => modules}/home/themes/default.nix | 10 +- .../home/themes/everforest.jpg | Bin modules/nixos/default.nix | 7 +- modules/nixos/desktop/default.nix | 12 +- modules/nixos/desktop/gamescope/default.nix | 9 +- modules/nixos/desktop/gnome/default.nix | 7 +- modules/nixos/desktop/plasma/default.nix | 7 +- .../hardware/gpu/{amd.nix => amd/default.nix} | 4 +- modules/nixos/services/media/default.nix | 35 +- .../networking/{ssh.nix => ssh/default.nix} | 0 .../virtualisation/podman/default.nix | 23 + .../{theming.nix => theming/default.nix} | 0 31 files changed, 256 insertions(+), 487 deletions(-) delete mode 100644 _modules/system/common/qbittorrent.nix delete mode 100644 _modules/system/virtualisation/default.nix delete mode 100644 _modules/system/virtualisation/podman.nix rename modules/home/shell/toolset/{bat.nix => bat/default.nix} (100%) rename modules/home/shell/toolset/{btop.nix => btop/default.nix} (100%) rename modules/home/shell/toolset/{eza.nix => eza/default.nix} (100%) rename modules/home/shell/toolset/{fzf.nix => fzf/default.nix} (100%) rename modules/home/shell/toolset/{git.nix => git/default.nix} (100%) rename modules/home/shell/toolset/{gnupg.nix => gnugpg/default.nix} (100%) rename modules/home/shell/toolset/{starship.nix => starship/default.nix} (100%) rename modules/home/shell/toolset/{tmux.nix => tmux/default.nix} (100%) rename modules/home/shell/toolset/{yazi.nix => yazi/default.nix} (100%) rename modules/home/shell/toolset/{zellij.nix => zellij/default.nix} (100%) rename modules/home/shell/toolset/{zoxide.nix => zoxide/default.nix} (100%) rename {_modules => modules}/home/themes/catppuccin-latte.jpg (100%) rename {_modules => modules}/home/themes/default.nix (81%) rename {_modules => modules}/home/themes/everforest.jpg (100%) rename modules/nixos/hardware/gpu/{amd.nix => amd/default.nix} (87%) rename modules/nixos/services/networking/{ssh.nix => ssh/default.nix} (100%) create mode 100644 modules/nixos/services/virtualisation/podman/default.nix rename modules/nixos/{theming.nix => theming/default.nix} (100%) diff --git a/_modules/system/common/qbittorrent.nix b/_modules/system/common/qbittorrent.nix deleted file mode 100644 index 4176165..0000000 --- a/_modules/system/common/qbittorrent.nix +++ /dev/null @@ -1,144 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.qbittorrent; - UID = 888; - GID = 888; -in -{ - options.services.qbittorrent = { - enable = mkEnableOption (lib.mdDoc "qBittorrent headless"); - - dataDir = mkOption { - type = types.path; - default = "/var/lib/qbittorrent"; - description = lib.mdDoc '' - The directory where qBittorrent stores its data files. - ''; - }; - - user = mkOption { - type = types.str; - default = "qbittorrent"; - description = lib.mdDoc '' - User account under which qBittorrent runs. - ''; - }; - - group = mkOption { - type = types.str; - default = "qbittorrent"; - description = lib.mdDoc '' - Group under which qBittorrent runs. - ''; - }; - - port = mkOption { - type = types.port; - default = 8080; - description = lib.mdDoc '' - qBittorrent web UI port. - ''; - }; - - openFirewall = mkOption { - type = types.bool; - default = false; - description = lib.mdDoc '' - Open services.qBittorrent.port to the outside network. - ''; - }; - - package = mkOption { - type = types.package; - default = pkgs.qbittorrent-nox; - defaultText = literalExpression "pkgs.qbittorrent-nox"; - description = lib.mdDoc '' - The qbittorrent package to use. - ''; - }; - }; - - config = mkIf cfg.enable (let - configFile = pkgs.writeText "qBittorrent.conf" '' - [BitTorrent] - Session\Port=53271 - Session\SSL\Port=45846 - Session\QueueingSystemEnabled=false - Session\MaxUploads=-1 - Session\MaxUploadsPerTorrent=-1 - - [Meta] - MigrationVersion=8 - - [Network] - Cookies=@Invalid() - - [Preferences] - WebUI\Port=5000 - WebUI\Username=admin - WebUI\Password_PBKDF2="@ByteArray(Clgb2+ZyS3PDRVqtYpj0Ow==:kjN301CJife6g5ou8N2mk6ydQWPQIGgrTAWg5ByWCqAv0jDLphR/IaVQ1tu9KtA+il1udi48xSXZ3AUpjK/fRw==)" - - [RSS] - AutoDownloader\DownloadRepacks=true - AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})" - ''; - in { - networking.firewall = mkIf cfg.openFirewall { - allowedTCPPorts = [ cfg.port ]; - }; - - systemd.tmpfiles.rules = [ - # https://www.mankier.com/5/tmpfiles.d - "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.dataDir}/__config' 0700 ${cfg.user} ${cfg.group} - -" - "L+ '${cfg.dataDir}/__config/qBittorrent.conf' - - - - ${configFile}" - ]; - - systemd.services.qbittorrent = { - description = "qBittorrent-nox service"; - documentation = [ "man:qbittorrent-nox(1)" ]; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - Type = "simple"; - User = cfg.user; - Group = cfg.group; - - ExecStartPre = let - preStartScript = pkgs.writeScript "qbittorrent-run-prestart" '' - #!${pkgs.bash}/bin/bash - - # Create data directory if it doesn't exist - if ! test -d "$QBT_PROFILE"; then - echo "Creating initial qBittorrent data directory in: $QBT_PROFILE" - install -d -m 0755 -o "${cfg.user}" -g "${cfg.group}" "$QBT_PROFILE" - fi - ''; - in - "!${preStartScript}"; - - ExecStart = "${cfg.package}/bin/qbittorrent-nox"; - }; - - environment = { - QBT_PROFILE = cfg.dataDir; - QBT_WEBUI_PORT = toString cfg.port; - }; - }; - - users.users = mkIf (cfg.user == "qbittorrent") { - qbittorrent = { - group = cfg.group; - uid = UID; - }; - }; - - users.groups = mkIf (cfg.group == "qbittorrent") { - qbittorrent = { gid = GID; }; - }; - }); -} diff --git a/_modules/system/virtualisation/default.nix b/_modules/system/virtualisation/default.nix deleted file mode 100644 index 3bcff9f..0000000 --- a/_modules/system/virtualisation/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, options, lib, pkgs, ... }: -let - inherit (lib) mkIf mkEnableOption; -in -{ - options.modules.virtualisation = {}; -} diff --git a/_modules/system/virtualisation/podman.nix b/_modules/system/virtualisation/podman.nix deleted file mode 100644 index dd455ff..0000000 --- a/_modules/system/virtualisation/podman.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ config, options, lib, pkgs, ... }: -let - inherit (lib.modules) mkIf; - - cfg = config.modules.virtualisation.podman; -in -{ - options.modules.virtualisation.podman = let - inherit (lib.options) mkEnableOption; - in - { - enable = mkEnableOption "enable podman"; - }; - - config = mkIf config.modules.virtualisation.podman.enable { - virtualisation = { - containers.enable = true; - - podman = { - enable = true; - dockerCompat = true; - defaultNetwork.settings.dns_enabled = true; - }; - }; - }; -} diff --git a/flake.lock b/flake.lock index 1c8b5cb..a7d81dc 100644 --- a/flake.lock +++ b/flake.lock @@ -73,11 +73,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1749911151, - "narHash": "sha256-nQ+bDURW2sP3DdEPw5X0UsaHArDgzH2+gHdJAolurXU=", + "lastModified": 1753276606, + "narHash": "sha256-2N6MlBOBv2bDfo0Pg18j3a81HZq72uO+rvZsGK1eW/4=", "owner": "emmanuelrosa", "repo": "erosanix", - "rev": "2d1aef5159a5a67a14ae5903a6b5aa21af69faee", + "rev": "aac9ef558a5b8008a24c611d96455ed0cd1d3b16", "type": "github" }, "original": { @@ -94,11 +94,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1750487788, - "narHash": "sha256-79O83W9osY3wyvxZHqL0gw85tcACSX0TU5en3+dky/0=", + "lastModified": 1753339339, + "narHash": "sha256-r9Frae3VnbgKrWWQcV6WEykm6PxfPHVrxdOqgyt1VcU=", "owner": "nix-community", "repo": "fenix", - "rev": "933bc78d45abaf764dbfe0fd117be981631f3e9a", + "rev": "af1c3d7dd242ebf50ac75665d5c44af79730b491", "type": "github" }, "original": { @@ -114,11 +114,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1750004387, - "narHash": "sha256-5NhN7NYyPI4q9hZhrVV3jN5Y/stVePUihGlclPT1K8c=", + "lastModified": 1753320535, + "narHash": "sha256-UCz4mALWiiZPa7Chid72Na7KSH+GdUDQ/O673luMD4w=", "owner": "nix-community", "repo": "flake-firefox-nightly", - "rev": "dd885d03a55568a59a9c2874c3b03098c078d9eb", + "rev": "b7b4baa6e76170b767d34a4461210842ba7f6068", "type": "github" }, "original": { @@ -191,6 +191,22 @@ } }, "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, + "flake-compat_5": { "flake": false, "locked": { "lastModified": 1650374568, @@ -206,31 +222,19 @@ "type": "github" } }, - "flake-compat_5": { - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-parts": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] }, "locked": { - "lastModified": 1749398372, - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "lastModified": 1753121425, + "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", "type": "github" }, "original": { @@ -247,11 +251,11 @@ ] }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "type": "github" }, "original": { @@ -335,7 +339,10 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_4" + "systems": [ + "nvf", + "systems" + ] }, "locked": { "lastModified": 1731533236, @@ -353,7 +360,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_6" + "systems": "systems_5" }, "locked": { "lastModified": 1694529238, @@ -403,71 +410,41 @@ "type": "github" } }, - "git-hooks": { - "inputs": { - "flake-compat": [ - "stylix", - "flake-compat" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747372754, - "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "stylix", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "gnome-shell": { "flake": false, "locked": { - "lastModified": 1744584021, - "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "lastModified": 1748186689, + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", "type": "github" }, "original": { "owner": "GNOME", - "ref": "48.1", + "ref": "48.2", "repo": "gnome-shell", "type": "github" } }, + "grub2-themes": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1753279958, + "narHash": "sha256-EJ1udnwKYgWeAJzncAccbLPtbSWiuIANryXTGI9nY6w=", + "owner": "vinceliuice", + "repo": "grub2-themes", + "rev": "6c26f99622cb1c705b3fe2dbe1eb88521096b25a", + "type": "github" + }, + "original": { + "owner": "vinceliuice", + "repo": "grub2-themes", + "type": "github" + } + }, "himmelblau": { "inputs": { "flake-utils": "flake-utils_2", @@ -476,11 +453,11 @@ ] }, "locked": { - "lastModified": 1750450607, - "narHash": "sha256-z+sZbYISN46VKCawV8iBuwE3Cw6DoSZd5KXYrxBYbF0=", + "lastModified": 1753194162, + "narHash": "sha256-N+RdYwyw342DMd1Bo2t9OZCt4s2Qzki6nliBLHaPLNM=", "owner": "himmelblau-idm", "repo": "himmelblau", - "rev": "5dc066cc063ea857f8c8b3dc524c83eb09dc0548", + "rev": "a0bafb7cfe6be4ae7863d01b451600dc4cd7181b", "type": "github" }, "original": { @@ -497,32 +474,11 @@ ] }, "locked": { - "lastModified": 1750304462, - "narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=", + "lastModified": 1753294394, + "narHash": "sha256-1Dfgq09lHZ8AdYB2Deu/mYP1pMNpob8CgqT5Mzo44eI=", "owner": "nix-community", "repo": "home-manager", - "rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1748737919, - "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "5675a9686851d9626560052a032c4e14e533c1fa", + "rev": "1fde6fb1be6cd5dc513dc1c287d69e4eb2de973e", "type": "github" }, "original": { @@ -539,11 +495,11 @@ ] }, "locked": { - "lastModified": 1750403547, - "narHash": "sha256-XDDINMbHTtKQeSRpX5mwq20z23Wg/I/G4JUinA3V8Xg=", + "lastModified": 1753333833, + "narHash": "sha256-S5RHVk+6PMwThIJY2mSbeoWTY1JrBSy1v1E1LDOFQW8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "52b86b86d925ec00c836ecc6d36f9c947bb15736", + "rev": "e462677116c12bf23bd681a6a87dc7f98e689adf", "type": "github" }, "original": { @@ -558,11 +514,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1749989692, - "narHash": "sha256-ojISk2CXljR3qIgwgZh4iNzP3W2H3zGH49xWTJARkoM=", + "lastModified": 1753013761, + "narHash": "sha256-ggvjKAeIsjwdu6+ECBGieyBgtotD7BrsGX5BirCacYU=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "cae85629e70ce05b968757f3af8f2f2b3923d080", + "rev": "f7c04e5ad6aa43a0f9698edb0d74b44e88ee99ee", "type": "github" }, "original": { @@ -586,27 +542,6 @@ "type": "github" } }, - "nil": { - "inputs": { - "nixpkgs": [ - "nvf", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750047244, - "narHash": "sha256-vluLARrk4485npdyHOj8XKr0yk6H22pNf+KVRNL+i/Y=", - "owner": "oxalica", - "repo": "nil", - "rev": "870a4b1b5f12004832206703ac15aa85c42c247b", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "nil", - "type": "github" - } - }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -633,14 +568,14 @@ "inputs": { "flake-compat": "flake-compat_3", "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1750471420, - "narHash": "sha256-NdmGCaMJH1OxOpscofZ61aqzHfVf8pMXtl9XFO/1T0k=", + "lastModified": 1753237324, + "narHash": "sha256-iXvv/VYLMyAoaTadYrX0PGwd6N2wVX337Os6k8TAlF4=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "c2cda7b9a94779abe0632ac5b64207df002fea40", + "rev": "64ca2cbbf9c65dd3bd98192d74872a80e8dcb871", "type": "github" }, "original": { @@ -666,11 +601,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748359502, - "narHash": "sha256-nnY29OR2nFG9NxF0eN0XemmJx8bpMdoRwvQt8PnI0Uw=", + "lastModified": 1751186460, + "narHash": "sha256-tSnI50oYaXOi/SFUmJC+gZ2xE9pAhTnV0D2/3JoKL7g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "502151620cdde8fda50f1f05706caae833379754", + "rev": "dd5540905b1a13176efa13fa2f8dac776bcb275a", "type": "github" }, "original": { @@ -682,11 +617,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1749950217, - "narHash": "sha256-qXoEFKOnznVvMAKezJhSXzRKsJ/LHLRY8NCw1mGhwrU=", + "lastModified": 1752974445, + "narHash": "sha256-jj/HBJFSapTk4LfeJgNLk2wEE2BO6dgBYVRbXMNOCeM=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "753176a8605439613fc6dc9911267b9f720a2615", + "rev": "9100109c11b6b5482ea949c980b86e24740dca08", "type": "github" }, "original": { @@ -695,28 +630,29 @@ "type": "github" } }, - "nixpkgs-lib_2": { + "nixpkgs_10": { "locked": { - "lastModified": 1748740939, - "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "656a64127e9d791a334452c6b6606d17539476e2", + "lastModified": 1727348695, + "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1749896453, - "narHash": "sha256-6+AmSZBogyr1zbVc2k4IBcmY/Yt39mC4+cfZi0n/AAA=", + "lastModified": 1753290466, + "narHash": "sha256-Df8wnrToZpzjqFJWhvaUUvwypj1bKM3JY6zSskwETmc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ba48a1f6ce571455cb631dee840c6cd401ea4adb", + "rev": "1744f3daf87f5bb4b2b08f6298a55b6a88ea8308", "type": "github" }, "original": { @@ -743,6 +679,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1753346648, + "narHash": "sha256-n/eFKkfFh/V3S9tCTL0ulljtcczTCfuh5P5g55Jx6bM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8cf96bf5c3356ee5867dd2a2cd771709db9848b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1748929857, "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", @@ -758,13 +710,13 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { - "lastModified": 1750365781, - "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", + "lastModified": 1753250450, + "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", "owner": "nixos", "repo": "nixpkgs", - "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", + "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", "type": "github" }, "original": { @@ -774,13 +726,13 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { - "lastModified": 1750215678, - "narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=", + "lastModified": 1752997324, + "narHash": "sha256-vtTM4oDke3SeDj+1ey6DjmzXdq8ZZSCLWSaApADDvIE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192", + "rev": "7c688a0875df5a8c28a53fb55ae45e94eae0dddb", "type": "github" }, "original": { @@ -790,7 +742,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1744868846, "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", @@ -806,33 +758,17 @@ "type": "github" } }, - "nixpkgs_8": { - "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_9": { "locked": { - "lastModified": 1727348695, - "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", - "owner": "nixos", + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -847,15 +783,14 @@ "nixpkgs": [ "stylix", "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" + ] }, "locked": { - "lastModified": 1748730660, - "narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=", + "lastModified": 1751906969, + "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=", "owner": "nix-community", "repo": "NUR", - "rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb", + "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25", "type": "github" }, "original": { @@ -866,19 +801,19 @@ }, "nvf": { "inputs": { + "flake-compat": "flake-compat_4", "flake-parts": "flake-parts", "flake-utils": "flake-utils_4", "mnw": "mnw", - "nil": "nil", - "nixpkgs": "nixpkgs_6", - "systems": "systems_5" + "nixpkgs": "nixpkgs_7", + "systems": "systems_4" }, "locked": { - "lastModified": 1750441488, - "narHash": "sha256-JuFBp2xM4JD/XGb69dTSDOdGbUD0fVHlgY9X9GHGTFE=", + "lastModified": 1753181140, + "narHash": "sha256-daKfPQnipcRnKnXknDzv+fzNKeEY3r/10y8YMVQ10vU=", "owner": "notashelf", "repo": "nvf", - "rev": "18c17b7b8dbf6e0f10e3eb5f1fa5341a9175a3b1", + "rev": "8fbecab446afe3454ecce6a4b817ec4f123a4a34", "type": "github" }, "original": { @@ -916,12 +851,13 @@ "fenix": "fenix", "firefox": "firefox", "flux": "flux", + "grub2-themes": "grub2-themes", "himmelblau": "himmelblau", "home-manager": "home-manager", "jovian": "jovian", "nix-minecraft": "nix-minecraft", "nixos-boot": "nixos-boot", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "nvf": "nvf", "plasma-manager": "plasma-manager", "snowfall-lib": "snowfall-lib", @@ -933,11 +869,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1750405264, - "narHash": "sha256-EMFKnO+J3dZOa9J+uiKZgHYgzALv9dqxY7NHV0DbO/U=", + "lastModified": 1753282007, + "narHash": "sha256-PgTUdSShfGVqZtDJk5noAB1rKdD/MeZ1zq4jY8n9p3c=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "b0552d779f7137c76f109666ce0ad28395c0e582", + "rev": "b5b10fb10facef4d18b4cae8ef22e640ca601255", "type": "github" }, "original": { @@ -949,7 +885,7 @@ }, "snowfall-lib": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "flake-utils-plus": "flake-utils-plus", "nixpkgs": [ "nixpkgs" @@ -971,14 +907,14 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1750119275, - "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", + "lastModified": 1752544651, + "narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=", "owner": "Mic92", "repo": "sops-nix", - "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", + "rev": "2c8def626f54708a9c38a5861866660395bb3461", "type": "github" }, "original": { @@ -994,14 +930,11 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-compat": "flake-compat_5", "flake-parts": "flake-parts_2", - "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", - "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "nur": "nur", - "systems": "systems_7", + "systems": "systems_6", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -1009,11 +942,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1750527172, - "narHash": "sha256-ATl7gK98w27JaXzidK48YlG4o+mtfvyHu9zKuadE6j0=", + "lastModified": 1753296482, + "narHash": "sha256-VPLaHVhU6/CwnMHTjhf6945qyrXEcpjxKfpWqQXtnxI=", "owner": "danth", "repo": "stylix", - "rev": "27721407de0615e927c84f7c23277628e1d12b67", + "rev": "fbe1dab7783a3d579dc57be8ceee148104e0930b", "type": "github" }, "original": { @@ -1112,21 +1045,6 @@ "type": "github" } }, - "systems_7": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "tinted-foot": { "flake": false, "locked": { @@ -1163,11 +1081,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1748180480, - "narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=", + "lastModified": 1750770351, + "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", "owner": "tinted-theming", "repo": "schemes", - "rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31", + "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", "type": "github" }, "original": { @@ -1179,11 +1097,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1748740859, - "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=", + "lastModified": 1751159871, + "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda", + "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", "type": "github" }, "original": { @@ -1195,11 +1113,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1725758778, - "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "lastModified": 1751158968, + "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", "type": "github" }, "original": { @@ -1208,31 +1126,9 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "stylix", - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733222881, - "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "49717b5af6f80172275d47a418c9719a31a78b53", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "zen-browser": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1727721329, diff --git a/flake.nix b/flake.nix index 5abe818..194c538 100644 --- a/flake.nix +++ b/flake.nix @@ -52,6 +52,10 @@ url = "github:Jovian-Experiments/Jovian-NixOS"; inputs.nixpkgs.follows = "nixpkgs"; }; + + grub2-themes = { + url = "github:vinceliuice/grub2-themes"; + }; }; outputs = inputs: inputs.snowfall-lib.mkFlake { @@ -60,6 +64,10 @@ channels-config = { allowUnfree = true; + permittedInsecurePackages = [ + "dotnet-sdk-6.0.428" + "aspnetcore-runtime-6.0.36" + ]; }; snowfall = { @@ -76,5 +84,9 @@ nix-minecraft.overlay flux.overlays.default ]; + + homes.modules = with inputs; [ + plasma-manager.homeManagerModules.plasma-manager + ]; }; } diff --git a/homes/user-configurations/chris.nix b/homes/user-configurations/chris.nix index bd48767..3a321e1 100644 --- a/homes/user-configurations/chris.nix +++ b/homes/user-configurations/chris.nix @@ -3,4 +3,12 @@ userName = "Chris Kruining"; userEmail = "chris@kruining.eu"; }; + + sneeuwvlok = { + themes = { + enable = true; + theme = "everforest"; + polarity = "dark"; + }; + }; } \ No newline at end of file diff --git a/homes/x86_64-linux/chris@manwe/default.nix b/homes/x86_64-linux/chris@manwe/default.nix index a5a09f3..530ea5f 100644 --- a/homes/x86_64-linux/chris@manwe/default.nix +++ b/homes/x86_64-linux/chris@manwe/default.nix @@ -1,8 +1,4 @@ { ... }: { - sneeuwvlok = { - series = { - media.enable = true; - }; - }; + sneeuwvlok = {}; } diff --git a/modules/home/shell/toolset/bat.nix b/modules/home/shell/toolset/bat/default.nix similarity index 100% rename from modules/home/shell/toolset/bat.nix rename to modules/home/shell/toolset/bat/default.nix diff --git a/modules/home/shell/toolset/btop.nix b/modules/home/shell/toolset/btop/default.nix similarity index 100% rename from modules/home/shell/toolset/btop.nix rename to modules/home/shell/toolset/btop/default.nix diff --git a/modules/home/shell/toolset/eza.nix b/modules/home/shell/toolset/eza/default.nix similarity index 100% rename from modules/home/shell/toolset/eza.nix rename to modules/home/shell/toolset/eza/default.nix diff --git a/modules/home/shell/toolset/fzf.nix b/modules/home/shell/toolset/fzf/default.nix similarity index 100% rename from modules/home/shell/toolset/fzf.nix rename to modules/home/shell/toolset/fzf/default.nix diff --git a/modules/home/shell/toolset/git.nix b/modules/home/shell/toolset/git/default.nix similarity index 100% rename from modules/home/shell/toolset/git.nix rename to modules/home/shell/toolset/git/default.nix diff --git a/modules/home/shell/toolset/gnupg.nix b/modules/home/shell/toolset/gnugpg/default.nix similarity index 100% rename from modules/home/shell/toolset/gnupg.nix rename to modules/home/shell/toolset/gnugpg/default.nix diff --git a/modules/home/shell/toolset/starship.nix b/modules/home/shell/toolset/starship/default.nix similarity index 100% rename from modules/home/shell/toolset/starship.nix rename to modules/home/shell/toolset/starship/default.nix diff --git a/modules/home/shell/toolset/tmux.nix b/modules/home/shell/toolset/tmux/default.nix similarity index 100% rename from modules/home/shell/toolset/tmux.nix rename to modules/home/shell/toolset/tmux/default.nix diff --git a/modules/home/shell/toolset/yazi.nix b/modules/home/shell/toolset/yazi/default.nix similarity index 100% rename from modules/home/shell/toolset/yazi.nix rename to modules/home/shell/toolset/yazi/default.nix diff --git a/modules/home/shell/toolset/zellij.nix b/modules/home/shell/toolset/zellij/default.nix similarity index 100% rename from modules/home/shell/toolset/zellij.nix rename to modules/home/shell/toolset/zellij/default.nix diff --git a/modules/home/shell/toolset/zoxide.nix b/modules/home/shell/toolset/zoxide/default.nix similarity index 100% rename from modules/home/shell/toolset/zoxide.nix rename to modules/home/shell/toolset/zoxide/default.nix diff --git a/_modules/home/themes/catppuccin-latte.jpg b/modules/home/themes/catppuccin-latte.jpg similarity index 100% rename from _modules/home/themes/catppuccin-latte.jpg rename to modules/home/themes/catppuccin-latte.jpg diff --git a/_modules/home/themes/default.nix b/modules/home/themes/default.nix similarity index 81% rename from _modules/home/themes/default.nix rename to modules/home/themes/default.nix index 3e26492..8acf633 100644 --- a/_modules/home/themes/default.nix +++ b/modules/home/themes/default.nix @@ -1,12 +1,12 @@ -{ config, lib, pkgs, user, ... }: +{ config, lib, pkgs, namespace, ... }: let inherit (lib) mkIf mkDefault; inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) nullOr enum; - cfg = config.modules.${user}.themes; + cfg = config.${namespace}.themes; in { - options.modules.${user}.themes = { + options.${namespace}.themes = { enable = mkEnableOption "Theming (Stylix)"; theme = mkOption { @@ -23,8 +23,8 @@ in { }; }; - config = mkIf (cfg.enable) { - modules.theming.enable = true; + config = mkIf cfg.enable { + ${namespace}.theming.enable = true; stylix = { base16Scheme = "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml"; diff --git a/_modules/home/themes/everforest.jpg b/modules/home/themes/everforest.jpg similarity index 100% rename from _modules/home/themes/everforest.jpg rename to modules/home/themes/everforest.jpg diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 42713e4..46a454b 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -8,7 +8,7 @@ in { options.${namespace} = { preset = mkOption { - type = nullOr enum [ "server" "desktop" ]; + type = nullOr (enum [ "server" "desktop" ]); default = null; example = "desktop"; description = "Which defaults profile to start with"; @@ -27,14 +27,15 @@ in animated = true; }; - desktop.use = "kde"; + desktop.use = "plasma"; + theming.enable = true; }; }) (mkIf (cfg.preset == "server") { ${namespace} = mkDefault { services = { - ssh.enable = true; + networking.ssh.enable = true; }; }; }) diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index 176b80f..f38a28e 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -1,4 +1,4 @@ -{ lib, config, namespace, ... }: +{ lib, config, namespace, inputs, ... }: let inherit (lib) mkIf mkOption mkEnableOption mkMerge; inherit (lib.types) nullOr enum; @@ -6,6 +6,10 @@ let cfg = config.${namespace}.desktop; in { + imports = [ + inputs.grub2-themes.nixosModules.default + ]; + options.${namespace}.desktop = { use = mkOption { type = nullOr (enum [ "plasma" "gamescope" "gnome" ]); @@ -28,8 +32,8 @@ in }; }) - (mkIf (cfg.use != null) { - ${namespace}.desktop.${cfg.use}.enable = true; - }) + # (mkIf (cfg.use != null) { + # ${namespace}.desktop.${cfg.use}.enable = true; + # }) ]; } diff --git a/modules/nixos/desktop/gamescope/default.nix b/modules/nixos/desktop/gamescope/default.nix index f125292..92d4e96 100644 --- a/modules/nixos/desktop/gamescope/default.nix +++ b/modules/nixos/desktop/gamescope/default.nix @@ -1,4 +1,5 @@ -{ lib, config, namespace, inputs, ... }:let +{ lib, config, namespace, inputs, ... }: +let inherit (lib) mkIf mkEnableOption; cfg = config.${namespace}.desktop.gamescope; @@ -7,11 +8,13 @@ in imports = [ inputs.jovian.nixosModules.default ]; options.${namespace}.desktop.gamescope = { - enable = mkEnableOption "Enable Steamdeck ui"; + enable = mkEnableOption "Enable Steamdeck ui" // { + default = (config.${namespace}.desktop.use == "gamescope"); + }; }; config = mkIf cfg.enable { - "${namespace}".desktop.kde.enable = true; + ${namespace}.desktop.plasma.enable = true; jovian = { steam = { diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix index 126d384..979587f 100644 --- a/modules/nixos/desktop/gnome/default.nix +++ b/modules/nixos/desktop/gnome/default.nix @@ -1,11 +1,14 @@ -{ lib, config, namespace, ... }:let +{ lib, config, namespace, ... }: +let inherit (lib) mkIf mkEnableOption; cfg = config.${namespace}.desktop.gnome; in { options.${namespace}.desktop.gnome = { - enable = mkEnableOption "Enable Gnome"; + enable = mkEnableOption "Enable Gnome" // { + default = (config.${namespace}.desktop.use == "gnome"); + }; }; config = mkIf cfg.enable { diff --git a/modules/nixos/desktop/plasma/default.nix b/modules/nixos/desktop/plasma/default.nix index 8be91ec..11c0cd9 100644 --- a/modules/nixos/desktop/plasma/default.nix +++ b/modules/nixos/desktop/plasma/default.nix @@ -1,11 +1,14 @@ -{ pkgs, lib, config, namespace, ... }:let +{ pkgs, lib, config, namespace, ... }: +let inherit (lib) mkIf mkEnableOption; cfg = config.${namespace}.desktop.plasma; in { options.${namespace}.desktop.plasma = { - enable = mkEnableOption "Enable KDE Plasma"; + enable = mkEnableOption "Enable KDE Plasma" // { + default = (config.${namespace}.desktop.use == "plasma"); + }; }; config = mkIf cfg.enable { diff --git a/modules/nixos/hardware/gpu/amd.nix b/modules/nixos/hardware/gpu/amd/default.nix similarity index 87% rename from modules/nixos/hardware/gpu/amd.nix rename to modules/nixos/hardware/gpu/amd/default.nix index c47191c..68db574 100644 --- a/modules/nixos/hardware/gpu/amd.nix +++ b/modules/nixos/hardware/gpu/amd/default.nix @@ -2,12 +2,12 @@ let inherit (lib) mkIf mkEnableOption; - cfg = config.${namespace}.hardware.has.gpu.amd; + cfg = config.${namespace}.hardware.has.gpu; in { options.${namespace}.hardware.has.gpu.amd = mkEnableOption "Enable AMD gpu configuration"; - config = mkIf cfg { + config = mkIf cfg.amd { services.xserver.videoDrivers = [ "amd" ]; hardware = { diff --git a/modules/nixos/services/media/default.nix b/modules/nixos/services/media/default.nix index 4827114..7d76794 100644 --- a/modules/nixos/services/media/default.nix +++ b/modules/nixos/services/media/default.nix @@ -40,12 +40,6 @@ in yt-dlp ]; - # need to permit these outdated packages until servarr finally upgrades at some point... - permittedInsecurePackages = [ - "dotnet-sdk-6.0.428" - "aspnetcore-runtime-6.0.36" - ]; - #========================================================================= # Prepare system #========================================================================= @@ -58,14 +52,14 @@ in }; systemd.tmpfiles.rules = [ - "d '${cfg.directory}/series' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/movies' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/music' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/qbittorrent' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/sabnzbd' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/reiverr/config' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/downloads/incomplete' 0700 ${cfg.user} ${cfg.group} - -" - "d '${cfg.directory}/downloads/done' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/series' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/movies' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/music' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/qbittorrent' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/sabnzbd' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/reiverr/config' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/downloads/incomplete' 0700 ${cfg.user} ${cfg.group} - -" + "d '${cfg.path}/downloads/done' 0700 ${cfg.user} ${cfg.group} - -" ]; #========================================================================= @@ -98,8 +92,11 @@ in qbittorrent = { enable = true; openFirewall = true; - dataDir = "${cfg.directory}/qbittorrent"; - port = 5000; + webuiPort = 5000; + + serverConfig = { + LegalNotice.Accepted = true; + }; user = cfg.user; group = cfg.group; @@ -108,7 +105,7 @@ in sabnzbd = { enable = true; openFirewall = true; - configFile = "${cfg.directory}/sabnzbd/config.ini"; + configFile = "${cfg.path}/sabnzbd/config.ini"; user = cfg.user; group = cfg.group; @@ -131,7 +128,7 @@ in systemd.services.jellyfin.serviceConfig.killSignal = lib.mkForce "SIGKILL"; - modules.virtualisation.podman.enable = true; + ${namespace}.services.virtualisation.podman.enable = true; virtualisation = { oci-containers = { @@ -148,7 +145,7 @@ in image = "ghcr.io/aleksilassila/reiverr:v2.2.0"; autoStart = true; ports = [ "127.0.0.1:9494:9494" ]; - volumes = [ "${cfg.directory}/reiverr/config:/config" ]; + volumes = [ "${cfg.path}/reiverr/config:/config" ]; }; }; }; diff --git a/modules/nixos/services/networking/ssh.nix b/modules/nixos/services/networking/ssh/default.nix similarity index 100% rename from modules/nixos/services/networking/ssh.nix rename to modules/nixos/services/networking/ssh/default.nix diff --git a/modules/nixos/services/virtualisation/podman/default.nix b/modules/nixos/services/virtualisation/podman/default.nix new file mode 100644 index 0000000..9b9dc89 --- /dev/null +++ b/modules/nixos/services/virtualisation/podman/default.nix @@ -0,0 +1,23 @@ +{ config, options, lib, pkgs, namespace, ... }: +let + inherit (lib) mkIf mkEnableOption; + + cfg = config.${namespace}.services.virtualisation.podman; +in +{ + options.${namespace}.services.virtualisation.podman = { + enable = mkEnableOption "enable podman"; + }; + + config = mkIf cfg.enable { + virtualisation = { + containers.enable = true; + + podman = { + enable = true; + dockerCompat = true; + defaultNetwork.settings.dns_enabled = true; + }; + }; + }; +} diff --git a/modules/nixos/theming.nix b/modules/nixos/theming/default.nix similarity index 100% rename from modules/nixos/theming.nix rename to modules/nixos/theming/default.nix