updated waybar config
This commit is contained in:
196
.config/waybar/base.jsonc##hostname.cn-arch
Normal file
196
.config/waybar/base.jsonc##hostname.cn-arch
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
{
|
||||||
|
// Shared defaults & module definitions
|
||||||
|
"layer": "bottom",
|
||||||
|
"position": "bottom",
|
||||||
|
"mod": "dock",
|
||||||
|
"exclusive": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
"passthrough": false,
|
||||||
|
"fixed-center": true,
|
||||||
|
"height": 32,
|
||||||
|
"spacing": 8,
|
||||||
|
// Hyprland
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"icon-size": 26,
|
||||||
|
"spacing": 10,
|
||||||
|
"all-outputs": true,
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace r+1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace r-1",
|
||||||
|
},
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{title}",
|
||||||
|
"max-length": 70,
|
||||||
|
"separate-outputs": false,
|
||||||
|
"tooltip": true,
|
||||||
|
},
|
||||||
|
// System
|
||||||
|
"cpu": {
|
||||||
|
"interval": 5,
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "alacritty -e btop",
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"interval": 11,
|
||||||
|
"format": " {percentage}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "alacritty -e btop",
|
||||||
|
},
|
||||||
|
"disk#nvme0": {
|
||||||
|
"interval": 29,
|
||||||
|
"path": "/",
|
||||||
|
"format": " {percentage_used}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "Root: {used} / {total} ({percentage_used}%)",
|
||||||
|
"on-click": "alacritty -e bash -lc \"df -hT /; echo; sudo btrfs filesystem usage -T / 2>/dev/null || true; read -n1 -r -p 'Press any key...'\"",
|
||||||
|
},
|
||||||
|
"disk#nvme1": {
|
||||||
|
"interval": 29,
|
||||||
|
"path": "/home/cnachtigall/data",
|
||||||
|
"format": " {percentage_used}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "Data: {used} / {total} ({percentage_used}%)",
|
||||||
|
"on-click": "alacritty -e bash -lc \"df -hT /home/cnachtigall/data; echo; sudo btrfs filesystem usage -T /home/cnachtigall/data 2>/dev/null || true; read -n1 -r -p 'Press any key...'\"",
|
||||||
|
},
|
||||||
|
// Media
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {dynamic}",
|
||||||
|
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||||
|
"dynamic-len": 50,
|
||||||
|
"ellipsis": "…",
|
||||||
|
"player-icons": {
|
||||||
|
"default": "▶",
|
||||||
|
"mpv": "🎵",
|
||||||
|
"spotify": "",
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "⏸",
|
||||||
|
},
|
||||||
|
"on-click": "playerctl play-pause",
|
||||||
|
"on-click-right": "playerctl next",
|
||||||
|
"on-click-middle": "playerctl previous",
|
||||||
|
"on-scroll-up": "playerctl position 5+",
|
||||||
|
"on-scroll-down": "playerctl position 5-",
|
||||||
|
"tooltip": true,
|
||||||
|
},
|
||||||
|
// Network / Audio / BT
|
||||||
|
"network": {
|
||||||
|
"format-wifi": " {essid} ({signalStrength}%)",
|
||||||
|
"format-ethernet": " {ifname}",
|
||||||
|
"format-disconnected": " Disconnected",
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{ifname} → {gwaddr}",
|
||||||
|
"on-click": "nm-connection-editor",
|
||||||
|
"on-click-right": "alacritty -e nmtui",
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-muted": " Muted",
|
||||||
|
"scroll-step": 5,
|
||||||
|
"interval": 30,
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "pavucontrol",
|
||||||
|
"on-click-right": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||||
|
"on-click-middle": "bash -lc \"next=$(pactl list short sinks | awk '{print \\$1}' | awk -v cur=$(pactl get-default-sink) '\\$0!=cur{print; exit}'); if [ -n \\\"$next\\\" ]; then pactl set-default-sink $next; notify-send -a waybar 'Audio' 'Switched default sink to '$next; fi\"",
|
||||||
|
"format-icons": {
|
||||||
|
"alsa_output.usb-SteelSeries_Arctis_7_-00.analog-stereo": "",
|
||||||
|
"alsa_output.pci-0000_0a_00.4.iec958-stereo": "",
|
||||||
|
"bluez_output.50_5E_5C_2D_F3_B2.1": "",
|
||||||
|
"default": ["", ""],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"bluetooth": {
|
||||||
|
"format": " {status}",
|
||||||
|
"format-connected": " {device_alias} ({device_battery_percentage}%)",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "blueman-manager",
|
||||||
|
},
|
||||||
|
// Power
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 20,
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-alt": "{icon} {capacity}% ({time})",
|
||||||
|
"format-charging": " {capacity}%",
|
||||||
|
"format-full": " {capacity}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"interval": 15,
|
||||||
|
"format-icons": ["", "", "", "", ""],
|
||||||
|
},
|
||||||
|
"power-profiles-daemon": {
|
||||||
|
"format": " {profile}",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "bash -lc 'cur=$(powerprofilesctl get); case $cur in performance) nxt=balanced;; balanced) nxt=powersave;; *) nxt=performance;; esac; powerprofilesctl set $nxt; notify-send -a waybar \"Power Profile\" \"Switched to $nxt\"'",
|
||||||
|
},
|
||||||
|
// Customs
|
||||||
|
"custom/alhp": {
|
||||||
|
"exec-if": "[ -x $HOME/.config/waybar/scripts/alhp.sh ]",
|
||||||
|
"exec": "$HOME/.config/waybar/scripts/alhp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 60,
|
||||||
|
"signal": 3,
|
||||||
|
"format": "{text}",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "pkill -SIGRTMIN+3 waybar",
|
||||||
|
},
|
||||||
|
"custom/razer-mouse-battery": {
|
||||||
|
"exec-if": "[ -x $HOME/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh ]",
|
||||||
|
"exec": "$HOME/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 30,
|
||||||
|
"signal": 4,
|
||||||
|
"format": "{text}",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "pkill -SIGRTMIN+4 waybar",
|
||||||
|
},
|
||||||
|
"custom/temps": {
|
||||||
|
"exec-if": "command -v sensors >/dev/null",
|
||||||
|
"exec": "bash -lc \"sensors | awk '/Tctl|Tdie|Package id 0/{gsub(/\\+|°C/,\\\"\\\"); print int($2); exit}'\"",
|
||||||
|
"interval": 5,
|
||||||
|
"format": " {output}°C",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "alacritty -e watch -n 1 sensors",
|
||||||
|
},
|
||||||
|
"custom/hyprsunset": {
|
||||||
|
"exec-if": "[ -x $HOME/.config/waybar/scripts/hyprsunset_toggle.sh ]",
|
||||||
|
"exec": "$HOME/.config/waybar/scripts/hyprsunset_toggle.sh --print",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 60,
|
||||||
|
"signal": 5,
|
||||||
|
"format": "{text}",
|
||||||
|
"tooltip": true,
|
||||||
|
// Left click: toggle AUTO on/off (your ask)
|
||||||
|
"on-click": "bash -lc '$HOME/.config/waybar/scripts/hyprsunset_toggle.sh --toggle-auto && pkill -SIGRTMIN+5 waybar'",
|
||||||
|
// Right click: manual on/off (doesn’t touch auto flag)
|
||||||
|
"on-click-right": "bash -lc '$HOME/.config/waybar/scripts/hyprsunset_toggle.sh --toggle && pkill -SIGRTMIN+5 waybar'",
|
||||||
|
// Scroll: fine tune manual temp (useful when AUTO is OFF)
|
||||||
|
"on-scroll-up": "bash -lc 't=$($HOME/.config/waybar/scripts/hyprsunset_toggle.sh --print | sed -n \"s/.* \\([0-9]\\+\\)K.*/\\1/p\"); [ -z \"$t\" ] && t=3800; t=$((t+200)); $HOME/.config/waybar/scripts/hyprsunset_toggle.sh --set $t && pkill -SIGRTMIN+5 waybar'",
|
||||||
|
"on-scroll-down": "bash -lc 't=$($HOME/.config/waybar/scripts/hyprsunset_toggle.sh --print | sed -n \"s/.* \\([0-9]\\+\\)K.*/\\1/p\"); [ -z \"$t\" ] && t=3800; t=$((t-200)); if [ $t -lt 1000 ]; then t=1000; fi; $HOME/.config/waybar/scripts/hyprsunset_toggle.sh --set $t && pkill -SIGRTMIN+5 waybar'",
|
||||||
|
},
|
||||||
|
// Tray / Clock / Privacy
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 18,
|
||||||
|
"spacing": 4,
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%R | %d.%m.%Y}",
|
||||||
|
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||||
|
"calendar": {
|
||||||
|
"mode": "year",
|
||||||
|
"mode-mon-col": 3,
|
||||||
|
"weeks-pos": "right",
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"on-click-right": "mode",
|
||||||
|
"on-scroll-up": "shift_up",
|
||||||
|
"on-scroll-down": "shift_down",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"privacy": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"tooltip": true,
|
||||||
|
},
|
||||||
|
}
|
@@ -1,135 +1,11 @@
|
|||||||
{
|
[
|
||||||
"layer": "bottom",
|
{
|
||||||
"output": [
|
"include": ["base.jsonc", "conf.d/dp2.jsonc"],
|
||||||
"DP-1",
|
|
||||||
"DP-2",
|
|
||||||
"HDMI-A-2"
|
|
||||||
],
|
|
||||||
"position": "bottom",
|
|
||||||
"mod": "dock",
|
|
||||||
"exclusive": true,
|
|
||||||
"gtk-layer-shell": true,
|
|
||||||
"passthrough": false,
|
|
||||||
"height": 32,
|
|
||||||
"modules-left": [
|
|
||||||
"hyprland/workspaces"
|
|
||||||
],
|
|
||||||
"modules-center": [
|
|
||||||
"privacy"
|
|
||||||
],
|
|
||||||
"modules-right": [
|
|
||||||
"cpu",
|
|
||||||
"memory",
|
|
||||||
"disk",
|
|
||||||
"network",
|
|
||||||
"pulseaudio",
|
|
||||||
"bluetooth",
|
|
||||||
"battery",
|
|
||||||
"custom/alhp",
|
|
||||||
"custom/razer-mouse-battery",
|
|
||||||
"tray",
|
|
||||||
"clock",
|
|
||||||
],
|
|
||||||
"hyprland/workspaces": {
|
|
||||||
"icon-size": 28,
|
|
||||||
"spacing": 12,
|
|
||||||
"on-scroll-up": "hyprctl dispatch workspace r+1",
|
|
||||||
"on-scroll-down": "hyprctl dispatch workspace r-1",
|
|
||||||
},
|
},
|
||||||
"cpu": {
|
{
|
||||||
"interval": 5,
|
"include": ["base.jsonc", "conf.d/dp1.jsonc"],
|
||||||
"format": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{usage}%</span>",
|
|
||||||
},
|
},
|
||||||
"memory": {
|
{
|
||||||
"interval": 10,
|
"include": ["base.jsonc", "conf.d/hdmi.jsonc"],
|
||||||
"format": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{percentage}%</span>",
|
|
||||||
"tooltip": true,
|
|
||||||
},
|
},
|
||||||
"disk": {
|
]
|
||||||
"interval": 30,
|
|
||||||
"format": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{percentage_used}%</span>",
|
|
||||||
"tooltip": true,
|
|
||||||
},
|
|
||||||
"mpris": {
|
|
||||||
"format": "{player_icon} {dynamic}",
|
|
||||||
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
|
||||||
"dynamic-len": 50,
|
|
||||||
"ellipsis": "…",
|
|
||||||
"player-icons": {
|
|
||||||
"default": "▶",
|
|
||||||
"mpv": "🎵",
|
|
||||||
},
|
|
||||||
"status-icons": {
|
|
||||||
"paused": "⏸",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"network": {
|
|
||||||
"format-wifi": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{essid} ({signalStrength}%)</span>",
|
|
||||||
"format-ethernet": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{ifname}</span>",
|
|
||||||
"format-disconnected": "<span color=\"#FFCC33\"> Disconnected</span>",
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-format": "<span color=\"#CAD3E8\">{ifname} via {gwaddr}</span>",
|
|
||||||
},
|
|
||||||
"pulseaudio": {
|
|
||||||
"format": "<span color=\"#4F84CC\">{icon}</span> <span color=\"#CAD3E8\">{volume}%</span>",
|
|
||||||
"format-muted": "<span color=\"#FFCC33\"> Muted</span>",
|
|
||||||
"scroll-step": 5,
|
|
||||||
"on-click": "pavucontrol",
|
|
||||||
"interval": 30,
|
|
||||||
"format-icons": {
|
|
||||||
// match these to the sink NAMES you see in `pactl list sinks`
|
|
||||||
"alsa_output.usb-SteelSeries_Arctis_7_-00.analog-stereo": "", // SteelSeries headset
|
|
||||||
"alsa_output.pci-0000_0a_00.4.iec958-stereo": "", // speaker icon for your soundbar
|
|
||||||
"bluez_output.50_5E_5C_2D_F3_B2.1": "", // Bluetooth earbud icon
|
|
||||||
"default": [
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
], // fallback (low/hi)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"bluetooth": {
|
|
||||||
"format": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{status}</span>",
|
|
||||||
"format-connected": "<span color=\"#4F84CC\"></span> <span color=\"#CAD3E8\">{device_alias} ({device_battery_percentage}%)</span>",
|
|
||||||
},
|
|
||||||
"battery": {
|
|
||||||
"states": {
|
|
||||||
"good": 95,
|
|
||||||
"warning": 30,
|
|
||||||
"critical": 20,
|
|
||||||
},
|
|
||||||
"format": "<span color=\"#4F84CC\">{icon}</span> <span color=\"#CAD3E8\">{capacity}%</span>",
|
|
||||||
"format-charging": "<span color=\"#4F84CC\"> {capacity}%</span>",
|
|
||||||
},
|
|
||||||
"custom/alhp": {
|
|
||||||
"exec": "$HOME/.config/waybar/scripts/alhp.sh",
|
|
||||||
"return-type": "json",
|
|
||||||
"interval": 60,
|
|
||||||
"format": "{text}",
|
|
||||||
"tooltip": true,
|
|
||||||
},
|
|
||||||
"custom/razer-mouse-battery": {
|
|
||||||
"exec": "$HOME/.config/waybar/scripts/razer_basilisk_v3_pro_battery_info.sh",
|
|
||||||
"return-type": "json",
|
|
||||||
"interval": 10,
|
|
||||||
"format": "{text}",
|
|
||||||
"tooltip": true,
|
|
||||||
},
|
|
||||||
"tray": {
|
|
||||||
"icon-size": 18,
|
|
||||||
"spacing": 4,
|
|
||||||
},
|
|
||||||
"clock": {
|
|
||||||
"format": "<span color=\"#CAD3E8\">{:%R | %d.%m.%Y}</span>",
|
|
||||||
"tooltip-format": "<tt><span color=\"#CAD3E8\"><small>{calendar}</small></span></tt>",
|
|
||||||
"calendar": {
|
|
||||||
"mode": "year",
|
|
||||||
"mode-mon-col": 3,
|
|
||||||
"weeks-pos": "right",
|
|
||||||
},
|
|
||||||
"actions": {
|
|
||||||
"on-click-right": "mode",
|
|
||||||
"on-scroll-up": "shift_up",
|
|
||||||
"on-scroll-down": "shift_down",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
@@ -1,201 +0,0 @@
|
|||||||
{
|
|
||||||
"layer": "bottom",
|
|
||||||
"position": "bottom",
|
|
||||||
"mod": "dock",
|
|
||||||
"exclusive": true,
|
|
||||||
"gtk-layer-shell": true,
|
|
||||||
"passthrough": false,
|
|
||||||
"height": 30,
|
|
||||||
"modules-left": [
|
|
||||||
"wlr/workspaces"
|
|
||||||
],
|
|
||||||
"modules-center": [
|
|
||||||
"mpris",
|
|
||||||
"privacy"
|
|
||||||
],
|
|
||||||
"modules-right": [
|
|
||||||
"custom/alhp",
|
|
||||||
"cpu",
|
|
||||||
"memory",
|
|
||||||
"disk",
|
|
||||||
"bluetooth",
|
|
||||||
"pulseaudio",
|
|
||||||
"network",
|
|
||||||
"battery",
|
|
||||||
"tray",
|
|
||||||
"clock"
|
|
||||||
],
|
|
||||||
"wlr/workspaces": {
|
|
||||||
"icon-size": 32,
|
|
||||||
"spacing": 16,
|
|
||||||
"on-scroll-up": "hyprctl dispatch workspace r+1",
|
|
||||||
"on-scroll-down": "hyprctl dispatch workspace r-1"
|
|
||||||
},
|
|
||||||
"cpu": {
|
|
||||||
"interval": 5,
|
|
||||||
"format": " {usage}%",
|
|
||||||
"max-length": 10
|
|
||||||
},
|
|
||||||
"disk": {
|
|
||||||
"interval": 30,
|
|
||||||
"format": " {percentage_used}%",
|
|
||||||
"path": "/",
|
|
||||||
"tooltip": true,
|
|
||||||
"unit": "GB",
|
|
||||||
"tooltip-format": "Available {free} of {total}"
|
|
||||||
},
|
|
||||||
"memory": {
|
|
||||||
"interval": 10,
|
|
||||||
"format": " {percentage}%",
|
|
||||||
"max-length": 10,
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-format": "RAM - {used:0.1f}GiB used"
|
|
||||||
},
|
|
||||||
"tray": {
|
|
||||||
"icon-size": 18,
|
|
||||||
"spacing": 3
|
|
||||||
},
|
|
||||||
"clock": {
|
|
||||||
"format": "{:%R | %d.%m.%Y}",
|
|
||||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
|
||||||
"calendar": {
|
|
||||||
"mode": "year",
|
|
||||||
"mode-mon-col": 3,
|
|
||||||
"weeks-pos": "right",
|
|
||||||
"on-scroll": 1,
|
|
||||||
"on-click-right": "mode",
|
|
||||||
"format": {
|
|
||||||
"months": "<span color='#ffead3'><b>{}</b></span>",
|
|
||||||
"days": "<span color='#ecc6d9'><b>{}</b></span>",
|
|
||||||
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
|
|
||||||
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
|
|
||||||
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"actions": {
|
|
||||||
"on-click-right": "mode",
|
|
||||||
"on-click-forward": "tz_up",
|
|
||||||
"on-click-backward": "tz_down",
|
|
||||||
"on-scroll-up": "shift_up",
|
|
||||||
"on-scroll-down": "shift_down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"network": {
|
|
||||||
"format-wifi": "{essid} ({signalStrength}%) {icon}",
|
|
||||||
"format-ethernet": "{ifname}",
|
|
||||||
"format-disconnected": "",
|
|
||||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
|
||||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
|
||||||
"tooltip-format-ethernet": "{ifname} ",
|
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
|
||||||
"format-icons": [
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"battery": {
|
|
||||||
"states": {
|
|
||||||
"good": 95,
|
|
||||||
"warning": 30,
|
|
||||||
"critical": 20
|
|
||||||
},
|
|
||||||
"format": "{icon} {capacity}%",
|
|
||||||
"format-charging": " {capacity}%",
|
|
||||||
"format-plugged": " {capacity}%",
|
|
||||||
"format-alt": "{time} {icon}",
|
|
||||||
"format-icons": [
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"pulseaudio": {
|
|
||||||
"format": "{volume}% {icon} ",
|
|
||||||
"format-bluetooth": "{volume}% {icon} ",
|
|
||||||
"format-muted": " ",
|
|
||||||
"format-icons": {
|
|
||||||
"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
|
|
||||||
"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
|
|
||||||
"headphone": "",
|
|
||||||
"hands-free": "",
|
|
||||||
"headset": "\uF025",
|
|
||||||
"phone": "",
|
|
||||||
"phone-muted": "",
|
|
||||||
"portable": "",
|
|
||||||
"car": "",
|
|
||||||
"default": [
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scroll-step": 5,
|
|
||||||
"on-click": "pwvucontrol",
|
|
||||||
"ignored-sinks": [
|
|
||||||
"Easy Effects Sink"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"privacy": {
|
|
||||||
"icon-spacing": 4,
|
|
||||||
"icon-size": 14,
|
|
||||||
"transition-duration": 250,
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"type": "screenshare",
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-icon-size": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "audio-out",
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-icon-size": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "audio-in",
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-icon-size": 12
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"mpris": {
|
|
||||||
"format": "{player_icon} {dynamic}",
|
|
||||||
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
|
||||||
"dynamic-len": 50,
|
|
||||||
"ellipsis": "…",
|
|
||||||
"player-icons": {
|
|
||||||
"default": "▶",
|
|
||||||
"mpv": "🎵"
|
|
||||||
},
|
|
||||||
"status-icons": {
|
|
||||||
"paused": "⏸"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bluetooth": {
|
|
||||||
"format": " {status}",
|
|
||||||
"on-click": "overskride",
|
|
||||||
"format-connected": " {device_alias}",
|
|
||||||
"format-connected-battery": " {device_alias} {device_battery_percentage}%",
|
|
||||||
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
|
|
||||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
|
|
||||||
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
|
|
||||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
|
|
||||||
},
|
|
||||||
"custom/alhp": {
|
|
||||||
"id": "custom-alhp",
|
|
||||||
"exec": "$HOME/.config/waybar/scripts/alhp.sh",
|
|
||||||
"return-type": "json",
|
|
||||||
"interval": 60,
|
|
||||||
"tooltip": true,
|
|
||||||
"format": "{text}",
|
|
||||||
}
|
|
||||||
}
|
|
136
.config/waybar/scripts/hyprsunset_daemon.sh
Executable file
136
.config/waybar/scripts/hyprsunset_daemon.sh
Executable file
@@ -0,0 +1,136 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
CONF="${XDG_CONFIG_HOME:-$HOME/.config}/hyprsunset/config"
|
||||||
|
STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/hyprsunset"
|
||||||
|
LOG_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/hyprsunset"
|
||||||
|
AUTO_FILE="$STATE_DIR/auto" # "1" = automation ON, "0" = OFF
|
||||||
|
TEMP_FILE="$STATE_DIR/temp" # last manual/night temp persisted
|
||||||
|
MODE_FILE="$STATE_DIR/mode" # "day" or "night"
|
||||||
|
mkdir -p "$STATE_DIR" "$LOG_DIR"
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
LAT="52.5200"; LON="13.4050"
|
||||||
|
TEMP_DAY=6500; TEMP_NIGHT=3800
|
||||||
|
RAMP_DOWN_MIN=45; RAMP_UP_MIN=35
|
||||||
|
STEP_K=100
|
||||||
|
FALLBACK_SUNSET="20:30"; FALLBACK_SUNRISE="06:30"
|
||||||
|
|
||||||
|
# Load config
|
||||||
|
[ -r "$CONF" ] && source "$CONF"
|
||||||
|
|
||||||
|
cmd() { hyprctl dispatch exec "$1" >/dev/null 2>&1 || true; }
|
||||||
|
start_hyprsunset() {
|
||||||
|
local t="$1"
|
||||||
|
echo -n "$t" > "$TEMP_FILE"
|
||||||
|
cmd "hyprsunset -t $t"
|
||||||
|
}
|
||||||
|
stop_hyprsunset() {
|
||||||
|
cmd "hyprsunset -x"
|
||||||
|
pkill -x hyprsunset >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Compute ramp steps between a and b over minutes, step size STEP_K
|
||||||
|
ramp_between() {
|
||||||
|
local from="$1" to="$2" minutes="$3"
|
||||||
|
local step="${STEP_K}"
|
||||||
|
local delta=$(( to - from ))
|
||||||
|
local sign=1
|
||||||
|
(( delta < 0 )) && sign=-1
|
||||||
|
local steps=$(( (delta*sign + step - 1) / step )) # ceil
|
||||||
|
[ "$steps" -lt 1 ] && steps=1
|
||||||
|
local sleep_s=$(( (minutes*60) / steps ))
|
||||||
|
local t="$from"
|
||||||
|
for ((i=1;i<=steps;i++)); do
|
||||||
|
t=$(( from + sign*i*step ))
|
||||||
|
# clamp
|
||||||
|
(( sign == 1 && t > to )) && t="$to"
|
||||||
|
(( sign == -1 && t < to )) && t="$to"
|
||||||
|
start_hyprsunset "$t"
|
||||||
|
sleep "$sleep_s"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
now_hhmm() { date +%H:%M; }
|
||||||
|
sec_until() {
|
||||||
|
# returns seconds until HH:MM tomorrow/ today
|
||||||
|
local target="$1"
|
||||||
|
local now_s=$(date +%s)
|
||||||
|
local tgt_s=$(date -d "$(date +%F) $target" +%s)
|
||||||
|
if (( tgt_s <= now_s )); then
|
||||||
|
tgt_s=$(( tgt_s + 86400 ))
|
||||||
|
fi
|
||||||
|
echo $(( tgt_s - now_s ))
|
||||||
|
}
|
||||||
|
|
||||||
|
have_sunwait() { command -v sunwait >/dev/null 2>&1; }
|
||||||
|
|
||||||
|
# Initialize state defaults if missing
|
||||||
|
[ -r "$AUTO_FILE" ] || echo -n "1" > "$AUTO_FILE" # default: automation ON
|
||||||
|
[ -r "$TEMP_FILE" ] || echo -n "$TEMP_NIGHT" > "$TEMP_FILE"
|
||||||
|
[ -r "$MODE_FILE" ] || echo -n "day" > "$MODE_FILE"
|
||||||
|
|
||||||
|
log() { printf "[hyprsunset] %s\n" "$*" >&2; }
|
||||||
|
|
||||||
|
while :; do
|
||||||
|
# If automation is OFF, just sleep and retry
|
||||||
|
if [ "$(cat "$AUTO_FILE" 2>/dev/null || echo 1)" != "1" ]; then
|
||||||
|
sleep 30
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if have_sunwait; then
|
||||||
|
# Use sunwait to block until the next event
|
||||||
|
# Decide current solar state quickly
|
||||||
|
# sunwait 'day' exits 0 if sun is up; 'night' if down
|
||||||
|
if sunwait day "$LAT" "$LON" >/dev/null 2>&1; then
|
||||||
|
echo -n "day" > "$MODE_FILE"
|
||||||
|
# Wait for sunset, then ramp down
|
||||||
|
log "waiting for SUNSET via sunwait…"
|
||||||
|
sunwait set "$LAT" "$LON" >/dev/null 2>&1
|
||||||
|
[ "$(cat "$AUTO_FILE")" = "1" ] || continue
|
||||||
|
log "SUNSET reached → ramp down ${TEMP_DAY}→${TEMP_NIGHT} over ${RAMP_DOWN_MIN}m"
|
||||||
|
ramp_between "$TEMP_DAY" "$TEMP_NIGHT" "$RAMP_DOWN_MIN"
|
||||||
|
echo -n "night" > "$MODE_FILE"
|
||||||
|
# Stay in night until sunrise
|
||||||
|
log "waiting for SUNRISE via sunwait…"
|
||||||
|
sunwait rise "$LAT" "$LON" >/dev/null 2>&1
|
||||||
|
[ "$(cat "$AUTO_FILE")" = "1" ] || continue
|
||||||
|
log "SUNRISE reached → ramp up ${TEMP_NIGHT}→${TEMP_DAY} over ${RAMP_UP_MIN}m"
|
||||||
|
ramp_between "$TEMP_NIGHT" "$TEMP_DAY" "$RAMP_UP_MIN"
|
||||||
|
echo -n "day" > "$MODE_FILE"
|
||||||
|
else
|
||||||
|
echo -n "night" > "$MODE_FILE"
|
||||||
|
# We are in night → ramp to night if not already, then wait sunrise
|
||||||
|
log "night now → ensure at night temp, then wait SUNRISE"
|
||||||
|
start_hyprsunset "$TEMP_NIGHT"
|
||||||
|
sunwait rise "$LAT" "$LON" >/dev/null 2>&1
|
||||||
|
[ "$(cat "$AUTO_FILE")" = "1" ] || continue
|
||||||
|
log "SUNRISE → ramp up ${TEMP_NIGHT}→${TEMP_DAY} over ${RAMP_UP_MIN}m"
|
||||||
|
ramp_between "$TEMP_NIGHT" "$TEMP_DAY" "$RAMP_UP_MIN"
|
||||||
|
echo -n "day" > "$MODE_FILE"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Fallback fixed schedule
|
||||||
|
cur="$(now_hhmm)"
|
||||||
|
# If day now (before fallback sunset), wait sunset
|
||||||
|
if [[ "$cur" < "$FALLBACK_SUNSET" && "$cur" > "$FALLBACK_SUNRISE" ]]; then
|
||||||
|
echo -n "day" > "$MODE_FILE"
|
||||||
|
secs=$(sec_until "$FALLBACK_SUNSET")
|
||||||
|
log "fallback: waiting $secs s until sunset ${FALLBACK_SUNSET}"
|
||||||
|
sleep "$secs"
|
||||||
|
[ "$(cat "$AUTO_FILE")" = "1" ] || continue
|
||||||
|
ramp_between "$TEMP_DAY" "$TEMP_NIGHT" "$RAMP_DOWN_MIN"
|
||||||
|
echo -n "night" > "$MODE_FILE"
|
||||||
|
else
|
||||||
|
echo -n "night" > "$MODE_FILE"
|
||||||
|
secs=$(sec_until "$FALLBACK_SUNRISE")
|
||||||
|
log "fallback: waiting $secs s until sunrise ${FALLBACK_SUNRISE}"
|
||||||
|
sleep "$secs"
|
||||||
|
[ "$(cat "$AUTO_FILE")" = "1" ] || continue
|
||||||
|
ramp_between "$TEMP_NIGHT" "$TEMP_DAY" "$RAMP_UP_MIN"
|
||||||
|
echo -n "day" > "$MODE_FILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
89
.config/waybar/scripts/hyprsunset_toggle.sh
Executable file
89
.config/waybar/scripts/hyprsunset_toggle.sh
Executable file
@@ -0,0 +1,89 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
CONF="${XDG_CONFIG_HOME:-$HOME/.config}/hyprsunset/config"
|
||||||
|
STATE_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/hyprsunset"
|
||||||
|
AUTO_FILE="$STATE_DIR/auto" # "1"=auto on, "0"=auto off
|
||||||
|
TEMP_FILE="$STATE_DIR/temp" # last set temp (manual/night)
|
||||||
|
MODE_FILE="$STATE_DIR/mode" # "day"/"night" (best effort)
|
||||||
|
mkdir -p "$STATE_DIR"
|
||||||
|
|
||||||
|
# Defaults (overridden by CONF)
|
||||||
|
DEFAULT_TEMP=5500
|
||||||
|
TEMP_DAY=6500
|
||||||
|
TEMP_NIGHT=2500
|
||||||
|
[ -r "$CONF" ] && source "$CONF"
|
||||||
|
[ -r "$TEMP_FILE" ] || echo -n "${TEMP_NIGHT:-$DEFAULT_TEMP}" > "$TEMP_FILE"
|
||||||
|
[ -r "$AUTO_FILE" ] || echo -n "1" > "$AUTO_FILE"
|
||||||
|
[ -r "$MODE_FILE" ] || echo -n "day" > "$MODE_FILE"
|
||||||
|
|
||||||
|
is_running() { pgrep -x hyprsunset >/dev/null 2>&1; }
|
||||||
|
cur_temp() {
|
||||||
|
if is_running; then
|
||||||
|
pid="$(pgrep -x hyprsunset | head -n1 || true)"
|
||||||
|
if [ -n "${pid:-}" ] && [ -r "/proc/$pid/cmdline" ]; then
|
||||||
|
t="$(tr '\0' ' ' < "/proc/$pid/cmdline" | sed -n 's/.*-t \([0-9]\+\).*/\1/p')"
|
||||||
|
[ -n "$t" ] && { echo "$t"; return; }
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
cat "$TEMP_FILE"
|
||||||
|
}
|
||||||
|
set_temp() {
|
||||||
|
local t="$1"
|
||||||
|
echo -n "$t" > "$TEMP_FILE"
|
||||||
|
hyprctl dispatch exec "hyprsunset -t $t" >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
disable() {
|
||||||
|
hyprctl dispatch exec "hyprsunset -x" >/dev/null 2>&1 || true
|
||||||
|
pkill -x hyprsunset >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
print_json() {
|
||||||
|
local auto="$(cat "$AUTO_FILE")"
|
||||||
|
local t="$(cur_temp)"
|
||||||
|
local mode="$(cat "$MODE_FILE" 2>/dev/null || echo "day")"
|
||||||
|
if [ "$auto" = "1" ]; then
|
||||||
|
printf '{"text":" %sK","class":"auto %s","tooltip":"Hyprsunset Auto (%s) — %sK\\nLeft-click: Toggle auto OFF\\nRight-click: Toggle manual on/off\\nScroll: +/- 200K (manual)"}\n' "$t" "$mode" "$mode" "$t"
|
||||||
|
else
|
||||||
|
if is_running; then
|
||||||
|
printf '{"text":" %sK","class":"manual on","tooltip":"Hyprsunset Manual ON — %sK\\nLeft-click: Toggle auto ON\\nRight-click: Turn OFF\\nScroll: +/- 200K"}\n' "$t" "$t"
|
||||||
|
else
|
||||||
|
local last="$(cat "$TEMP_FILE")"
|
||||||
|
printf '{"text":" Off","class":"manual off","tooltip":"Hyprsunset Manual OFF — last %sK\\nLeft-click: Toggle auto ON\\nRight-click: Turn ON (%sK)\\nScroll: +/- 200K"}\n' "$last" "$last"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1:---print}" in
|
||||||
|
--print) print_json ;;
|
||||||
|
--auto-on) echo -n "1" > "$AUTO_FILE" ; print_json ;;
|
||||||
|
--auto-off) echo -n "0" > "$AUTO_FILE" ; print_json ;;
|
||||||
|
--toggle-auto)
|
||||||
|
if [ "$(cat "$AUTO_FILE")" = "1" ]; then
|
||||||
|
# Turning auto OFF → restore last manual temp and keep running
|
||||||
|
echo -n "0" > "$AUTO_FILE"
|
||||||
|
set_temp "$(cat "$TEMP_FILE")"
|
||||||
|
else
|
||||||
|
# Turning auto ON → let daemon steer; ensure hyprsunset is running at current temp (keeps smoothness)
|
||||||
|
echo -n "1" > "$AUTO_FILE"
|
||||||
|
set_temp "$(cur_temp)"
|
||||||
|
fi
|
||||||
|
print_json
|
||||||
|
;;
|
||||||
|
--toggle)
|
||||||
|
# Manual on/off (does not change auto flag)
|
||||||
|
if is_running; then
|
||||||
|
disable
|
||||||
|
else
|
||||||
|
set_temp "$(cat "$TEMP_FILE")"
|
||||||
|
fi
|
||||||
|
print_json
|
||||||
|
;;
|
||||||
|
--set)
|
||||||
|
t="${2:-$DEFAULT_TEMP}"
|
||||||
|
echo -n "$t" > "$TEMP_FILE"
|
||||||
|
set_temp "$t"
|
||||||
|
print_json
|
||||||
|
;;
|
||||||
|
*) echo "Usage: $0 [--print|--toggle-auto|--auto-on|--auto-off|--toggle|--set TEMP]" >&2; exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
@@ -1,11 +1,15 @@
|
|||||||
|
/* =========================
|
||||||
|
Midnight-Ocean — Waybar GTK CSS
|
||||||
|
========================= */
|
||||||
|
|
||||||
/* Palette */
|
/* Palette */
|
||||||
@define-color bg_main rgba(11, 27, 43, 0.85);
|
@define-color bg_main rgba(11, 27, 43, 0.85);
|
||||||
@define-color bg_main_tooltip rgba(11, 27, 43, 0.95);
|
@define-color bg_main_tooltip rgba(11, 27, 43, 0.95);
|
||||||
@define-color bg_hover rgba(79, 132, 204, 0.3);
|
@define-color bg_hover rgba(79, 132, 204, 0.3);
|
||||||
@define-color bg_active rgba(53, 107, 171, 0.7);
|
@define-color bg_active rgba(53, 107, 171, 0.7);
|
||||||
@define-color border_main rgba(79, 132, 204, 0.5);
|
@define-color border_main rgba(79, 132, 204, 0.5);
|
||||||
@define-color content_main #CAD3E8;
|
@define-color content_main #FFFFFF; /* ← all text white */
|
||||||
@define-color content_inactive rgba(202, 211, 232, 0.4);
|
@define-color content_inactive rgba(255, 255, 255, 0.45);
|
||||||
@define-color warning_color #FFCC33;
|
@define-color warning_color #FFCC33;
|
||||||
|
|
||||||
/* Reset & Font */
|
/* Reset & Font */
|
||||||
@@ -17,15 +21,26 @@
|
|||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
color: @content_main;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bar Background */
|
/* Bar Background */
|
||||||
window#waybar {
|
window#waybar {
|
||||||
background: @bg_main;
|
background: @bg_main;
|
||||||
color: @content_main;
|
|
||||||
border-top: 1px solid @border_main;
|
border-top: 1px solid @border_main;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Per-bar sizing nudges */
|
||||||
|
window#waybar.bar-dp2 * {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
window#waybar.bar-dp1 * {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
window#waybar.bar-hdmi * {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Tooltips */
|
/* Tooltips */
|
||||||
tooltip {
|
tooltip {
|
||||||
background: @bg_main_tooltip;
|
background: @bg_main_tooltip;
|
||||||
@@ -43,43 +58,124 @@ tooltip {
|
|||||||
background: @bg_hover;
|
background: @bg_hover;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Separator Border */
|
/* HDMI: tighter modules to free center space */
|
||||||
|
window#waybar.bar-hdmi .module {
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Collapse empty/noise modules */
|
||||||
|
#mpris.empty,
|
||||||
|
#bluetooth.disconnected {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Separators */
|
||||||
#cpu,
|
#cpu,
|
||||||
#memory,
|
#memory,
|
||||||
#disk,
|
#disk,
|
||||||
|
#disk-nvme0,
|
||||||
|
#disk-nvme1,
|
||||||
#network,
|
#network,
|
||||||
#pulseaudio,
|
#pulseaudio,
|
||||||
#bluetooth,
|
#bluetooth,
|
||||||
|
#power-profiles-daemon,
|
||||||
#custom-alhp,
|
#custom-alhp,
|
||||||
#custom-razer-mouse-battery {
|
#custom-razer-mouse-battery,
|
||||||
|
#custom-hyprsunset {
|
||||||
|
/* ← new module gets a separator too */
|
||||||
border-right: 1px solid @border_main;
|
border-right: 1px solid @border_main;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Workspaces Buttons */
|
/* Workspaces */
|
||||||
|
#workspaces {
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
padding: 4px 6px;
|
padding: 4px 6px;
|
||||||
color: @content_inactive;
|
color: @content_inactive;
|
||||||
}
|
}
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: @bg_hover;
|
||||||
|
color: @content_main;
|
||||||
|
}
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
background: @bg_active;
|
background: @bg_active;
|
||||||
color: @content_main;
|
color: @content_main;
|
||||||
}
|
font-weight: 600;
|
||||||
#workspaces button.focused {
|
|
||||||
background: @bg_hover;
|
|
||||||
color: @content_main;
|
|
||||||
}
|
}
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
background: rgba(255, 204, 51, 0.35);
|
background: rgba(255, 204, 51, 0.35);
|
||||||
color: @warning_color;
|
color: @warning_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tray & Clock Padding */
|
/* Window title (hyprland/window): truncation via config max-length */
|
||||||
|
#window {
|
||||||
|
min-width: 0;
|
||||||
|
font-weight: 500;
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* MPRIS */
|
||||||
|
#mpris {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tray & Clock */
|
||||||
#tray,
|
#tray,
|
||||||
#clock {
|
#clock {
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
}
|
}
|
||||||
|
#tray > .passive {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
#tray > .needs-attention {
|
||||||
|
color: @warning_color;
|
||||||
|
}
|
||||||
|
|
||||||
/* Critical Battery Color */
|
/* Battery states */
|
||||||
|
#battery.warning {
|
||||||
|
color: @warning_color;
|
||||||
|
}
|
||||||
|
#battery.critical {
|
||||||
|
color: @warning_color;
|
||||||
|
}
|
||||||
#battery.critical span {
|
#battery.critical span {
|
||||||
color: @warning_color;
|
color: @warning_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional subtle accent for quick scanning (kept minimal; text still white overall) */
|
||||||
|
#cpu,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#bluetooth,
|
||||||
|
#mpris,
|
||||||
|
#custom-hyprsunset {
|
||||||
|
color: #dee6f7; /* very light tint; still reads as white on dark */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Drawer polish (DP-1) */
|
||||||
|
#custom-sys {
|
||||||
|
padding: 0 8px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.sys {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
.revealed .sys {
|
||||||
|
background: rgba(79, 132, 204, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Customs */
|
||||||
|
#custom-alhp,
|
||||||
|
#custom-razer-mouse-battery,
|
||||||
|
#custom-hyprsunset {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Network states */
|
||||||
|
#network.disconnected {
|
||||||
|
color: @warning_color;
|
||||||
|
}
|
||||||
|
@@ -1,208 +0,0 @@
|
|||||||
|
|
||||||
/*base background color*/
|
|
||||||
@define-color bg_main rgba(25, 25, 25, 0.65);
|
|
||||||
@define-color bg_main_tooltip rgba(0, 0, 0, 0.7);
|
|
||||||
|
|
||||||
|
|
||||||
/*base background color of selections */
|
|
||||||
@define-color bg_hover rgba(200, 200, 200, 0.3);
|
|
||||||
/*base background color of active elements */
|
|
||||||
@define-color bg_active rgba(100, 100, 100, 0.5);
|
|
||||||
|
|
||||||
/*base border color*/
|
|
||||||
@define-color border_main rgba(255, 255, 255, 0.2);
|
|
||||||
|
|
||||||
/*text color for entries, views and content in general */
|
|
||||||
@define-color content_main white;
|
|
||||||
/*text color for entries that are unselected */
|
|
||||||
@define-color content_inactive rgba(255, 255, 255, 0.25);
|
|
||||||
|
|
||||||
* {
|
|
||||||
text-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
font-family: "Inconsolata Go Nerd Font";
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background: @bg_main;
|
|
||||||
border-top: 1px solid @border_main;
|
|
||||||
color: @content_main;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip {
|
|
||||||
font-size: 14px;
|
|
||||||
background: @bg_main_tooltip;
|
|
||||||
border-radius: 5px;
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: @border_main;
|
|
||||||
}
|
|
||||||
tooltip label{
|
|
||||||
color: @content_main;
|
|
||||||
}
|
|
||||||
|
|
||||||
.module {
|
|
||||||
margin-left: 2px;
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces {
|
|
||||||
color: transparent;
|
|
||||||
margin-right: 1.5px;
|
|
||||||
margin-left: 1.5px;
|
|
||||||
}
|
|
||||||
#workspaces button {
|
|
||||||
padding: 3px;
|
|
||||||
color: @content_inactive;
|
|
||||||
}
|
|
||||||
#workspaces button.active {
|
|
||||||
color: whitesmoke;
|
|
||||||
background: @bg_active;
|
|
||||||
}
|
|
||||||
#workspaces button.focused {
|
|
||||||
color: @bg_active;
|
|
||||||
}
|
|
||||||
#workspaces button.urgent {
|
|
||||||
background: rgba(255, 200, 0, 0.35);
|
|
||||||
color: @warning_color;
|
|
||||||
}
|
|
||||||
#workspaces button:hover {
|
|
||||||
background: @bg_hover;
|
|
||||||
color: @content_main;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cpu, #disk, #memory {
|
|
||||||
border-bottom: 1px solid grey;
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray{
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
#tray > .passive {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
#tray > .active {
|
|
||||||
|
|
||||||
}
|
|
||||||
#tray > .needs-attention {
|
|
||||||
border-bottom: 3px solid @warning_color;
|
|
||||||
}
|
|
||||||
#tray > widget {
|
|
||||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
||||||
}
|
|
||||||
#tray > widget:hover {
|
|
||||||
background: @bg_hover;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pulseaudio {
|
|
||||||
border-bottom: 1px solid grey;
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-left: 5px;
|
|
||||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
||||||
}
|
|
||||||
#pulseaudio:hover {
|
|
||||||
background: @bg_hover;
|
|
||||||
}
|
|
||||||
|
|
||||||
#network {
|
|
||||||
border-bottom: 1px solid grey;
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-left: 5px;
|
|
||||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
||||||
}
|
|
||||||
#clock:hover {
|
|
||||||
background: @bg_hover;
|
|
||||||
}
|
|
||||||
|
|
||||||
#privacy {
|
|
||||||
}
|
|
||||||
#privacy-item {
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
#privacy-item.screenshare {
|
|
||||||
background: #850404;
|
|
||||||
}
|
|
||||||
#privacy-item.audio-in {
|
|
||||||
background: #6c045e;
|
|
||||||
}
|
|
||||||
#privacy-item.audio-out {
|
|
||||||
background: #02605b;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mpris {
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
#mpris.playing {
|
|
||||||
}
|
|
||||||
#mpris.paused {
|
|
||||||
}
|
|
||||||
#mpris.stopped {
|
|
||||||
}
|
|
||||||
#mpris.firefox {
|
|
||||||
border-bottom: 1px solid #fd8728;
|
|
||||||
}
|
|
||||||
#mpris.spotify {
|
|
||||||
border-bottom: 1px solid #17d860;
|
|
||||||
}
|
|
||||||
#mpris.mpv {
|
|
||||||
border-bottom: 1px solid #420042;
|
|
||||||
}
|
|
||||||
#mpris.chromium {
|
|
||||||
border-bottom: 1px solid #1a73e8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bluetooth {
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-left: 5px;
|
|
||||||
}
|
|
||||||
#bluetooth.disabled {
|
|
||||||
border-bottom: 1px solid grey;
|
|
||||||
}
|
|
||||||
#bluetooth.off {
|
|
||||||
border-bottom: 1px solid grey;
|
|
||||||
}
|
|
||||||
#bluetooth.on {
|
|
||||||
border-bottom: 1px solid #0059fd;
|
|
||||||
}
|
|
||||||
#bluetooth.connected {
|
|
||||||
border-bottom: 1px solid #00b7fa;
|
|
||||||
}
|
|
||||||
#bluetooth.discoverable {
|
|
||||||
}
|
|
||||||
#bluetooth.discovering {
|
|
||||||
}
|
|
||||||
#bluetooth.pairable {
|
|
||||||
}
|
|
||||||
#bluetooth.no-controller {
|
|
||||||
background: darkred;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-alhp {
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
#custom-alhp.good {
|
|
||||||
border-bottom: 1px solid #adff2f;
|
|
||||||
}
|
|
||||||
#custom-alhp.stale {
|
|
||||||
border-bottom: 1px solid #f6ac00;
|
|
||||||
}
|
|
||||||
#custom-alhp.bad {
|
|
||||||
border-bottom: 1px solid #ff4500;
|
|
||||||
}
|
|
||||||
#custom-alhp.down {
|
|
||||||
border-bottom: 1px solid #800000;
|
|
||||||
}
|
|
Reference in New Issue
Block a user