summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/waybar/config70
-rwxr-xr-x.config/waybar/custom/disk3
-rwxr-xr-x.config/waybar/custom/keyboard11
-rw-r--r--.config/waybar/style.css89
4 files changed, 173 insertions, 0 deletions
diff --git a/.config/waybar/config b/.config/waybar/config
new file mode 100644
index 0000000..aecec60
--- /dev/null
+++ b/.config/waybar/config
@@ -0,0 +1,70 @@
+// vi: ft=jsonc
+{
+ "layer": "top",
+ "position": "top",
+ "height": 40,
+ "spacing": 8,
+ "modules-left": ["wlr/workspaces"],
+ "modules-center": ["clock"],
+ "modules-right": [
+ "custom/keyboard",
+ "network",
+ "custom/disk",
+ "backlight",
+ "wireplumber",
+ "battery"
+ ],
+ "wlr/workspaces": {
+ "sort-by-number": true,
+ "on-click": "activate",
+ "format": " {name} ",
+ "all-outputs": true
+ },
+ "clock": {
+ "interval": 1,
+ // https://www.typeerror.org/docs/cpp/chrono/format
+ "format": "{:%d %B %Y (%a) — %T %Z}"
+ },
+ "custom/keyboard": {
+ "interval": 1,
+ "format": " {}",
+ "exec": "~/.config/waybar/custom/keyboard"
+ },
+ "network": {
+ "interface": "wlp170s0",
+ "format": "{ifname}",
+ "iterval": 1,
+ "format-wifi": " {essid}",
+ "format-ethernet": " {ipaddr}/{cidr}",
+ "format-disconnected": " No connection"
+ },
+ "custom/disk": {
+ "interval": 30,
+ "format": " {}",
+ "exec": "~/.config/waybar/custom/disk"
+ },
+ "backlight": {
+ "interval": 1,
+ "format": "{icon} {percent}%",
+ "format-icons": [""]
+ },
+ "wireplumber": {
+ //"interval": 1,
+ //"exec": "amixer get Master | grep -o '[0-9]*%' -m1 | tr -d %",
+ "format": "<span font='Font Awesome 6 Free'>{icon}</span> {volume}%",
+ "format-muted": "<span font='Font Awesome 6 Free'>{icon}</span> Muted",
+ "format-icons": {
+ "headphone": "",
+ "default": ["", "", ""]
+ }
+ },
+ "battery": {
+ "bat": "BAT1",
+ "states": {
+ "critical": 20
+ },
+ "format": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-icons": ["", "", "", "", ""]
+ }
+}
diff --git a/.config/waybar/custom/disk b/.config/waybar/custom/disk
new file mode 100755
index 0000000..143e41c
--- /dev/null
+++ b/.config/waybar/custom/disk
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+df -BG | awk '$6 == "/" { print $3 }'
diff --git a/.config/waybar/custom/keyboard b/.config/waybar/custom/keyboard
new file mode 100755
index 0000000..eba7e61
--- /dev/null
+++ b/.config/waybar/custom/keyboard
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+hyprctl devices | sed -En '
+/^\tKeyboard at/ {
+ :loop
+ n
+ /^\t\t\trules: /! b loop
+ s/.* l "([^"]+)", v "([^"]+)".*/\1(\2)/p
+ q
+}
+'
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..7468468
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,89 @@
+@keyframes blink {
+ to {
+ color: #FFF;
+ box-shadow: inset 0 -3px #FFF;
+ }
+}
+
+* {
+ font-family: "Iosevka Smooth";
+ font-size: 16px;
+}
+
+window#waybar {
+ background-color: rgba(43, 48, 59, 0.5);
+ border-bottom: 3px solid rgba(100, 114, 125, 0.5);
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+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;
+}
+
+button:hover {
+ background: inherit;
+}
+
+#workspaces {
+ margin: 0 4px;
+}
+
+/* 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;
+}
+
+#workspaces button {
+ color: #FFF;
+ padding: 0 5px;
+ background-color: transparent;
+}
+
+#workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#workspaces button.active {
+ background-color: rgba(0, 0, 0, 0.4);
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#backlight,
+#battery,
+#clock,
+#custom-disk,
+#custom-keyboard,
+#network,
+#wireplumber {
+ padding: 0 5px;
+ color: #FFF;
+}
+
+button:hover,
+#workspaces button.active {
+ color: #FFF;
+ box-shadow: inset 0 -3px #FAA14F;
+}
+
+#battery.critical:not(.charging) {
+ color: #F53C3C;
+ box-shadow: inset 0 -3px #F53C3C;
+ animation-name: blink;
+ animation-duration: 0.65s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}