From 0e2068b4c69ff3ee8b2ded2487e4ede2ea3c696b Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Tue, 11 Jun 2024 21:32:46 -0400 Subject: [PATCH] hyprland/sway; move waybar config to waybar module --- homeManagerModules/apps/waybar/default.nix | 321 +++++++++--------- .../desktop/hyprland/default.nix | 13 +- homeManagerModules/desktop/sway/default.nix | 15 +- 3 files changed, 170 insertions(+), 179 deletions(-) diff --git a/homeManagerModules/apps/waybar/default.nix b/homeManagerModules/apps/waybar/default.nix index 9d73e3dd..d143b488 100644 --- a/homeManagerModules/apps/waybar/default.nix +++ b/homeManagerModules/apps/waybar/default.nix @@ -5,6 +5,171 @@ ... }: { config = lib.mkIf config.alyraffauf.apps.waybar.enable { + programs.waybar = { + enable = true; + settings = { + mainBar = { + height = 32; + layer = "top"; + output = ["*"]; + position = "top"; + modules-left = + lib.optionals (config.alyraffauf.desktop.hyprland.enable) + ["hyprland/workspaces" "hyprland/submap"] + ++ lib.optionals (config.alyraffauf.desktop.sway.enable) + ["sway/workspaces" "sway/scratchpad" "sway/mode"] + ++ lib.optionals (config.alyraffauf.desktop.hyprland.tabletMode.menuButton) + ["custom/menu" "custom/hyprland-close"]; + modules-center = ["clock"]; + modules-right = [ + "tray" + "group/hardware" + ]; + "hyprland/workspaces" = { + "all-outputs" = true; + "format" = "{icon} {name}"; + "format-icons" = { + "default" = "󰝥"; + "active" = "󰪥"; + }; + "sort-by" = "id"; + }; + "hyprland/submap" = { + "on-click" = ''${lib.getExe' + config.wayland.windowManager.hyprland.package "hyprctl"} dispatch submap reset''; + }; + "hyprland/window" = { + "format" = ""; + "max-length" = 100; + "separate-outputs" = true; + "icon" = true; + }; + "sway/workspaces" = { + "all-outputs" = true; + "format" = "{icon} {name}"; + "format-icons" = { + "default" = "󰝥"; + "focused" = "󰪥"; + }; + "sort-by" = "id"; + }; + "sway/mode" = { + "on-click" = ''${lib.getExe' config.wayland.windowManager.sway.package "swaymsg"} mode default''; + }; + "sway/window" = { + "max-length" = 100; + }; + "sway/scratchpad" = { + "format" = "{icon} {count}"; + "show-empty" = false; + "format-icons" = ["" ""]; + "tooltip" = true; + "tooltip-format" = "{app}: {title}"; + }; + "custom/sway-close" = { + "on-click" = ''${lib.getExe' + config.wayland.windowManager.sway.package "swaymsg"} kill''; + "format" = "󰅗"; + }; + "custom/hyprland-close" = { + "on-click" = ''${lib.getExe' + config.wayland.windowManager.hyprland.package "hyprctl"} dispatch killactive''; + "format" = "󰅗"; + }; + "river/window" = { + "max-length" = 100; + }; + "river/tags" = { + "num-tags" = 4; + }; + "clock" = { + "tooltip-format" = "{:%Y-%m-%d | %H:%M}"; + "interval" = 60; + "format" = "{:%I:%M%p}"; + }; + "battery" = { + "states" = {"critical" = 20;}; + "format" = "{icon}"; + "format-icons" = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + "tooltip-format" = '' + {capacity}%: {timeTo}. + Draw: {power} watts.''; + }; + "inhibitor" = { + "what" = "sleep"; + "format" = "{icon}"; + "format-icons" = { + "activated" = ""; + "deactivated" = ""; + }; + }; + "bluetooth" = { + "format" = "󰂯"; + "format-disabled" = ""; # an empty format will hide the module + "format-connected" = "󰂯 {num_connections} connected"; + "tooltip-format" = "{controller_alias} {controller_address}"; + "tooltip-format-connected" = '' + {controller_alias} {controller_address} + + {device_enumerate}''; + "tooltip-format-enumerate-connected" = "{device_alias} {device_address}"; + "on-click" = lib.getExe' pkgs.blueberry "blueberry"; + }; + "pulseaudio" = { + "format" = "{icon}"; + "format-bluetooth" = "{volume}% {icon}󰂯"; + "format-muted" = ""; + "format-icons" = { + "headphones" = "󰋋"; + "handsfree" = "󰋎"; + "headset" = "󰋎"; + "default" = ["" "" ""]; + }; + "scroll-step" = 5; + "ignored-sinks" = ["Easy Effects Sink"]; + "on-click" = "${lib.getExe pkgs.pavucontrol} -t 3"; + }; + "network" = { + "format-wifi" = "{icon}"; + "format-ethernet" = "󰈀"; + "format-disconnected" = "⚠"; + "format-icons" = ["󰤟" "󰤢" "󰤥" "󰤨"]; + "tooltip-format" = "{ifname} via {gwaddr} 󰊗"; + "tooltip-format-wifi" = "{essid} ({signalStrength}%) {icon}"; + "tooltip-format-ethernet" = "{ifname} "; + "tooltip-format-disconnected" = "Disconnected"; + "on-click" = "${config.alyraffauf.defaultApps.terminalEditor.exe} --class nmtui -e ${pkgs.networkmanager}/bin/nmtui"; + }; + "tray" = {"spacing" = 15;}; + "custom/logout" = { + "on-click" = "${lib.getExe pkgs.wlogout}"; + "format" = "󰗽"; + }; + "custom/menu" = { + "on-click" = "${lib.getExe pkgs.nwg-drawer} -mt 5"; + "format" = "󰀻"; + }; + "power-profiles-daemon" = { + "format" = "{icon}"; + "tooltip-format" = '' + Profile: {profile} + Driver: {driver}''; + "tooltip" = true; + "format-icons" = { + "default" = "󱐌"; + "performance" = "󱐌"; + "balanced" = "󰗑"; + "power-saver" = "󰌪"; + }; + }; + "group/hardware" = { + "orientation" = "horizontal"; + modules = ["pulseaudio" "power-profiles-daemon" "battery" "custom/logout"]; + }; + }; + }; + }; + xdg.configFile."waybar/style.css".text = '' * { border: none; @@ -105,161 +270,5 @@ background: rgba(231, 130, 132, 0.8); } ''; - - programs.waybar = { - enable = true; - settings = { - mainBar = { - height = 32; - layer = "top"; - output = ["*"]; - position = "top"; - modules-left = lib.mkDefault []; - modules-center = ["clock"]; - modules-right = [ - "tray" - "group/hardware" - ]; - "hyprland/workspaces" = { - "all-outputs" = true; - "format" = "{icon} {name}"; - "format-icons" = { - "default" = "󰝥"; - "active" = "󰪥"; - }; - "sort-by" = "id"; - }; - "hyprland/submap" = { - "on-click" = ''${lib.getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch submap reset''; - }; - "hyprland/window" = { - "format" = ""; - "max-length" = 100; - "separate-outputs" = true; - "icon" = true; - }; - "sway/workspaces" = { - "all-outputs" = true; - "format" = "{icon} {name}"; - "format-icons" = { - "default" = "󰝥"; - "focused" = "󰪥"; - }; - "sort-by" = "id"; - }; - "sway/mode" = { - "on-click" = ''${lib.getExe' config.wayland.windowManager.sway.package "swaymsg"} mode default''; - }; - "sway/window" = { - "max-length" = 100; - }; - "sway/scratchpad" = { - "format" = "{icon} {count}"; - "show-empty" = false; - "format-icons" = ["" ""]; - "tooltip" = true; - "tooltip-format" = "{app}: {title}"; - }; - "custom/sway-close" = { - "on-click" = ''${lib.getExe' config.wayland.windowManager.sway.package "swaymsg"} kill''; - "format" = "󰅗"; - }; - "custom/hyprland-close" = { - "on-click" = ''${lib.getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch killactive''; - "format" = "󰅗"; - }; - "river/window" = { - "max-length" = 100; - }; - "river/tags" = { - "num-tags" = 4; - }; - "clock" = { - "tooltip-format" = "{:%Y-%m-%d | %H:%M}"; - "interval" = 60; - "format" = "{:%I:%M%p}"; - }; - "battery" = { - "states" = {"critical" = 20;}; - "format" = "{icon}"; - "format-icons" = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; - "tooltip-format" = '' - {capacity}%: {timeTo}. - Draw: {power} watts.''; - }; - "inhibitor" = { - "what" = "sleep"; - "format" = "{icon}"; - "format-icons" = { - "activated" = ""; - "deactivated" = ""; - }; - }; - "bluetooth" = { - "format" = "󰂯"; - "format-disabled" = ""; # an empty format will hide the module - "format-connected" = "󰂯 {num_connections} connected"; - "tooltip-format" = "{controller_alias} {controller_address}"; - "tooltip-format-connected" = '' - {controller_alias} {controller_address} - - {device_enumerate}''; - "tooltip-format-enumerate-connected" = "{device_alias} {device_address}"; - "on-click" = lib.getExe' pkgs.blueberry "blueberry"; - }; - "pulseaudio" = { - "format" = "{icon}"; - "format-bluetooth" = "{volume}% {icon}󰂯"; - "format-muted" = ""; - "format-icons" = { - "headphones" = "󰋋"; - "handsfree" = "󰋎"; - "headset" = "󰋎"; - "default" = ["" "" ""]; - }; - "scroll-step" = 5; - "ignored-sinks" = ["Easy Effects Sink"]; - "on-click" = "${lib.getExe pkgs.pavucontrol} -t 3"; - }; - "network" = { - "format-wifi" = "{icon}"; - "format-ethernet" = "󰈀"; - "format-disconnected" = "⚠"; - "format-icons" = ["󰤟" "󰤢" "󰤥" "󰤨"]; - "tooltip-format" = "{ifname} via {gwaddr} 󰊗"; - "tooltip-format-wifi" = "{essid} ({signalStrength}%) {icon}"; - "tooltip-format-ethernet" = "{ifname} "; - "tooltip-format-disconnected" = "Disconnected"; - "on-click" = "${config.alyraffauf.defaultApps.terminalEditor.exe} --class nmtui -e ${pkgs.networkmanager}/bin/nmtui"; - }; - "tray" = {"spacing" = 15;}; - "custom/logout" = { - "on-click" = "${lib.getExe pkgs.wlogout}"; - "format" = "󰗽"; - }; - "custom/menu" = { - "on-click" = "${lib.getExe pkgs.nwg-drawer} -mt 5"; - "format" = "󰀻"; - }; - "power-profiles-daemon" = { - "format" = "{icon}"; - "tooltip-format" = '' - Profile: {profile} - Driver: {driver}''; - "tooltip" = true; - "format-icons" = { - "default" = "󱐌"; - "performance" = "󱐌"; - "balanced" = "󰗑"; - "power-saver" = "󰌪"; - }; - }; - "group/hardware" = { - "orientation" = "horizontal"; - modules = ["pulseaudio" "power-profiles-daemon" "battery" "custom/logout"]; - }; - }; - }; - }; }; } diff --git a/homeManagerModules/desktop/hyprland/default.nix b/homeManagerModules/desktop/hyprland/default.nix index 9d5619d3..1eadd706 100644 --- a/homeManagerModules/desktop/hyprland/default.nix +++ b/homeManagerModules/desktop/hyprland/default.nix @@ -5,19 +5,8 @@ ... }: { config = lib.mkIf config.alyraffauf.desktop.hyprland.enable { - programs.waybar = { - settings = { - mainBar = { - modules-left = - if config.alyraffauf.desktop.hyprland.tabletMode.menuButton - then ["hyprland/workspaces" "custom/menu" "custom/hyprland-close" "hyprland/submap"] - else ["hyprland/workspaces" "hyprland/submap"]; - }; - }; - }; - wayland.windowManager.hyprland.enable = true; - wayland.windowManager.hyprland.package = pkgs.hyprland; + wayland.windowManager.hyprland.extraConfig = let modifier = "SUPER"; diff --git a/homeManagerModules/desktop/sway/default.nix b/homeManagerModules/desktop/sway/default.nix index 040528db..3e287e31 100644 --- a/homeManagerModules/desktop/sway/default.nix +++ b/homeManagerModules/desktop/sway/default.nix @@ -29,19 +29,12 @@ }; config = lib.mkIf config.alyraffauf.desktop.sway.enable { - programs.waybar = { - settings = { - mainBar = { - modules-left = ["sway/workspaces" "sway/scratchpad" "sway/mode"]; - }; - }; + wayland.windowManager.sway = { + enable = true; + wrapperFeatures.gtk = true; + checkConfig = false; }; - wayland.windowManager.sway.enable = true; - wayland.windowManager.sway.package = pkgs.swayfx; - wayland.windowManager.sway.wrapperFeatures.gtk = true; - wayland.windowManager.sway.checkConfig = false; - alyraffauf.theme.gtk.hideTitleBar = if config.wayland.windowManager.sway.package == pkgs.sway then true