feat(waybar): add gnome-like workspace indicator :starstruck:

This commit is contained in:
João Dias
2024-09-12 20:09:02 -03:00
parent 15de81841d
commit 323d1c599e
2 changed files with 69 additions and 46 deletions
+20 -15
View File
@@ -1,5 +1,6 @@
{ {
"position": "top", "position": "top",
"layer": "top",
"spacing": 4, "spacing": 4,
"margin": 5, "margin": 5,
"reload_style_on_change": true, "reload_style_on_change": true,
@@ -16,6 +17,7 @@
"tray", "tray",
"pulseaudio", "pulseaudio",
"bluetooth", "bluetooth",
"network",
"custom/notifications" "custom/notifications"
], ],
@@ -23,10 +25,10 @@
"all-outputs": true, "all-outputs": true,
"format": "{icon}", "format": "{icon}",
"format-icons": { "format-icons": {
"urgent": "", "urgent": "",
"focused": "", "focused": "",
"active": "", "active": "",
"default": "" "default": ""
}, },
"persistent-workspaces": { "persistent-workspaces": {
"1": [], "1": [],
@@ -58,6 +60,7 @@
"format": "{class}", "format": "{class}",
"show-empty": false, "show-empty": false,
"icon": true, "icon": true,
"separate-outputs": true,
"rewrite": { "rewrite": {
"zen-alpha": "Zen Browser", "zen-alpha": "Zen Browser",
"firefox": "Firefox", "firefox": "Firefox",
@@ -75,7 +78,7 @@
"format": "", // Change to desired logo "format": "", // Change to desired logo
"tooltip": false, "tooltip": false,
"escape": true, "escape": true,
"on-click": "wofi -s drun" // Change to desired action "on-click": "anyrun" // Change to desired action
}, },
"custom/notifications": { "custom/notifications": {
"tooltip": false, "tooltip": false,
@@ -114,10 +117,9 @@
"spacing": 12 "spacing": 12
}, },
"clock": { "clock": {
"timezone": "", "format": "{:L%A %d, %H:%M}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt>{calendar}</tt>", "format-alt": "{:%Y-%m-%d}",
"format": "{:L%a. %d, %H:%M}", "tooltip-format": "<big>{:%Y %B}</big>\n<tt>{calendar}</tt>"
"format-alt": "{:%Y-%m-%d}"
}, },
"cpu": { "cpu": {
"format": " {usage}%", "format": " {usage}%",
@@ -130,8 +132,8 @@
"temperature": { "temperature": {
// "thermal-zone": 2, // "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}", // "format-critical": "{temperatureC}°C {icon}",
"critical-threshold": 80,
"format": "{icon} {temperatureC}°C", "format": "{icon} {temperatureC}°C",
"format-icons": ["", "", ""] "format-icons": ["", "", ""]
}, },
@@ -167,12 +169,15 @@
}, },
"network": { "network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface // "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ", "format-wifi": "{icon}",
"format-ethernet": "{ipaddr}/{cidr} ", "format-ethernet": "",
"tooltip-format": "{ifname} via {gwaddr} ", "tooltip-format": "<tt>{ifname}\t{ipaddr}\n {bandwidthUpBits}\n {bandwidthDownBits}</tt>",
"tooltip-format-disconnected": "<tt>Disconnected</tt>",
"tooltip-format-wifi": "<tt>󰤨 {essid}\n {bandwidthUpBits}\n {bandwidthDownBits}</tt>",
"format-linked": "{ifname} (No IP) ", "format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠", "format-disconnected": "󰤭",
"format-alt": "{ifname}: {ipaddr}/{cidr}" "format-alt": "{ipaddr}/{cidr}",
"format-icons": [ "󰤯", "󰤟", "󰤢", "󰤥", "󰤨" ]
}, },
"pulseaudio": { "pulseaudio": {
"format": "{volume}% {icon} {format_source}", "format": "{volume}% {icon} {format_source}",
+47 -29
View File
@@ -1,6 +1,9 @@
@import "../../.cache/wal/colors-waybar.css"; @import "../../.cache/wal/colors-waybar.css";
@define-color default-workspace @color1;
@define-color active-workspace @color2;
* { * {
color: @foreground; color: @foreground;
border-radius: 14px; border-radius: 14px;
@@ -45,42 +48,30 @@ button:hover {
background: @color1; background: @color1;
} }
/* Workspaces */
#workspaces { #workspaces {
border-radius: 16px; border-radius: 16px;
padding-left: 2px; padding: 4px;
padding-right: 2px;
} }
#workspaces button { #workspaces button {
background: transparent; background: @color1;
font-size: 19px; border-radius: 24px;
border-radius: 16px; padding: 0 4px;
} margin: 0 2px;
#workspaces button label {
color: @foreground;
margin-top: .2px;
margin-left: .1px;
}
#workspaces button:hover {
background: @hover;
} }
#workspaces button.active { #workspaces button.active {
background: @active; background: @foreground;
padding-left: 14px;
padding-right: 14px;
} }
#workspaces button.urgent { #workspaces button.urgent {
background-color: @color1; animation: pick-attention;
} animation-duration: .5s;
@keyframes blink {
to {
background-color: alpha(@crust, .3);
color: @orange;
}
} }
/***/
#custom-logo { #custom-logo {
padding-left: 12px; padding-left: 12px;
@@ -98,24 +89,27 @@ button:hover {
#battery.charging, #battery.plugged { #battery.charging, #battery.plugged {
color: @text; color: @text;
background-color: alpha(@base, .3); background-color: @background;
} }
#battery:not(.plugged):not(.charging) { #battery:not(.plugged):not(.charging) {
background-color: alpha(@blue, .35); background-color: shade(@color1, .68);
} }
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
background-color: @color1; background-color: @color1;
color: @foreground; color: @foreground;
animation-name: blink; animation-name: blink;
animation-duration: 0.5s; animation-duration: .5s;
animation-timing-function: steps(12); animation-timing-function: steps(12);
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-direction: alternate; animation-direction: alternate;
} }
#network.disconnected {
padding-right: 15px;
}
#bluetooth { #bluetooth {
font-size: 14px; font-size: 14px;
} }
@@ -145,5 +139,29 @@ button:hover {
#tray > .needs-attention { #tray > .needs-attention {
-gtk-icon-effect: highlight; -gtk-icon-effect: highlight;
background: @color1; }
@keyframes blink {
to {
background-color: alpha(@crust, .3);
color: @orange;
}
}
@keyframes pick-attention {
25% {
background: @color3;
}
50% {
background: @color2;
}
75% {
background: @color3;
}
100% {
background: @color2;
}
} }