{ # https://github.com/Alexays/Waybar/wiki/Module:-Hyprland # https://www.nerdfonts.com/cheat-sheet programs.waybar = { enable = true; systemd.enable = true; settings = { mainBar = { layer = "bottom"; position = "top"; mod = "dock"; exclusive = true; passthrough = false; gtk-layer-shell = true; height = 0; modules-left = [ "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; modules-right = [ "tray" # "custom/updates" "custom/lights" "temperature" "temperature#gpu" "keyboard-state#capslock" "keyboard-state#numlock" "pulseaudio" "pulseaudio#microphone" "clock" "custom/weather" ]; "hyprland/window" = { separate-outputs = true; format = { }; }; "hyprland/workspaces" = { disable-scroll = true; all-outputs = true; on-click = "activate"; persistent_workspaces = { "*" = 1; }; }; "custom/weather" = { tooltip = true; format = { }; interval = 30; exec = "waybar-weather"; return-type = "json"; }; # "custom/updates" = { # tooltip = true; # format = { }; # interval = 30; # exec = "waybar-updates"; # return-type = "json"; # }; "custom/lights" = { tooltip = false; format = "󱉓"; # interval = 30; on-click = "nix-shell /home/matt/.config/waybar/scripts/hass.nix --run \"python /home/matt/.config/waybar/scripts/hass.py --toggle_light light.bedroom_lights\""; # return-type = "json"; }; temperature = { hwmon-path = "/sys/class/hwmon/hwmon4/temp1_input"; critical-threshold = 90; format-critical = "{temperatureC}°C {icon}"; format = "{temperatureC}°C {icon}"; format-icons = [ "" # fa-temperature-empty "" # fa-temperature-quarter "" # fa-temperature-half "" # fa-temperature-three-quarters "" # fa-temperature-full "" # fa-temperature-high ]; tooltip-format = "CPU: {temperatureC}°C"; }; "temperature#gpu" = { hwmon-path = "/sys/class/hwmon/hwmon0/temp1_input"; critical-threshold = 100; format-critical = "{temperatureC}°C {icon}"; format = "{temperatureC}°C {icon}"; format-icons = [ "" # fa-temperature-empty "" # fa-temperature-quarter "" # fa-temperature-half "" # fa-temperature-three-quarters "" # fa-temperature-full "" # fa-temperature-high ]; on-click = "lact"; tooltip-format = "GPU: {temperatureC}°C"; }; tray = { icon-size = 16; spacing = 10; }; clock = { format = "{:%I:%M %p}"; tooltip-format = "{:%Y %B}\n{calendar}"; }; pulseaudio = { format = "{icon} {volume}%"; tooltip = false; format-muted = " Muted"; on-click = "pamixer -t"; on-click-right = "pavucontrol -t 1"; on-scroll-up = "pamixer -i 5"; on-scroll-down = "pamixer -d 5"; scroll-step = 5; format-icons = { headphone = "󰋋"; headphone-muted = "󰟎"; hands-free = "󰋋"; headset = "󰋋"; phone = ""; portable = "󰋋"; car = ""; default = [ "" "" "" "" ]; }; }; "pulseaudio#microphone" = { format = "{format_source}"; format-source = ""; format-source-muted = ""; on-click = "pamixer --default-source -t"; on-click-right = "pavucontrol -t 2"; on-scroll-up = "pamixer --default-source -i 5"; on-scroll-down = "pamixer --default-source -d 5"; scroll-step = 5; }; "keyboard-state#capslock" = { capslock = true; icon-size = 20; format = "{icon}"; format-icons = { locked = "󰪛"; unlocked = " "; }; }; "keyboard-state#numlock" = { numlock = true; icon-size = 60; format = "{icon}"; format-icons = { locked = "󰎣"; unlocked = " "; }; }; }; }; # https://catppuccin.com/palette style = '' @define-color nord0 #2e3440; @define-color nord1 #3b4252; @define-color nord2 #434c5e; @define-color nord3 #4c566a; @define-color nord4 #d8dee9; @define-color nord5 #e5e9f0; @define-color nord6 #eceff4; @define-color nord7 #8fbcbb; @define-color nord8 #88c0d0; @define-color nord9 #81a1c1; @define-color nord10 #5e81ac; @define-color nord11 #bf616a; @define-color nord12 #d08770; @define-color nord13 #ebcb8b; @define-color nord14 #a3be8c; @define-color nord15 #b48ead; /*@import "nord.css";*/ * { font-family: Jetbrains Mono Nerd Font, monospace; font-size: 14px; min-height: 0; } #waybar { background: transparent; color: @nord6; margin: 5px 5px; } #workspaces { padding: 0.5rem 1rem; margin: 5px 0; border-radius: 1rem; background-color: @nord0; opacity: 0.6; margin-left: 1rem; } #workspaces button { color: @nord10; border-radius: 1rem; padding: 0.4rem; } #workspaces button.active { color: @nord8; border-radius: 1rem; } #workspaces button:hover { color: @nord7; border-radius: 1rem; } #workspaces button.focused { color: @nord6; background: @nord13; border-radius: 1rem; } #workspaces button.urgent { color: @nord0; background: @nord6; border-radius: 1rem; } #tooltip { background: @nord0; border-radius: 1rem; border-width: 1rem; border-style: solid; border-color: @nord0; } #window { color: @nord15; background-color: @nord0; opacity: 0.6; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 1rem; margin-left: 6rem; margin-right: 6rem; } #custom-weather { color: @nord10; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 0rem 1rem 1rem 0rem; margin-right: 1rem; } #clock { color: @nord9; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 1rem 0rem 0rem 1rem; margin-left: 1rem; } /* ------------- */ #pulseaudio.microphone { color: @nord8; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 0rem 1rem 1rem 0rem; } #pulseaudio { color: @nord7; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 0; } #keyboard-state.numlock { color: @nord8; background-color: @nord0; padding: 0.5rem; margin: 5px 0; border-radius: 0; font-size: 10rem; } #keyboard-state.capslock { color: @nord9; background-color: @nord0; padding: 0.5rem; margin: 5px 0; border-radius: 0; font-size: 18px; } #temperature.gpu { color: @nord10; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 0; } #temperature { color: @nord9; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 0; } #custom-updates { color: @nord8; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 1rem 0rem 0rem 1rem; margin-left: 1rem; } #custom-lights { color: @nord8; background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; border-radius: 1rem 0rem 0rem 1rem; } /* ------------- */ #tray { background-color: @nord0; padding: 0.5rem 1rem; margin: 5px 0; margin-right: 1rem; border-radius: 1rem; } ''; }; }