some modularizing and refactoring
This commit is contained in:
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,11 +26,9 @@
|
||||
cnix = nixosSystem {
|
||||
inherit specialArgs;
|
||||
|
||||
modules =
|
||||
shared
|
||||
++ [
|
||||
modules = [
|
||||
./cnix
|
||||
"${mod}/dev"
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.cnst.imports = homeImports."cnst@cnix";
|
||||
@@ -48,11 +42,9 @@
|
||||
};
|
||||
toothpc = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules =
|
||||
shared
|
||||
++ [
|
||||
modules = [
|
||||
./toothpc
|
||||
"${mod}/dev"
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.toothpick.imports = homeImports."toothpick@toothpc";
|
||||
@@ -66,11 +58,9 @@
|
||||
};
|
||||
cnixpad = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules =
|
||||
shared
|
||||
++ [
|
||||
modules = [
|
||||
./cnixpad
|
||||
"${mod}/dev"
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.cnst.imports = homeImports."cnst@cnixpad";
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
50
modules/nixos/system/devpkgs/default.nix
Normal file
50
modules/nixos/system/devpkgs/default.nix
Normal 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
|
||||
];
|
||||
};
|
||||
}
|
||||
49
modules/nixos/system/fonts/default.nix
Normal file
49
modules/nixos/system/fonts/default.nix
Normal 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"
|
||||
];
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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`.
|
||||
|
||||
37
modules/nixos/system/xdg/default.nix
Normal file
37
modules/nixos/system/xdg/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -46,11 +46,5 @@
|
||||
|
||||
trusted-users = ["root" "@wheel"];
|
||||
};
|
||||
# gc = {
|
||||
# automatic = true;
|
||||
# dates = "weekly";
|
||||
# # Keep the last 3 generations
|
||||
# options = "--delete-older-than 30d";
|
||||
# };
|
||||
};
|
||||
}
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
```
|
||||
system
|
||||
├── boot
|
||||
│ └── lanzaboote
|
||||
├── dev
|
||||
├── etc
|
||||
├── modules
|
||||
│ ├── gaming
|
||||
│ ├── gui
|
||||
│ ├── hardware
|
||||
│ ├── studio
|
||||
│ ├── sysd
|
||||
│ │ ├── network
|
||||
│ │ ├── security
|
||||
│ │ ├── session
|
||||
│ │ └── system
|
||||
│ └── utils
|
||||
└── nix
|
||||
└── utils
|
||||
```
|
||||
@@ -1,8 +0,0 @@
|
||||
let
|
||||
shared = [
|
||||
./etc
|
||||
./nix
|
||||
];
|
||||
in {
|
||||
inherit shared;
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
# shared imports
|
||||
./fonts
|
||||
./security
|
||||
./xdg
|
||||
];
|
||||
}
|
||||
@@ -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"
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
pam.services.hyprlock.text = "auth include login";
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user