diff options
Diffstat (limited to 'modules/hosts/desktop')
| -rw-r--r-- | modules/hosts/desktop/cinnamon/default.nix | 27 | ||||
| -rw-r--r-- | modules/hosts/desktop/default.nix | 17 | ||||
| -rw-r--r-- | modules/hosts/desktop/dunst.nix | 47 | ||||
| -rw-r--r-- | modules/hosts/desktop/gnome/default.nix | 33 | ||||
| -rw-r--r-- | modules/hosts/desktop/hyprland/default.nix | 283 | ||||
| -rw-r--r-- | modules/hosts/desktop/kde/default.nix | 26 | ||||
| -rw-r--r-- | modules/hosts/desktop/labwc/default.nix | 296 | ||||
| -rw-r--r-- | modules/hosts/desktop/sway/default.nix | 181 | ||||
| -rw-r--r-- | modules/hosts/desktop/waybar.nix | 119 |
9 files changed, 0 insertions, 1029 deletions
diff --git a/modules/hosts/desktop/cinnamon/default.nix b/modules/hosts/desktop/cinnamon/default.nix deleted file mode 100644 index 5233ad1..0000000 --- a/modules/hosts/desktop/cinnamon/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (lib) mkEnableOption mkIf mkForce; - cfg = config.nx.desktop.cinnamon; -in -{ - options.nx.desktop.cinnamon.enable = mkEnableOption "Enable Cinnamon desktop environment"; - - config = mkIf cfg.enable { - services.xserver.enable = true; - services.xserver.displayManager.lightdm.enable = true; - services.xserver.desktopManager.cinnamon.enable = true; - - services.speechd.enable = mkForce false; - services.orca.enable = mkForce false; - - environment.systemPackages = with pkgs; [ - nemo-preview - ]; - }; -} diff --git a/modules/hosts/desktop/default.nix b/modules/hosts/desktop/default.nix deleted file mode 100644 index 7d7f3ae..0000000 --- a/modules/hosts/desktop/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ useHomeManager ? true, ... }: - -{ - imports = [ - # NixOS-only modules (no home-manager) - ./cinnamon - ./gnome - ./kde - ] ++ (if useHomeManager then [ - # Modules that require home-manager - ./hyprland - ./labwc - ./sway - ./dunst.nix - ./waybar.nix - ] else [ ]); -} diff --git a/modules/hosts/desktop/dunst.nix b/modules/hosts/desktop/dunst.nix deleted file mode 100644 index 4c5f74e..0000000 --- a/modules/hosts/desktop/dunst.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - config, - lib, - pkgs, - username, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.desktop.dunst; -in -{ - options.nx.desktop.dunst.enable = mkEnableOption "Enable dunst notification"; - config = mkIf cfg.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/hosts/desktop/gnome/default.nix b/modules/hosts/desktop/gnome/default.nix deleted file mode 100644 index 268fdc7..0000000 --- a/modules/hosts/desktop/gnome/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.desktop.gnome; -in -{ - options.nx.desktop.gnome.enable = mkEnableOption "Enable GNOME desktop environment"; - - config = mkIf cfg.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/hosts/desktop/hyprland/default.nix b/modules/hosts/desktop/hyprland/default.nix deleted file mode 100644 index 1750a59..0000000 --- a/modules/hosts/desktop/hyprland/default.nix +++ /dev/null @@ -1,283 +0,0 @@ -{ - config, - username, - lib, - pkgs, - ... -}: - -let - inherit (lib) mkEnableOption mkOption mkIf types optionals; - cfg = config.nx.desktop.hyprland; -in -{ - options.nx.desktop.hyprland = { - enable = mkEnableOption "Enable hyprland"; - monitors = mkOption { - type = types.listOf types.str; - default = [ ]; - description = "Monitor configuration strings for Hyprland"; - example = [ "DP-1,highrr,0x0,auto" ]; - }; - lockscreen = { - background = mkOption { - type = types.nullOr types.path; - default = null; - description = "Background image for hyprlock"; - }; - profileImage = mkOption { - type = types.nullOr types.path; - default = null; - description = "Profile image for hyprlock"; - }; - }; - }; - - config = mkIf cfg.enable { - programs.hyprlock.enable = true; - - home-manager.users.${username} = { - home.packages = with pkgs; [ - hyprshot - hyprpicker - ]; - - programs.hyprlock = { - enable = true; - settings = { - general = { - immediate_render = true; - }; - - background = [ - ({ - monitor = ""; - color = "rgba(0, 0, 0, 1.0)"; - } // (if cfg.lockscreen.background != null then { path = "${cfg.lockscreen.background}"; } else { })) - ]; - - 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 <b>($ATTEMPTS)</b>"; - 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"; - } - ] ++ optionals (cfg.lockscreen.profileImage != null) [ - { - 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 = optionals (cfg.lockscreen.profileImage != null) [ - { - monitor = ""; - path = "${cfg.lockscreen.profileImage}"; - border_color = "0xffdddddd"; - border_size = 0; - size = 73; - rounding = -1; - rotate = 0; - reload_time = -1; - reload_cmd = ""; - position = "0, -353"; - halign = "center"; - valign = "center"; - } - ]; - }; - }; - - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = true; - xwayland.enable = true; - settings = { - monitor = if cfg.monitors != [ ] then cfg.monitors else [ ",preferred,auto,auto" ]; - - "$background" = "rgba(000000FF)"; - "$accent" = "rgba(FFFFFFFF)"; - - env = [ - "XCURSOR_SIZE,24" - ]; - - input = { - kb_layout = config.console.keyMap; - follow_mouse = 1; - touchpad = { - natural_scroll = true; - }; - }; - - general = { - gaps_in = 5; - gaps_out = 10; - border_size = 2; - "col.active_border" = "$accent"; - "col.inactive_border" = "$background"; - layout = "dwindle"; - }; - - decoration = { - rounding = 5; - active_opacity = 0.8; - inactive_opacity = 0.7; - - blur = { - enabled = true; - size = 4; - passes = 4; - ignore_opacity = true; - contrast = 1.1; - brightness = 1.0; - }; - }; - - animations = { - enabled = true; - bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; - animation = [ - "windows, 1, 7, myBezier" - "windowsOut, 1, 7, default, popin 80%" - "border, 1, 10, default" - "fade, 1, 7, default" - "workspaces, 1, 6, default" - ]; - }; - - misc = { - disable_hyprland_logo = true; - vrr = 1; - }; - - dwindle = { - pseudotile = true; - preserve_split = true; - }; - - xwayland = { - force_zero_scaling = true; - }; - - "$mod" = "SUPER"; - - bind = [ - "$mod, l, exec, hyprlock" - "$mod, s, exec, hyprshot --mode region" - "$mod, r, exec, wofi --show run" - "$mod, d, exec, wofi --show drun" - "$mod, c, exec, hyprpicker -r -a" - "$mod, return, exec, kitty" - "$mod, q, killactive," - "$mod, m, exit," - "$mod, f, fullscreen" - "$mod, v, togglefloating," - "$mod, P, pseudo," - - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-" - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioNext, exec, playerctl next" - ", XF86AudioPrev, exec, playerctl previous" - ", XF86Audiostop, exec, playerctl stop" - - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" - - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" - "$mod, 0, workspace, 10" - - "$mod SHIFT, 1, movetoworkspace, 1" - "$mod SHIFT, 2, movetoworkspace, 2" - "$mod SHIFT, 3, movetoworkspace, 3" - "$mod SHIFT, 4, movetoworkspace, 4" - "$mod SHIFT, 5, movetoworkspace, 5" - "$mod SHIFT, 6, movetoworkspace, 6" - "$mod SHIFT, 7, movetoworkspace, 7" - "$mod SHIFT, 8, movetoworkspace, 8" - "$mod SHIFT, 9, movetoworkspace, 9" - "$mod SHIFT, 0, movetoworkspace, 10" - - "$mod, mouse_down, workspace, e+1" - "$mod, mouse_up, workspace, e-1" - ]; - - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; - }; - }; - }; - }; -} diff --git a/modules/hosts/desktop/kde/default.nix b/modules/hosts/desktop/kde/default.nix deleted file mode 100644 index d53e1c8..0000000 --- a/modules/hosts/desktop/kde/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.desktop.kde; -in -{ - - options.nx.desktop.kde.enable = mkEnableOption "Enable kde"; - config = mkIf cfg.enable { - services.displayManager.sddm.enable = true; - services.displayManager.sddm.wayland.enable = true; - services.desktopManager.plasma6.enable = true; - security.pam.services.sddm.enableKwallet = true; - - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - elisa - kate - ]; - }; -} diff --git a/modules/hosts/desktop/labwc/default.nix b/modules/hosts/desktop/labwc/default.nix deleted file mode 100644 index b62dbbe..0000000 --- a/modules/hosts/desktop/labwc/default.nix +++ /dev/null @@ -1,296 +0,0 @@ -{ - config, - username, - pkgs, - lib, - ... -}: - -let - inherit (lib) mkEnableOption mkOption mkIf types optional; - cfg = config.nx.desktop.labwc; - - 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 -{ - options.nx.desktop.labwc = { - enable = mkEnableOption "Enable labwc"; - monitors = mkOption { - type = types.attrsOf (types.submodule { - options = { - mode = mkOption { - type = types.str; - description = "Monitor resolution and refresh rate"; - example = "1920x1080@240"; - }; - position = mkOption { - type = types.str; - default = "0,0"; - description = "Monitor position"; - example = "1920,0"; - }; - }; - }); - default = { }; - description = "Monitor configuration for kanshi"; - }; - wallpaper = mkOption { - type = types.nullOr types.path; - default = null; - description = "Wallpaper image path"; - }; - theme = { - gtk = mkOption { - type = types.str; - default = "Gruvbox-Material-Dark"; - description = "GTK theme name"; - }; - icons = mkOption { - type = types.str; - default = "Gruvbox-Dark"; - description = "Icon theme name"; - }; - cursor = mkOption { - type = types.str; - default = "Adwaita"; - description = "Cursor theme name"; - }; - openbox = mkOption { - type = types.str; - default = "gruvbox-material-dark-blocks"; - description = "Openbox/LabWC theme name"; - }; - }; - }; - - config = mkIf cfg.enable { - home-manager.users.${username} = { - home.packages = with pkgs; [ - labwc-tweaks - labwc-gtktheme - gruvbox-material-gtk-theme - gruvbox-dark-icons-gtk - wl-clipboard - sfwbar - gtk-layer-shell - ] ++ optional (cfg.wallpaper != null) swaybg - ++ [ gruvbox-openbox ]; - - services.cliphist.enable = true; - - gtk = { - enable = true; - theme = { - name = cfg.theme.gtk; - package = pkgs.gruvbox-material-gtk-theme; - }; - iconTheme = { - name = cfg.theme.icons; - package = pkgs.gruvbox-dark-icons-gtk; - }; - cursorTheme = { - name = cfg.theme.cursor; - package = pkgs.adwaita-icon-theme; - }; - gtk3.extraConfig = { - gtk-application-prefer-dark-theme = 1; - }; - gtk4.extraConfig = { - gtk-application-prefer-dark-theme = 1; - }; - }; - - services.kanshi = mkIf (cfg.monitors != { }) { - enable = true; - profiles = { - default = { - outputs = lib.mapAttrsToList (name: monitor: { - criteria = name; - mode = monitor.mode; - position = monitor.position; - }) cfg.monitors; - }; - }; - }; - - wayland.windowManager.labwc = { - enable = true; - autostart = [ - "${pkgs.sfwbar}/bin/sfwbar" - ] ++ optional (cfg.wallpaper != null) "${pkgs.swaybg}/bin/swaybg -m fill -i ${cfg.wallpaper} & disown"; - environment = [ - "XKB_DEFAULT_LAYOUT=${config.console.keyMap}" - "XCURSOR_SIZE=24" - "XDG_CURRENT_DESKTOP=wlroots" - ]; - - rc = { - core = { - decoration = "server"; - gap = 5; - }; - - theme = { - name = cfg.theme.openbox; - }; - - 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"; - }; - }; - }; - }; - }; - }; - - # sfwbar 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 - } - - # Tray - tray { - rows = 1 - } - - # Modules - include("${pkgs.sfwbar}/share/sfwbar/volume.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/hosts/desktop/sway/default.nix b/modules/hosts/desktop/sway/default.nix deleted file mode 100644 index b9cec12..0000000 --- a/modules/hosts/desktop/sway/default.nix +++ /dev/null @@ -1,181 +0,0 @@ -{ - config, - username, - lib, - pkgs, - ... -}: - -let - inherit (lib) mkEnableOption mkOption mkIf mkOptionDefault types; - cfg = config.nx.desktop.sway; - mod = "Mod4"; -in -{ - options.nx.desktop.sway = { - enable = mkEnableOption "Enable sway"; - monitors = mkOption { - type = types.attrsOf (types.submodule { - options = { - resolution = mkOption { - type = types.str; - description = "Monitor resolution and refresh rate"; - example = "1920x1080@240Hz"; - }; - position = mkOption { - type = types.str; - default = "0 0"; - description = "Monitor position"; - example = "1920 0"; - }; - }; - }); - default = { }; - description = "Monitor configuration"; - }; - wallpaper = mkOption { - type = types.nullOr types.path; - default = null; - description = "Wallpaper image path"; - }; - }; - - config = mkIf cfg.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 = config.console.keyMap; - }; - }; - - output = lib.mapAttrs (name: monitor: { - resolution = monitor.resolution; - position = monitor.position; - } // (if cfg.wallpaper != null then { bg = "${cfg.wallpaper} fill"; } else { })) cfg.monitors; - - gaps = { - inner = 15; - }; - - window = { - titlebar = false; - border = 0; - }; - - modifier = mod; - - keybindings = 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; - }; - - # swaylock - programs.swaylock = { - enable = true; - settings = { - font = "monospace 12"; - color = "00000000"; - ring-color = "ffffffff"; - key-hl-color = "ff0000ff"; - bs-hl-color = "ff0000ff"; - }; - }; - - # swayidle - 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/hosts/desktop/waybar.nix b/modules/hosts/desktop/waybar.nix deleted file mode 100644 index aebc0f7..0000000 --- a/modules/hosts/desktop/waybar.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ - config, - lib, - username, - ... -}: - -let - inherit (lib) mkEnableOption mkIf; - cfg = config.nx.desktop.waybar; -in -{ - options.nx.desktop.waybar.enable = mkEnableOption "Enable and configure Waybar"; - - config = mkIf cfg.enable { - home-manager.users.${username} = { - programs.waybar = { - enable = true; - settings = { - mainBar = { - height = 32; - layer = "top"; - position = "bottom"; - modules-center = [ "mpris" ]; - modules-left = [ "wlr/workspaces" ]; - modules-right = [ - "privacy" - "tray" - "battery" - "pulseaudio" - "network" - "bluetooth" - "clock" - ]; - - mpris = { - format = "{title}"; - tooltip-format = "{artist} - {album}"; - }; - - tray = { - spacing = 10; - }; - - privacy = { - icon-size = 16; - }; - - 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}"; - }; - - 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 { - padding-left: 10px; - padding-right: 10px; - } - ''; - }; - }; - }; -} |
