some modularizing and refactoring

This commit is contained in:
cnst
2024-10-24 18:49:49 +02:00
parent 7f9d5c000f
commit ca0dc208e0
25 changed files with 248 additions and 227 deletions

View File

@@ -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 = {

View File

@@ -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;

View File

@@ -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
];
};
};
}

View File

@@ -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 = {

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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
];
};
}

View File

@@ -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"
];
})
];
};
}

View File

@@ -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`.

View File

@@ -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;
};
};
}

View File

@@ -46,11 +46,5 @@
trusted-users = ["root" "@wheel"];
};
# gc = {
# automatic = true;
# dates = "weekly";
# # Keep the last 3 generations
# options = "--delete-older-than 30d";
# };
};
}

View File

@@ -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"
];
};
}

View File

@@ -1,20 +0,0 @@
```
system
├── boot
│   └── lanzaboote
├── dev
├── etc
├── modules
│   ├── gaming
│   ├── gui
│   ├── hardware
│   ├── studio
│   ├── sysd
│   │   ├── network
│   │   ├── security
│   │   ├── session
│   │   └── system
│   └── utils
└── nix
   └── utils
```

View File

@@ -1,8 +0,0 @@
let
shared = [
./etc
./nix
];
in {
inherit shared;
}

View File

@@ -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
];
}

View File

@@ -1,8 +0,0 @@
{
imports = [
# shared imports
./fonts
./security
./xdg
];
}

View File

@@ -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"
];
})
];
}

View File

@@ -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";
};
};
}

View File

@@ -1,6 +0,0 @@
{
security = {
rtkit.enable = true;
pam.services.hyprlock.text = "auth include login";
};
}

View File

@@ -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
];
};
}

View File

@@ -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;