about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@tvl.su>2024-09-05T22·00+0300
committerclbot <clbot@tvl.fyi>2024-09-05T22·11+0000
commit72bdb15958c5ae9abf24e3a66192867fabdbe11e (patch)
treeaa8c78350857a64a098f38644f58e794c6aa9755
parent730d1cc77be5286b4fb62bc11c5a9f5d5d43dd25 (diff)
feat(tazjin/dotfiles): add waybar configuration r/8656
This configuration is not automatically placed anywhere yet, because I'm also
still actively iterating on it.

Change-Id: I0a13fcbc2b9a5587480f6a69a73ab99b36d209e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12435
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
-rw-r--r--users/tazjin/dotfiles/default.nix1
-rw-r--r--users/tazjin/dotfiles/waybar/config.jsonc29
-rw-r--r--users/tazjin/dotfiles/waybar/style.css147
-rw-r--r--users/tazjin/nixos/modules/desktop.nix1
4 files changed, 177 insertions, 1 deletions
diff --git a/users/tazjin/dotfiles/default.nix b/users/tazjin/dotfiles/default.nix
index 6a5f02d0182d..2e270bbc3891 100644
--- a/users/tazjin/dotfiles/default.nix
+++ b/users/tazjin/dotfiles/default.nix
@@ -1,4 +1,5 @@
 _: {
   dunstrc = ./dunstrc;
   niri = ./niri.config.kdl;
+  waybar = ./waybar;
 }
diff --git a/users/tazjin/dotfiles/waybar/config.jsonc b/users/tazjin/dotfiles/waybar/config.jsonc
new file mode 100644
index 000000000000..6d3dbadb4511
--- /dev/null
+++ b/users/tazjin/dotfiles/waybar/config.jsonc
@@ -0,0 +1,29 @@
+// TODO: idle-inhibitor? image (tux?)?
+{
+  "layer": "top",
+  "position": "bottom",
+  "modules-right": ["pulseaudio", "backlight", "battery", "tray", "clock"],
+  "pulseaudio": {
+    "on-click": "pavucontrol",
+    // Font "Awesome" speaker icons can't be made to render, I don't care why, emoji time.
+    "format": "{volume}% 🎧",
+    "format-muted": "{volume}% "
+  },
+  "battery": {
+	"format": "{capacity}% {icon}",
+    "format-icons": ["", "", "", "", ""]
+  },
+  "backlight": {
+    "format": "{percent}% {icon}",
+    "format-icons": [""],
+    "on-scroll-up": "light -A 1",
+    "on-scroll-down": "light -U 1"
+  },
+  "clock": {
+	"format-alt": "{:%a, %d. %b  %H:%M}"
+  },
+  "tray": {
+    "icon-size": 20,
+    "spacing": 10
+  }
+}
diff --git a/users/tazjin/dotfiles/waybar/style.css b/users/tazjin/dotfiles/waybar/style.css
new file mode 100644
index 000000000000..5591545085a6
--- /dev/null
+++ b/users/tazjin/dotfiles/waybar/style.css
@@ -0,0 +1,147 @@
+* {
+    /* `otf-font-awesome` is required to be installed for icons */
+    font-family: FontAwesome, Unifont;
+    font-size: 16px;
+}
+
+window#waybar {
+    background-color: #c0c0c0;
+    border-top: 3px solid #dfdfdf;
+    color: #000000;
+    transition-property: background-color;
+    transition-duration: .5s;
+}
+
+window#waybar.hidden {
+    opacity: 0.2;
+}
+
+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 #ffffff;
+}
+
+/* you can set a style on hover for any module like this */
+#pulseaudio:hover {
+    background-color: #a37800;
+}
+
+#mode {
+    background-color: #64727D;
+    box-shadow: inset 0 -3px #ffffff;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#power-profiles-daemon,
+#mpd {
+    padding: 0 5px;
+    padding-top: 0px;
+    padding-bottom: 0px;
+    /* color: #ffffff; */
+}
+
+#window,
+#workspaces {
+    margin: 0 4px;
+}
+
+/* indent right modules like in the original */
+.modules-right, .modules-left {
+    margin: 3px;
+    border-top: 1px solid gray;
+    border-left: 1px solid gray;
+    border-right: 1px solid white;
+    border-bottom: 1px solid white;
+}
+
+/* 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;
+}
+
+#battery.charging, #battery.plugged {
+    color: #ffffff;
+    background-color: #208C71;
+}
+
+@keyframes blink {
+    to {
+        background-color: #ffffff;
+        color: #000000;
+    }
+}
+
+/* Using steps() instead of linear as a timing function to limit cpu usage */
+#battery.critical:not(.charging) {
+    background-color: #e35f5f;
+    color: #ffffff;
+    animation-name: blink;
+    animation-duration: 0.5s;
+    animation-timing-function: steps(12);
+    animation-iteration-count: infinite;
+    animation-direction: alternate;
+}
+
+label:focus {
+    background-color: #000000;
+}
+
+#pulseaudio.muted {
+    background-color: #808080;
+    color: #000000;
+}
+
+#tray > .passive {
+    -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+    -gtk-icon-effect: highlight;
+    background-color: #e35f5f;
+}
+
+#idle_inhibitor {
+    background-color: #2d3436;
+}
+
+#idle_inhibitor.activated {
+    background-color: #ecf0f1;
+    color: #2d3436;
+}
diff --git a/users/tazjin/nixos/modules/desktop.nix b/users/tazjin/nixos/modules/desktop.nix
index 6f7c8906334b..dfbc12dfd8e9 100644
--- a/users/tazjin/nixos/modules/desktop.nix
+++ b/users/tazjin/nixos/modules/desktop.nix
@@ -35,7 +35,6 @@
     # support tooling
     alacritty
     qt5.qtwayland
-    sfwbar
     swayidle
     waybar
     wdisplays