refactor *started*

This commit is contained in:
martyTF 2026-03-30 22:03:03 +02:00
parent d0413cb830
commit db2103a37d
103 changed files with 1008 additions and 786 deletions

View file

@ -1,7 +1,3 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ {
config, config,
pkgs, pkgs,
@ -17,8 +13,7 @@
]; ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
imports = [ imports = [
./system ./modules
./user
]; ];
@ -26,10 +21,4 @@
"/share/applications" "/share/applications"
"/share/xdg-desktop-portal" "/share/xdg-desktop-portal"
]; ];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
} }

150
flake.lock generated
View file

@ -41,11 +41,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773436376, "lastModified": 1774211390,
"narHash": "sha256-OUPRrprbgN27BXHuWkMAPSCfLLQ/uwpWghEfKYN2iAg=", "narHash": "sha256-sTtAgCCaX8VNNZlQFACd3i1IQ+DB0Wf3COgiFS152ds=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "43f10d24391692bba3d762931ee35e7f17f8e8b8", "rev": "f62a4dbfa4e5584f14ad4c62afedf6e4b433cf70",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -82,11 +82,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1773079031, "lastModified": 1774640361,
"narHash": "sha256-RvCzINnVISBT3d0F1DoIcQFbQsbRJISW9qZeKTzmNaA=", "narHash": "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "elephant", "repo": "elephant",
"rev": "53afe39cef252010f7c55bd33c5bae6dd50dcf0c", "rev": "d30652147d8e16ebc849b779b8ef495a894b0dd4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -216,11 +216,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774135471, "lastModified": 1774738535,
"narHash": "sha256-TVeIGOxnfSPM6JvkRkXHpJECnj1OG2dXkWMSA4elzzQ=", "narHash": "sha256-2jfBEZUC67IlnxO5KItFCAd7Oc+1TvyV/jQlR+2ykGQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "856b01ebd1de3f53c3929ce8082d9d67d799d816", "rev": "769e07ef8f4cf7b1ec3b96ef015abec9bc6b1e2a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -304,11 +304,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1774136452, "lastModified": 1774734105,
"narHash": "sha256-pSwj8WNWXMuZaDqCyhQwlngRD3JyNmZwldSe6UqWAos=", "narHash": "sha256-kO22x+rIp1SckR3Gi3+Nk0J9AP+kNcEgXikkE8bA04g=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "bf31f642b08a8d8ca796a1b713285f2580805c2f", "rev": "38a7f03cf0e5ee116794a78581634ba3dab508fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -511,11 +511,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773948364, "lastModified": 1774211405,
"narHash": "sha256-S76omfIVQ1TpGiXFbqih6o6XcH3sA5+5QI+SXB4HvlY=", "narHash": "sha256-6KNwP4ojUzv3YBlZU5BqCpTrWHcix1Jo01BISsTT0xk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "b85b779e3e3a1adcd9b098e3447cf48f9e780b35", "rev": "cb4e152dc72095a2af422956c6b689590572231a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -586,11 +586,11 @@
"optnix": "optnix" "optnix": "optnix"
}, },
"locked": { "locked": {
"lastModified": 1773211698, "lastModified": 1774427328,
"narHash": "sha256-7MO8/1kby+CHc7KwNDfz3+GvVifA2F1V4nZR+w0r6w4=", "narHash": "sha256-KtGThScvwNbCm+6XwUKRfpTjJVKV9SHswm29px3m4pw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-cli", "repo": "nixos-cli",
"rev": "35c01291b1bd707def2d1613543c7fe2e4132d43", "rev": "23e7540706eb5271f4ab37b9e52532637d57c63b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -648,11 +648,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1773389992, "lastModified": 1774106199,
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=", "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda", "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -680,11 +680,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1773821835, "lastModified": 1774386573,
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -695,22 +695,6 @@
} }
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": {
"lastModified": 1770107345,
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
@ -734,11 +718,11 @@
"noctalia-qs": "noctalia-qs" "noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1774190046, "lastModified": 1774747057,
"narHash": "sha256-fAtmC9Yy2VNExCaxO7kZgPH8LIQP8M9LEGcAp23gXMk=", "narHash": "sha256-D/W/pgyH9+50fMbyh839j3NIOyf9X8VJCKrsMpRnqAI=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "4e44886a79cf39e04d625961e2906537723f631a", "rev": "3b9e93a8b1e748df9329a97eb8d7ee58d02977da",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -757,11 +741,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1774059741, "lastModified": 1774734782,
"narHash": "sha256-ObYsrf7XLJDqWVbJ+GWH5JYV/EUc7SVdhGx5r5wWKno=", "narHash": "sha256-rq/8sJPI8wD4P3CXSyvW/dPuAa+qXGdqzAKM3eunZ+4=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-qs", "repo": "noctalia-qs",
"rev": "c9beee5c634ec784af128b8e7c56db14012ab17f", "rev": "8e216ba101d761b8a71f359246941d50e22bad3f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -805,11 +789,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772893680, "lastModified": 1774104215,
"narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", "narHash": "sha256-EAtviqz0sEAxdHS4crqu7JGR5oI3BwaqG0mw7CmXkO8=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", "rev": "f799ae951fde0627157f40aec28dec27b22076d0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -843,14 +827,14 @@
"swayfx", "swayfx",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1768403764, "lastModified": 1771859266,
"narHash": "sha256-1RVLChp1WUcjnDu30jG2DTXW0A6K3lkezEip3KTf/gE=", "narHash": "sha256-sUd6r/2cZ4slc6HB151LnEaf7b7g4bbYB36ADoYk564=",
"owner": "wlrfx", "owner": "wlrfx",
"repo": "scenefx", "repo": "scenefx",
"rev": "05a5e7a9177de04bc398e25821c0898c2a284c9f", "rev": "bb223e3e94b4576f514df96d03ff0680384a4e20",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -866,14 +850,14 @@
"nixpkgs" "nixpkgs"
], ],
"scenefx": "scenefx", "scenefx": "scenefx",
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1769467630, "lastModified": 1772835103,
"narHash": "sha256-SufN5nd0+BojwTpe2tPuFIXswpLGo4syG/OwBF2Glzs=", "narHash": "sha256-4A4DEMDxJgPbbszLVdnlhFsvQS73X91dANZN0wbrX6g=",
"owner": "WillPower3309", "owner": "WillPower3309",
"repo": "swayfx", "repo": "swayfx",
"rev": "c4ce2331c90120fafc12ba86200591255e836caf", "rev": "434d992494da97e46071618f56a527656d23161a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -957,9 +941,43 @@
"type": "github" "type": "github"
} }
}, },
"systems_6": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_7": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_6" "nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1772660329, "lastModified": 1772660329,
@ -980,8 +998,8 @@
"elephant": [ "elephant": [
"elephant" "elephant"
], ],
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_6",
"systems": "systems_4" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1773675699, "lastModified": 1773675699,
@ -1025,11 +1043,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772669058, "lastModified": 1773601989,
"narHash": "sha256-XhnY0aRuDo5LT8pmJVPofPOgO2hAR7T+XRoaQxtNPzQ=", "narHash": "sha256-2tJf/CQoHApoIudxHeJye+0Ii7scR0Yyi7pNiWk0Hn8=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "906d0ac159803a7df2dc1f948df9327670380f69", "rev": "a9b862d1aa000a676d310cc62d249f7ad726233d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1045,11 +1063,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773722260, "lastModified": 1774759885,
"narHash": "sha256-U8MsSiqqYZHR3oKE+cCZ2AJt3b4LcXs+oQuNLipaO78=", "narHash": "sha256-Y3D2GnZTO6BhGWeVcO6qUkiO5g0dDL2tmokLVWNC1WY=",
"owner": "youwen5", "owner": "youwen5",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "0e6e43342fb3e9a3439fafa777d8cdf98e4ffc49", "rev": "16e3f4cd221a030186a96015d82dcb3fb4afa4d6",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -8,9 +8,5 @@
{ {
imports = [ imports = [
./kitty.nix ./kitty.nix
./file-manager.nix
./fish.nix
./toys.nix
]; ];
} }

View file

@ -6,13 +6,7 @@
}: }:
{ {
options = { config = lib.mkIf osConfig.apps.terminal.kitty.enable {
terminal = {
kitty.enable = lib.mkEnableOption "enable kitty";
};
};
config = lib.mkIf config.terminal.kitty.enable {
programs = { programs = {
kitty = { kitty = {
enable = true; enable = true;
@ -20,6 +14,7 @@
shellIntegration = { shellIntegration = {
enableFishIntegration = true; enableFishIntegration = true;
enableBashIntegration = true; enableBashIntegration = true;
enableZshIntegration = true;
}; };
font = { font = {
name = "FiraCode Nerd Font"; name = "FiraCode Nerd Font";

View file

@ -2,20 +2,12 @@
config, config,
lib, lib,
pkgs, pkgs,
osConfig,
... ...
}: }:
{ {
options = { config = lib.mkIf osConfig.apps.terminal.tui.ranger.enable {
terminal = {
ranger = {
enable = lib.mkEnableOption "enable ranger";
};
};
};
config = lib.mkIf config.terminal.ranger.enable {
programs = { programs = {
ranger = { ranger = {
enable = true; enable = true;
@ -65,8 +57,5 @@
}; };
}; };
}; };
home.packages = with pkgs; [
unzip
];
}; };
} }

View file

@ -0,0 +1,36 @@
output "AOC Q27G2WG4" {
mode "2560x1440@144"
position x=3840 y=0
variable-refresh-rate on-demand=true
}
input {
keyboard {
xkb {
layout "de"
}
repeat-delay 600
repeat-rate 20
track-layout "global"
}
touchpad {
}
mouse {
accel-speed 0.5
accel-profile "flat"
}
}
binds {
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Left {focus-column-left; }
Mod+Right {focus-column-right; }
Mod+D { spawn "walker"; }
Mod+Shift+P { quit; }
Mod+Return { spawn "kitty";}
}
include "./noctalia.kdl"

View file

@ -7,6 +7,6 @@
{ {
imports = [ imports = [
./sway.nix ./desktop
]; ];
} }

13
home/desktop/default.nix Normal file
View file

@ -0,0 +1,13 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./window-managers
./shell
];
}

View file

@ -0,0 +1,13 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./noctalia.nix
./walker.nix
];
}

View file

@ -0,0 +1,19 @@
{
config,
pkgs,
inputs,
lib,
osConfig,
...
}:
{
config = lib.mkIf osConfig.desktop.shell.noctalia.enable {
};
imports = lib.mkIf osConfig.desktop.shell.noctalia.enable [
inputs.noctalia.homeModules.default
]
}

View file

@ -0,0 +1,26 @@
{
config,
pkgs,
inputs,
lib,
osConfig,
...
}:
{
config = lib.mkIf osConfig.desktop.shell.walker.enable {
programs = {
walker = {
enable = true;
runAsService = true;
config = {
theme = "noctalia";
};
};
};
};
imports = lib.mkIf osConfig.desktop.shell.walker.enable [
inputs.walker.homeManagerModules.default
]
}

View file

@ -0,0 +1,14 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./hyprland.nix
./niri.nix
./sway.nix
];
}

View file

@ -3,6 +3,7 @@
lib, lib,
pkgs, pkgs,
inputs, inputs,
osConfig,
... ...
}: }:
@ -10,7 +11,6 @@
options = { options = {
desktop = { desktop = {
hyprland = { hyprland = {
enable = lib.mkEnableOption "enable hyprland";
monitors = lib.mkOption { monitors = lib.mkOption {
default = [ default = [
",preferred,auto,1" ",preferred,auto,1"
@ -44,7 +44,7 @@
}; };
}; };
config = lib.mkIf config.desktop.hyprland.enable { config = lib.mkIf osConfig.desktop.hyprland.enable {
xdg.portal = { xdg.portal = {
enable = true; enable = true;
configPackages = [ configPackages = [
@ -63,11 +63,6 @@
]; ];
}; };
}; };
programs = {
hyprlock = {
enable = true;
};
};
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
@ -84,14 +79,13 @@
"XDG_SESSION_DESKTOP,Hyprland" "XDG_SESSION_DESKTOP,Hyprland"
]; ];
exec-once = [ exec-once = [
#"hyprctl plugin load " (lib.mkIf (osConfig.desktop.shell.walker.enable) "elephant")
(lib.mkIf (config.desktop.walker.enable) "elephant") (lib.mkIf (osConfig.desktop.shell.waybar.enable) "waybar")
(lib.mkIf (config.desktop.waybar.enable) "waybar") (lib.mkIf (osConfig.desktop.shell.noctalia.enable) "noctalia-shell")
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell") (lib.mkIf (osConfig.desktop.shell.noctalia.enable) "noctalia-shell ipc call wallpaper random")
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell ipc call wallpaper random") (lib.mkIf (osConfig.desktop.shell.swww.enable) "waypaper --restore --random")
(lib.mkIf (config.desktop.wallpaper.enable) "waypaper --restore --random") (lib.mkIf (osConfig.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent")
(lib.mkIf (config.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent") (lib.mkIf (osConfig.internet.mail.providers.protonmail.enable) "protonmail-bridge -n")
(lib.mkIf (config.internet.mail.providers.protonmail.enable) "protonmail-bridge -n")
"echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature" "echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature"
]; ];
"$mod" = "SUPER"; "$mod" = "SUPER";
@ -99,15 +93,12 @@
"$controlmod" = "SUPER_CTRL"; "$controlmod" = "SUPER_CTRL";
bind = [ bind = [
(lib.mkIf (config.desktop.walker.enable) "$mod, D, exec, walker") (lib.mkIf (osConfig.desktop.shell.walker.enable) "$mod, D, exec, walker")
(lib.mkIf (config.desktop.rofi.enable) "$mod, D, exec, rofi -show drun") (lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, rofi -show drun")
(lib.mkIf (config.terminal.kitty.enable) "$mod, return, exec, kitty") "$mod, return, exec, ${osConfig.apps.terminal.binary}"
(lib.mkIf (config.desktop.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area") (lib.mkIf (osConfig.desktop.utilities.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area")
(lib.mkIf (config.desktop.rofi.enable) ( (lib.mkIf (osConfig.desktop.shell.walker.enable) (
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; rofi-rbw; sleep 30; rbw lock" lib.mkIf (osConfig.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
))
(lib.mkIf (config.desktop.walker.enable) (
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
)) ))
"$mod, F, fullscreen, 1" "$mod, F, fullscreen, 1"
"$shiftmod, F, fullscreen, 0" "$shiftmod, F, fullscreen, 0"
@ -127,7 +118,6 @@
"$mod, K, exec, playerctl play-pause" "$mod, K, exec, playerctl play-pause"
"$mod, L, exec, playerctl next" "$mod, L, exec, playerctl next"
"$mod, G, togglefloating," "$mod, G, togglefloating,"
# "$mod, H, hyprexpo:expo, toggle"
"$mod, F1, exec, hyprlock" "$mod, F1, exec, hyprlock"
"$shiftmod, E, exec, codium" "$shiftmod, E, exec, codium"
"$controlmod, up, exec, light -A 10" "$controlmod, up, exec, light -A 10"
@ -184,27 +174,7 @@
color = "rgba(1a1a1aee)"; color = "rgba(1a1a1aee)";
}; };
}; };
# plugin = {
# hyprexpo = {
# columns = 2;
# gap_size = 20;
# bg_col = "rgb(e1e1e2)";
# workspace_method = "first 1";
# enable_gesture = true;
# gesture_distance = 300;
# gesture_positive = true;
# gesture_negative = true;
# };
# hyprtrails = {
# color = "rgba(1a1a1aee)";
# };
# };
}; };
plugins = [
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
];
}; };
home.sessionVariables.NIXOS_OZONE_WL = "1"; home.sessionVariables.NIXOS_OZONE_WL = "1";
}; };

View file

@ -0,0 +1,22 @@
{
config,
pkgs,
lib,
inputs,
osConfig,
...
}:
{
options = {
desktop.window-managers = {
niri = {
};
};
};
config = lib.mkIf osConfig.desktop.window-managers.niri.enable {
xdg.configFile."niri/config.kdl".source = ../../configs/niri/config.kdl;
};
}

View file

@ -8,14 +8,13 @@
{ {
options = { options = {
desktop = { desktop.window-managers = {
sway = { sway = {
enable = lib.mkEnableOption "enable sway";
}; };
}; };
}; };
config = { config = lib.mkIf osConfig.desktop.window-managers.sway.enable {
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
package = pkgs.swayfx; package = pkgs.swayfx;
@ -37,7 +36,6 @@
"${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left"; "${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left";
"${modifier}+f" = "fullscreen"; "${modifier}+f" = "fullscreen";
"${modifier}+1" = "workspace number 1"; "${modifier}+1" = "workspace number 1";
"${modifier}+2" = "workspace number 2"; "${modifier}+2" = "workspace number 2";
"${modifier}+3" = "workspace number 3"; "${modifier}+3" = "workspace number 3";
@ -49,7 +47,6 @@
"${modifier}+9" = "workspace number 9"; "${modifier}+9" = "workspace number 9";
"${modifier}+s" = "workspace number 0"; "${modifier}+s" = "workspace number 0";
"${modifier}+Shift+1" = "move container to workspace number 1"; "${modifier}+Shift+1" = "move container to workspace number 1";
"${modifier}+Shift+2" = "move container to workspace number 2"; "${modifier}+Shift+2" = "move container to workspace number 2";
"${modifier}+Shift+3" = "move container to workspace number 3"; "${modifier}+Shift+3" = "move container to workspace number 3";
@ -63,11 +60,11 @@
}; };
input = { input = {
"*" = { "*" = {
xkb_layout = "de"; xkb_layout = builtins.substring 0 2 osConfig.system.locale;
}; };
}; };
defaultWorkspace = "workspace number 1"; defaultWorkspace = "workspace number 1";
terminal = "${pkgs.kitty}/bin/kitty"; terminal = osConfig.desktop.defaults.terminal.binary;
}; };
checkConfig = false; checkConfig = false;
}; };

View file

@ -1,22 +0,0 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
options = {
desktop = {
sway = {
enable = lib.mkEnableOption "enable sway";
};
};
};
config = {
wayland.windowManager.niri = {
};
};
};

81
hosts/default.nix Normal file
View file

@ -0,0 +1,81 @@
{
config,
pkgs,
lib,
...
}:
let
type = config.device.type;
in
{
options = {
device = {
type = lib.mkOption {
default = "desktop";
description = "device preset: desktop, laptop, server";
};
};
};
config = {
apps = {
audio = {
base.enable = (lib.mkIf (type == "desktop")) true;
media.enable = true;
editing.enable = true;
};
video = {
base.enable = true;
media.enable = true;
editing.enable = true;
};
image = {
base.enable = true;
editing.enable = true;
};
gaming = {
steam.enable = true;
};
terminal = {
kitty = {
enable = true;
};
default = "kitty";
toys = true;
};
};
desktop = {
window-managers = {
hyprland = {
enable = true;
};
niri = {
enable = true;
};
sway = {
enable = false;
};
};
shell = {
noctalia = {
enable = true;
};
swww = {
enable = false;
};
walker = {
enable = true;
};
waybar = {
enable = false;
};
};
utilities = {
grimblast = {
enable = true;
};
};
};
};
}

27
hosts/marty-pc/custom.nix Normal file
View file

@ -0,0 +1,27 @@
{
config,
lib,
pkgs,
...
}:
{
services.flatpak.enable = true;
virtualisation.docker.enable = true;
security.polkit = {
enable = true;
extraConfig = ''
polkit.addRule(function(action, subject) {
if (
subject.isInGroup("users")
&& (
action.id == "org.freedesktop.login1.suspend"
)
)
{
return polkit.Result.YES;
}
});
'';
};
}

View file

@ -8,9 +8,13 @@
... ...
}: }:
let
hostname = "marty-pc";
in
{ {
networking = { networking = {
hostName = "marty-pc"; hostName = hostname;
interfaces = { interfaces = {
enp42s0 = { enp42s0 = {
wakeOnLan = { wakeOnLan = {
@ -20,7 +24,6 @@
}; };
}; };
}; };
home-manager = { home-manager = {
extraSpecialArgs = { inherit inputs; }; extraSpecialArgs = { inherit inputs; };
useGlobalPkgs = true; useGlobalPkgs = true;
@ -29,60 +32,9 @@
marty = import ./home.nix; marty = import ./home.nix;
}; };
}; };
programs.steam = { imports = [
enable = true; ./hardware.nix
remotePlay.openFirewall = true; ./custom.nix
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
]; ];
extraPackages = with pkgs; [
gamescope
];
};
programs.gamescope = {
enable = true;
capSysNice = true;
};
services.flatpak.enable = true;
virtualisation.docker.enable = true;
imports = [ ./hardware.nix ];
security.polkit = {
enable = true;
extraConfig = ''
polkit.addRule(function(action, subject) {
if (
subject.isInGroup("users")
&& (
action.id == "org.freedesktop.login1.suspend"
)
)
{
return polkit.Result.YES;
}
});
'';
};
environment.systemPackages = with pkgs; [
qmk
qmk-udev-rules
qmk_hid
via
vial
];
services.udev = {
packages = with pkgs; [
qmk
qmk-udev-rules
qmk_hid
via
vial
];
};
system.stateVersion = "25.05"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }

View file

@ -3,81 +3,15 @@
pkgs, pkgs,
inputs, inputs,
lib, lib,
osConfig,
... ...
}: }:
{ {
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "marty";
home.homeDirectory = "/home/marty";
# This value determines the Home Manager release that your configuration is home.username = osConfig.user.userName;
# compatible with. This helps avoid breakage when a new Home Manager release home.homeDirectory = "/home/${osConfig.user.userName}";
# introduces backwards incompatible changes. home.stateVersion = "25.11";
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "25.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
programs.fish.enable = true;
home.packages = with pkgs; [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/marty/etc/profile.d/hm-session-vars.sh
#
device.type.desktop = true;
desktop = { desktop = {
hyprland = { hyprland = {
@ -104,18 +38,9 @@
]; ];
}; };
}; };
gaming = {
steam.enable = true;
minecraft.enable = true;
modding.enable = true;
};
imports = [ imports = [
inputs.walker.homeManagerModules.default
inputs.noctalia.homeModules.default
./../../modules ./../../modules
]; ];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View file

@ -1,7 +0,0 @@
# MODULES
todo:
- [ ] move home-manager stuff to ../home
- [ ] add server stuff
-> seperate home manager stuff from normal nix stuff, use home manager purely for dotfiles, use modules to install stuff

View file

@ -0,0 +1,26 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.audio = {
base.enable = lib.mkEnableOption "enable basic audio";
media.enable = lib.mkEnableOption "enable audio media";
editing.enable = lib.mkEnableOption "enable audio editing";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (apps.audio.base.enable) pavucontrol)
(lib.mkIf (apps.audio.base.enable) playerctl)
(lib.mkIf (apps.audio.editing.enable) tenacity)
(lib.mkIf (apps.audio.editing.enable) flac)
];
};
}

16
modules/apps/default.nix Normal file
View file

@ -0,0 +1,16 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./audio
./gaming
./image
./video
./terminal
];
}

View file

@ -8,7 +8,6 @@
{ {
imports = [ imports = [
./steam.nix ./steam.nix
./modding.nix
./minecraft.nix ./minecraft.nix
]; ];
} }

View file

@ -7,13 +7,13 @@
{ {
options = { options = {
gaming = { apps.gaming = {
minecraft.enable = lib.mkEnableOption "enable minecraft"; minecraft.enable = lib.mkEnableOption "enable minecraft";
}; };
}; };
config = lib.mkIf config.gaming.minecraft.enable { config = lib.mkIf config.apps.gaming.minecraft.enable {
home.packages = with pkgs; [ environment.systemPackages = with pkgs; [
prismlauncher prismlauncher
]; ];
}; };

View file

@ -0,0 +1,41 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.gaming = {
steam.enable = lib.mkEnableOption "enable steam";
};
};
config = lib.mkIf config.apps.gaming.steam.enable {
environment.systemPackages = with pkgs; [
adwsteamgtk
];
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
extraPackages = with pkgs; [
gamescope
];
};
gamescope = {
enable = true;
capSysNice = true;
};
};
};
}

View file

@ -0,0 +1,24 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.image = {
base.enable = lib.mkEnableOption "enable basic image";
editing.enable = lib.mkEnableOption "enable image editing";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (apps.image.base.enable) nomacs)
(lib.mkIf (apps.image.editing.enable) gimp3-with-plugins)
(lib.mkIf (apps.image.editing.enable) krita)
];
};
}

View file

@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./keyboard.nix
];
}

View file

@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [
qmk
qmk-udev-rules
qmk_hid
via
vial
];
services.udev = {
packages = with pkgs; [
qmk
qmk-udev-rules
qmk_hid
via
vial
];
};
}

View file

@ -0,0 +1,31 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.terminal.toys = lib.mkEnableOption "enable terminal toys";
};
config = {
environment.systemPackages =
with pkgs;
[
unzip
btop
]
++ lib.mkIf config.apps.terminal.toys [
asciiquarium-transparent
cava
bunnyfetch
nerdfetch
fastfetch
cmatrix
astroterm
];
};
}

View file

@ -0,0 +1,30 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
apps.terminal = {
package = lib.mkOption {
default = "";
description = "terminal package";
};
binary = lib.mkOption {
default = "";
description = "terminal binary";
};
default = lib.mkOption {
default = "";
description = "default terminal";
};
};
};
imports = [
./base-packages.nix
./kitty.nix
./tui.nix
];
}

View file

@ -0,0 +1,25 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.terminal = {
kitty.enable = lib.mkEnableOption "enable kitty";
};
};
config = lib.mkIf config.apps.terminal.kitty.enable {
terminal = lib.mkIf (config.apps.terminal.default == "kitty") {
package = pkgs.kitty;
binary = "${pkgs.kitty}/bin/kitty";
};
environment.systemPackages = with pkgs; [
kitty
];
};
}

View file

@ -0,0 +1,25 @@
{
config,
pkgs,
inputs,
lib,
...
}:
let
tt = config.apps.terminal.tui;
in
{
options = {
apps.terminal.tui = {
ranger.enable = lib.mkEnableOption "enable ranger";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (tt.ranger.enable) ranger)
];
};
}

View file

@ -0,0 +1,26 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
apps.video = {
base.enable = lib.mkEnableOption "enable basic video";
editing.enable = lib.mkEnableOption "enable video editing";
media.enable = lib.mkEnableOption "enable video media";
};
};
config = {
environment.systemPackages = with pkgs; [
(lib.mkIf (apps.video.base.enable) mpv)
(lib.mkIf (apps.video.editing.enable) kdePackages.kdenlive)
(lib.mkIf (apps.video.media.enable) jellyfin-desktop)
(lib.mkIf (apps.video.media.enable) pipeline)
];
};
}

View file

@ -7,14 +7,9 @@
{ {
imports = [ imports = [
./defaults ./apps
./development
./terminal
./desktop ./desktop
./misc ./system
./gaming ./user
./connectivity
./media
./server
]; ];
} }

View file

@ -1,3 +0,0 @@
# HOME
only for dotfiles, no longer installing stuff from here

View file

@ -1,22 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop = {
audio.enable = lib.mkEnableOption "enable audio";
};
};
config = lib.mkIf config.desktop.audio.enable {
home.packages = with pkgs; [
pavucontrol
playerctl
];
};
}

View file

@ -7,16 +7,9 @@
{ {
imports = [ imports = [
./hyprland.nix ./utilities
./walker.nix ./window-managers
./waybar.nix ./shell
./rofi.nix ./display-manager.nix
./wallpaper.nix
./grimblast.nix
./audio.nix
./noctalia.nix
];
home.packages = with pkgs; [
wl-clipboard
]; ];
} }

View file

@ -0,0 +1,51 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
services = {
xserver = {
xkb = {
layout = builtins.substring 0 2 config.system.locale;
variant = "";
};
};
power-profiles-daemon = {
enable = true;
};
upower = {
enable = true;
};
displayManager = {
gdm = {
enable = true;
autoSuspend = false;
};
};
};
programs = {
uwsm = {
waylandCompositors = {
hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable {
prettyName = "Hyprland";
comment = "Hyprland";
binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
};
sway = lib.mkIf config.desktop.window-managers.sway.enable {
prettyName = "Sway";
comment = "Sway";
binPath = "${config.programs.sway.package}/bin/sway --session";
};
niri = lib.mkIf config.desktop.window-managers.niri.enable {
prettyName = "Niri";
comment = "Niri";
binPath = "${config.programs.niri.package}/bin/niri-session";
};
};
};
};
}

View file

@ -1,22 +0,0 @@
{
pkgs,
inputs,
lib,
config,
...
}:
{
options = {
desktop = {
noctalia.enable = lib.mkEnableOption "enable noctalia";
};
};
config = lib.mkIf config.desktop.noctalia.enable {
programs.noctalia-shell = {
enable = true;
};
};
}

View file

@ -1,29 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop = {
rofi.enable = lib.mkEnableOption "enable rofi";
};
};
config = lib.mkIf config.desktop.rofi.enable {
programs = {
rofi = {
enable = true;
modes = [
"drun"
"run"
"ssh"
];
};
};
};
}

View file

@ -0,0 +1,15 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./noctalia.nix
./swww.nix
./walker.nix
./waybar.nix
];
}

View file

@ -0,0 +1,24 @@
{
pkgs,
inputs,
lib,
config,
...
}:
{
options = {
desktop.shell = {
noctalia.enable = lib.mkEnableOption "enable noctalia";
};
};
imports = lib.mkIf config.desktop.shell.noctalia.enable [
inputs.noctalia.homeModules.default
];
config = lib.mkIf config.desktop.shell.noctalia.enable {
desktop.shell.swww.enable = lib.mkDefault false;
programs.noctalia-shell = {
enable = true;
};
};
}

View file

@ -0,0 +1,22 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop.shell = {
swww.enable = lib.mkEnableOption "enable swww";
};
};
config = lib.mkIf config.desktop.shell.swww.enable {
environment.systemPackages = with pkgs; [
waypaper
swww
];
};
}

View file

@ -8,19 +8,15 @@
{ {
options = { options = {
desktop = { desktop.shell = {
walker.enable = lib.mkEnableOption "enable walker"; walker.enable = lib.mkEnableOption "enable walker";
}; };
}; };
config = lib.mkIf config.desktop.walker.enable { config = lib.mkIf config.desktop.shell.walker.enable {
programs = { programs = {
walker = { walker = {
enable = true; enable = true;
runAsService = true;
config = {
theme = "noctalia";
};
}; };
}; };
}; };

View file

@ -7,12 +7,12 @@
{ {
options = { options = {
desktop = { desktop.shell = {
waybar.enable = lib.mkEnableOption "enable waybar"; waybar.enable = lib.mkEnableOption "enable waybar";
}; };
}; };
config = lib.mkIf config.desktop.waybar.enable { config = lib.mkIf config.desktop.shell.waybar.enable {
programs = { programs = {
waybar = { waybar = {
enable = true; enable = true;

View file

@ -1,33 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
options = {
desktop = {
sway = {
enable = lib.mkEnableOption "enable sway";
};
};
};
config = lib.mkIf config.desktop.sway.enable {
environment.systemPackages = with pkgs; [
grim # screenshot functionality
slurp # screenshot functionality
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
];
# Enable the gnome-keyring secrets vault.
# Will be exposed through DBus to programs willing to store secrets.
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
package = null;
};
};
}

View file

@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./grimblast.nix
];
}

View file

@ -8,13 +8,13 @@
{ {
options = { options = {
desktop = { desktop.utilities = {
grimblast.enable = lib.mkEnableOption "enable grimblast"; grimblast.enable = lib.mkEnableOption "enable grimblast";
}; };
}; };
config = lib.mkIf config.desktop.grimblast.enable { config = lib.mkIf config.desktop.utilities.grimblast.enable {
home.packages = with pkgs; [ environment.systemPackages = with pkgs; [
grimblast grimblast
gradia gradia
]; ];

View file

@ -1,22 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop = {
wallpaper.enable = lib.mkEnableOption "enable wallpapers";
};
};
config = lib.mkIf config.desktop.wallpaper.enable {
home.packages = with pkgs; [
waypaper
swww
];
};
}

View file

@ -0,0 +1,14 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./hyprland.nix
./niri.nix
./sway.nix
];
}

View file

@ -0,0 +1,27 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
options = {
desktop.window-managers = {
hyprland = {
enable = lib.mkEnableOption "enable hyprland";
};
};
};
config = lib.mkIf config.desktop.window-managers.hyprland.enable {
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
};
}

View file

@ -7,21 +7,17 @@
{ {
options = { options = {
desktop = { desktop.window-managers = {
niri = { niri = {
enable = lib.mkEnableOption "enable niri"; enable = lib.mkEnableOption "enable niri";
}; };
}; };
}; };
config = lib.mkIf config.desktop.niri.enable { config = lib.mkIf config.desktop.window-managers.niri.enable {
# Enable the gnome-keyring secrets vault.
# Will be exposed through DBus to programs willing to store secrets.
services.gnome.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
xwayland-satellite xwayland-satellite
niri ];
];
programs.niri = { programs.niri = {
enable = true; enable = true;
}; };

View file

@ -0,0 +1,24 @@
{
config,
pkgs,
lib,
...
}:
{
options = {
desktop.window-managers = {
sway = {
enable = lib.mkEnableOption "enable sway";
};
};
};
config = lib.mkIf config.desktop.window-managers.sway.enable {
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
package = null;
};
};
}

View file

@ -1,21 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
gaming = {
modding.enable = lib.mkEnableOption "enable game modding";
};
};
config = lib.mkIf config.gaming.modding.enable {
home.packages = with pkgs; [
limo
r2modman
];
};
}

View file

@ -1,20 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
gaming = {
steam.enable = lib.mkEnableOption "enable steam";
};
};
config = lib.mkIf config.gaming.steam.enable {
home.packages = with pkgs; [
adwsteamgtk
];
};
}

View file

@ -1,30 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
media = {
audio = {
enable = lib.mkEnableOption "enable all audio media";
tenacity.enable = lib.mkEnableOption "enable tenacity";
flac.enable = lib.mkEnableOption "enable flac";
};
};
};
config = {
media.audio = lib.mkIf config.media.audio.enable {
tenacity.enable = lib.mkDefault true;
flac.enable = lib.mkDefault true;
};
home.packages = with pkgs; [
(lib.mkIf (config.media.audio.tenacity.enable) tenacity)
(lib.mkIf (config.media.audio.flac.enable) flac)
];
};
}

View file

@ -1,15 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./images.nix
./video.nix
./audio.nix
./3d.nix
];
}

View file

@ -1,34 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
media = {
images = {
enable = lib.mkEnableOption "enable all image media";
nomacs.enable = lib.mkEnableOption "enable nomacs";
gimp.enable = lib.mkEnableOption "enable gimp";
krita.enable = lib.mkEnableOption "enable krita";
};
};
};
config = {
media.images = lib.mkIf config.media.images.enable {
nomacs.enable = lib.mkDefault true;
gimp.enable = lib.mkDefault true;
krita.enable = lib.mkDefault true;
};
home.packages = with pkgs; [
(lib.mkIf (config.media.images.nomacs.enable) nomacs)
(lib.mkIf (config.media.images.gimp.enable) gimp3-with-plugins)
(lib.mkIf (config.media.images.krita.enable) krita)
];
};
}

View file

@ -1,42 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
media = {
video = {
enable = lib.mkEnableOption "enable all video media";
mpv.enable = lib.mkEnableOption "enable mpv";
kdenlive.enable = lib.mkEnableOption "enable kdenlive";
tsukimi.enable = lib.mkEnableOption "enable tsukimi (jellyfin client)";
jellyfin.enable = lib.mkEnableOption "enable jellyin (jellyfin client)";
pipeline.enable = lib.mkEnableOption "enable pipeline (you/peertube client)";
};
};
};
config = {
media.video = lib.mkIf config.media.video.enable {
kdenlive.enable = lib.mkDefault true;
mpv.enable = lib.mkDefault true;
tsukimi.enable = lib.mkDefault true;
jellyfin.enable = lib.mkDefault true;
pipeline.enable = lib.mkDefault true;
};
home.packages = with pkgs; [
(lib.mkIf (config.media.video.kdenlive.enable) kdePackages.kdenlive)
(lib.mkIf (config.media.video.tsukimi.enable) tsukimi)
(lib.mkIf (config.media.video.jellyfin.enable) jellyfin-desktop)
(lib.mkIf (config.media.video.pipeline.enable) pipeline)
];
programs = {
mpv = lib.mkIf config.media.video.mpv.enable {
enable = true;
};
};
};
}

View file

@ -8,11 +8,11 @@
{ {
options = { options = {
domain = lib.mkOption { domain = lib.mkOption {
default = "example.com"; default = "marty.tf";
description = "set domain name"; description = "set domain name";
}; };
email = lib.mkOption { email = lib.mkOption {
default = "${config.main-user.userName}.${config.domain}"; default = "${config.user.userName}@${config.domain}";
description = "set email"; description = "set email";
}; };
nginx = { nginx = {

View file

@ -22,7 +22,7 @@
timeout = 3; timeout = 3;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_zen;
kernel = { kernel = {
sysctl = { sysctl = {
"vm.swappiness" = 10; "vm.swappiness" = 10;

View file

@ -10,7 +10,6 @@
./boot.nix ./boot.nix
./shell.nix ./shell.nix
./networking.nix ./networking.nix
./display-manager.nix
./localization.nix ./localization.nix
./fira-code.nix ./fira-code.nix
./nixos-cli.nix ./nixos-cli.nix

View file

@ -7,7 +7,4 @@
{ {
environment.systemPackages = [ pkgs.nerd-fonts.fira-code ]; environment.systemPackages = [ pkgs.nerd-fonts.fira-code ];
# console = {
# font = "FiraCode Nerd Font";
# };
} }

View file

@ -0,0 +1,51 @@
{
config,
pkgs,
lib,
...
}:
let
timezone = config.system.timezone;
language = config.system.language;
locale = config.system.locale;
in
{
options = {
system = {
timezone = lib.mkOption {
default = "Europe/Berlin";
description = "timezone";
};
language = lib.mkOption {
default = "en_GB.UTF-8";
description = "language";
};
locale = lib.mkOption {
default = "de_DE.UTF-8";
description = "locale";
};
};
};
config = {
time.timeZone = timezone;
i18n = {
defaultLocale = language;
extraLocaleSettings = {
LC_ADDRESS = locale;
LC_IDENTIFICATION = locale;
LC_MEASUREMENT = locale;
LC_MONETARY = locale;
LC_NAME = locale;
LC_NUMERIC = locale;
LC_PAPER = locale;
LC_TELEPHONE = locale;
LC_TIME = locale;
};
};
console.keyMap = builtins.substring 0 2 locale;
};
}

View file

@ -7,5 +7,9 @@
util-linux util-linux
]; ];
}; };
programs.fish.enable = true; programs = {
fish.enable = true;
bash.enable = true;
zsh.enable = true;
};
} }

View file

@ -1,22 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
terminal = {
fish.enable = lib.mkEnableOption "enable fish";
};
};
config = lib.mkIf config.terminal.fish.enable {
programs = {
fish = {
enable = true;
};
};
};
}

View file

@ -1,26 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
terminal = {
toys.enable = lib.mkEnableOption "enable terminal toys";
};
};
config = lib.mkIf config.terminal.toys.enable {
home.packages = with pkgs; [
asciiquarium-transparent
cava
bunnyfetch
nerdfetch
fastfetch
cmatrix
astroterm
];
};
}

View file

@ -8,7 +8,7 @@
{ {
options = { options = {
main-user = { user = {
userName = lib.mkOption { userName = lib.mkOption {
default = "marty"; default = "marty";
description = '' description = ''
@ -25,9 +25,9 @@
}; };
config = { config = {
users.users.${config.main-user.userName} = { users.users.${config.user.userName} = {
isNormalUser = true; isNormalUser = true;
description = "main user"; description = "${config.user.userName}";
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
@ -36,7 +36,7 @@
"render" "render"
"docker" "docker"
]; ];
shell = pkgs.fish; shell = config.user.shell;
}; };
security.sudo = { security.sudo = {

Some files were not shown because too many files have changed in this diff Show more