From 6174f3650cf42aaf008012e828d5a1f8e2ce037f Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Thu, 8 Jan 2026 02:48:11 +0100 Subject: refactor(modules): separate nixos/home-manager modules, use standard option conventions --- modules/desktop/cinnamon/default.nix | 34 -------- modules/desktop/default.nix | 13 --- modules/desktop/dunst.nix | 43 ---------- modules/desktop/gnome/dconf.nix | 16 ---- modules/desktop/gnome/default.nix | 35 -------- modules/desktop/hyprland/hyprlock.nix | 113 ------------------------- modules/desktop/kde/default.nix | 21 ----- modules/desktop/labwc/default.nix | 152 ---------------------------------- modules/desktop/labwc/sfwbar.nix | 138 ------------------------------ modules/desktop/sway/default.nix | 117 -------------------------- modules/desktop/sway/swayidle.nix | 45 ---------- modules/desktop/sway/swaylock.nix | 26 ------ modules/desktop/waybar.nix | 130 ----------------------------- 13 files changed, 883 deletions(-) delete mode 100644 modules/desktop/cinnamon/default.nix delete mode 100644 modules/desktop/default.nix delete mode 100644 modules/desktop/dunst.nix delete mode 100644 modules/desktop/gnome/dconf.nix delete mode 100644 modules/desktop/gnome/default.nix delete mode 100644 modules/desktop/hyprland/hyprlock.nix delete mode 100644 modules/desktop/kde/default.nix delete mode 100644 modules/desktop/labwc/default.nix delete mode 100644 modules/desktop/labwc/sfwbar.nix delete mode 100644 modules/desktop/sway/default.nix delete mode 100644 modules/desktop/sway/swayidle.nix delete mode 100644 modules/desktop/sway/swaylock.nix delete mode 100644 modules/desktop/waybar.nix (limited to 'modules/desktop') diff --git a/modules/desktop/cinnamon/default.nix b/modules/desktop/cinnamon/default.nix deleted file mode 100644 index b6e2c6b..0000000 --- a/modules/desktop/cinnamon/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -{ - options.nx.desktop.cinnamon = { - enable = lib.mkEnableOption "Enable Cinnamon desktop environment"; - }; - - config = lib.mkIf config.nx.desktop.cinnamon.enable { - services.xserver.enable = true; - services.xserver.displayManager.lightdm.enable = true; - services.xserver.desktopManager.cinnamon.enable = true; - - services.speechd.enable = lib.mkForce false; - services.orca.enable = lib.mkForce true; - - environment.systemPackages = with pkgs; [ - nemo-preview - ]; - - environment.variables.QT_QPA_PLATFORMTHEME = "qt5ct"; - - services.xserver.xkb = { - layout = "de"; - variant = ""; - }; - - console.keyMap = "de"; - }; -} diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix deleted file mode 100644 index f3efbf5..0000000 --- a/modules/desktop/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ ... }: - -{ - imports = [ - ./sway - ./dunst.nix - ./waybar.nix - ./gnome - ./cinnamon - ./kde - ./labwc - ]; -} diff --git a/modules/desktop/dunst.nix b/modules/desktop/dunst.nix deleted file mode 100644 index 46e6445..0000000 --- a/modules/desktop/dunst.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - config, - lib, - pkgs, - username, - ... -}: - -{ - options.nx.desktop.dunst.enable = lib.mkEnableOption "Enable dunst notification"; - config = lib.mkIf config.nx.desktop.dunst.enable { - home-manager.users.${username} = { - home.packages = with pkgs; [ - libnotify - ]; - - services.dunst = { - enable = true; - settings = { - global = { - font = "monospace 10"; - offset = "(15, 15)"; - frame_width = 0; - }; - urgency_low = { - foreground = "#FFFFFF"; - background = "#000000E6"; - }; - - urgency_normal = { - foreground = "#FFFFFF"; - background = "#000000E6"; - }; - - urgency_critical = { - foreground = "#FFFFFF"; - background = "#000000E6"; - }; - }; - }; - }; - }; -} diff --git a/modules/desktop/gnome/dconf.nix b/modules/desktop/gnome/dconf.nix deleted file mode 100644 index 580433d..0000000 --- a/modules/desktop/gnome/dconf.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - lib, - username, - ... -}: - -{ - config = lib.mkIf config.nx.desktop.gnome.enable { - home-manager.users."${username}".dconf.settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; - }; - }; -} diff --git a/modules/desktop/gnome/default.nix b/modules/desktop/gnome/default.nix deleted file mode 100644 index 40824a1..0000000 --- a/modules/desktop/gnome/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -{ - imports = [ - ./dconf.nix - ]; - - options.nx.desktop.gnome = { - enable = lib.mkEnableOption "Enable GNOME desktop environment"; - }; - - config = lib.mkIf config.nx.desktop.gnome.enable { - services.displayManager.gdm.enable = true; - services.desktopManager.gnome.enable = true; - services.gnome.core-developer-tools.enable = false; - services.gnome.games.enable = false; - - environment.gnome.excludePackages = with pkgs; [ - gnome-tour - gnome-user-docs - epiphany - ]; - - environment.systemPackages = with pkgs; [ - gnomeExtensions.pop-shell - gnomeExtensions.blur-my-shell - gnome-tweaks - ]; - }; -} diff --git a/modules/desktop/hyprland/hyprlock.nix b/modules/desktop/hyprland/hyprlock.nix deleted file mode 100644 index 425f83c..0000000 --- a/modules/desktop/hyprland/hyprlock.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ - config, - lib, - username, - ... -}: - -{ - options.nx.desktop.hyprlock.enable = lib.mkEnableOption "Hyprlock is a screen locker for Hyprland."; - config = lib.mkIf config.nx.desktop.hyprlock.enable { - programs.hyprlock = { - enable = true; - settings = { - general = { - immediate_render = true; - }; - - background = [ - { - monitor = ""; - path = "/etc/nixos/images/pond.jpg"; - } - ]; - - input-field = [ - { - monitor = ""; - size = "300, 30"; - outline_thickness = 0; - dots_size = 0.25; - dots_spacing = 0.55; - dots_center = true; - dots_rounding = -1; - outer_color = "rgba(242, 243, 244, 0)"; - inner_color = "rgba(242, 243, 244, 0)"; - font_color = "rgba(242, 243, 244, 0.75)"; - fade_on_empty = false; - placeholder_text = ""; - hide_input = false; - check_color = "rgba(204, 136, 34, 0)"; - fail_color = "rgba(204, 34, 34, 0)"; - fail_text = "$FAIL ($ATTEMPTS)"; - fail_transition = 300; - capslock_color = -1; - numlock_color = -1; - bothlock_color = -1; - invert_numlock = false; - swap_font_color = false; - position = "0, -468"; - halign = "center"; - valign = "center"; - } - ]; - - label = [ - { - monitor = ""; - text = ''cmd[update:1000] echo "$(date +"%A, %B %d")"''; - color = "rgba(242, 243, 244, 0.75)"; - font_size = 20; - position = "0, 405"; - halign = "center"; - valign = "center"; - } - { - monitor = ""; - text = ''cmd[update:1000] echo "$(date +"%k:%M")"''; - color = "rgba(242, 243, 244, 0.75)"; - font_size = 93; - position = "0, 310"; - halign = "center"; - valign = "center"; - } - { - monitor = ""; - text = "${username}"; - color = "rgba(242, 243, 244, 0.75)"; - font_size = 12; - position = "0, -407"; - halign = "center"; - valign = "center"; - } - { - monitor = ""; - text = "Enter Password"; - color = "rgba(242, 243, 244, 0.75)"; - font_size = 10; - position = "0, -438"; - halign = "center"; - valign = "center"; - } - ]; - - image = [ - { - monitor = ""; - path = "/etc/nixos/images/pf.jpg"; - border_color = "0xffdddddd"; - border_size = 0; - size = 73; - rounding = -1; - rotate = 0; - reload_time = -1; - reload_cmd = ""; - position = "0, -353"; - halign = "center"; - valign = "center"; - } - ]; - }; - }; - }; -} diff --git a/modules/desktop/kde/default.nix b/modules/desktop/kde/default.nix deleted file mode 100644 index d2d37dd..0000000 --- a/modules/desktop/kde/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - - options.nx.desktop.kde.enable = lib.mkEnableOption "Enable kde"; - config = lib.mkIf config.nx.desktop.kde.enable { - services.displayManager.sddm.enable = true; - services.displayManager.sddm.wayland.enable = true; - services.desktopManager.plasma6.enable = true; - - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - elisa - kate - ]; - }; -} diff --git a/modules/desktop/labwc/default.nix b/modules/desktop/labwc/default.nix deleted file mode 100644 index 9f15641..0000000 --- a/modules/desktop/labwc/default.nix +++ /dev/null @@ -1,152 +0,0 @@ -{ - config, - username, - pkgs, - lib, - ... -}: - -let - gruvbox-openbox = pkgs.stdenv.mkDerivation { - pname = "gruvbox-openbox"; - version = "0-unstable-2024-02-14"; - - src = pkgs.fetchFromGitHub { - owner = "nathanielevan"; - repo = "gruvbox-openbox"; - rev = "master"; - hash = "sha256-61BsD/DK6OOJLKwdY03HL1pCG1DJcIE9bsFPAVFfcIY="; - }; - - installPhase = '' - mkdir -p $out/share/themes - cp -r gruvbox-dark $out/share/themes/ - cp -r gruvbox-material-dark $out/share/themes/ - cp -r gruvbox-material-dark-blocks $out/share/themes/ - ''; - }; -in -{ - imports = [ - ./sfwbar.nix - ]; - - options.nx.desktop.labwc.enable = lib.mkEnableOption "Enable labwc"; - config = lib.mkIf config.nx.desktop.labwc.enable { - home-manager.users.${username} = { - home.packages = with pkgs; [ - labwc-tweaks - labwc-gtktheme - gruvbox-material-gtk-theme - gruvbox-dark-icons-gtk - swaybg - wl-clipboard - - gruvbox-openbox - ]; - - services.cliphist.enable = true; - - gtk = { - enable = true; - theme = { - name = "Gruvbox-Material-Dark"; - package = pkgs.gruvbox-material-gtk-theme; - }; - iconTheme = { - name = "Gruvbox-Dark"; - package = pkgs.gruvbox-dark-icons-gtk; - }; - cursorTheme = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; - }; - gtk3.extraConfig = { - gtk-application-prefer-dark-theme = 1; - }; - gtk4.extraConfig = { - gtk-application-prefer-dark-theme = 1; - }; - }; - - services.kanshi = { - enable = true; - profiles = { - home = { - outputs = [ - { - criteria = "DP-1"; - mode = "1920x1080@240"; - position = "1920,0"; - } - ]; - }; - }; - }; - - wayland.windowManager.labwc = { - enable = true; - autostart = [ - "${pkgs.sfwbar}/bin/sfwbar" - "${pkgs.swaybg}/bin/swaybg -m fill -i /home/${username}/Developer/nix/images/pond.jpg & disown" - ]; - environment = [ - "XKB_DEFAULT_LAYOUT=de" - "XCURSOR_SIZE=24" - "XDG_CURRENT_DESKTOP=wlroots" - ]; - - menu = [ - ]; - - rc = { - core = { - decoration = "server"; - gap = 5; - adaptiveSync = "no"; - reuseOutputMode = "yes"; - }; - - theme = { - # "gruvbox-dark", "gruvbox-material-dark", "gruvbox-material-dark-blocks" - name = "gruvbox-material-dark-blocks"; - }; - - keyboard = { - default = true; - keybind = [ - { - "@key" = "W-Return"; - action = { - "@name" = "Execute"; - "@command" = "kitty"; - }; - } - { - "@key" = "W-F4"; - action = { - "@name" = "None"; - }; - } - ]; - }; - - mouse = { - default = true; - context = { - "@name" = "Root"; - mousebind = { - "@button" = "Right"; - "@action" = "Press"; - action = { - "@name" = "ShowMenu"; - "@menu" = "root-menu"; - }; - }; - }; - }; - }; - }; - }; - }; -} diff --git a/modules/desktop/labwc/sfwbar.nix b/modules/desktop/labwc/sfwbar.nix deleted file mode 100644 index 62c4982..0000000 --- a/modules/desktop/labwc/sfwbar.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ - config, - username, - pkgs, - lib, - ... -}: - -{ - options.nx.desktop.sfwbar.enable = lib.mkEnableOption "Enable sfwbar" // { - default = config.nx.desktop.labwc.enable; - }; - - config = lib.mkIf config.nx.desktop.sfwbar.enable { - home-manager.users.${username} = { - home.packages = with pkgs; [ - sfwbar - gtk-layer-shell - ]; - - # CONFIGURATION - xdg.configFile."sfwbar/sfwbar.config".text = '' - # Term setup - Set Term = "foot" - Set ThicknessHint = "20px" - - # Actions - TriggerAction "SIGRTMIN+1", SwitcherEvent "forward" - TriggerAction "SIGRTMIN+2", SwitcherEvent "back" - - # Initialization - Function("SfwbarInit") { - SetLayer "top" - SetMirror "*" - SetExclusiveZone "auto" - } - - # Placer (Window positioning) - placer { - xorigin = 5 - yorigin = 5 - xstep = 5 - ystep = 5 - children = true - } - - # Task Switcher - switcher { - interval = 700 - icons = true - labels = false - cols = 5 - } - - # Load Standard Library Winops - include("${pkgs.sfwbar}/share/sfwbar/winops.widget") - - # Main Layout - layout { - - # Start Menu - include("${pkgs.sfwbar}/share/sfwbar/startmenu.widget") - - # Show Desktop - include("${pkgs.sfwbar}/share/sfwbar/showdesktop.widget") - - # Taskbar - taskbar { - rows = 1 - icons = true - labels = false - sort = false - action[3] = Menu "winops" - action[Drag] = Focus - } - - # Spacer - label { - value = "" - style = "spacer" - } - - # Pager - pager { - rows = 1 - pins = "1","2","3","4" - preview = true - action[Drag] = WorkspaceActivate - } - - # System Monitors - #include("${pkgs.sfwbar}/share/sfwbar/cpu.widget") - #include("${pkgs.sfwbar}/share/sfwbar/memory.widget") - - # Tray - tray { - rows = 1 - } - - # --- MODULES --- - #include("${pkgs.sfwbar}/share/sfwbar/upower.widget") - #include("${pkgs.sfwbar}/share/sfwbar/battery-svg.widget") - - #include("${pkgs.sfwbar}/share/sfwbar/idle.widget") - #include("${pkgs.sfwbar}/share/sfwbar/backlight.widget") - include("${pkgs.sfwbar}/share/sfwbar/volume.widget") - #include("${pkgs.sfwbar}/share/sfwbar/network-module.widget") - #include("${pkgs.sfwbar}/share/sfwbar/sway-lang.widget") - - # Clock - grid { - style = "clock_grid" - label { - value = Time("%H:%M") - tooltip = Time("%H:%M\n%x") - } - } - } - #CSS - - #spacer { - -GtkWidget-hexpand: true; - } - - button#taskbar_item { - padding: 5px; - border-radius: 0px; - border-width: 0px; - -GtkWidget-hexpand: false; - } - - button#taskbar_item:hover { - background-color: rgba(255, 255, 255, 0.1); - } - ''; - }; - }; -} diff --git a/modules/desktop/sway/default.nix b/modules/desktop/sway/default.nix deleted file mode 100644 index 7de94a6..0000000 --- a/modules/desktop/sway/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - config, - username, - lib, - pkgs, - ... -}: - -let - mod = config.home-manager.users.${username}.wayland.windowManager.sway.config.modifier; -in -{ - imports = [ - ./swayidle.nix - ./swaylock.nix - ]; - - options.nx.desktop.sway.enable = lib.mkEnableOption "Enable sway and setup"; - config = lib.mkIf config.nx.desktop.sway.enable { - home-manager.users.${username} = { - home.packages = with pkgs; [ - wmenu - swaybg - sway-contrib.grimshot - wl-clipboard - xdg-utils - ]; - - wayland.windowManager.sway = { - enable = true; - systemd = { - enable = true; - xdgAutostart = true; - }; - config = { - input = { - "*" = { - xkb_layout = "de"; - }; - }; - - output = { - DP-1 = { - resolution = "1920x1080@240Hz"; - bg = "/etc/nixos/images/pond.jpg fill"; - }; - }; - - gaps = { - inner = 15; - }; - - window = { - titlebar = false; - border = 0; - }; - - modifier = "Mod4"; - - keybindings = lib.mkOptionDefault { - "${mod}+q" = "kill"; - "${mod}+Shift+s" = "exec grimshot savecopy area"; - "XF86AudioPlay" = "exec playerctl play-pause"; - "XF86AudioPrev" = "exec playerctl previous"; - "XF86AudioNext" = "exec playerctl next"; - "XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_DEVICE@ +5%"; - "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_DEVICE@ -5%"; - "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_DEVICE@ toggle"; - }; - - menu = "${pkgs.wmenu}/bin/wmenu-run -b -N 000000E6"; - terminal = "${pkgs.foot}/bin/foot"; - defaultWorkspace = "workspace number 1"; - - bars = [ - { - "command" = "${pkgs.waybar}/bin/waybar"; - } - ]; - }; - checkConfig = false; - wrapperFeatures.base = true; - wrapperFeatures.gtk = true; - }; - - home.sessionVariables = { - XDG_CURRENT_DESKTOP = "sway"; - XDG_SCREENSHOTS_DIR = "~/Pictures/Screenshots/"; - }; - - gtk = { - enable = true; - theme = { - name = "Adwaita-dark"; - package = pkgs.gnome-themes-extra; - }; - gtk3.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - gtk4.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - }; - - home.pointerCursor = { - gtk.enable = true; - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; - size = 24; - }; - }; - }; -} diff --git a/modules/desktop/sway/swayidle.nix b/modules/desktop/sway/swayidle.nix deleted file mode 100644 index 0708abc..0000000 --- a/modules/desktop/sway/swayidle.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - config, - lib, - pkgs, - username, - ... -}: - -{ - options.nx.desktop.swayidle.enable = lib.mkEnableOption "Enable swayidle configuration" // { - default = config.nx.desktop.sway.enable; - }; - config = lib.mkIf config.nx.desktop.swayidle.enable { - home-manager.users."${username}" = { - services.swayidle = { - enable = true; - timeouts = [ - { - timeout = 300; - command = "${pkgs.swaylock}/bin/swaylock -f -c 000000"; - } - { - timeout = 600; - command = "${pkgs.sway}/bin/swaymsg 'output * dpms off"; - resumeCommand = "${pkgs.sway}/bin/swaymsg output * dpms on"; - } - { - timeout = 900; - command = "${pkgs.systemd}/bin/systemctl suspend"; - } - ]; - events = [ - { - event = "after-resume"; - command = "${pkgs.sway}/bin/swaymsg output * dpms on"; - } - { - event = "before-sleep"; - command = "${pkgs.swaylock}/bin/swaylock -f -c 000000"; - } - ]; - }; - }; - }; -} diff --git a/modules/desktop/sway/swaylock.nix b/modules/desktop/sway/swaylock.nix deleted file mode 100644 index 66e418b..0000000 --- a/modules/desktop/sway/swaylock.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - username, - lib, - ... -}: - -{ - options.nx.desktop.swaylock.enable = lib.mkEnableOption "Enable and setup swaylock" // { - default = config.nx.desktop.sway.enable; - }; - config = lib.mkIf config.nx.desktop.swaylock.enable { - home-manager.users."${username}" = { - programs.swaylock = { - enable = true; - settings = { - font = "monospace 12"; - color = "00000000"; - ring-color = "ffffffff"; - key-hl-color = "ff0000ff"; - bs-hl-color = "ff0000ff"; - }; - }; - }; - }; -} diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix deleted file mode 100644 index 874b50f..0000000 --- a/modules/desktop/waybar.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ - config, - lib, - username, - ... -}: - -{ - options.nx.desktop.waybar.enable = lib.mkEnableOption "Enable and configure Waybar"; - config = lib.mkIf config.nx.desktop.waybar.enable { - home-manager.users."${username}" = { - programs.waybar = { - enable = true; - settings = { - mainBar = { - height = 32; - layer = "top"; - position = "bottom"; - modules-center = [ "mpris" ]; - modules-left = [ "sway/workspaces" ]; - modules-right = [ - "privacy" - "tray" - "battery" - "pulseaudio" - "network" - "bluetooth" - "clock" - ]; - - mpris = { - format = "{title}"; - tooltip-format = "{artist} - {album}"; - }; - - tray = { - spacing = 10; - }; - - privacy = { - icon-size = 16; - }; - - cpu = { - format = "󰻠"; - tooltip = true; - }; - - memory = { - format = ""; - }; - - temperature = { - critical-threshold = 80; - format = ""; - }; - - network = { - format-disconnect = "󰌙"; - format-ethernet = "󰌘"; - format-wifi = "{icon}"; - format-icons = [ - "󰤟" - "󰤢" - "󰤥" - "󰤨" - ]; - - tooltip-format-wifi = "{essid} | {signalStrength}%"; - tooltip-format-ethernet = "{ifname}"; - }; - - bluetooth = { - format = " {status}"; - format-disabled = ""; - format-no-controller = ""; - format-connected = " {device_alias}"; - tooltip = false; - }; - - clock = { - format-alt = "{:%Y-%m-%d}"; - tooltip-format = "{:%Y-%m-%d | %H:%M}"; - }; - - pulseaudio = { - format = "{icon}"; - format-icons = { - default = [ - "" - "" - "" - ]; - }; - tooltip-format = "{desc} | {volume}%"; - }; - }; - }; - - style = '' - * { - border: none; - border-radius: 0; - font-family: monospace; - font-size: 12px; - background: none; - } - - window#waybar { - background: rgba(0, 0, 0, 0.9); - } - - #workspaces button { - padding-left: 5px; - padding-right: 5px; - } - - #workspaces button.focused { - font-weight: bold; - } - - #clock, #pulseaudio, #tray, #network, #battery, #bluetooth, #cpu, #memory, #temperature, #custom-expand, #group-expand { - padding-left: 10px; - padding-right: 10px; - } - ''; - }; - }; - }; -} -- cgit v1.3.1