{ lib, config, ... }: let theme = "dark"; in { home.file.".config/waybar/custom/htt.sh".text = '' #!/bin/bash if htt $HOME/.cache/htt/rules -q | grep float > /dev/null; then echo '{"text": "", "class": "running", "tooltip": "Floating mode"}' else echo '{"text": "", "class": "stopped", "tooltip": "Tiling mode"}' fi ''; home.file.".config/waybar/custom/hyprsunset.sh".text = '' #!/bin/bash if pgrep -x hyprsunset > /dev/null; then echo '{"text": "", "class": "running", "tooltip": "Night mode on"}' else echo '{"text": "", "class": "stopped", "tooltip": "Night mode off"}' fi ''; home.file.".config/waybar/config.jsonc".text = '' // -*- mode: jsonc -*- [{ "layer": "bottom", // Waybar at top layer "position": "top", // Waybar position (top|bottom|left|right) "height": 40, // Waybar height (to be removed for auto height) // "width": 1280, // Waybar width "spacing": 0, // Gaps between modules (4px) "reload_style_on_change": true, // Choose the order of the modules "modules-left": [ "custom/swaync", "custom/htt", "power-profiles-daemon", "backlight", "battery", "gamemode" ], "modules-center": [ "clock" ], "modules-right": [ //"cpu", //"memory", //"temperature", //"keyboard-state", "custom/wtf", "tray", "network", "bluetooth", "wireplumber", "idle_inhibitor", "custom/hyprsunset", "privacy" ], // Modules configuration // "sway/workspaces": { // "disable-scroll": true, // "all-outputs": true, // "warp-on-scroll": false, // "format": "{name}: {icon}", // "format-icons": { // "1": "", // "2": "", // "3": "", // "4": "", // "5": "", // "urgent": "", // "focused": "", // "default": "" // } // }, "keyboard-state": { "numlock": false, "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": 5, "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": "" }, "tooltip-format-activated": "Idle inhibition active", "tooltip-format-deactivated": "Idle inhibition inactive" }, "tray": { // "icon-size": 21, "spacing": 10, // "icons": { // "blueman": "bluetooth", // "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png" // } }, "clock": { // "timezone": "America/New_York", "tooltip-format": "{:%Y %B}{:%Y-%m-%d}\n{calendar}", "tooltip": false, "format": "{:%H:%M | %m-%d}", "on-click": "gnome-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": 99, // "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-full": "{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": "battery_hid_04o4boedoeco58o7a_battery", "format": " {capacity}%" }, "power-profiles-daemon": { "format": "{icon}", "tooltip-format": "Power profile: {profile}\nDriver: {driver}", "tooltip": true, "format-icons": { "default": "", "performance": "", "balanced": "", "power-saver": "" } }, "network": { "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" }, "wireplumber": { "on-click": "pwvucontrol" }, "custom/media": { "format": "{icon} {text}", "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 }, "custom/power": { "format" : "⏻ ", "tooltip": false, "menu": "on-click", "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder "menu-actions": { "shutdown": "shutdown", "reboot": "reboot", "suspend": "systemctl suspend", "hibernate": "systemctl hibernate" } }, "custom/nwg-menu": { //"format" : "", "format" : "", "tooltip-format": "App Launcher", "on-click": "/usr/bin/nwg-menu -va top -cmd-lock \"hyprlock\" -cmd-logout \"hyprctl dispatch exit\" -cmd-restart \"reboot\" -cmd-shutdown \"shutdown now\" -ml 10 -mt 10 -term \"kitty\"" }, "bluetooth": { "format-disabled": " Disabled", "format-off": " Off", "format-on": " On", "format-connected": " Connected", "on-click": "/usr/bin/blueman-manager" }, "custom/bluetooth": { "format" : "", "on-click": "/usr/bin/blueman-manager" }, "custom/separator": { "format": "|", "tooltip": false }, "custom/firefox": { "format" : " ", "on-click": "/usr/bin/firefox" }, "custom/filemanager": { "format" : " ", "on-click": "/usr/bin/thunar" }, "custom/steam": { "format" : " ", "on-click": "/usr/bin/steam-native" }, "custom/emacs": { "format" : " ", "on-click": "/usr/bin/emacs" }, "privacy": { "modules": [ {"type": "screenshare"}, {"type": "audio-in"} ] }, "custom/swaync": { "tooltip": false, "format": "{icon}", "format-icons": { //"notification": "", "notification": "", "none": "", "dnd-notification": "", "dnd-none": "", "inhibited-notification": "", "inhibited-none": "", "dnd-inhibited-notification": "", "dnd-inhibited-none": "" }, "return-type": "json", "exec-if": "which swaync-client", "exec": "swaync-client -swb", "on-click": "swaync-client -t -sw", "on-scroll-up": "swaync-client -t -sw", "on-click-right": "swaync-client -d -sw", "escape": true }, "custom/hyprsunset": { "format": "{}", "return-type": "json", "tooltip": true, "exec": "~/.config/waybar/custom/hyprsunset.sh", "interval": 1, "on-click": "if pgrep hyprsunset > /dev/null; then pkill hyprsunset; else hyprsunset -t 4000 -g 70 & fi", "exec-on-event": true }, "custom/htt": { "format": "{}", "return-type": "json", "tooltip": true, "exec": "~/.config/waybar/custom/htt.sh", "interval": 1, "on-click": "htt ~/.cache/htt/rules", "exec-on-event": true }, "custom/options": { "format": "", "tooltip": false }, "group/tray-stuff": { "orientation": "inherit", "modules": [ "custom/options", "gamemode", "tray", "backlight", "battery", "network", "bluetooth", "wireplumber", "idle_inhibitor", "custom/hyprsunset" ], "drawer": { "transition-duration": 500, "transition-left-to-right": false } }, "custom/wtf": { "format": "?", "tooltip": true, "tooltip-format": "Windows + D:\t\tAlkalmazások\nWindows + Q:\t\tBezárás\nWindows + E:\t\tFájlkezelő\nWindows + F:\t\tFullscreen\nWindows + katt + egér:\tAblak mozgatása\nWindows + X:\t\tKikapcsolás\nWindows + Enter:\tTerminál" }, "Hyprland:/workspaces": { "format": "{icon}", "format-icons": { "active": "●", "empty": "○", "persistent": "●", "default": "●", "urgent": "!" }, "persistent-workspaces": { "*": 5 } } }, { "layer": "bottom", // Waybar at top layer "position": "bottom", // Waybar position (top|bottom|left|right) "height": 40, // Waybar height (to be removed for auto height) // "width": 1280, // Waybar width "spacing": 0, // Gaps between modules (4px) "reload_style_on_change": true, // Choose the order of the modules "modules-center": [ "hyprland/workspaces" ], "hyprland/workspaces": { "format": "{icon}", "format-icons": { "active": "●", "empty": "○", "persistent": "●", "default": "●", "urgent": "!" }, "persistent-workspaces": { "*": 5 } } }] ''; home.file.".config/waybar/style_dark.css".text = '' /*ACCENT COLOR: rgba(55, 87, 86, 1)*/ * { /* `otf-font-awesome` is required to be installed for icons */ font-family: Monocraft, Ubuntu, Roboto, Helvetica, Arial, sans-serif; font-size: 14px; } window#waybar { /*background-color: #1D1D20;*/ /*border-bottom: 3px solid rgba(100, 114, 125, 0.5);*/ background-color: transparent; color: #EBDBB2; transition-property: background-color; transition-duration: .5s; /*box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px, rgba(0, 0, 0, 0.23) 0px 3px 6px;*/ } window#waybar.hidden { opacity: 0.2; } /* window#waybar.empty { background-color: transparent; } window#waybar.solo { background-color: #FFFFFF; } */ window#waybar.termite { background-color: #3F3F3F; } window#waybar.chromium { background-color: #000000; border: none; } button { /* Use box-shadow instead of border so the text isn't offset */ box-shadow: inset 0 -3px transparent; /* Avoid rounded borders under each button name */ border: none; border-radius: 0; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ button:hover { background: inherit; box-shadow: inset 0 -3px #EADAB0; } /* you can set a style on hover for any module like this */ #pulseaudio:hover { background-color: #424246 } #workspaces button { padding: 0 5px; background-color: transparent; color: #999897; } #workspaces button.urgent { background-color: #CC241D; color: #E49696; } #mode { background-color: #64727D; box-shadow: inset 0 -3px #ffffff; } #pulseaudio, #battery, #cpu, #memory, #disk, #temperature, #backlight, #network, #wireplumber, #custom-media, #custom-wtf, #gamemode, #privacy-item.screenshare, #custom-options, #privacy-item.audio-in, #tray, #mode, #idle_inhibitor, #scratchpad, #power-profiles-daemon, #mpd, #custom-nwg-menu, #custom-bluetooth, #bluetooth, #custom-hyprsunset, #custom-swaync, #custom-htt, #workspaces button, #keyboard-state { padding: 0 15px; border-radius: 0px; min-width: 15px; } #battery { background-color: transparent; box-shadow: inset 0 3px #98971A; color: #98971A; } #battery:hover { background-color: #98971A; color: #CBCB8E; } #backlight { background-color: transparent; color: #D79921; box-shadow: inset 0 3px #D79921; } #backlight:hover { background-color: #D79921; color: #ECCE92; } #custom-wtf { color: #EADAB0; } #custom-wtf:hover { background-color: rgba(234, 218, 176, 0.1) } #tray { background-color: transparent; color: #CC241D; box-shadow: inset 0 3px #CC241D; } #network { background-color: transparent; box-shadow: inset 0 3px #98971A; color: #98971A; } #network:hover { background-color: #98971A; color: #CBCB8E; } #gamemode { background-color: transparent; color: #98971A; box-shadow: inset 0 3px #98971A; } #gamemode:hover { background-color: #98971A; color: #CBCB8E; } #bluetooth { background-color: transparent; color: #D79921; box-shadow: inset 0 3px #D79921; } #bluetooth:hover { background-color: #D79921; color: #ECCE92; } #wireplumber { background-color: transparent; color: #458588; box-shadow: inset 0 3px #458588; } #wireplumber:hover { background-color: #458588; color: #A3C3C4; } #power-profiles-daemon { background-color: transparent; color: #458588; box-shadow: inset 0 3px #458588; } #power-profiles-daemon:hover { background-color: #458588; color: #A3C3C4; } #idle_inhibitor { background-color: transparent; color: #B16286; box-shadow: inset 0 3px #B16286; } #idle_inhibitor:hover { background-color: #B16286; color: #DAB4C4; } #custom-hyprsunset { background-color: transparent; color: #689D6A; box-shadow: inset 0 3px #689D6A; } #custom-hyprsunset:hover { background-color: #689D6A; color: #B6CFB7; } #custom-htt { background-color: transparent; color: #B16286; box-shadow: inset 0 3px #B16286; } #custom-htt:hover { background-color: #B16286; color: #DAB4C4; } #custom-swaync { background-color: transparent; color: #689D6A; box-shadow: inset 0 3px #689D6A; } #custom-swaync:hover { background-color: #689D6A; color: #B6CFB7; } #clock { color: #EADAB0; } #workspaces button { color: #EADAB0; } #workspaces button.active { background-color: transparent; color: #EADAB0; box-shadow: inset 0 -3px #EADAB0; } /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { margin-left: 0; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { margin-right: 0; } @keyframes blink { to { background-color: #ffffff; color: #000000; } } label:focus { background-color: #000000; } #cpu { background-color: #2E2E32; color: #FFFFFF; } #memory { background-color: #2E2E32; } #disk { background-color: #2E2E32; } #network.disconnected { background-color: #D62F36; } #pulseaudio.muted { background-color: #D62F36; color: #2a5c45; } #wireplumber.muted { background-color: #f53c3c; } #custom-media { background-color: #66cc99; color: #2a5c45; min-width: 100px; } #custom-media.custom-spotify { background-color: #66cc99; } #custom-media.custom-vlc { background-color: #ffa000; } #temperature { background-color: #2E2E32; } #temperature.critical { background-color: #D62F36; } #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; background-color: #eb4d4b; } #mpd { background-color: #66cc99; color: #2a5c45; } #mpd.disconnected { background-color: #f53c3c; } #mpd.stopped { background-color: #90b1b1; } #mpd.paused { background-color: #51a37a; } #language { background: #00b093; color: #740864; padding: 0 5px; margin: 0 5px; min-width: 16px; } #keyboard-state { /*background: #97e1ad;*/ background-color: #2E2E32; } /*#keyboard-state > label { padding: 0 5px; }*/ /*#keyboard-state > label.locked { background: rgba(0, 0, 0, 0.2); }*/ #scratchpad { background: rgba(0, 0, 0, 0.2); } #scratchpad.empty { background-color: transparent; } #privacy-item.screenshare { color: #689D6A; background-color: transparent; box-shadow: inset 0 3px #689D6A; } #privacy-item.audio-in { color: #689D6A; background-color: transparent; box-shadow: inset 0 3px #689D6A; } #privacy-item.audio-out { color: #689D6A; background-color: transparent; box-shadow: inset 0 3px #689D6A; } ''; home.file.".config/waybar/style_light.css".text = '' /*ACCENT COLOR: rgba(55, 87, 86, 1)*/ * { /* `otf-font-awesome` is required to be installed for icons */ font-family: Monocraft, Ubuntu, Roboto, Helvetica, Arial, sans-serif; font-size: 14px; } window#waybar { /*background-color: #1D1D20;*/ /*border-bottom: 3px solid rgba(100, 114, 125, 0.5);*/ background-color: transparent; color: #EBDBB2; transition-property: background-color; transition-duration: .5s; /*box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px, rgba(0, 0, 0, 0.23) 0px 3px 6px;*/ } window#waybar.hidden { opacity: 0.2; } /* window#waybar.empty { background-color: transparent; } window#waybar.solo { background-color: #FFFFFF; } */ window#waybar.termite { background-color: #3F3F3F; } window#waybar.chromium { background-color: #000000; border: none; } button { /* Use box-shadow instead of border so the text isn't offset */ box-shadow: inset 0 -3px transparent; /* Avoid rounded borders under each button name */ border: none; border-radius: 0; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ button:hover { background: inherit; box-shadow: inset 0 -3px #282828; } /* you can set a style on hover for any module like this */ #pulseaudio:hover { background-color: #424246 } #workspaces button { padding: 0 5px; background-color: transparent; color: #999897; } #workspaces button.urgent { background-color: #9D0006; color: #E49696; } #mode { background-color: #64727D; box-shadow: inset 0 -3px #ffffff; } #pulseaudio, #battery, #cpu, #memory, #disk, #temperature, #backlight, #network, #wireplumber, #custom-media, #custom-wtf, #gamemode, #privacy-item.screenshare, #custom-options, #privacy-item.audio-in, #tray, #mode, #idle_inhibitor, #scratchpad, #power-profiles-daemon, #mpd, #custom-nwg-menu, #custom-bluetooth, #bluetooth, #custom-hyprsunset, #custom-swaync, #custom-htt, #workspaces button, #keyboard-state { padding: 0 15px; border-radius: 0px; min-width: 15px; } #battery { background-color: transparent; box-shadow: inset 0 3px #79740E; color: #79740E; } #battery:hover { background-color: #79740E; color: #CBCB8E; } #backlight { background-color: transparent; color: #B57614; box-shadow: inset 0 3px #B57614; } #backlight:hover { background-color: #B57614; color: #ECCE92; } #custom-wtf { color: #282828 } #custom-wtf:hover { background-color: rgba(40, 40, 40, 0.1) } #tray { background-color: transparent; color: #9D0006; box-shadow: inset 0 3px #9D0006; } #network { background-color: transparent; box-shadow: inset 0 3px #79740E; color: #79740E; } #network:hover { background-color: #79740E; color: #CBCB8E; } #gamemode { background-color: transparent; color: #79740E; box-shadow: inset 0 3px #79740E; } #gamemode:hover { background-color: #79740E; color: #CBCB8E; } #bluetooth { background-color: transparent; color: #B57614; box-shadow: inset 0 3px #B57614; } #bluetooth:hover { background-color: #B57614; color: #ECCE92; } #wireplumber { background-color: transparent; color: #076678; box-shadow: inset 0 3px #076678; } #wireplumber:hover { background-color: #076678; color: #A3C3C4; } #power-profiles-daemon { background-color: transparent; color: #076678; box-shadow: inset 0 3px #076678; } #power-profiles-daemon:hover { background-color: #076678; color: #A3C3C4; } #idle_inhibitor { background-color: transparent; color: #8F3F71; box-shadow: inset 0 3px #8F3F71; } #idle_inhibitor:hover { background-color: #8F3F71; color: #DAB4C4; } #custom-hyprsunset { background-color: transparent; color: #427B58; box-shadow: inset 0 3px #427B58; } #custom-hyprsunset:hover { background-color: #427B58; color: #B6CFB7; } #custom-htt { background-color: transparent; color: #8F3F71; box-shadow: inset 0 3px #8F3F71; } #custom-htt:hover { background-color: #8F3F71; color: #DAB4C4; } #custom-swaync { background-color: transparent; color: #427B58; box-shadow: inset 0 3px #427B58; } #custom-swaync:hover { background-color: #427B58; color: #B6CFB7; } #clock { color: #282828; } #workspaces button { color: #282828; } #workspaces button.active { background-color: transparent; color: #282828; box-shadow: inset 0 -3px #282828; } /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { margin-left: 0; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { margin-right: 0; } @keyframes blink { to { background-color: #ffffff; color: #000000; } } label:focus { background-color: #000000; } #cpu { background-color: #2E2E32; color: #FFFFFF; } #memory { background-color: #2E2E32; } #disk { background-color: #2E2E32; } #network.disconnected { background-color: #D62F36; } #pulseaudio.muted { background-color: #D62F36; color: #2a5c45; } #wireplumber.muted { background-color: #f53c3c; } #custom-media { background-color: #66cc99; color: #2a5c45; min-width: 100px; } #custom-media.custom-spotify { background-color: #66cc99; } #custom-media.custom-vlc { background-color: #ffa000; } #temperature { background-color: #2E2E32; } #temperature.critical { background-color: #D62F36; } #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; background-color: #eb4d4b; } #mpd { background-color: #66cc99; color: #2a5c45; } #mpd.disconnected { background-color: #f53c3c; } #mpd.stopped { background-color: #90b1b1; } #mpd.paused { background-color: #51a37a; } #language { background: #00b093; color: #740864; padding: 0 5px; margin: 0 5px; min-width: 16px; } #keyboard-state { /*background: #97e1ad;*/ background-color: #2E2E32; } /*#keyboard-state > label { padding: 0 5px; }*/ /*#keyboard-state > label.locked { background: rgba(0, 0, 0, 0.2); }*/ #scratchpad { background: rgba(0, 0, 0, 0.2); } #scratchpad.empty { background-color: transparent; } #privacy-item.screenshare { color: #427B58; background-color: transparent; box-shadow: inset 0 3px #427B58; } #privacy-item.audio-in { color: #427B58; background-color: transparent; box-shadow: inset 0 3px #427B58; } #privacy-item.audio-out { color: #427B58; background-color: transparent; box-shadow: inset 0 3px #427B58; } ''; home.file.".config/waybar/style.css".source = config.home.file.".config/waybar/style_${theme}.css".source; }