diff --git a/hosts/cnix/modules.nix b/hosts/cnix/modules.nix index d44f930f..f0c03ee0 100644 --- a/hosts/cnix/modules.nix +++ b/hosts/cnix/modules.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { nixos = { boot = { loader = { @@ -17,15 +17,15 @@ }; }; gaming = { - # steam = { - # enable = true; - # }; - # gamescope = { - # enable = true; - # }; - # lutris = { - # enable = true; - # }; + steam = { + enable = true; + }; + gamescope = { + enable = true; + }; + lutris = { + enable = true; + }; gamemode = { enable = true; optimizeGpu = { @@ -173,12 +173,23 @@ }; }; system = { + devpkgs = { + enable = true; + }; + fonts = { + enable = true; + }; locale = { enable = true; timeZone = "Europe/Stockholm"; defaultLocale = "en_US.UTF-8"; extraLocale = "sv_SE.UTF-8"; }; + xdg = { + enable = true; + xdgOpenUsePortal = true; + extraPortals = [pkgs.xdg-desktop-portal-gtk]; + }; }; utils = { android = { diff --git a/hosts/cnixpad/modules.nix b/hosts/cnixpad/modules.nix index aa80c60c..b49aec50 100644 --- a/hosts/cnixpad/modules.nix +++ b/hosts/cnixpad/modules.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { nixos = { boot = { loader = { @@ -148,19 +148,30 @@ }; }; system = { + devpkgs = { + enable = true; + }; + fonts = { + enable = true; + }; locale = { enable = true; timeZone = "Europe/Stockholm"; defaultLocale = "en_US.UTF-8"; extraLocale = "sv_SE.UTF-8"; }; + xdg = { + enable = true; + xdgOpenUsePortal = true; + extraPortals = [pkgs.xdg-desktop-portal-gtk]; + }; }; utils = { android = { enable = true; }; anyrun = { - enable = true; + enable = false; }; brightnessctl = { enable = true; diff --git a/hosts/default.nix b/hosts/default.nix index 949e2203..036cb7f1 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -19,10 +19,6 @@ # shorten paths inherit (inputs.nixpkgs.lib) nixosSystem; - mod = "${systemConfig}"; - - # get the basic config to build on top of - inherit (import "${systemConfig}") shared; # get these into the module system specialArgs = {inherit inputs self userConfig systemConfig hostConfig cnstConfig toothpickConfig umodPath smodPath;}; @@ -30,57 +26,51 @@ cnix = nixosSystem { inherit specialArgs; - modules = - shared - ++ [ - ./cnix - "${mod}/dev" - { - home-manager = { - users.cnst.imports = homeImports."cnst@cnix"; - extraSpecialArgs = specialArgs; - }; - } - self.nixosModules.nixos - inputs.chaotic.nixosModules.default - inputs.agenix.nixosModules.default - ]; + modules = [ + ./cnix + "${self}/nix" + { + home-manager = { + users.cnst.imports = homeImports."cnst@cnix"; + extraSpecialArgs = specialArgs; + }; + } + self.nixosModules.nixos + inputs.chaotic.nixosModules.default + inputs.agenix.nixosModules.default + ]; }; toothpc = nixosSystem { inherit specialArgs; - modules = - shared - ++ [ - ./toothpc - "${mod}/dev" - { - home-manager = { - users.toothpick.imports = homeImports."toothpick@toothpc"; - extraSpecialArgs = specialArgs; - }; - } - self.nixosModules.nixos - inputs.chaotic.nixosModules.default - inputs.agenix.nixosModules.default - ]; + modules = [ + ./toothpc + "${self}/nix" + { + home-manager = { + users.toothpick.imports = homeImports."toothpick@toothpc"; + extraSpecialArgs = specialArgs; + }; + } + self.nixosModules.nixos + inputs.chaotic.nixosModules.default + inputs.agenix.nixosModules.default + ]; }; cnixpad = nixosSystem { inherit specialArgs; - modules = - shared - ++ [ - ./cnixpad - "${mod}/dev" - { - home-manager = { - users.cnst.imports = homeImports."cnst@cnixpad"; - extraSpecialArgs = specialArgs; - }; - } - self.nixosModules.nixos - inputs.chaotic.nixosModules.default - inputs.agenix.nixosModules.default - ]; + modules = [ + ./cnixpad + "${self}/nix" + { + home-manager = { + users.cnst.imports = homeImports."cnst@cnixpad"; + extraSpecialArgs = specialArgs; + }; + } + self.nixosModules.nixos + inputs.chaotic.nixosModules.default + inputs.agenix.nixosModules.default + ]; }; }; } diff --git a/hosts/toothpc/modules.nix b/hosts/toothpc/modules.nix index eb8916cd..89de1bd0 100644 --- a/hosts/toothpc/modules.nix +++ b/hosts/toothpc/modules.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { nixos = { boot = { loader = { @@ -165,12 +165,23 @@ }; }; system = { + devpkgs = { + enable = true; + }; + fonts = { + enable = true; + }; locale = { enable = true; timeZone = "Europe/Stockholm"; defaultLocale = "en_US.UTF-8"; extraLocale = "sv_SE.UTF-8"; }; + xdg = { + enable = true; + xdgOpenUsePortal = true; + extraPortals = [pkgs.xdg-desktop-portal-gtk]; + }; }; utils = { android = { diff --git a/modules/default.nix b/modules/default.nix index f47d8342..d11f847e 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -12,9 +12,9 @@ ./home/devtools/neovim ./home/devtools/vscode - ./home/gaming/steam - ./home/gaming/mangohud - ./home/gaming/lutris + # ./home/gaming/steam + # ./home/gaming/mangohud + # ./home/gaming/lutris ./home/cli/alacritty ./home/cli/bash @@ -102,7 +102,10 @@ ./nixos/services/system/zram ./nixos/services/system/kanata + ./nixos/system/devpkgs + ./nixos/system/fonts ./nixos/system/locale + ./nixos/system/xdg ./nixos/utils/android ./nixos/utils/anyrun diff --git a/modules/nixos/gui/hyprland/default.nix b/modules/nixos/gui/hyprland/default.nix index 0208c1ea..40b869d7 100644 --- a/modules/nixos/gui/hyprland/default.nix +++ b/modules/nixos/gui/hyprland/default.nix @@ -12,6 +12,7 @@ in { nixos.gui.hyprland.enable = mkEnableOption "Enables hyprland"; }; config = mkIf cfg.enable { + security.pam.services.hyprlock.text = "auth include login"; programs.hyprland = { enable = true; xwayland.enable = true; diff --git a/modules/nixos/services/system/pipewire/default.nix b/modules/nixos/services/system/pipewire/default.nix index fb2078cd..f0986c8b 100644 --- a/modules/nixos/services/system/pipewire/default.nix +++ b/modules/nixos/services/system/pipewire/default.nix @@ -10,6 +10,7 @@ in { nixos.services.system.pipewire.enable = mkEnableOption "Enables pipewire"; }; config = mkIf cfg.enable { + security.rtkit.enable = true; hardware.pulseaudio.enable = false; services.pipewire = { enable = true; diff --git a/modules/nixos/system/devpkgs/default.nix b/modules/nixos/system/devpkgs/default.nix new file mode 100644 index 00000000..4a61d8d1 --- /dev/null +++ b/modules/nixos/system/devpkgs/default.nix @@ -0,0 +1,50 @@ +{ + pkgs, + lib, + config, + ... +}: let + inherit (lib) mkIf mkOption types; + cfg = config.nixos.system.devpkgs; +in { + options = { + nixos.system.devpkgs = { + enable = mkOption { + type = types.bool; + default = false; + description = "Enable various packages for development"; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + # Language servers, utilities, and tools + gcc + rust-analyzer + lua-language-server + nixd + php + # php84Packages.php-cs-fixer + phpactor + python312Packages.python-lsp-server + bash-language-server + nil + nodePackages.vscode-langservers-extracted + clang-tools + marksman + pyright + nodePackages_latest.intelephense + + # Formatters + alejandra + stylua + nodePackages_latest.fixjson + nodePackages_latest.sql-formatter + prettierd + shfmt + luaformatter + black + ]; + }; +} diff --git a/modules/nixos/system/fonts/default.nix b/modules/nixos/system/fonts/default.nix new file mode 100644 index 00000000..20d3ce57 --- /dev/null +++ b/modules/nixos/system/fonts/default.nix @@ -0,0 +1,49 @@ +{ + pkgs, + lib, + config, + ... +}: let + inherit (lib) mkIf mkOption types; + cfg = config.nixos.system.fonts; +in { + options = { + nixos.system.fonts = { + enable = mkOption { + type = types.bool; + default = true; + description = "Enable various font packages"; + }; + }; + }; + + config = mkIf cfg.enable { + fonts.packages = with pkgs; [ + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + liberation_ttf + fira-code-symbols + font-awesome + recursive + input-fonts + (pkgs.nerdfonts.override { + fonts = [ + "JetBrainsMono" + "FiraCode" + "FiraMono" + "Iosevka" + "3270" + "DroidSansMono" + "SourceCodePro" + "UbuntuMono" + "Overpass" + "Monoid" + "Mononoki" + "Hack" + "IBMPlexMono" + ]; + }) + ]; + }; +} diff --git a/modules/nixos/system/locale/default.nix b/modules/nixos/system/locale/default.nix index 8a3a320a..124a279f 100644 --- a/modules/nixos/system/locale/default.nix +++ b/modules/nixos/system/locale/default.nix @@ -3,7 +3,7 @@ lib, ... }: let - inherit (lib) mkIf mkOption mkDefault; + inherit (lib) mkIf mkOption mkDefault types; cfg = config.nixos.system.locale; defaultCategories = [ "LC_ADDRESS" @@ -20,22 +20,22 @@ in { options = { nixos.system.locale = { enable = mkOption { - type = lib.types.bool; + type = types.bool; default = true; description = "Enable locale configuration."; }; timeZone = mkOption { - type = lib.types.str; + type = types.str; default = null; description = "The system time zone (e.g., \"Europe/Stockholm\")."; }; defaultLocale = mkOption { - type = lib.types.str; + type = types.str; default = null; description = "The default locale for the system (e.g., \"en_US.UTF-8\")."; }; extraLocale = mkOption { - type = lib.types.str; + type = types.str; default = null; description = '' The locale to use for specific LC_* categories. @@ -44,7 +44,7 @@ in { ''; }; categories = mkOption { - type = lib.types.listOf lib.types.str; + type = types.listOf types.str; default = defaultCategories; description = '' List of LC_* categories to override with `locale.extraLocale`. diff --git a/modules/nixos/system/xdg/default.nix b/modules/nixos/system/xdg/default.nix new file mode 100644 index 00000000..1ec0bfd9 --- /dev/null +++ b/modules/nixos/system/xdg/default.nix @@ -0,0 +1,37 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf mkOption mkEnableOption types; + cfg = config.nixos.system.xdg; +in { + options = { + nixos.system.xdg = { + enable = mkEnableOption "Enable XDG portal."; + xdgOpenUsePortal = mkOption { + type = types.bool; + default = true; + description = "Use xdg-open via the portal."; + }; + extraPortals = mkOption { + type = types.listOf types.package; + default = [pkgs.xdg-desktop-portal-gtk]; + description = "List of extra portals to include."; + }; + }; + }; + + config = mkIf cfg.enable { + xdg.portal = { + enable = true; + xdgOpenUsePortal = cfg.xdgOpenUsePortal; + config = { + common.default = ["gtk"]; + hyprland.default = ["gtk" "hyprland"]; + }; + extraPortals = cfg.extraPortals; + }; + }; +} diff --git a/system/nix/default.nix b/nix/default.nix similarity index 87% rename from system/nix/default.nix rename to nix/default.nix index fe80afed..6464b10c 100644 --- a/system/nix/default.nix +++ b/nix/default.nix @@ -46,11 +46,5 @@ trusted-users = ["root" "@wheel"]; }; - # gc = { - # automatic = true; - # dates = "weekly"; - # # Keep the last 3 generations - # options = "--delete-older-than 30d"; - # }; }; } diff --git a/system/nix/home-manager/default.nix b/nix/home-manager/default.nix similarity index 100% rename from system/nix/home-manager/default.nix rename to nix/home-manager/default.nix diff --git a/system/nix/nixpkgs/default.nix b/nix/nixpkgs/default.nix similarity index 100% rename from system/nix/nixpkgs/default.nix rename to nix/nixpkgs/default.nix diff --git a/system/nix/shell/default.nix b/nix/shell/default.nix similarity index 100% rename from system/nix/shell/default.nix rename to nix/shell/default.nix diff --git a/system/nix/substituters/default.nix b/nix/substituters/default.nix similarity index 84% rename from system/nix/substituters/default.nix rename to nix/substituters/default.nix index a892de4e..06abce41 100644 --- a/system/nix/substituters/default.nix +++ b/nix/substituters/default.nix @@ -1,28 +1,25 @@ { nix.settings = { substituters = [ - # high priority since it's almost always used "https://cache.nixos.org?priority=10" - - "https://anyrun.cachix.org" "https://fufexan.cachix.org" "https://helix.cachix.org" "https://hyprland.cachix.org" "https://nix-community.cachix.org" "https://nix-gaming.cachix.org" "https://yazi.cachix.org" + "https://chaotic-nyx.cachix.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - - "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s=" "fufexan.cachix.org-1:LwCDjCJNJQf5XD2BV+yamQIMZfcKWR9ISIFy5curUsY=" "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" "yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" + "chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8" ]; }; } diff --git a/system/README.md b/system/README.md deleted file mode 100644 index f8bd4265..00000000 --- a/system/README.md +++ /dev/null @@ -1,20 +0,0 @@ -``` -system -├── boot -│   └── lanzaboote -├── dev -├── etc -├── modules -│   ├── gaming -│   ├── gui -│   ├── hardware -│   ├── studio -│   ├── sysd -│   │   ├── network -│   │   ├── security -│   │   ├── session -│   │   └── system -│   └── utils -└── nix -    └── utils -``` diff --git a/system/default.nix b/system/default.nix deleted file mode 100644 index 1a712ea4..00000000 --- a/system/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -let - shared = [ - ./etc - ./nix - ]; -in { - inherit shared; -} diff --git a/system/dev/default.nix b/system/dev/default.nix deleted file mode 100644 index 5cb5d9d9..00000000 --- a/system/dev/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - # Language servers, other utilities and tools - gcc - rust-analyzer - lua-language-server - nixd - php - # php84Packages.php-cs-fixer - phpactor - python312Packages.python-lsp-server - bash-language-server - nil - nodePackages.vscode-langservers-extracted - clang-tools - marksman - pyright - nodePackages_latest.intelephense - - # Formatters - alejandra - stylua - nodePackages_latest.fixjson - nodePackages_latest.sql-formatter - prettierd - shfmt - luaformatter - black - ]; -} diff --git a/system/etc/default.nix b/system/etc/default.nix deleted file mode 100644 index 70d1d624..00000000 --- a/system/etc/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - # shared imports - ./fonts - ./security - ./xdg - ]; -} diff --git a/system/etc/fonts/default.nix b/system/etc/fonts/default.nix deleted file mode 100644 index c9ad60af..00000000 --- a/system/etc/fonts/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{pkgs, ...}: { - fonts.packages = with pkgs; [ - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - liberation_ttf - fira-code-symbols - font-awesome - recursive - input-fonts - (nerdfonts.override { - fonts = [ - "JetBrainsMono" - "FiraCode" - "FiraMono" - "Iosevka" - "3270" - "DroidSansMono" - "SourceCodePro" - "UbuntuMono" - "Overpass" - "Monoid" - "Mononoki" - "Hack" - "IBMPlexMono" - ]; - }) - ]; -} diff --git a/system/etc/locale/default.nix b/system/etc/locale/default.nix deleted file mode 100644 index e0991223..00000000 --- a/system/etc/locale/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - time.timeZone = "Europe/Stockholm"; - - i18n = { - defaultLocale = "en_US.UTF-8"; - - extraLocaleSettings = { - LC_ADDRESS = "sv_SE.UTF-8"; - LC_IDENTIFICATION = "sv_SE.UTF-8"; - LC_MEASUREMENT = "sv_SE.UTF-8"; - LC_MONETARY = "sv_SE.UTF-8"; - LC_NAME = "sv_SE.UTF-8"; - LC_NUMERIC = "sv_SE.UTF-8"; - LC_PAPER = "sv_SE.UTF-8"; - LC_TELEPHONE = "sv_SE.UTF-8"; - LC_TIME = "sv_SE.UTF-8"; - }; - }; -} diff --git a/system/etc/security/default.nix b/system/etc/security/default.nix deleted file mode 100644 index e7cec449..00000000 --- a/system/etc/security/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - security = { - rtkit.enable = true; - pam.services.hyprlock.text = "auth include login"; - }; -} diff --git a/system/etc/xdg/default.nix b/system/etc/xdg/default.nix deleted file mode 100644 index 209796f4..00000000 --- a/system/etc/xdg/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{pkgs, ...}: { - xdg.portal = { - enable = true; - xdgOpenUsePortal = true; - config = { - common.default = ["gtk"]; - hyprland.default = ["gtk" "hyprland"]; - }; - - extraPortals = [ - pkgs.xdg-desktop-portal-gtk - ]; - }; -} diff --git a/users/cnst/modules.nix b/users/cnst/modules.nix index 6cd6804d..f8487ccc 100644 --- a/users/cnst/modules.nix +++ b/users/cnst/modules.nix @@ -46,17 +46,17 @@ enable = true; }; }; - gaming = { - steam = { - enable = true; - }; - mangohud = { - enable = true; - }; - lutris = { - enable = true; - }; - }; + # gaming = { + # steam = { + # enable = true; + # }; + # mangohud = { + # enable = true; + # }; + # lutris = { + # enable = true; + # }; + # }; cli = { alacritty = { enable = true;