waybar: organize config

This commit is contained in:
2025-08-03 23:23:59 +02:00
parent cc10c92af6
commit 25a07767cf
6 changed files with 160 additions and 745 deletions

View File

@@ -287,10 +287,18 @@ def main():
os.system(f'notify-send "Color theme changed" "Catppuccin Mocha - {flavor}"') os.system(f'notify-send "Color theme changed" "Catppuccin Mocha - {flavor}"')
if not app or app == 'fastfetch': # def is_interactive_shell() -> bool:
ans = input("execute \"exec fish\"? [y/N]: ").strip().lower() # return sys.stdin.isatty() and sys.stdout.isatty()
if ans in ('y', 'yes'):
os.system('fish') # def is_fish() -> bool:
# import psutil
# parent = psutil.Process().parent()
# return parent is not None and 'fish' in parent.name().lower()
# if not app or app == 'fastfetch' \
# and is_interactive_shell() \
# and is_fish():
# os.system('fish')
if __name__ == "__main__": if __name__ == "__main__":

View File

@@ -42,10 +42,6 @@ Based on [codeopshq/dotfiles](https://github.com/codeopshq/dotfiles), also serve
Based on [vinceliuice/Elegant-grub2-themes](https://github.com/vinceliuice/Elegant-grub2-themes) with [illustration from 紺屋鴉江](https://www.pixiv.net/artworks/119683453). Based on [vinceliuice/Elegant-grub2-themes](https://github.com/vinceliuice/Elegant-grub2-themes) with [illustration from 紺屋鴉江](https://www.pixiv.net/artworks/119683453).
## Waybar
Gathered from internet, based on <s>I don't know who</s> (such config files had been laying in my .config folder before I could even notice) (and I'm sure they were not the default config files shipped with the waybar package).
## MPV ## MPV
Based on [noelsimbolon/mpv-config](https://github.com/noelsimbolon/mpv-config.git). Based on [noelsimbolon/mpv-config](https://github.com/noelsimbolon/mpv-config.git).

View File

@@ -2,39 +2,23 @@
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Global configuration // Global configuration
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
"layer": "top", "layer": "bottom",
"position": "top", "position": "top",
"height": 55,
"margin-left": 0, "margin-left": 0,
"margin-bottom": 0, "margin-bottom": 0,
"margin-right": 0, "margin-right": 0,
"spacing": 2, // Gaps between modules (px) "spacing": 2, // Gaps between modules (px)
"modules-left": [ "modules-left": [
"custom/rofi", "custom/rofi",
// "hyprland/workspaces",
// "custom/workspacenew",
"group/workspaceactions", "group/workspaceactions",
"hyprland/window", "custom/mediaplayer",
//"hyprland/submap", "hyprland/window"
//"idle_inhibitor",
//"mpd"
"custom/mediaplayer"
], ],
"modules-center": [ "modules-center": [
"clock#date" "clock"
//"custom/gammastep"
], ],
"modules-right": [ "modules-right": [
// "network#speed",
// "memory",
// "cpu",
// "battery",
// //"pulseaudio",
// "backlight",
// "wireplumber",
"group/monitors", "group/monitors",
// "bluetooth",
// "network",
"tray", "tray",
"custom/caffeine", "custom/caffeine",
"custom/power" "custom/power"
@@ -42,15 +26,6 @@
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Modules // Modules
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
// Separators
"custom/sp1": {
"format": " | ",
"tooltip": false
},
"custom/sp2": {
"format": " |",
"tooltip": false
},
// Buttons // Buttons
"custom/power": { "custom/power": {
"format": "󰐥", "format": "󰐥",
@@ -88,35 +63,10 @@
}, },
// Time and Date // Time and Date
"clock": { "clock": {
"format": " {:%H:%M  %e %b}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"today-format": "<b>{}</b>"
},
"clock#date": {
"format": "󰥔 {:%H:%M |  %e %b}", "format": "󰥔 {:%H:%M |  %e %b}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt>{calendar}</tt>", "tooltip-format": "<big>{:%Y %B}</big>\n<tt>{calendar}</tt>",
"today-format": "<b>{}</b>" "today-format": "<b>{}</b>"
}, },
"clock#1": {
"format": " {:%a}",
"tooltip": false,
"on-click": "gsimplecal"
},
"clock#2": {
"format": " {:%d-%h-%Y}",
"tooltip": false,
"on-click": "gsimplecal"
},
"clock#3": {
"format": " {:%H:%M:%S %p}",
"tooltip": false,
"on-click": "gsimplecal"
},
"custom/screenshot_t": {
"format": " ",
"on-click": "~/.config/hypr/scripts/screenshot_full",
"on-click-right": "~/.config/hypr/scripts/screenshot_area"
},
// System monitors // System monitors
"group/monitors": { "group/monitors": {
"modules": ["network#speed", "custom/publicip", "temperature", "memory", "cpu", "battery", "backlight", "wireplumber"], "modules": ["network#speed", "custom/publicip", "temperature", "memory", "cpu", "battery", "backlight", "wireplumber"],
@@ -227,11 +177,20 @@
}, },
"hyprland/workspaces": { "hyprland/workspaces": {
"all-outputs": true, "all-outputs": true,
"format": "{name}", "format": "{id}",
"on-scroll-up": "hyprctl dispatch workspace e+1 1>/dev/null", "on-scroll-up": "hyprctl dispatch workspace e+1 1>/dev/null",
"on-scroll-down": "hyprctl dispatch workspace e-1 1>/dev/null", "on-scroll-down": "hyprctl dispatch workspace e-1 1>/dev/null",
"sort-by-number": true, "sort-by-number": true,
"active-only": false "active-only": false//,
// "window-rewrite-default": "",
// "window-rewrite": {
// "class<kitty>": "",
// "class<code>": "󰨞",
// "class<zen-browser>": "󰈹",
// "class<firefox>": "󰈹",
// "class<ghostty>": "",
// "class<spotify>": "󰓇"
// }
}, },
"hyprland/workspaces#special": { "hyprland/workspaces#special": {
"persistent-workspaces": { "persistent-workspaces": {
@@ -240,7 +199,16 @@
"persistent-only": true, "persistent-only": true,
"show-special": true, "show-special": true,
"special-visible-only": false, "special-visible-only": false,
"format": "S" "format": "S",
"window-rewrite-default": ""//,
// "window-rewrite": {
// "class<kitty>": "",
// "class<code>": "󰨞",
// "class<zen-browser>": "󰈹",
// "class<firefox>": "󰈹",
// "class<ghostty>": "",
// "class<spotify>": "󰓇"
// }
}, },
"custom/workspacenew": { "custom/workspacenew": {
"format": "+", "format": "+",
@@ -250,7 +218,8 @@
"hyprland/window": { "hyprland/window": {
"max-length": 100, "max-length": 100,
"separate-outputs": true, "separate-outputs": true,
"hide-empty-text": true "icon": true,
"icon-size": 15
}, },
"custom/mediaplayer": { "custom/mediaplayer": {
"format": "{text}", "format": "{text}",
@@ -270,164 +239,5 @@
"tray": { "tray": {
"icon-size": 15, "icon-size": 15,
"spacing": 5 "spacing": 5
},
// Not used
"network": {
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
"format-linked": "{ifname} (No IP)",
"format": "",
"format-disconnected": "󰌙",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
"on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)",
"on-click-right": "wl-copy $(ip address show up scope global | grep inet6 | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c6-)",
"tooltip-format": " {bandwidthUpBits}  {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n",
"tooltip-format-wifi": " {essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits}  {bandwidthDownBits}",
"interval": 10,
"max-length": 12
},
"custom/storage": {
"format": " {}",
"format-alt": "{percentage}% ",
"format-alt-click": "click-right",
"return-type": "json",
"interval": 60,
"exec": "~/.config/waybar/modules/storage.sh"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
"tooltip": "true"
},
"custom/weather": {
"format": "{}",
"format-alt": "{alt}: {}",
"format-alt-click": "click-right",
"interval": 3600,
"exec": "curl -s 'https://wttr.in/?format=1'",
//"return-type": "json",
//"exec": "~/.config/waybar/modules/weather.sh",
"exec-if": "ping wttr.in -c1"
},
"custom/pacman": {
"format": "<big>􏆲</big> {}",
"interval": 3600, // every hour
"exec": "checkupdates | wc -l", // # of updates
"exec-if": "exit 0", // always run; consider advanced run conditions
"on-click": "ghostty -e 'paru'; pkill -SIGRTMIN+8 waybar", // update system
"signal": 8,
"max-length": 7,
"min-length": 3
},
"custom/spotify": {
"exec": "~/.config/waybar/mediaplayer.py --player spotify",
"format": "{} ",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
"on-scroll-down": "playerctl previous"
},
"custom/media": {
"format": "{0} {1}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true
//"exec": "~/.config/waybar/mediaplayer.py" // Script in resources folder
// "exec": "~/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
},
"custom/gammastep": {
"interval": 5,
"return-type": "json",
"exec": {
"pre": "if unit_status=\"$(systemctl --user is-active gammastep)\"; then\nstatus=\"$unit_status ($(journalctl --user -u gammastep.service -g 'Period: ' | tail -1 | cut -d ':' -f6 | xargs))\"\nelse\nstatus=\"$unit_status\"\nfi",
"alt": "${status:-inactive}",
"tooltip": "Gammastep is $status"
},
"format": "{icon}",
"format-icons": {
"activating": "󰁪 ",
"deactivating": "󰁪 ",
"inactive": "? ",
"active (Night)": " ",
"active (Nighttime)": " ",
"active (Transition (Night)": " ",
"active (Transition (Nighttime)": " ",
"active (Day)": " ",
"active (Daytime)": " ",
"active (Transition (Day)": " ",
"active (Transition (Daytime)": " "
},
"on-click": "systemctl --user is-active gammastep && systemctl --user stop gammastep || systemctl --user start gammastep"
},
"mpd": {
"max-length": 25,
"format": "<span foreground='#bb9af7'></span> {title}",
"format-paused": " {title}",
"format-stopped": "<span foreground='#bb9af7'></span>",
"format-disconnected": "",
"on-click": "mpc --quiet toggle",
"on-click-right": "mpc update; mpc ls | mpc add",
"on-click-middle": "ghostty -e ncmpcpp",
"on-scroll-up": "mpc --quiet prev",
"on-scroll-down": "mpc --quiet next",
"smooth-scrolling-threshold": 5,
"tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
},
"custom/title": {
"format": "{}",
"interval": 0,
"return-type": "json",
//"max-length": 35,
"tooltip": false
},
"custom/title#name": {
"format": "{}",
"interval": 0,
"return-type": "json",
"max-length": 35,
"exec": "$HOME/.scripts/title"
},
/*"custom/keyboard": {
"format": " {}",
"interval": 1,
"exec": "$HOME/.config/waybar/get_kbdlayout.sh"
},*/
"pulseaudio": {
"scroll-step": 3, // %, can be a float
"format": "{icon} {volume}% {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-source": "",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol",
"on-click-right": "amixer sset Master toggle"
},
"bluetooth": {
"format-on": "󰂯",
"format-off": "󰂲",
"format-disabled": "", // an empty format will hide the module
"format-connected": "󰂱 {num_connections}",
"tooltip-format-connected": "{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"on-click": "blueberry",
"max-length": 3,
"min-length": 3
} }
} }

View File

@@ -1,5 +1,5 @@
#!/bin/env bash #!/bin/env bash
# shellcheck disable=SC1091 # shellcheck disable=SC1091,SC1090
# Entries in publicip.conf: # Entries in publicip.conf:
# IP_QUERY_URL: URL to query public IP of the system. # IP_QUERY_URL: URL to query public IP of the system.
@@ -25,23 +25,24 @@ time_log="$path/publicip.log"
[ "$1" == "force" ] && rm -f "$cache_file" [ "$1" == "force" ] && rm -f "$cache_file"
[ -f "$cache_file" ] && . "$cache_file" [ -f "$cache_file" ] && . "$cache_file"
ip_current=$(curl -s -L -4 "$IP_QUERY_URL" | jq -r '.ip')
ip_current=$(curl -s -L "$IP_QUERY_URL" | jq -r '.ip')
[ -z "$ip_current" ] && exit 1 [ -z "$ip_current" ] && exit 1
if [ "$ip_current" != "$CACHED_IP" ]; then if [ "$ip_current" != "$CACHED_IP" ]; then
echo "$(date +%Y-%m-%dT%H:%M:%S) - IP changed: $CACHED_IP -> $ip_current" >> "$time_log" echo "$(date +%Y-%m-%dT%H:%M:%S) - IP changed: $CACHED_IP -> $ip_current" >>"$time_log"
CACHED_IP="$ip_current" CACHED_IP="$ip_current"
ip_info_url=${IP_INFO_URL//<ip>/$ip_current} ip_info_url=${IP_INFO_URL//<ip>/$ip_current}
CACHED_CODE=$(curl -s -L "$ip_info_url" | jq -r '.country_code') CACHED_CODE=$(curl -s -L "$ip_info_url" | jq -r '.country_code')
[ -z "$CACHED_CODE" ] && CACHED_CODE="N/A" [ -z "$CACHED_CODE" ] && CACHED_CODE="N/A"
echo "CACHED_IP=$CACHED_IP" > "$cache_file"
echo "CACHED_CODE=$CACHED_CODE" >> "$cache_file" echo "CACHED_IP=$CACHED_IP" >"$cache_file"
notify-send "New Public IP detected" "New IP: $ip_current\nCountry: $CACHED_CODE" echo "CACHED_CODE=$CACHED_CODE" >>"$cache_file"
notify-send "New Public IP detected" "New IP: $ip_current\nCountry: $CACHED_CODE"
fi fi
jq -n --unbuffered --compact-output \ jq -n --unbuffered --compact-output \
--arg ip "$CACHED_IP" \ --arg ip "$CACHED_IP" \
--arg country "$CACHED_CODE" \ --arg country "$CACHED_CODE" \
'{alt: $ip, text: $country}' '{alt: $ip, text: $country}'

View File

@@ -1,72 +1,88 @@
@import 'mocha.css'; @import 'mocha.css';
@define-color accent #f5c2e7; @define-color flavor #f5c2e7;
/* Font(s) */
* { * {
/* main font icons CJK Fallback */ /* main font icons CJK fallback */
font-family: 'Sour Gummy Light', 'Meslo LGM Nerd Font Mono', 'WenQuanYi Micro Hei', 'Noto Sans', sans-serif; font-family: 'Sour Gummy Light', 'Meslo LGM Nerd Font Mono', 'WenQuanYi Micro Hei', 'Noto Sans', sans-serif;
font-size: 16px; font-size: 16px;
margin: 0;
padding: 0;
transition-property: background-color;
transition-duration: 0.5s;
} }
/* Reset all styles */ /* Reset all styles */
* { * {
border: none; border: none;
border-radius: 3px; border-radius: 14px;
min-height: 0; min-height: 0;
margin: 2px 1px 2px 1px; margin: 2px 1px 2px 1px;
padding: 0;
transition-property: background-color;
transition-duration: 0.5s;
} }
/* The whole bar */ /* The whole bar */
#waybar { #waybar {
background-color: transparent; background-color: transparent;
color: #ffffff; color: @text;
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 0px; border-radius: 0px;
margin: 0px; margin: 0px;
} }
window#waybar.hidden {
opacity: 0.2;
}
tooltip { tooltip {
background: @base; background: @base;
border: 2px solid @overlay0; border: 2px solid @overlay0;
} }
#workspaceactions,
#window,
#clock,
#monitors,
#custom-mediaplayer,
#custom-power-menu,
#tray,
#custom-rofi,
#custom-caffeine,
#custom-power {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 3px 10px;
}
#custom-rofi,
#custom-caffeine,
#custom-power {
padding-left: 6px;
padding-right: 6px;
}
#custom-workspacenew, #custom-workspacenew,
#workspaces button { #workspaces button {
padding: 0px 5px; /* Adjusted padding to reduce height */ padding: 0px 5px;
margin: 3px 5px; /* Reduced margin slightly */ margin: 3px 3px;
border-radius: 6px; border-radius: 8px;
color: @foreground; color: @text;
background-color: alpha(@base, 0); background-color: transparent;
transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out;
} }
#workspaces button:hover { #workspaces button:hover {
background: @surface0; background-color: alpha(@flavor, 0.3);
} }
#workspaces button.active { #workspaces button.active {
color: @foreground; color: @base;
background: @accent; background: @flavor;
} }
#workspaces button.urgent { #workspaces button.urgent {
color: @base;
background-color: @red; background-color: @red;
} }
#workspaceactions { #workspaceactions {
background-color: alpha(@base, 0.6); padding-left: 3px;
border-radius: 14px; padding-right: 3px;
padding: 3px 6px; /* Adjusted padding to reduce height */ border: 2px solid @flavor;
border: 2px solid @accent;
} }
#workspaces { #workspaces {
@@ -74,105 +90,40 @@ tooltip {
margin: 0px; margin: 0px;
} }
#custom-workspacenew:hover {
background-color: alpha(@accent, 0.3);
}
#custom-workspacespecial:hover {
background-color: alpha(@accent, 0.3);
}
#window { #window {
background-color: alpha(@base, 0.6); transition: none; /* Disable background transition */
color: @subtext1; }
border-radius: 14px;
padding: 3px 6px; /* Reduced padding */ window#waybar.empty #window{
margin: 2px; background-color: transparent;
opacity: 1;
} }
#custom-mediaplayer { #custom-mediaplayer {
background-color: alpha(@base, 0.6); color: @flavor;
border-radius: 14px;
padding: 3px 12px;
color: @accent;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#mode,
#idle_inhibitor,
#mpd,
#bluetooth,
#custom-hyprPicker,
#custom-power-menu,
#custom-spotify,
#custom-publicip,
#custom-weather,
#custom-weather.severe,
#custom-weather.sunnyDay,
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.default {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px; /* Adjusted padding */
}
#monitors {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
} }
#network.speed { #network.speed {
background: transparent; color: @flavor;
color: @accent;
padding: 0;
} }
#custom-publicip { #custom-publicip {
background: transparent;
color: @peach; color: @peach;
padding: 0;
} }
#temperature { #temperature {
background: transparent;
color: @yellow; color: @yellow;
padding: 0px;
} }
#memory { #memory {
color: @green; color: @green;
background: transparent;
padding: 0px;
} }
#cpu { #cpu {
color: @teal; color: @teal;
background: transparent;
padding: 0px;
} }
#battery { #battery {
background: transparent;
color: @sapphire; color: @sapphire;
padding: 0;
} }
#battery.charging, #battery.charging,
@@ -182,40 +133,18 @@ tooltip {
} }
#backlight { #backlight {
background: transparent;
color: @blue; color: @blue;
padding: 0;
} }
#wireplumber { #wireplumber {
background: transparent;
color: @lavender; color: @lavender;
padding: 0;
}
#custom-screenshot_t {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
}
#custom-spotify {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 3px 12px;
} }
#tray { #tray {
background-color: alpha(@base, 0.6); border: 2px solid @flavor;
border-radius: 14px;
padding: 6px; /* Adjusted padding */
border: 2px solid @accent;
} }
#custom-power { #custom-power {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
border: 3px solid @maroon; border: 3px solid @maroon;
} }
@@ -224,9 +153,6 @@ tooltip {
} }
#custom-rofi { #custom-rofi {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
border: 3px solid @teal; border: 3px solid @teal;
} }
@@ -235,9 +161,6 @@ tooltip {
} }
#custom-caffeine { #custom-caffeine {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
border: 3px solid @yellow; border: 3px solid @yellow;
} }
@@ -249,119 +172,29 @@ tooltip {
border: 3px solid @peach; border: 3px solid @peach;
} }
#custom-storage {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
}
#custom-launcher {
background-color: #1b242b;
color: #6a92d7;
border-radius: 7.5px;
padding: 3px 6px; /* Adjusted padding */
}
#custom-weather.severe {
color: #eb937d;
}
#custom-weather.sunnyDay {
color: #c2ca76;
}
#custom-weather.clearNight {
color: #cad3f5;
}
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight {
color: #c2ddda;
}
#custom-weather.rainyDay,
#custom-weather.rainyNight {
color: #5aaca5;
}
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight {
color: #d6e7e5;
}
#custom-weather.default {
color: #dbd9d8;
}
/* 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;
}
#pulseaudio {
color: #7d9bba;
}
#clock { #clock {
color: #c8d2e0; border: 2px solid @flavor;
border: 2px solid @accent;
} }
@keyframes blink { @keyframes blink {
to { to {
background-color: rgba(30, 34, 42, 0.5); background-color: alpha(@red, 0.5);
color: #abb2bf;
} }
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
color: @red; color: @red;
animation-name: blink; animation-name: blink;
animation-duration: 0.5s; animation-duration: 1s;
animation-timing-function: linear; animation-timing-function: linear;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-direction: alternate; animation-direction: alternate;
} }
label:focus {
background-color: #000000;
}
#disk {
background-color: #964b00;
}
#bluetooth {
color: @sapphire;
}
#bluetooth.disconnected {
color: @red;
}
#network.disconnected { #network.disconnected {
color: @red; color: @red;
} }
#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.critical { #temperature.critical {
background-color: #eb4d4b; background-color: #eb4d4b;
} }
@@ -373,37 +206,4 @@ label:focus {
#tray > .needs-attention { #tray > .needs-attention {
-gtk-icon-effect: highlight; -gtk-icon-effect: highlight;
background-color: #eb4d4b; background-color: #eb4d4b;
} }
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#language {
background: #00b093;
color: #740864;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 0px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}

View File

@@ -1,72 +1,88 @@
@import 'mocha.css'; @import 'mocha.css';
@define-color accent #<FLAVOR_HEX>; @define-color flavor #<FLAVOR_HEX>;
/* Font(s) */
* { * {
/* main font icons CJK Fallback */ /* main font icons CJK fallback */
font-family: 'Sour Gummy Light', 'Meslo LGM Nerd Font Mono', 'WenQuanYi Micro Hei', 'Noto Sans', sans-serif; font-family: 'Sour Gummy Light', 'Meslo LGM Nerd Font Mono', 'WenQuanYi Micro Hei', 'Noto Sans', sans-serif;
font-size: 16px; font-size: 16px;
margin: 0;
padding: 0;
transition-property: background-color;
transition-duration: 0.5s;
} }
/* Reset all styles */ /* Reset all styles */
* { * {
border: none; border: none;
border-radius: 3px; border-radius: 14px;
min-height: 0; min-height: 0;
margin: 2px 1px 2px 1px; margin: 2px 1px 2px 1px;
padding: 0;
transition-property: background-color;
transition-duration: 0.5s;
} }
/* The whole bar */ /* The whole bar */
#waybar { #waybar {
background-color: transparent; background-color: transparent;
color: #ffffff; color: @text;
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 0px; border-radius: 0px;
margin: 0px; margin: 0px;
} }
window#waybar.hidden {
opacity: 0.2;
}
tooltip { tooltip {
background: @base; background: @base;
border: 2px solid @overlay0; border: 2px solid @overlay0;
} }
#workspaceactions,
#window,
#clock,
#monitors,
#custom-mediaplayer,
#custom-power-menu,
#tray,
#custom-rofi,
#custom-caffeine,
#custom-power {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 3px 10px;
}
#custom-rofi,
#custom-caffeine,
#custom-power {
padding-left: 6px;
padding-right: 6px;
}
#custom-workspacenew, #custom-workspacenew,
#workspaces button { #workspaces button {
padding: 0px 5px; /* Adjusted padding to reduce height */ padding: 0px 5px;
margin: 3px 5px; /* Reduced margin slightly */ margin: 3px 3px;
border-radius: 6px; border-radius: 8px;
color: @foreground; color: @text;
background-color: alpha(@base, 0); background-color: transparent;
transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out;
} }
#workspaces button:hover { #workspaces button:hover {
background: @surface0; background-color: alpha(@flavor, 0.3);
} }
#workspaces button.active { #workspaces button.active {
color: @foreground; color: @base;
background: @accent; background: @flavor;
} }
#workspaces button.urgent { #workspaces button.urgent {
color: @base;
background-color: @red; background-color: @red;
} }
#workspaceactions { #workspaceactions {
background-color: alpha(@base, 0.6); padding-left: 3px;
border-radius: 14px; padding-right: 3px;
padding: 3px 6px; /* Adjusted padding to reduce height */ border: 2px solid @flavor;
border: 2px solid @accent;
} }
#workspaces { #workspaces {
@@ -74,105 +90,40 @@ tooltip {
margin: 0px; margin: 0px;
} }
#custom-workspacenew:hover {
background-color: alpha(@accent, 0.3);
}
#custom-workspacespecial:hover {
background-color: alpha(@accent, 0.3);
}
#window { #window {
background-color: alpha(@base, 0.6); transition: none; /* Disable background transition */
color: @subtext1; }
border-radius: 14px;
padding: 3px 6px; /* Reduced padding */ window#waybar.empty #window{
margin: 2px; background-color: transparent;
opacity: 1;
} }
#custom-mediaplayer { #custom-mediaplayer {
background-color: alpha(@base, 0.6); color: @flavor;
border-radius: 14px;
padding: 3px 12px;
color: @accent;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#mode,
#idle_inhibitor,
#mpd,
#bluetooth,
#custom-hyprPicker,
#custom-power-menu,
#custom-spotify,
#custom-publicip,
#custom-weather,
#custom-weather.severe,
#custom-weather.sunnyDay,
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.default {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px; /* Adjusted padding */
}
#monitors {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
} }
#network.speed { #network.speed {
background: transparent; color: @flavor;
color: @accent;
padding: 0;
} }
#custom-publicip { #custom-publicip {
background: transparent;
color: @peach; color: @peach;
padding: 0;
} }
#temperature { #temperature {
background: transparent;
color: @yellow; color: @yellow;
padding: 0px;
} }
#memory { #memory {
color: @green; color: @green;
background: transparent;
padding: 0px;
} }
#cpu { #cpu {
color: @teal; color: @teal;
background: transparent;
padding: 0px;
} }
#battery { #battery {
background: transparent;
color: @sapphire; color: @sapphire;
padding: 0;
} }
#battery.charging, #battery.charging,
@@ -182,40 +133,18 @@ tooltip {
} }
#backlight { #backlight {
background: transparent;
color: @blue; color: @blue;
padding: 0;
} }
#wireplumber { #wireplumber {
background: transparent;
color: @lavender; color: @lavender;
padding: 0;
}
#custom-screenshot_t {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
}
#custom-spotify {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 3px 12px;
} }
#tray { #tray {
background-color: alpha(@base, 0.6); border: 2px solid @flavor;
border-radius: 14px;
padding: 6px; /* Adjusted padding */
border: 2px solid @accent;
} }
#custom-power { #custom-power {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
border: 3px solid @maroon; border: 3px solid @maroon;
} }
@@ -224,9 +153,6 @@ tooltip {
} }
#custom-rofi { #custom-rofi {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
border: 3px solid @teal; border: 3px solid @teal;
} }
@@ -235,9 +161,6 @@ tooltip {
} }
#custom-caffeine { #custom-caffeine {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
border: 3px solid @yellow; border: 3px solid @yellow;
} }
@@ -249,119 +172,29 @@ tooltip {
border: 3px solid @peach; border: 3px solid @peach;
} }
#custom-storage {
background-color: alpha(@base, 0.6);
border-radius: 14px;
padding: 6px;
}
#custom-launcher {
background-color: #1b242b;
color: #6a92d7;
border-radius: 7.5px;
padding: 3px 6px; /* Adjusted padding */
}
#custom-weather.severe {
color: #eb937d;
}
#custom-weather.sunnyDay {
color: #c2ca76;
}
#custom-weather.clearNight {
color: #cad3f5;
}
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight {
color: #c2ddda;
}
#custom-weather.rainyDay,
#custom-weather.rainyNight {
color: #5aaca5;
}
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight {
color: #d6e7e5;
}
#custom-weather.default {
color: #dbd9d8;
}
/* 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;
}
#pulseaudio {
color: #7d9bba;
}
#clock { #clock {
color: #c8d2e0; border: 2px solid @flavor;
border: 2px solid @accent;
} }
@keyframes blink { @keyframes blink {
to { to {
background-color: rgba(30, 34, 42, 0.5); background-color: alpha(@red, 0.5);
color: #abb2bf;
} }
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
color: @red; color: @red;
animation-name: blink; animation-name: blink;
animation-duration: 0.5s; animation-duration: 1s;
animation-timing-function: linear; animation-timing-function: linear;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-direction: alternate; animation-direction: alternate;
} }
label:focus {
background-color: #000000;
}
#disk {
background-color: #964b00;
}
#bluetooth {
color: @sapphire;
}
#bluetooth.disconnected {
color: @red;
}
#network.disconnected { #network.disconnected {
color: @red; color: @red;
} }
#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.critical { #temperature.critical {
background-color: #eb4d4b; background-color: #eb4d4b;
} }
@@ -373,37 +206,4 @@ label:focus {
#tray > .needs-attention { #tray > .needs-attention {
-gtk-icon-effect: highlight; -gtk-icon-effect: highlight;
background-color: #eb4d4b; background-color: #eb4d4b;
} }
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#language {
background: #00b093;
color: #740864;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 0px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}