diff --git a/configuration.nix b/configuration.nix index 142cab3..49d042c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -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, pkgs, @@ -17,8 +13,7 @@ ]; nixpkgs.config.allowUnfree = true; imports = [ - ./system - ./user + ./modules ]; @@ -26,10 +21,4 @@ "/share/applications" "/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. It‘s 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). } diff --git a/flake.lock b/flake.lock index 4b39a4f..4bf6ea3 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1773436376, - "narHash": "sha256-OUPRrprbgN27BXHuWkMAPSCfLLQ/uwpWghEfKYN2iAg=", + "lastModified": 1774211390, + "narHash": "sha256-sTtAgCCaX8VNNZlQFACd3i1IQ+DB0Wf3COgiFS152ds=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "43f10d24391692bba3d762931ee35e7f17f8e8b8", + "rev": "f62a4dbfa4e5584f14ad4c62afedf6e4b433cf70", "type": "github" }, "original": { @@ -82,11 +82,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1773079031, - "narHash": "sha256-RvCzINnVISBT3d0F1DoIcQFbQsbRJISW9qZeKTzmNaA=", + "lastModified": 1774640361, + "narHash": "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=", "owner": "abenz1267", "repo": "elephant", - "rev": "53afe39cef252010f7c55bd33c5bae6dd50dcf0c", + "rev": "d30652147d8e16ebc849b779b8ef495a894b0dd4", "type": "github" }, "original": { @@ -216,11 +216,11 @@ ] }, "locked": { - "lastModified": 1774135471, - "narHash": "sha256-TVeIGOxnfSPM6JvkRkXHpJECnj1OG2dXkWMSA4elzzQ=", + "lastModified": 1774738535, + "narHash": "sha256-2jfBEZUC67IlnxO5KItFCAd7Oc+1TvyV/jQlR+2ykGQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "856b01ebd1de3f53c3929ce8082d9d67d799d816", + "rev": "769e07ef8f4cf7b1ec3b96ef015abec9bc6b1e2a", "type": "github" }, "original": { @@ -304,11 +304,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1774136452, - "narHash": "sha256-pSwj8WNWXMuZaDqCyhQwlngRD3JyNmZwldSe6UqWAos=", + "lastModified": 1774734105, + "narHash": "sha256-kO22x+rIp1SckR3Gi3+Nk0J9AP+kNcEgXikkE8bA04g=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "bf31f642b08a8d8ca796a1b713285f2580805c2f", + "rev": "38a7f03cf0e5ee116794a78581634ba3dab508fa", "type": "github" }, "original": { @@ -511,11 +511,11 @@ ] }, "locked": { - "lastModified": 1773948364, - "narHash": "sha256-S76omfIVQ1TpGiXFbqih6o6XcH3sA5+5QI+SXB4HvlY=", + "lastModified": 1774211405, + "narHash": "sha256-6KNwP4ojUzv3YBlZU5BqCpTrWHcix1Jo01BISsTT0xk=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "b85b779e3e3a1adcd9b098e3447cf48f9e780b35", + "rev": "cb4e152dc72095a2af422956c6b689590572231a", "type": "github" }, "original": { @@ -586,11 +586,11 @@ "optnix": "optnix" }, "locked": { - "lastModified": 1773211698, - "narHash": "sha256-7MO8/1kby+CHc7KwNDfz3+GvVifA2F1V4nZR+w0r6w4=", + "lastModified": 1774427328, + "narHash": "sha256-KtGThScvwNbCm+6XwUKRfpTjJVKV9SHswm29px3m4pw=", "owner": "nix-community", "repo": "nixos-cli", - "rev": "35c01291b1bd707def2d1613543c7fe2e4132d43", + "rev": "23e7540706eb5271f4ab37b9e52532637d57c63b", "type": "github" }, "original": { @@ -648,11 +648,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1773389992, - "narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=", + "lastModified": 1774106199, + "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c06b4ae3d6599a672a6210b7021d699c351eebda", + "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", "type": "github" }, "original": { @@ -680,11 +680,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1773821835, - "narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", + "lastModified": 1774386573, + "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0", + "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", "type": "github" }, "original": { @@ -695,22 +695,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": { "lastModified": 1768564909, "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", @@ -734,11 +718,11 @@ "noctalia-qs": "noctalia-qs" }, "locked": { - "lastModified": 1774190046, - "narHash": "sha256-fAtmC9Yy2VNExCaxO7kZgPH8LIQP8M9LEGcAp23gXMk=", + "lastModified": 1774747057, + "narHash": "sha256-D/W/pgyH9+50fMbyh839j3NIOyf9X8VJCKrsMpRnqAI=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "4e44886a79cf39e04d625961e2906537723f631a", + "rev": "3b9e93a8b1e748df9329a97eb8d7ee58d02977da", "type": "github" }, "original": { @@ -757,11 +741,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1774059741, - "narHash": "sha256-ObYsrf7XLJDqWVbJ+GWH5JYV/EUc7SVdhGx5r5wWKno=", + "lastModified": 1774734782, + "narHash": "sha256-rq/8sJPI8wD4P3CXSyvW/dPuAa+qXGdqzAKM3eunZ+4=", "owner": "noctalia-dev", "repo": "noctalia-qs", - "rev": "c9beee5c634ec784af128b8e7c56db14012ab17f", + "rev": "8e216ba101d761b8a71f359246941d50e22bad3f", "type": "github" }, "original": { @@ -805,11 +789,11 @@ ] }, "locked": { - "lastModified": 1772893680, - "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", + "lastModified": 1774104215, + "narHash": "sha256-EAtviqz0sEAxdHS4crqu7JGR5oI3BwaqG0mw7CmXkO8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", + "rev": "f799ae951fde0627157f40aec28dec27b22076d0", "type": "github" }, "original": { @@ -843,14 +827,14 @@ "swayfx", "nixpkgs" ], - "systems": "systems_4" + "systems": "systems_5" }, "locked": { - "lastModified": 1768403764, - "narHash": "sha256-1RVLChp1WUcjnDu30jG2DTXW0A6K3lkezEip3KTf/gE=", + "lastModified": 1771859266, + "narHash": "sha256-sUd6r/2cZ4slc6HB151LnEaf7b7g4bbYB36ADoYk564=", "owner": "wlrfx", "repo": "scenefx", - "rev": "05a5e7a9177de04bc398e25821c0898c2a284c9f", + "rev": "bb223e3e94b4576f514df96d03ff0680384a4e20", "type": "github" }, "original": { @@ -866,14 +850,14 @@ "nixpkgs" ], "scenefx": "scenefx", - "systems": "systems_5" + "systems": "systems_6" }, "locked": { - "lastModified": 1769467630, - "narHash": "sha256-SufN5nd0+BojwTpe2tPuFIXswpLGo4syG/OwBF2Glzs=", + "lastModified": 1772835103, + "narHash": "sha256-4A4DEMDxJgPbbszLVdnlhFsvQS73X91dANZN0wbrX6g=", "owner": "WillPower3309", "repo": "swayfx", - "rev": "c4ce2331c90120fafc12ba86200591255e836caf", + "rev": "434d992494da97e46071618f56a527656d23161a", "type": "github" }, "original": { @@ -957,9 +941,43 @@ "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": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": [ + "noctalia", + "noctalia-qs", + "nixpkgs" + ] }, "locked": { "lastModified": 1772660329, @@ -980,8 +998,8 @@ "elephant": [ "elephant" ], - "nixpkgs": "nixpkgs_7", - "systems": "systems_4" + "nixpkgs": "nixpkgs_6", + "systems": "systems_7" }, "locked": { "lastModified": 1773675699, @@ -1025,11 +1043,11 @@ ] }, "locked": { - "lastModified": 1772669058, - "narHash": "sha256-XhnY0aRuDo5LT8pmJVPofPOgO2hAR7T+XRoaQxtNPzQ=", + "lastModified": 1773601989, + "narHash": "sha256-2tJf/CQoHApoIudxHeJye+0Ii7scR0Yyi7pNiWk0Hn8=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "906d0ac159803a7df2dc1f948df9327670380f69", + "rev": "a9b862d1aa000a676d310cc62d249f7ad726233d", "type": "github" }, "original": { @@ -1045,11 +1063,11 @@ ] }, "locked": { - "lastModified": 1773722260, - "narHash": "sha256-U8MsSiqqYZHR3oKE+cCZ2AJt3b4LcXs+oQuNLipaO78=", + "lastModified": 1774759885, + "narHash": "sha256-Y3D2GnZTO6BhGWeVcO6qUkiO5g0dDL2tmokLVWNC1WY=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "0e6e43342fb3e9a3439fafa777d8cdf98e4ffc49", + "rev": "16e3f4cd221a030186a96015d82dcb3fb4afa4d6", "type": "github" }, "original": { diff --git a/modules/terminal/default.nix b/home/apps/terminal/default.nix similarity index 58% rename from modules/terminal/default.nix rename to home/apps/terminal/default.nix index f8b94da..29ec7df 100644 --- a/modules/terminal/default.nix +++ b/home/apps/terminal/default.nix @@ -8,9 +8,5 @@ { imports = [ ./kitty.nix - ./file-manager.nix - ./fish.nix - ./toys.nix - ]; } diff --git a/modules/terminal/kitty.nix b/home/apps/terminal/kitty.nix similarity index 91% rename from modules/terminal/kitty.nix rename to home/apps/terminal/kitty.nix index 0df21bf..101e0fb 100644 --- a/modules/terminal/kitty.nix +++ b/home/apps/terminal/kitty.nix @@ -6,13 +6,7 @@ }: { - options = { - terminal = { - kitty.enable = lib.mkEnableOption "enable kitty"; - }; - }; - - config = lib.mkIf config.terminal.kitty.enable { + config = lib.mkIf osConfig.apps.terminal.kitty.enable { programs = { kitty = { enable = true; @@ -20,6 +14,7 @@ shellIntegration = { enableFishIntegration = true; enableBashIntegration = true; + enableZshIntegration = true; }; font = { name = "FiraCode Nerd Font"; diff --git a/modules/terminal/file-manager.nix b/home/apps/terminal/ranger.nix similarity index 87% rename from modules/terminal/file-manager.nix rename to home/apps/terminal/ranger.nix index 3de4f7d..d6a9253 100644 --- a/modules/terminal/file-manager.nix +++ b/home/apps/terminal/ranger.nix @@ -2,20 +2,12 @@ config, lib, pkgs, + osConfig, ... }: { - options = { - terminal = { - ranger = { - enable = lib.mkEnableOption "enable ranger"; - }; - - }; - }; - - config = lib.mkIf config.terminal.ranger.enable { + config = lib.mkIf osConfig.apps.terminal.tui.ranger.enable { programs = { ranger = { enable = true; @@ -65,8 +57,5 @@ }; }; }; - home.packages = with pkgs; [ - unzip - ]; }; } diff --git a/home/configs/niri/config.kdl b/home/configs/niri/config.kdl new file mode 100644 index 0000000..aeb53c7 --- /dev/null +++ b/home/configs/niri/config.kdl @@ -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" \ No newline at end of file diff --git a/home/default.nix b/home/default.nix index 0f4a582..0b8dd11 100644 --- a/home/default.nix +++ b/home/default.nix @@ -7,6 +7,6 @@ { imports = [ - ./sway.nix + ./desktop ]; } diff --git a/home/desktop/default.nix b/home/desktop/default.nix new file mode 100644 index 0000000..ad0e5f0 --- /dev/null +++ b/home/desktop/default.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./window-managers + ./shell + ]; +} diff --git a/home/desktop/shell/default.nix b/home/desktop/shell/default.nix new file mode 100644 index 0000000..5b81b30 --- /dev/null +++ b/home/desktop/shell/default.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./noctalia.nix + ./walker.nix + ]; +} diff --git a/home/desktop/shell/noctalia.nix b/home/desktop/shell/noctalia.nix new file mode 100644 index 0000000..e7529db --- /dev/null +++ b/home/desktop/shell/noctalia.nix @@ -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 + ] +} + + diff --git a/home/desktop/shell/walker.nix b/home/desktop/shell/walker.nix new file mode 100644 index 0000000..f8e503f --- /dev/null +++ b/home/desktop/shell/walker.nix @@ -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 + ] +} diff --git a/home/desktop/window-managers/default.nix b/home/desktop/window-managers/default.nix new file mode 100644 index 0000000..e648214 --- /dev/null +++ b/home/desktop/window-managers/default.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./hyprland.nix + ./niri.nix + ./sway.nix + ]; +} diff --git a/modules/desktop/hyprland.nix b/home/desktop/window-managers/hyprland.nix similarity index 67% rename from modules/desktop/hyprland.nix rename to home/desktop/window-managers/hyprland.nix index a6a7123..de919e8 100644 --- a/modules/desktop/hyprland.nix +++ b/home/desktop/window-managers/hyprland.nix @@ -3,6 +3,7 @@ lib, pkgs, inputs, + osConfig, ... }: @@ -10,7 +11,6 @@ options = { desktop = { hyprland = { - enable = lib.mkEnableOption "enable hyprland"; monitors = lib.mkOption { default = [ ",preferred,auto,1" @@ -44,7 +44,7 @@ }; }; - config = lib.mkIf config.desktop.hyprland.enable { + config = lib.mkIf osConfig.desktop.hyprland.enable { xdg.portal = { enable = true; configPackages = [ @@ -63,11 +63,6 @@ ]; }; }; - programs = { - hyprlock = { - enable = true; - }; - }; wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; @@ -84,14 +79,13 @@ "XDG_SESSION_DESKTOP,Hyprland" ]; exec-once = [ - #"hyprctl plugin load " - (lib.mkIf (config.desktop.walker.enable) "elephant") - (lib.mkIf (config.desktop.waybar.enable) "waybar") - (lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell") - (lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell ipc call wallpaper random") - (lib.mkIf (config.desktop.wallpaper.enable) "waypaper --restore --random") - (lib.mkIf (config.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent") - (lib.mkIf (config.internet.mail.providers.protonmail.enable) "protonmail-bridge -n") + (lib.mkIf (osConfig.desktop.shell.walker.enable) "elephant") + (lib.mkIf (osConfig.desktop.shell.waybar.enable) "waybar") + (lib.mkIf (osConfig.desktop.shell.noctalia.enable) "noctalia-shell") + (lib.mkIf (osConfig.desktop.shell.noctalia.enable) "noctalia-shell ipc call wallpaper random") + (lib.mkIf (osConfig.desktop.shell.swww.enable) "waypaper --restore --random") + (lib.mkIf (osConfig.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent") + (lib.mkIf (osConfig.internet.mail.providers.protonmail.enable) "protonmail-bridge -n") "echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature" ]; "$mod" = "SUPER"; @@ -99,15 +93,12 @@ "$controlmod" = "SUPER_CTRL"; bind = [ - (lib.mkIf (config.desktop.walker.enable) "$mod, D, exec, walker") - (lib.mkIf (config.desktop.rofi.enable) "$mod, D, exec, rofi -show drun") - (lib.mkIf (config.terminal.kitty.enable) "$mod, return, exec, kitty") - (lib.mkIf (config.desktop.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area") - (lib.mkIf (config.desktop.rofi.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 (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" + (lib.mkIf (osConfig.desktop.shell.walker.enable) "$mod, D, exec, walker") + (lib.mkIf (osConfig.desktop.shell.rofi.enable) "$mod, D, exec, rofi -show drun") + "$mod, return, exec, ${osConfig.apps.terminal.binary}" + (lib.mkIf (osConfig.desktop.utilities.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area") + (lib.mkIf (osConfig.desktop.shell.walker.enable) ( + 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" )) "$mod, F, fullscreen, 1" "$shiftmod, F, fullscreen, 0" @@ -127,7 +118,6 @@ "$mod, K, exec, playerctl play-pause" "$mod, L, exec, playerctl next" "$mod, G, togglefloating," - # "$mod, H, hyprexpo:expo, toggle" "$mod, F1, exec, hyprlock" "$shiftmod, E, exec, codium" "$controlmod, up, exec, light -A 10" @@ -184,27 +174,7 @@ 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"; }; diff --git a/home/desktop/window-managers/niri.nix b/home/desktop/window-managers/niri.nix new file mode 100644 index 0000000..80609a8 --- /dev/null +++ b/home/desktop/window-managers/niri.nix @@ -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; + + }; +} diff --git a/home/sway.nix b/home/desktop/window-managers/sway.nix similarity index 91% rename from home/sway.nix rename to home/desktop/window-managers/sway.nix index cf6c568..6cf21e3 100644 --- a/home/sway.nix +++ b/home/desktop/window-managers/sway.nix @@ -8,14 +8,13 @@ { options = { - desktop = { + desktop.window-managers = { sway = { - enable = lib.mkEnableOption "enable sway"; }; }; }; - config = { + config = lib.mkIf osConfig.desktop.window-managers.sway.enable { wayland.windowManager.sway = { enable = true; package = pkgs.swayfx; @@ -37,7 +36,6 @@ "${modifier}+Control+left" = "exec /home/marty/.config/sway/scripts/workspaceswitcher left"; "${modifier}+f" = "fullscreen"; - "${modifier}+1" = "workspace number 1"; "${modifier}+2" = "workspace number 2"; "${modifier}+3" = "workspace number 3"; @@ -49,7 +47,6 @@ "${modifier}+9" = "workspace number 9"; "${modifier}+s" = "workspace number 0"; - "${modifier}+Shift+1" = "move container to workspace number 1"; "${modifier}+Shift+2" = "move container to workspace number 2"; "${modifier}+Shift+3" = "move container to workspace number 3"; @@ -63,11 +60,11 @@ }; input = { "*" = { - xkb_layout = "de"; + xkb_layout = builtins.substring 0 2 osConfig.system.locale; }; }; defaultWorkspace = "workspace number 1"; - terminal = "${pkgs.kitty}/bin/kitty"; + terminal = osConfig.desktop.defaults.terminal.binary; }; checkConfig = false; }; diff --git a/modules/connectivity/bluetooth/default.nix b/home/modules/connectivity/bluetooth/default.nix similarity index 100% rename from modules/connectivity/bluetooth/default.nix rename to home/modules/connectivity/bluetooth/default.nix diff --git a/modules/connectivity/default.nix b/home/modules/connectivity/default.nix similarity index 100% rename from modules/connectivity/default.nix rename to home/modules/connectivity/default.nix diff --git a/modules/connectivity/internet/default.nix b/home/modules/connectivity/internet/default.nix similarity index 100% rename from modules/connectivity/internet/default.nix rename to home/modules/connectivity/internet/default.nix diff --git a/modules/connectivity/internet/librewolf.nix b/home/modules/connectivity/internet/librewolf.nix similarity index 100% rename from modules/connectivity/internet/librewolf.nix rename to home/modules/connectivity/internet/librewolf.nix diff --git a/modules/connectivity/internet/mail.nix b/home/modules/connectivity/internet/mail.nix similarity index 100% rename from modules/connectivity/internet/mail.nix rename to home/modules/connectivity/internet/mail.nix diff --git a/modules/connectivity/internet/rss.nix b/home/modules/connectivity/internet/rss.nix similarity index 100% rename from modules/connectivity/internet/rss.nix rename to home/modules/connectivity/internet/rss.nix diff --git a/modules/connectivity/internet/tor.nix b/home/modules/connectivity/internet/tor.nix similarity index 100% rename from modules/connectivity/internet/tor.nix rename to home/modules/connectivity/internet/tor.nix diff --git a/modules/connectivity/internet/zen-browser.nix b/home/modules/connectivity/internet/zen-browser.nix similarity index 100% rename from modules/connectivity/internet/zen-browser.nix rename to home/modules/connectivity/internet/zen-browser.nix diff --git a/modules/connectivity/mounts/default.nix b/home/modules/connectivity/mounts/default.nix similarity index 100% rename from modules/connectivity/mounts/default.nix rename to home/modules/connectivity/mounts/default.nix diff --git a/modules/connectivity/mounts/sshfs.nix b/home/modules/connectivity/mounts/sshfs.nix similarity index 100% rename from modules/connectivity/mounts/sshfs.nix rename to home/modules/connectivity/mounts/sshfs.nix diff --git a/modules/connectivity/social-media/default.nix b/home/modules/connectivity/social-media/default.nix similarity index 100% rename from modules/connectivity/social-media/default.nix rename to home/modules/connectivity/social-media/default.nix diff --git a/modules/connectivity/social-media/messaging/default.nix b/home/modules/connectivity/social-media/messaging/default.nix similarity index 100% rename from modules/connectivity/social-media/messaging/default.nix rename to home/modules/connectivity/social-media/messaging/default.nix diff --git a/modules/defaults/default.nix b/home/modules/defaults/default.nix similarity index 100% rename from modules/defaults/default.nix rename to home/modules/defaults/default.nix diff --git a/modules/defaults/desktop.nix b/home/modules/defaults/desktop.nix similarity index 100% rename from modules/defaults/desktop.nix rename to home/modules/defaults/desktop.nix diff --git a/modules/defaults/laptop.nix b/home/modules/defaults/laptop.nix similarity index 100% rename from modules/defaults/laptop.nix rename to home/modules/defaults/laptop.nix diff --git a/modules/defaults/server.nix b/home/modules/defaults/server.nix similarity index 100% rename from modules/defaults/server.nix rename to home/modules/defaults/server.nix diff --git a/modules/development/default.nix b/home/modules/development/default.nix similarity index 100% rename from modules/development/default.nix rename to home/modules/development/default.nix diff --git a/modules/development/git.nix b/home/modules/development/git.nix similarity index 100% rename from modules/development/git.nix rename to home/modules/development/git.nix diff --git a/modules/development/godot.nix b/home/modules/development/godot.nix similarity index 100% rename from modules/development/godot.nix rename to home/modules/development/godot.nix diff --git a/modules/development/openssl.nix b/home/modules/development/openssl.nix similarity index 100% rename from modules/development/openssl.nix rename to home/modules/development/openssl.nix diff --git a/modules/development/python.nix b/home/modules/development/python.nix similarity index 100% rename from modules/development/python.nix rename to home/modules/development/python.nix diff --git a/modules/development/vscodium.nix b/home/modules/development/vscodium.nix similarity index 100% rename from modules/development/vscodium.nix rename to home/modules/development/vscodium.nix diff --git a/modules/media/3d.nix b/home/modules/media/3d.nix similarity index 100% rename from modules/media/3d.nix rename to home/modules/media/3d.nix diff --git a/modules/misc/bitwarden.nix b/home/modules/misc/bitwarden.nix similarity index 100% rename from modules/misc/bitwarden.nix rename to home/modules/misc/bitwarden.nix diff --git a/modules/misc/default.nix b/home/modules/misc/default.nix similarity index 100% rename from modules/misc/default.nix rename to home/modules/misc/default.nix diff --git a/modules/misc/obsidian.nix b/home/modules/misc/obsidian.nix similarity index 100% rename from modules/misc/obsidian.nix rename to home/modules/misc/obsidian.nix diff --git a/modules/misc/secrets.nix b/home/modules/misc/secrets.nix similarity index 100% rename from modules/misc/secrets.nix rename to home/modules/misc/secrets.nix diff --git a/modules/misc/syncthing.nix b/home/modules/misc/syncthing.nix similarity index 100% rename from modules/misc/syncthing.nix rename to home/modules/misc/syncthing.nix diff --git a/home/niri.nix b/home/niri.nix deleted file mode 100644 index 2a93853..0000000 --- a/home/niri.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - pkgs, - lib, - inputs, - ... -}: - -{ - options = { - desktop = { - sway = { - enable = lib.mkEnableOption "enable sway"; - }; - }; - - }; - config = { - wayland.windowManager.niri = { - }; - }; -}; \ No newline at end of file diff --git a/hosts/default.nix b/hosts/default.nix new file mode 100644 index 0000000..033a955 --- /dev/null +++ b/hosts/default.nix @@ -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; + }; + }; + }; + }; +} diff --git a/hosts/marty-pc/custom.nix b/hosts/marty-pc/custom.nix new file mode 100644 index 0000000..1cc7547 --- /dev/null +++ b/hosts/marty-pc/custom.nix @@ -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; + } + }); + ''; + }; +} diff --git a/hosts/marty-pc/default.nix b/hosts/marty-pc/default.nix index a691050..07c2bbc 100644 --- a/hosts/marty-pc/default.nix +++ b/hosts/marty-pc/default.nix @@ -8,9 +8,13 @@ ... }: +let + hostname = "marty-pc"; +in + { networking = { - hostName = "marty-pc"; + hostName = hostname; interfaces = { enp42s0 = { wakeOnLan = { @@ -20,7 +24,6 @@ }; }; }; - home-manager = { extraSpecialArgs = { inherit inputs; }; useGlobalPkgs = true; @@ -29,60 +32,9 @@ marty = import ./home.nix; }; }; - 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 - ]; - }; - 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 + imports = [ + ./hardware.nix + ./custom.nix ]; - - services.udev = { - packages = with pkgs; [ - qmk - qmk-udev-rules - qmk_hid - via - vial - ]; - }; system.stateVersion = "25.05"; # Did you read the comment? } diff --git a/hosts/marty-pc/home.nix b/hosts/marty-pc/home.nix index f9c1281..dfff422 100644 --- a/hosts/marty-pc/home.nix +++ b/hosts/marty-pc/home.nix @@ -3,81 +3,15 @@ pkgs, inputs, 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 - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # 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; + home.username = osConfig.user.userName; + home.homeDirectory = "/home/${osConfig.user.userName}"; + home.stateVersion = "25.11"; desktop = { hyprland = { @@ -104,18 +38,9 @@ ]; }; }; - gaming = { - steam.enable = true; - minecraft.enable = true; - modding.enable = true; - }; imports = [ - inputs.walker.homeManagerModules.default - inputs.noctalia.homeModules.default ./../../modules - ]; - # Let Home Manager install and manage itself. programs.home-manager.enable = true; } diff --git a/modules/README.md b/modules/README.md deleted file mode 100644 index 6320a57..0000000 --- a/modules/README.md +++ /dev/null @@ -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 \ No newline at end of file diff --git a/modules/apps/audio/default.nix b/modules/apps/audio/default.nix new file mode 100644 index 0000000..f3cfc85 --- /dev/null +++ b/modules/apps/audio/default.nix @@ -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) + ]; + }; +} diff --git a/modules/apps/default.nix b/modules/apps/default.nix new file mode 100644 index 0000000..e98bf1a --- /dev/null +++ b/modules/apps/default.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./audio + ./gaming + ./image + ./video + ./terminal + ]; +} diff --git a/modules/gaming/default.nix b/modules/apps/gaming/default.nix similarity index 84% rename from modules/gaming/default.nix rename to modules/apps/gaming/default.nix index 63e19df..214d4cd 100644 --- a/modules/gaming/default.nix +++ b/modules/apps/gaming/default.nix @@ -8,7 +8,6 @@ { imports = [ ./steam.nix - ./modding.nix ./minecraft.nix ]; } diff --git a/modules/gaming/minecraft.nix b/modules/apps/gaming/minecraft.nix similarity index 56% rename from modules/gaming/minecraft.nix rename to modules/apps/gaming/minecraft.nix index f078028..60bae60 100644 --- a/modules/gaming/minecraft.nix +++ b/modules/apps/gaming/minecraft.nix @@ -7,13 +7,13 @@ { options = { - gaming = { + apps.gaming = { minecraft.enable = lib.mkEnableOption "enable minecraft"; }; }; - config = lib.mkIf config.gaming.minecraft.enable { - home.packages = with pkgs; [ + config = lib.mkIf config.apps.gaming.minecraft.enable { + environment.systemPackages = with pkgs; [ prismlauncher ]; }; diff --git a/modules/apps/gaming/steam.nix b/modules/apps/gaming/steam.nix new file mode 100644 index 0000000..2da6f0d --- /dev/null +++ b/modules/apps/gaming/steam.nix @@ -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; + }; + }; + }; + +} diff --git a/modules/apps/image/default.nix b/modules/apps/image/default.nix new file mode 100644 index 0000000..d3e1f7a --- /dev/null +++ b/modules/apps/image/default.nix @@ -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) + ]; + }; +} diff --git a/modules/apps/peripherals/default.nix b/modules/apps/peripherals/default.nix new file mode 100644 index 0000000..47776ca --- /dev/null +++ b/modules/apps/peripherals/default.nix @@ -0,0 +1,12 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./keyboard.nix + ]; +} diff --git a/modules/apps/peripherals/keyboard.nix b/modules/apps/peripherals/keyboard.nix new file mode 100644 index 0000000..cd315be --- /dev/null +++ b/modules/apps/peripherals/keyboard.nix @@ -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 + ]; + }; +} diff --git a/modules/apps/terminal/base-packages.nix b/modules/apps/terminal/base-packages.nix new file mode 100644 index 0000000..097dfe5 --- /dev/null +++ b/modules/apps/terminal/base-packages.nix @@ -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 + ]; + }; +} diff --git a/modules/apps/terminal/default.nix b/modules/apps/terminal/default.nix new file mode 100644 index 0000000..8fdcc63 --- /dev/null +++ b/modules/apps/terminal/default.nix @@ -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 + ]; +} diff --git a/modules/apps/terminal/kitty.nix b/modules/apps/terminal/kitty.nix new file mode 100644 index 0000000..d5fb705 --- /dev/null +++ b/modules/apps/terminal/kitty.nix @@ -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 + ]; + }; +} diff --git a/modules/apps/terminal/tui.nix b/modules/apps/terminal/tui.nix new file mode 100644 index 0000000..9f7298d --- /dev/null +++ b/modules/apps/terminal/tui.nix @@ -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) + ]; + }; +} diff --git a/modules/apps/video/default.nix b/modules/apps/video/default.nix new file mode 100644 index 0000000..210bef0 --- /dev/null +++ b/modules/apps/video/default.nix @@ -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) + ]; + }; +} diff --git a/modules/default.nix b/modules/default.nix index e8b3377..9c74e04 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -7,14 +7,9 @@ { imports = [ - ./defaults - ./development - ./terminal + ./apps ./desktop - ./misc - ./gaming - ./connectivity - ./media - ./server + ./system + ./user ]; } diff --git a/modules/desktop/README.md b/modules/desktop/README.md deleted file mode 100644 index ef11780..0000000 --- a/modules/desktop/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# HOME - -only for dotfiles, no longer installing stuff from here \ No newline at end of file diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix deleted file mode 100644 index e58e072..0000000 --- a/modules/desktop/audio.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 07f812b..5d80d4e 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -7,16 +7,9 @@ { imports = [ - ./hyprland.nix - ./walker.nix - ./waybar.nix - ./rofi.nix - ./wallpaper.nix - ./grimblast.nix - ./audio.nix - ./noctalia.nix - ]; - home.packages = with pkgs; [ - wl-clipboard + ./utilities + ./window-managers + ./shell + ./display-manager.nix ]; } diff --git a/modules/desktop/display-manager.nix b/modules/desktop/display-manager.nix new file mode 100644 index 0000000..040a58f --- /dev/null +++ b/modules/desktop/display-manager.nix @@ -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"; + }; + }; + }; + }; +} diff --git a/modules/desktop/noctalia.nix b/modules/desktop/noctalia.nix deleted file mode 100644 index d2c2df7..0000000 --- a/modules/desktop/noctalia.nix +++ /dev/null @@ -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; - }; - }; -} diff --git a/modules/desktop/rofi.nix b/modules/desktop/rofi.nix deleted file mode 100644 index 3a8729e..0000000 --- a/modules/desktop/rofi.nix +++ /dev/null @@ -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" - - ]; - }; - }; - }; -} diff --git a/modules/desktop/shell/default.nix b/modules/desktop/shell/default.nix new file mode 100644 index 0000000..e4b76b0 --- /dev/null +++ b/modules/desktop/shell/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./noctalia.nix + ./swww.nix + ./walker.nix + ./waybar.nix + ]; +} diff --git a/modules/desktop/shell/noctalia.nix b/modules/desktop/shell/noctalia.nix new file mode 100644 index 0000000..76202e4 --- /dev/null +++ b/modules/desktop/shell/noctalia.nix @@ -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; + }; + }; +} diff --git a/modules/desktop/shell/swww.nix b/modules/desktop/shell/swww.nix new file mode 100644 index 0000000..e1c8222 --- /dev/null +++ b/modules/desktop/shell/swww.nix @@ -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 + ]; + }; +} diff --git a/modules/desktop/walker.nix b/modules/desktop/shell/walker.nix similarity index 57% rename from modules/desktop/walker.nix rename to modules/desktop/shell/walker.nix index 94e141c..87e9890 100644 --- a/modules/desktop/walker.nix +++ b/modules/desktop/shell/walker.nix @@ -8,19 +8,15 @@ { options = { - desktop = { + desktop.shell = { walker.enable = lib.mkEnableOption "enable walker"; }; }; - config = lib.mkIf config.desktop.walker.enable { + config = lib.mkIf config.desktop.shell.walker.enable { programs = { walker = { enable = true; - runAsService = true; - config = { - theme = "noctalia"; - }; }; }; }; diff --git a/modules/desktop/waybar.nix b/modules/desktop/shell/waybar.nix similarity index 72% rename from modules/desktop/waybar.nix rename to modules/desktop/shell/waybar.nix index 887329d..e8e6f62 100644 --- a/modules/desktop/waybar.nix +++ b/modules/desktop/shell/waybar.nix @@ -7,12 +7,12 @@ { options = { - desktop = { + desktop.shell = { waybar.enable = lib.mkEnableOption "enable waybar"; }; }; - config = lib.mkIf config.desktop.waybar.enable { + config = lib.mkIf config.desktop.shell.waybar.enable { programs = { waybar = { enable = true; diff --git a/modules/desktop/sway.nix b/modules/desktop/sway.nix deleted file mode 100644 index 5b5384f..0000000 --- a/modules/desktop/sway.nix +++ /dev/null @@ -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; - }; - }; -} diff --git a/modules/desktop/utilities/default.nix b/modules/desktop/utilities/default.nix new file mode 100644 index 0000000..d74a477 --- /dev/null +++ b/modules/desktop/utilities/default.nix @@ -0,0 +1,12 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./grimblast.nix + ]; +} diff --git a/modules/desktop/grimblast.nix b/modules/desktop/utilities/grimblast.nix similarity index 57% rename from modules/desktop/grimblast.nix rename to modules/desktop/utilities/grimblast.nix index 8ab5552..7b1f676 100644 --- a/modules/desktop/grimblast.nix +++ b/modules/desktop/utilities/grimblast.nix @@ -8,13 +8,13 @@ { options = { - desktop = { + desktop.utilities = { grimblast.enable = lib.mkEnableOption "enable grimblast"; }; }; - config = lib.mkIf config.desktop.grimblast.enable { - home.packages = with pkgs; [ + config = lib.mkIf config.desktop.utilities.grimblast.enable { + environment.systemPackages = with pkgs; [ grimblast gradia ]; diff --git a/modules/desktop/wallpaper.nix b/modules/desktop/wallpaper.nix deleted file mode 100644 index 51d0215..0000000 --- a/modules/desktop/wallpaper.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/modules/desktop/window-managers/default.nix b/modules/desktop/window-managers/default.nix new file mode 100644 index 0000000..e648214 --- /dev/null +++ b/modules/desktop/window-managers/default.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ + ./hyprland.nix + ./niri.nix + ./sway.nix + ]; +} diff --git a/modules/desktop/window-managers/hyprland.nix b/modules/desktop/window-managers/hyprland.nix new file mode 100644 index 0000000..18f46f6 --- /dev/null +++ b/modules/desktop/window-managers/hyprland.nix @@ -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; + }; + }; +} diff --git a/modules/desktop/niri.nix b/modules/desktop/window-managers/niri.nix similarity index 58% rename from modules/desktop/niri.nix rename to modules/desktop/window-managers/niri.nix index 80c92e4..69036f5 100644 --- a/modules/desktop/niri.nix +++ b/modules/desktop/window-managers/niri.nix @@ -7,21 +7,17 @@ { options = { - desktop = { + desktop.window-managers = { niri = { enable = lib.mkEnableOption "enable niri"; }; }; }; - config = lib.mkIf config.desktop.niri.enable { - - # Enable the gnome-keyring secrets vault. - # Will be exposed through DBus to programs willing to store secrets. + config = lib.mkIf config.desktop.window-managers.niri.enable { services.gnome.gnome-keyring.enable = true; environment.systemPackages = with pkgs; [ -xwayland-satellite -niri -]; + xwayland-satellite + ]; programs.niri = { enable = true; }; diff --git a/modules/desktop/window-managers/sway.nix b/modules/desktop/window-managers/sway.nix new file mode 100644 index 0000000..972c1ae --- /dev/null +++ b/modules/desktop/window-managers/sway.nix @@ -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; + }; + }; +} diff --git a/modules/gaming/modding.nix b/modules/gaming/modding.nix deleted file mode 100644 index c7620c1..0000000 --- a/modules/gaming/modding.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/modules/gaming/steam.nix b/modules/gaming/steam.nix deleted file mode 100644 index bb9d744..0000000 --- a/modules/gaming/steam.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/modules/media/audio.nix b/modules/media/audio.nix deleted file mode 100644 index d0b0587..0000000 --- a/modules/media/audio.nix +++ /dev/null @@ -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) - ]; - }; -} diff --git a/modules/media/default.nix b/modules/media/default.nix deleted file mode 100644 index d48a6cf..0000000 --- a/modules/media/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - imports = [ - ./images.nix - ./video.nix - ./audio.nix - ./3d.nix - ]; -} diff --git a/modules/media/images.nix b/modules/media/images.nix deleted file mode 100644 index 814bbd5..0000000 --- a/modules/media/images.nix +++ /dev/null @@ -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) - - ]; - }; -} diff --git a/modules/media/video.nix b/modules/media/video.nix deleted file mode 100644 index efac50c..0000000 --- a/modules/media/video.nix +++ /dev/null @@ -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; - }; - }; - }; -} diff --git a/modules/server/nginx.nix b/modules/server/nginx.nix index 0cc6247..095b958 100644 --- a/modules/server/nginx.nix +++ b/modules/server/nginx.nix @@ -8,11 +8,11 @@ { options = { domain = lib.mkOption { - default = "example.com"; + default = "marty.tf"; description = "set domain name"; }; email = lib.mkOption { - default = "${config.main-user.userName}.${config.domain}"; + default = "${config.user.userName}@${config.domain}"; description = "set email"; }; nginx = { diff --git a/system/boot.nix b/modules/system/boot.nix similarity index 91% rename from system/boot.nix rename to modules/system/boot.nix index 82c1b0b..b2db4d6 100644 --- a/system/boot.nix +++ b/modules/system/boot.nix @@ -22,7 +22,7 @@ timeout = 3; efi.canTouchEfiVariables = true; }; - kernelPackages = pkgs.linuxPackages_latest; + kernelPackages = pkgs.linuxPackages_zen; kernel = { sysctl = { "vm.swappiness" = 10; diff --git a/system/default.nix b/modules/system/default.nix similarity index 87% rename from system/default.nix rename to modules/system/default.nix index 9e40595..34aceda 100644 --- a/system/default.nix +++ b/modules/system/default.nix @@ -10,7 +10,6 @@ ./boot.nix ./shell.nix ./networking.nix - ./display-manager.nix ./localization.nix ./fira-code.nix ./nixos-cli.nix diff --git a/system/fira-code.nix b/modules/system/fira-code.nix similarity index 63% rename from system/fira-code.nix rename to modules/system/fira-code.nix index 40e380e..af86800 100644 --- a/system/fira-code.nix +++ b/modules/system/fira-code.nix @@ -7,7 +7,4 @@ { environment.systemPackages = [ pkgs.nerd-fonts.fira-code ]; - # console = { - # font = "FiraCode Nerd Font"; - # }; } diff --git a/modules/system/localization.nix b/modules/system/localization.nix new file mode 100644 index 0000000..0be9644 --- /dev/null +++ b/modules/system/localization.nix @@ -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; + }; +} diff --git a/system/networking.nix b/modules/system/networking.nix similarity index 100% rename from system/networking.nix rename to modules/system/networking.nix diff --git a/system/nixos-cli.nix b/modules/system/nixos-cli.nix similarity index 100% rename from system/nixos-cli.nix rename to modules/system/nixos-cli.nix diff --git a/system/shell.nix b/modules/system/shell.nix similarity index 57% rename from system/shell.nix rename to modules/system/shell.nix index b982793..84c2319 100644 --- a/system/shell.nix +++ b/modules/system/shell.nix @@ -7,5 +7,9 @@ util-linux ]; }; - programs.fish.enable = true; + programs = { + fish.enable = true; + bash.enable = true; + zsh.enable = true; + }; } diff --git a/system/ssh.nix b/modules/system/ssh.nix similarity index 100% rename from system/ssh.nix rename to modules/system/ssh.nix diff --git a/modules/terminal/fish.nix b/modules/terminal/fish.nix deleted file mode 100644 index 162ff67..0000000 --- a/modules/terminal/fish.nix +++ /dev/null @@ -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; - }; - }; - }; -} diff --git a/modules/terminal/toys.nix b/modules/terminal/toys.nix deleted file mode 100644 index a5f40a8..0000000 --- a/modules/terminal/toys.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/user/default.nix b/modules/user/default.nix similarity index 81% rename from user/default.nix rename to modules/user/default.nix index f1c446e..4a06ffb 100644 --- a/user/default.nix +++ b/modules/user/default.nix @@ -8,7 +8,7 @@ { options = { - main-user = { + user = { userName = lib.mkOption { default = "marty"; description = '' @@ -25,9 +25,9 @@ }; config = { - users.users.${config.main-user.userName} = { + users.users.${config.user.userName} = { isNormalUser = true; - description = "main user"; + description = "${config.user.userName}"; extraGroups = [ "networkmanager" "wheel" @@ -36,7 +36,7 @@ "render" "docker" ]; - shell = pkgs.fish; + shell = config.user.shell; }; security.sudo = { diff --git a/options.nix b/options.nix new file mode 100644 index 0000000..9820ff4 --- /dev/null +++ b/options.nix @@ -0,0 +1,81 @@ +{ + config, + pkgs, + lib, + ... +}: + +{ + options = { + + }; + config = { + user = { + userName = "marty"; + shell = pkgs.fish; + }; + system = { + timezone = "Europe/Berlin"; + language = "en_GB.UTF-8"; + locale = "de_DE.UTF-8"; + }; + apps = { + audio = { + base.enable = 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; + }; + }; + }; + }; +} diff --git a/system/display-manager.nix b/system/display-manager.nix deleted file mode 100644 index 795f410..0000000 --- a/system/display-manager.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - config, - pkgs, - lib, - inputs, - ... -}: - -{ - services = { - xserver = { - xkb = { - layout = "de"; - variant = ""; - }; - }; - power-profiles-daemon = { - enable = true; - }; - upower = { - enable = true; - }; - }; - 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; - - }; - # programs.sway.enable = true; - # programs.uwsm = { - # enable = true; - # waylandCompositors = { - # hyprland = { - # prettyName = "Hyprland"; - # comment = "Hyprland compositor managed by UWSM"; - # binPath = "${config.programs.hyprland.package}/share/wayland-sessions/hyprland.desktop"; - # }; - - # }; - # }; -} diff --git a/system/localization.nix b/system/localization.nix deleted file mode 100644 index 5955168..0000000 --- a/system/localization.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -{ - - time.timeZone = "Europe/Berlin"; - i18n = { - defaultLocale = "en_GB.UTF-8"; - extraLocaleSettings = { - LC_ADDRESS = "de_DE.UTF-8"; - LC_IDENTIFICATION = "de_DE.UTF-8"; - LC_MEASUREMENT = "de_DE.UTF-8"; - LC_MONETARY = "de_DE.UTF-8"; - LC_NAME = "de_DE.UTF-8"; - LC_NUMERIC = "de_DE.UTF-8"; - LC_PAPER = "de_DE.UTF-8"; - LC_TELEPHONE = "de_DE.UTF-8"; - LC_TIME = "de_DE.UTF-8"; - }; - }; - - console.keyMap = "de"; -}