aboutsummaryrefslogtreecommitdiff
path: root/dot-config
diff options
context:
space:
mode:
authorBlake Romero <blake@blkrom.com>2025-07-24 22:35:41 +0100
committerBlake Romero <blake@blkrom.com>2025-07-24 22:35:41 +0100
commit0638e8adb7c0ce2c123cd7ad9f21c64d49c111dd (patch)
tree969880981e8ce7f116e15a8fab72512426057e91 /dot-config
parentf4662f2b58cbf8ed2cbdc49fb52b9e4bfa60d888 (diff)
Add waybar config
Diffstat (limited to 'dot-config')
-rw-r--r--dot-config/waybar/config.jsonc122
-rw-r--r--dot-config/waybar/default.css347
-rw-r--r--dot-config/waybar/style.css61
3 files changed, 530 insertions, 0 deletions
diff --git a/dot-config/waybar/config.jsonc b/dot-config/waybar/config.jsonc
new file mode 100644
index 0000000..390ba25
--- /dev/null
+++ b/dot-config/waybar/config.jsonc
@@ -0,0 +1,122 @@
+// -*- mode: jsonc -*-
+{
+ // "height": 10,
+ "spacing": 20,
+ "reload_style_on_change": true,
+ "modules-left": [ "niri/workspaces" ],
+ "modules-center": [],
+ "modules-right": [
+ "tray",
+ "cpu",
+ "memory",
+ "network",
+ "backlight",
+ "wireplumber",
+ "battery",
+ "clock",
+ "clock#calendar"
+ ],
+
+ // MODULES
+ "niri/workspaces": {
+ "format": "{value}"
+ },
+ "clock": {
+ "format": "{:%R} 󱑊 ",
+ "format-alt": "{:%r} 󱑊 "
+ },
+ "clock#calendar": {
+ "format": "{:%a %d %B}  ",
+ "format-alt": "{:%Y-%m-%d}  ",
+ "tooltip-format": "<tt><small>{calendar}</small></tt>",
+ "calendar": {
+ "mode" : "year",
+ "mode-mon-col" : 3,
+ "weeks-pos" : "right",
+ "on-scroll" : 1,
+ "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": "mode"
+ }
+ },
+ "battery": {
+ "interval": 60,
+ "states": {
+ "warning": 20,
+ "critical": 10
+ },
+ "format": "{capacity}% {icon}",
+ "format-alt": "({time}) {capacity}% {icon}",
+ "format-icons": ["󰁺 ","󰁻 ","󰁼 ","󰁽 ","󰁾 ","󰁿 ","󰂀 ","󰂁 ","󰂂 ","󰁹 "]
+ },
+ "wireplumber": {
+ "format": "{volume}% {icon}",
+ "format-muted": " ",
+ "on-click": "pulsemixer",
+ "format-icons": [" ", " ", " "]
+ },
+ "tray": {
+ "icon-size": 21,
+ "spacing": 10,
+ "icons": {
+ "blueman": "bluetooth",
+ "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
+ }
+ },
+ "network": {
+ "format": "{ifname}",
+ "format-wifi": "{essid}  ",
+ "format-ethernet": "{ipaddr}/{cidr} 󰊗 ",
+ "format-disconnected": "", //An empty format will hide the module.
+ "tooltip-format": "{ifname} via {gwaddr} 󰊗 ",
+ "tooltip-format-wifi": "{essid} ({signalStrength}%)  ",
+ "tooltip-format-ethernet": "{ifname} " ,
+ "tooltip-format-disconnected": "Disconnected",
+ "max-length": 100
+ },
+ "memory": {
+ "interval": 30,
+ "format": "{used:0.1f}G  "
+ },
+ "cpu": {
+ "interval": 10,
+ "format": "{}%  ",
+ "max-length": 10
+ },
+ "backlight": {
+ "format": "{percent}% {icon}",
+ "format-icons": ["󱩎 ","󱩏 ","󱩐 ","󱩑 ","󱩒 ","󱩓 ","󱩔 ","󱩕 ","󱩖 ","󰛨 "]
+ },
+
+ // NOT ENABLED
+ "wlr/taskbar": {
+ "format": "{icon}",
+ "icon-size": 14,
+ "icon-theme": "Numix-Circle",
+ "tooltip-format": "{title}",
+ "on-click": "activate",
+ "on-click-middle": "close",
+ "ignore-list": [
+ "Alacritty"
+ ],
+ "app_ids-mapping": {
+ "firefoxdeveloperedition": "firefox-developer-edition"
+ },
+ "rewrite": {
+ "Firefox Web Browser": "Firefox",
+ "Foot Server": "Terminal"
+ }
+ },
+ "pulseaudio/slider": {
+ "min": 0,
+ "max": 100,
+ "orientation": "horizontal"
+ }
+}
diff --git a/dot-config/waybar/default.css b/dot-config/waybar/default.css
new file mode 100644
index 0000000..54b50fc
--- /dev/null
+++ b/dot-config/waybar/default.css
@@ -0,0 +1,347 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+}
+
+window#waybar {
+ background-color: rgba(43, 48, 59, 0.5);
+ border-bottom: 3px solid rgba(100, 114, 125, 0.5);
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+/*
+window#waybar.empty {
+ background-color: transparent;
+}
+window#waybar.solo {
+ background-color: #FFFFFF;
+}
+*/
+
+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;
+}
+
+#workspaces button {
+ padding: 0 5px;
+ background-color: transparent;
+ color: #ffffff;
+}
+
+#workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#workspaces button.focused {
+ background-color: #64727D;
+ box-shadow: inset 0 -3px #ffffff;
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#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 10px;
+ color: #ffffff;
+}
+
+#window,
+#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;
+}
+
+#clock {
+ background-color: #64727D;
+}
+
+#battery {
+ background-color: #ffffff;
+ color: #000000;
+}
+
+#battery.charging, #battery.plugged {
+ color: #ffffff;
+ background-color: #26A65B;
+}
+
+@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: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+#power-profiles-daemon {
+ padding-right: 15px;
+}
+
+#power-profiles-daemon.performance {
+ background-color: #f53c3c;
+ color: #ffffff;
+}
+
+#power-profiles-daemon.balanced {
+ background-color: #2980b9;
+ color: #ffffff;
+}
+
+#power-profiles-daemon.power-saver {
+ background-color: #2ecc71;
+ color: #000000;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#cpu {
+ background-color: #2ecc71;
+ color: #000000;
+}
+
+#memory {
+ background-color: #9b59b6;
+}
+
+#disk {
+ background-color: #964B00;
+}
+
+#backlight {
+ background-color: #90b1b1;
+}
+
+#network {
+ background-color: #2980b9;
+}
+
+#network.disconnected {
+ background-color: #f53c3c;
+}
+
+#pulseaudio {
+ background-color: #f1c40f;
+ color: #000000;
+}
+
+#pulseaudio.muted {
+ background-color: #90b1b1;
+ color: #2a5c45;
+}
+
+#wireplumber {
+ background-color: #fff0f5;
+ color: #000000;
+}
+
+#wireplumber.muted {
+ background-color: #f53c3c;
+}
+
+#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 {
+ background-color: #f0932b;
+}
+
+#temperature.critical {
+ background-color: #eb4d4b;
+}
+
+#tray {
+ background-color: #2980b9;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+}
+
+#idle_inhibitor {
+ background-color: #2d3436;
+}
+
+#idle_inhibitor.activated {
+ background-color: #ecf0f1;
+ color: #2d3436;
+}
+
+#mpd {
+ background-color: #66cc99;
+ color: #2a5c45;
+}
+
+#mpd.disconnected {
+ background-color: #f53c3c;
+}
+
+#mpd.stopped {
+ background-color: #90b1b1;
+}
+
+#mpd.paused {
+ background-color: #51a37a;
+}
+
+#language {
+ background: #00b093;
+ color: #740864;
+ padding: 0 5px;
+ 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 5px;
+}
+
+#keyboard-state > label.locked {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#scratchpad {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#scratchpad.empty {
+ background-color: transparent;
+}
+
+#privacy {
+ padding: 0;
+}
+
+#privacy-item {
+ padding: 0 5px;
+ color: white;
+}
+
+#privacy-item.screenshare {
+ background-color: #cf5700;
+}
+
+#privacy-item.audio-in {
+ background-color: #1ca000;
+}
+
+#privacy-item.audio-out {
+ background-color: #0069d4;
+}
+
+#pulseaudio-slider slider {
+ min-height: 0px;
+ min-width: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
+}
+#pulseaudio-slider trough {
+ min-height: 10px;
+ min-width: 80px;
+ border-radius: 5px;
+ background-color: black;
+}
+#pulseaudio-slider highlight {
+ min-width: 10px;
+ border-radius: 5px;
+ background-color: green;
+}
diff --git a/dot-config/waybar/style.css b/dot-config/waybar/style.css
new file mode 100644
index 0000000..49ca5af
--- /dev/null
+++ b/dot-config/waybar/style.css
@@ -0,0 +1,61 @@
+* {
+ font-family: "Hack Nerd Font", "Hack", monospace;
+ font-size: 12px;
+ box-shadow: none;
+}
+
+window#waybar {
+ background-color: #000;
+ border-bottom: 1px solid #444;
+ color: #eee;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+/* WORKSPACES */
+#workspaces button {
+ padding: 0 8px;
+ background-color: transparent;
+ color: #aaa;
+ border: 1px solid black;
+ border-radius: 5px;
+ margin: 1px 0;
+}
+
+#workspaces button:hover {
+ background: #fff;
+ color: #000;
+ border: 1px solid black;
+}
+
+#workspaces button.focused {
+ border: 1px solid white;
+ box-shadow: none;
+ color: #fff;
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+
+/* PULSEAUDIO SLIDER */
+#pulseaudio-slider slider {
+ min-height: 0px;
+ min-width: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
+}
+#pulseaudio-slider trough {
+ min-height: 10px;
+ min-width: 80px;
+ border-radius: 5px;
+ background-color: black;
+}
+#pulseaudio-slider highlight {
+ min-width: 10px;
+ border-radius: 5px;
+ background-color: green;
+}