From 5a28ef416f6590fb0abd3421cd1817bfc5d4b387 Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Sun, 14 Jan 2024 14:33:20 +0100 Subject: [PATCH] Waybar: use home-manager module --- modules/hm/hyprland.nix | 192 +--------------------------------------- modules/hm/waybar.nix | 110 +++++++++++++++++++++++ 2 files changed, 111 insertions(+), 191 deletions(-) create mode 100644 modules/hm/waybar.nix diff --git a/modules/hm/hyprland.nix b/modules/hm/hyprland.nix index 7897840..da9cc04 100644 --- a/modules/hm/hyprland.nix +++ b/modules/hm/hyprland.nix @@ -5,6 +5,7 @@ ./nautilus.nix ./nemo.nix ./terminator.nix + ./waybar.nix ./wl_update_background.nix ]; @@ -244,195 +245,4 @@ bind = , XF86MonBrightnessUp, exec, brillo -A 10 bind = , XF86MonBrightnessDown, exec, brillo -U 10 ''; - - xdg.configFile."waybar/config.jsonc".text = builtins.toJSON { - layer = "top"; # Waybar at top layer - # "position" = "bottom"; # Waybar position (top|bottom|left|right) - height = 22; # Waybar height (to be removed for auto height) - # "width" = 1280; # Waybar width - # "spacing" = 4; # Gaps between modules (4px) - # Choose the order of the modules - modules-left = [ - "hyprland/workspaces" - "hyprland/window" - ]; - # "modules-center" = ["sway/window"]; - modules-right = [ - # "hyprland/language" - "idle_inhibitor" - # "custom/media" - "pulseaudio" - "network" - "cpu" - "memory" - "temperature" - "keyboard-state" - "battery" - "battery#bat2" - "clock" - "tray" - ]; - keyboard-state = { - "numlock" = true; - "capslock" = true; - "format" = "{name} {icon}"; - "format-icons" = { - "locked" = ""; - "unlocked" = ""; - }; - }; - # "sway/mode"= { - # "format"= "{}" - # }; - # "sway/scratchpad"= { - # "format"= "{icon} {count}"; - # "show-empty"= false; - # "format-icons"= ["" ""]; - # "tooltip"= true; - # "tooltip-format"= "{app}= {title}" - # }; - # "mpd"= { - # "format"= "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% "; - # "format-disconnected"= "Disconnected "; - # "format-stopped"= "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped "; - # "unknown-tag"= "N/A"; - # "interval"= 2; - # "consume-icons"= { - # "on"= " " - # }; - # "random-icons"= { - # "off"= " "; - # "on"= " " - # }; - # "repeat-icons"= { - # "on"= " " - # }; - # "single-icons"= { - # "on"= "1 " - # }; - # "state-icons"= { - # "paused"= ""; - # "playing"= "" - # }; - # "tooltip-format"= "MPD (connected)"; - # "tooltip-format-disconnected"= "MPD (disconnected)" - # }; - "idle_inhibitor" = { - "format" = "{icon}"; - "format-icons" = { - "activated" = ""; - "deactivated" = ""; - }; - }; - "tray" = { - # "icon-size"= 21; - "spacing" = 10; - }; - "clock" = { - # "timezone"= "America/New_York"; - "tooltip-format" = "{=%Y %B}\n{calendar}"; - "format-alt" = "{=%Y-%m-%d}"; - }; - "cpu" = { - "format" = "{usage}% "; - "tooltip" = false; - }; - "memory" = { - "format" = "{}% "; - }; - "temperature" = { - # "thermal-zone"= 2; - # "hwmon-path"= "/sys/class/hwmon/hwmon2/temp1_input"; - "critical-threshold" = 90; - # "format-critical"= "{temperatureC}°C {icon}"; - "format" = "{temperatureC}°C {icon}"; - "format-icons" = [ - # "" - "" - # "" - ]; - }; - "backlight" = { - # "device"= "acpi_video1"; - "format" = "{percent}% {icon}"; - "format-icons" = [ - "" - "" - "" - "" - "" - "" - "" - "" - "" - ]; - }; - "battery" = { - "states" = { - # "good"= 95; - "warning" = 30; - "critical" = 15; - }; - "format" = "{capacity}% {icon}"; - "format-charging" = "{capacity}% "; - "format-plugged" = "{capacity}% "; - "format-alt" = "{time} {icon}"; - # "format-good"= ""; # An empty format will hide the module - # "format-full"= ""; - "format-icons" = [ - "" - "" - "" - "" - "" - ]; - }; - "battery#bat2" = { - "bat" = "BAT2"; - }; - "network" = { - # "interface"= "wlp2*"; # (Optional) To force the use of this interface - "format-wifi" = "{essid} ({signalStrength}%) "; - "format-ethernet" = "{ipaddr}/{cidr} "; - "tooltip-format" = "{ifname} via {gwaddr} "; - "format-linked" = "{ifname} (No IP) "; - "format-disconnected" = "Disconnected ⚠"; - "format-alt" = "{ifname}= {ipaddr}/{cidr}"; - }; - "pulseaudio" = { - # "scroll-step"= 1; # %; can be a float - "format" = "{volume}% {icon} {format_source}"; - "format-bluetooth" = "{volume}% {icon} {format_source}"; - "format-bluetooth-muted" = " {icon} {format_source}"; - "format-muted" = " {format_source}"; - "format-source" = "{volume}% "; - "format-source-muted" = ""; - "format-icons" = { - "headphone" = ""; - "hands-free" = ""; - "headset" = ""; - "phone" = ""; - "portable" = ""; - "car" = ""; - "default" = [ - "" - "" - "" - ]; - }; - "on-click" = "pavucontrol"; - }; - "custom/media" = { - "format" = "{icon} {}"; - "return-type" = "json"; - "max-length" = 40; - "format-icons" = { - "spotify" = ""; - "default" = "🎜"; - }; - "escape" = true; - "exec" = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder - # "exec" = "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" # Filter player based on name - }; - }; } diff --git a/modules/hm/waybar.nix b/modules/hm/waybar.nix new file mode 100644 index 0000000..1b0c8a0 --- /dev/null +++ b/modules/hm/waybar.nix @@ -0,0 +1,110 @@ +{ + programs.waybar = { + enable = true; + systemd.enable = true; + settings = { + mainBar = { + layer = "top"; + height = 22; + modules-left = [ + "hyprland/workspaces" + "hyrpland/window" + ]; + modules-right = [ + # "hyprland/language" + "idle_inhibitor" + # "custom/media" + "pulseaudio" + "network" + "cpu" + "memory" + "temperature" + "keyboard-state" + "backlight" + "battery" + "battery#bat2" + "clock" + "tray" + ]; + + "keyboard-state" = { + "numlock" = true; + "capslock" = true; + "format" = "{name} {icon}"; + "format-icons" = { "locked" = ""; "unlocked" = ""; }; + }; + "idle_inhibitor" = { + "format" = "{icon}"; + "format-icons" = { "activated" = ""; "deactivated" = ""; }; + }; + "tray" = { "spacing" = 10; }; + "clock" = { + "tooltip-format" = "{=%Y %B}\n{calendar}"; + "format-alt" = "{=%Y-%m-%d}"; + }; + "cpu" = { + "format" = "{usage}% "; + "tooltip" = false; + }; + "memory" = { + "format" = "{}% "; + }; + "temperature" = { + # "thermal-zone"= 2; + # "hwmon-path"= "/sys/class/hwmon/hwmon2/temp1_input"; + "critical-threshold" = 90; + "format" = "{temperatureC}°C {icon}"; + "format-icons" = [ "" ]; + }; + "backlight" = { + # "device"= "acpi_video1"; + "format" = "{percent}% {icon}"; + "format-icons" = [ "" "" "" "" "" "" "" "" "" ]; + }; + "battery" = { + "states" = { + # "good"= 95; + "warning" = 30; + "critical" = 15; + }; + "format" = "{capacity}% {icon}"; + "format-charging" = "{capacity}% "; + "format-plugged" = "{capacity}% "; + "format-alt" = "{time} {icon}"; + # "format-good"= ""; # An empty format will hide the module + # "format-full"= ""; + "format-icons" = [ "" "" "" "" "" ]; + }; + "battery#bat2" = { "bat" = "BAT2"; }; + "network" = { + # "interface"= "wlp2*"; # (Optional) To force the use of this interface + "format-wifi" = "{essid} ({signalStrength}%) "; + "format-ethernet" = "{ipaddr}/{cidr} "; + "tooltip-format" = "{ifname} via {gwaddr} "; + "format-linked" = "{ifname} (No IP) "; + "format-disconnected" = "Disconnected ⚠"; + "format-alt" = "{ifname}= {ipaddr}/{cidr}"; + }; + "pulseaudio" = { + # "scroll-step"= 1; # %; can be a float + "format" = "{volume}% {icon} {format_source}"; + "format-bluetooth" = "{volume}% {icon} {format_source}"; + "format-bluetooth-muted" = " {icon} {format_source}"; + "format-muted" = " {format_source}"; + "format-source" = "{volume}% "; + "format-source-muted" = ""; + "format-icons" = { + "headphone" = ""; + "hands-free" = ""; + "headset" = ""; + "phone" = ""; + "portable" = ""; + "car" = ""; + "default" = [ "" "" "" ]; + }; + "on-click" = "pavucontrol"; + }; + }; + }; + }; +}