diff --git a/stow/.config/waybar/config.jsonc b/stow/.config/waybar/config.jsonc
index 21128e4..fc1772e 100644
--- a/stow/.config/waybar/config.jsonc
+++ b/stow/.config/waybar/config.jsonc
@@ -1,194 +1,215 @@
-// -*- mode: jsonc -*-
+// waybar taken from: https://github.com/gmr458/.dotfiles/tree/main/waybar/.config/waybar
+
{
- "layer": "top", // Waybar at top layer
- "position": "left", // Waybar position (top|bottom|left|right)
- // "height": 30, // Waybar height (to be removed for auto height)
- "width": 15, // Waybar width
- "spacing": 4, // Gaps between modules (4px)
- // Choose the order of the modules
+ "layer": "top",
+ "position": "left",
+ "width": 24,
+ "margin-top": 0,
+ "margin-bottom": 0,
+ "margin-left": 0,
+ "margin-right": 0,
+ "spacing": 0,
+ "gtk-layer-shell": true,
"modules-left": [
- "hyprland/workspaces"
-// "custom/media"
+ "custom/notification",
+ // "backlight/slider",
+ "backlight",
+ "pulseaudio/slider",
+ "pulseaudio#audio",
+ "network"
+// "bluetooth"
],
-// "modules-center": [
-// "hyprland/window"
-// ],
- "modules-right": [
-// "mpd",
-// "idle_inhibitor",
-// "pulseaudio",
-// "power-profiles-daemon",
-// "cpu",
-// "memory",
-// "temperature",
-// "backlight",
-// "keyboard-state",
-// "sway/language",
- "network",
- "wireplumber",
- "battery",
- "tray",
- "clock"
- ],
- // Modules configuration
- // "sway/workspaces": {
- // "disable-scroll": true,
- // "all-outputs": true,
- // "warp-on-scroll": false,
- // "format": "{name}: {icon}",
- // "format-icons": {
- // "1": "",
- // "2": "",
- // "3": "",
- // "4": "",
- // "5": "",
- // "urgent": "",
- // "focused": "",
- // "default": ""
- // }
- // },
- "keyboard-state": {
- "numlock": true,
- "capslock": true,
- "format": "{name} {icon}",
- "format-icons": {
- "locked": "",
- "unlocked": ""
- }
- },
- "sway/mode": {
- "format": "{}"
- },
- "sway/scratchpad": {
- "format": "{icon} {count}",
- "show-empty": false,
- "format-icons": ["", ""],
- "tooltip": true,
- "tooltip-format": "{app}: {title}"
- },
- "mpd": {
- "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
- "format-disconnected": "Disconnected ",
- "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
- "unknown-tag": "N/A",
- "interval": 5,
- "consume-icons": {
- "on": " "
- },
- "random-icons": {
- "off": " ",
- "on": " "
- },
- "repeat-icons": {
- "on": " "
- },
- "single-icons": {
- "on": "1 "
- },
- "state-icons": {
- "paused": "",
- "playing": ""
- },
- "tooltip-format": "MPD (connected)",
- "tooltip-format-disconnected": "MPD (disconnected)"
- },
- "idle_inhibitor": {
+ "custom/notification": {
+ "tooltip": false,
"format": "{icon}",
"format-icons": {
- "activated": "",
- "deactivated": ""
- }
+ "notification": "",
+ "none": "",
+ "dnd-notification": "",
+ "dnd-none": "",
+ "inhibited-notification": "",
+ "inhibited-none": "",
+ "dnd-inhibited-notification": "",
+ "dnd-inhibited-none": ""
+ },
+ "return-type": "json",
+ "exec-if": "which swaync-client",
+ "exec": "swaync-client -swb",
+ "on-click": "swaync-client -t -sw",
+ "on-click-right": "swaync-client -d -sw",
+ "escape": true
},
- "tray": {
- // "icon-size": 21,
- "spacing": 10
+ // "backlight/slider": {
+ // "min": 1,
+ // "max": 100,
+ // "orientation": "vertical"
+ // },
+ "backlight": {
+ "format": "{icon}",
+ "format-icons": [""],
+ "on-scroll-up": "brightnessctl set +5%",
+ "on-scroll-down": "brightnessctl set 5%-",
+ "on-click": "",
+ "tooltip": true,
+ "tooltip-format": "{percent}%"
},
- "clock": {
- // "timezone": "America/New_York",
- "format": "{:%H\n%M}",
- "format-alt": "{:%Y-%m-%d}"
+ "pulseaudio/slider": {
+ "min": 0,
+ "max": 100,
+ "orientation": "vertical"
},
- "cpu": {
- "format": "{usage}% ",
+ "pulseaudio#audio": {
+ "format": "{icon}",
+ "format-bluetooth": "\n{icon}",
+ "format-bluetooth-muted": "\n",
+ "format-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
+ "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +1%",
+ "on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -1%",
+ "tooltip": true,
+ "tooltip-format": "{icon} {desc} {volume}%"
+ },
+ "pulseaudio#microphone": {
+ "format": "{format_source}",
+ "format-source": " {volume}%",
+ "format-source-muted": " {volume}%",
+ "on-click": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
+ "on-scroll-up": "pactl set-source-volume @DEFAULT_SOURCE@ +1%",
+ "on-scroll-down": "pactl set-source-volume @DEFAULT_SOURCE@ -1%",
+ "max-volume": 100,
"tooltip": false
},
+ "network": {
+ "interval": 1,
+ "interface": "wlo1",
+ "format-icons": ["", "", "", "", ""],
+ "format-wifi": "{icon}",
+ "format-disconnected": "",
+ "on-click": "nm-connection-editor",
+ "tooltip": true,
+ "tooltip-format": " {ifname}\n {ipaddr}/{cidr}\n{icon} {essid}\n {signalStrength}% {signaldBm} dBm {frequency} MHz\n {bandwidthDownBytes}\n {bandwidthUpBytes}"
+ },
+ "bluetooth": {
+ "format-disabled": "",
+ "format-off": "",
+ "format-on": "",
+ "format-connected": "",
+ "format-connected-battery": "",
+ "tooltip-format-connected": "{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias} {device_battery_percentage}% {device_address}",
+ "on-click": "blueman-manager",
+ "tooltip": true
+ },
+ "modules-center": [
+ "hyprland/workspaces",
+ "hyprland/submap",
+ "sway/workspaces",
+ "sway/mode"
+ ],
+ "hyprland/workspaces": {
+ "format": "{icon}",
+ "format-icons": {
+ "1": "1",
+ "2": "2",
+ "3": "3",
+ "4": "4",
+ "5": "5",
+ "6": "6",
+ "7": "7",
+ "8": "8",
+ "9": "9",
+ "default": "1"
+ },
+ "on-click": "activate"
+ },
+ "hyprland/submap": {
+ "format": "{}",
+ "tooltip": false
+ },
+ "hyprland/window": {
+ "format": " {:.40} ",
+ "separate-outputs": false
+ },
+ "sway/workspaces": {
+ "format": "{icon}",
+ "format-icons": {
+ "1": "1",
+ "2": "2",
+ "3": "3",
+ "4": "4",
+ "5": "5",
+ "6": "6",
+ "7": "7",
+ "8": "8",
+ "9": "9",
+ "default": "1"
+ },
+ "on-click": "activate"
+ },
+ "sway/mode": {
+ "format": "{}",
+ "tooltip": false
+ },
+ "wlr/taskbar": {
+ "format": "{icon}",
+ "active-first": true
+ },
+ "modules-right": [
+ // "pulseaudio#microphone",
+ // "battery"
+ "tray",
+ "memory",
+ "cpu",
+ "clock"
+ ],
+ "tray": {
+ "icon-size": 14,
+ "spacing": 8
+ },
+ "cpu": {
+ "format": "",
+ "on-click": "",
+ "tooltip": true
+ },
"memory": {
- "format": "{}% "
- },
- "temperature": {
- // "thermal-zone": 2,
- // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
- "critical-threshold": 80,
- // "format-critical": "{temperatureC}°C {icon}",
- "format": "{temperatureC}°C {icon}",
- "format-icons": ["", "", ""]
- },
- "backlight": {
- // "device": "acpi_video1",
- "format": "{percent}% {icon}",
- "format-icons": ["", "", "", "", "", "", "", "", ""]
+ "format": "",
+ "tooltip-format": " Total: {total:0.1f}GB, Avail: {avail:0.1f}GB, Used: {used:0.1f}GB ({percentage}%)\n Total: {swapTotal:0.1f}GB, Avail: {swapAvail:0.1f}GB, Used: {swapUsed:0.1f}GB ({swapPercentage}%)",
+ "on-click": "",
+ "tooltip": true
},
"battery": {
"states": {
- // "good": 95,
"warning": 30,
"critical": 15
},
- "format": "{icon}",
- "format-full": "{icon}",
- "format-charging": "",
- "format-plugged": "",
- "format-alt": "{time} {icon}",
- // "format-good": "", // An empty format will hide the module
- // "format-full": "",
- "format-icons": ["", "", "", "", ""]
+ "format": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-icons": ["", "", "", "", "", "", "", "", "", ""],
+ "on-click": "",
+ "tooltip": false
},
- "wireplumber": {
- "format": "{icon}",
- "format-muted": "",
- "tooltip-format": "{volume}% on {node_name}",
- "on-click": "helvum",
- "max-volume": 100,
- "scroll-step": 1,
- "format-icons": ["", "", ""]
- },
- "network": {
- // "interface": "wlp2*", // (Optional) To force the use of this interface
- //"format-wifi": "{essid} ({signalStrength}%) ",
- //"format-ethernet": "{ipaddr}/{cidr} ",
- //"tooltip-format": "{ifname} via {gwaddr} ",
- //"format-linked": "{ifname} (No IP) ",
- //"format-disconnected": "Disconnected ⚠",
- //"format-alt": "{ifname}: {ipaddr}/{cidr}"
- "format-wifi": "",
- "format-ethernet": "",
- "tooltip-format": "{ifname} via {gwaddr} ",
- "format-linked": "",
- "format-disconnected": "⚠",
- "format-alt": "{ifname}: {ipaddr}/{cidr}"
- },
- "custom/media": {
- "format": "{icon} {text}",
- "return-type": "json",
- "max-length": 40,
- "format-icons": {
- "spotify": "",
- "default": "🎜"
- },
- "escape": true,
- "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
- // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
- },
- "custom/power": {
- "format" : "⏻ ",
- "tooltip": false,
- "menu": "on-click",
- "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
- "menu-actions": {
- "shutdown": "shutdown",
- "reboot": "reboot",
- "suspend": "systemctl suspend",
- "hibernate": "systemctl hibernate"
- }
+ "clock": {
+ "interval": 1,
+ "format": "\n{:%I\n%M\n}",
+ "format-alt": "\n{:%d\n%m\n%y\n\n%I\n%M\n}",
+ "tooltip": true,
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "mode": "year",
+ "mode-mon-col": 3,
+ "format": {
+ "today": "{}"
+ }
+ }
}
}
diff --git a/stow/.config/waybar/style.css b/stow/.config/waybar/style.css
index e4c48fd..3799565 100644
--- a/stow/.config/waybar/style.css
+++ b/stow/.config/waybar/style.css
@@ -1,159 +1,204 @@
-@define-color text #c0caf5;
-@define-color background #24283b;
-@define-color backgroundalt #181b29;
+@define-color white #F2F2F2;
+@define-color black #000203;
+@define-color text #BECBCB;
+@define-color lightgray #686868;
+@define-color darkgray #353535;
+@define-color red #F38BA8;
-@define-color black #1d202f;
-@define-color red #f7768e;
-@define-color green #9ece6a;
-@define-color yellow #e0af68;
-@define-color blue #7aa2f7;
-@define-color purple #bb9af7;
-@define-color cyan #7dcfff;
-@define-color gray #a9b1d6;
+@define-color black-transparent-1 rgba(0, 0, 0, 0.1);
+@define-color black-transparent-2 rgba(0, 0, 0, 0.2);
+@define-color black-transparent-3 rgba(0, 0, 0, 0.3);
+@define-color black-transparent-4 rgba(0, 0, 0, 0.4);
+@define-color black-transparent-5 rgba(0, 0, 0, 0.5);
+@define-color black-transparent-6 rgba(0, 0, 0, 0.6);
+@define-color black-transparent-7 rgba(0, 0, 0, 0.7);
+@define-color black-transparent-8 rgba(0, 0, 0, 0.8);
+@define-color black-transparent-9 rgba(0, 0, 0, 0.9);
+@define-color black-solid rgba(0, 0, 0, 1.0);
* {
- /* `otf-font-awesome` is required to be installed for icons */
- font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- font-size: 16px;
+ font-family:
+ Iosevka,
+ Material Design Icons Desktop;
+ font-size: 13px;
+ padding: 0;
+ margin: 0;
}
window#waybar {
- background-color: @background;
+ background-color: @black-transparent-9;
color: @text;
- 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;
-}
-*/
-
-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: @backgroundalt;
+tooltip {
+ background: @black-solid;
+ border: 1px solid @darkgray;
+ border-radius: 0;
}
-
-/* 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);
- color: @red;
-}
-
-#workspaces button.focused {
- background-color: #64727D;
- box-shadow: inset 0 -3px #ffffff;
-}
-
-#workspaces button.urgent {
- background-color: @yellow;
-}
-
-#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;
+tooltip label {
+ color: @text;
}
#workspaces {
+}
+
+#workspaces button {
+ background-color: transparent;
+ color: @lightgray;
+ transition: all 0.3s ease;
+}
+
+#workspaces button:hover {
+ box-shadow: inherit;
+ text-shadow: inherit;
+ background: transparent;
+ border: 1px solid rgba(0, 0, 0, 0);
+ color: @white;
+ transition: all 0.3s ease;
+}
+
+#workspaces button.focused,
+#workspaces button.active {
+ color: @white;
+ transition: all 0.3s ease;
+ animation: colored-gradient 10s ease infinite;
+}
+
+#workspaces button.urgent {
+ background-color: @red;
+ color: @black;
+ transition: all 0.3s ease;
+}
+
+/* -------------------------------------------------------------------------------- */
+
+#submap,
+#mode,
+#tray,
+#cpu,
+#memory,
+#backlight,
+#pulseaudio.audio,
+#pulseaudio.microphone,
+#network.wlo1,
+#network.eno1,
+#bluetooth,
+#battery,
+#clock,
+#mpd,
+#custom-media,
+#custom-notification {
+ background-color: transparent;
+ color: @text;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left: 0;
+ margin-right: 0;
+ border-radius: 20px;
+ transition: all 0.3s ease;
+}
+
+#submap {
+ border: 0;
+}
+
+/* -------------------------------------------------------------------------------- */
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces button,
+.modules-left > widget:first-child > #tray,
+.modules-left > widget:first-child > #cpu,
+.modules-left > widget:first-child > #memory,
+.modules-left > widget:first-child > #backlight,
+.modules-left > widget:first-child > #pulseaudio.audio,
+.modules-left > widget:first-child > #pulseaudio.microphone,
+.modules-left > widget:first-child > #network.wlo1,
+.modules-left > widget:first-child > #network.eno1,
+.modules-left > widget:first-child > #bluetooth,
+.modules-left > widget:first-child > #battery,
+.modules-left > widget:first-child > #clock,
+.modules-left > widget:first-child > #custom-notification {
+ margin-top: 4px;
+}
+
+.modules-right > widget:last-child > #workspaces button,
+.modules-right > widget:last-child > #tray,
+.modules-right > widget:last-child > #cpu,
+.modules-right > widget:last-child > #memory,
+.modules-right > widget:last-child > #backlight,
+.modules-right > widget:last-child > #pulseaudio.audio,
+.modules-right > widget:last-child > #pulseaudio.microphone,
+.modules-right > widget:last-child > #network.wlo1,
+.modules-right > widget:last-child > #network.eno1,
+.modules-right > widget:last-child > #bluetooth,
+.modules-right > widget:last-child > #battery,
+.modules-right > widget:last-child > #clock,
+.modules-right > widget:last-child > #custom-notification {
margin-bottom: 4px;
}
-/* If workspaces is the leftmost module, omit left margin */
-.modules-left > widget:first-child > #workspaces {
- margin-left: 0;
+/* -------------------------------------------------------------------------------- */
+
+#tray {
+ background-color: transparent;
+ padding: 1px 5px;
+}
+#tray menu {
+ padding: 2px;
+ border-radius: 0;
}
-/* If workspaces is the rightmost module, omit right margin */
-.modules-right > widget:last-child > #workspaces {
- margin-right: 0;
+/* -------------------------------------------------------------------------------- */
+
+#backlight-slider {
+ margin-top: 10px;
}
-#clock {
- color: @blue;
- padding-bottom: 4px;
+#backlight-slider slider {
+ min-height: 0px;
+ min-width: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
+}
+#backlight-slider trough {
+ min-height: 80px;
+ min-width: 10px;
+ border-radius: 5px;
+ background-color: black;
+}
+#backlight-slider highlight {
+ min-width: 6px;
+ border: 1px solid @text;
+ border-radius: 5px;
+ background-color: @text;
}
-#wireplumber {
- color: @yellow;
- font-size: 26px;
+/* -------------------------------------------------------------------------------- */
+
+#pulseaudio-slider {
+ margin-top: 6px;
}
-#network {
- color: @cyan;
- font-size: 23px;
+#pulseaudio-slider slider {
+ min-height: 0px;
+ min-width: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
-
-#battery {
- color: @text;
- font-size: 23px;
+#pulseaudio-slider trough {
+ min-height: 80px;
+ min-width: 5px;
+ border-radius: 5px;
+ background-color: black;
}
-#battery.charging, #battery.plugged {
- 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) {
- color: @red;
- background-color: @backgroundalt;
- font-size: 23px;
-
- animation-name: blink;
- animation-duration: 0.5s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-#custom-power {
- color: @red;
+#pulseaudio-slider highlight {
+ min-width: 5px;
+ border: 1px solid @text;
+ border-radius: 5px;
+ background-color: @text;
}