diff --git a/modules/hm/hyprland.nix b/modules/hm/hyprland.nix index e45983f..94b6d03 100644 --- a/modules/hm/hyprland.nix +++ b/modules/hm/hyprland.nix @@ -241,4 +241,195 @@ 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 + }; + }; }