From cc79b2a6b2b3385f05dc58b6828a995177d74030 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Mon, 15 Sep 2025 16:41:15 -0500 Subject: [PATCH] better waybar --- common/_home_manager/mods/foot.nix | 2 +- .../sway/home_manager/sway.nix | 19 +- .../sway/home_manager/waybar.nix | 3 +- .../sway/home_manager/waybar/power_menu.xml | 10 +- .../sway/home_manager/waybar/waybar.css | 313 +++--------------- hosts/lio/flake.lock | 6 +- 6 files changed, 72 insertions(+), 281 deletions(-) diff --git a/common/_home_manager/mods/foot.nix b/common/_home_manager/mods/foot.nix index 29fe6e3..cffbb53 100644 --- a/common/_home_manager/mods/foot.nix +++ b/common/_home_manager/mods/foot.nix @@ -8,7 +8,7 @@ }; alpha = lib.mkOption { type = lib.types.float; - default = 0.935; + default = 0.94; description = "Background opacity for Foot terminal (1.0 = opaque)"; }; }; diff --git a/common/desktop_environment/sway/home_manager/sway.nix b/common/desktop_environment/sway/home_manager/sway.nix index 1db35b0..4ceea67 100644 --- a/common/desktop_environment/sway/home_manager/sway.nix +++ b/common/desktop_environment/sway/home_manager/sway.nix @@ -48,11 +48,28 @@ in gaps = { inner = 2; - outer = 4; + outer = 5; smartGaps = false; smartBorders = "on"; }; + colors = { + focused = { + background = "#444444"; + border = "#555555"; + childBorder = "#444444"; + indicator = "#595959"; + text = "#f1f1f1"; + }; + unfocused = { + background = "#222222"; + border = "#333333"; + childBorder = "#222222"; + indicator = "#292d2e"; + text = "#888888"; + }; + }; + window = { border = 1; titlebar = false; diff --git a/common/desktop_environment/sway/home_manager/waybar.nix b/common/desktop_environment/sway/home_manager/waybar.nix index b381d18..addb94c 100644 --- a/common/desktop_environment/sway/home_manager/waybar.nix +++ b/common/desktop_environment/sway/home_manager/waybar.nix @@ -28,8 +28,6 @@ in modules-left = [ "sway/workspaces" - "sway/mode" - "sway/scratchpad" ]; modules-center = [ "clock" @@ -249,6 +247,7 @@ in "menu-actions" = { shutdown = "shutdown 0"; reboot = "reboot"; + logout = "loginctl terminate-session $(loginctl list-sessions | grep seat0 | awk '{print $1}')"; }; }; diff --git a/common/desktop_environment/sway/home_manager/waybar/power_menu.xml b/common/desktop_environment/sway/home_manager/waybar/power_menu.xml index ae0de45..a061b18 100644 --- a/common/desktop_environment/sway/home_manager/waybar/power_menu.xml +++ b/common/desktop_environment/sway/home_manager/waybar/power_menu.xml @@ -1,13 +1,21 @@ + + + Logout + + + + + Reboot - + diff --git a/common/desktop_environment/sway/home_manager/waybar/waybar.css b/common/desktop_environment/sway/home_manager/waybar/waybar.css index 11c5bcc..efeba06 100644 --- a/common/desktop_environment/sway/home_manager/waybar/waybar.css +++ b/common/desktop_environment/sway/home_manager/waybar/waybar.css @@ -1,88 +1,26 @@ * { /* `otf-font-awesome` is required to be installed for icons */ font-family: "JetBrainsMonoNL Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; - font-size: 12px; + font-size: 14px; border: none; border-radius: 0; min-height: 0; + color: #f1f1f1; } 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; */ background: transparent; - border-radius: 10px; - margin: 0px; -} - -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; + background-color: rgba(220, 220, 220, 0.2); } #workspaces button.urgent { - background-color: #eb4d4b; -} - -#mode { - background-color: #64727D; - box-shadow: inset 0 -3px #ffffff; + background-color: rgba(214, 82, 82, 0.3); } +button, #clock, #battery, #cpu, @@ -94,62 +32,47 @@ button:hover { #pulseaudio, #wireplumber, #custom-media, +#custom-notifications, +#custom-power, #tray, #mode, #idle_inhibitor, #scratchpad, #power-profiles-daemon, +#bluetooth, +#language, #mpd { - padding: 0 10px; - color: #ffffff; + padding: 0 5px; + color: #f1f1f1; + background-color: rgba(220, 220, 220, 0.1); + border-radius: 6px; } -#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; +button:hover, +#clock:hover, +#battery:hover, +#cpu:hover, +#memory:hover, +#disk:hover, +#temperature:hover, +#backlight:hover, +#network:hover, +#pulseaudio:hover, +#wireplumber:hover, +#custom-media:hover, +#custom-notifications:hover, +#tray:hover, +#mode:hover, +#idle_inhibitor:hover, +#scratchpad:hover, +#power-profiles-daemon:hover, +#bluetooth:hover, +#language:hover, +#mpd:hover { + color: #f1f1f1; + background-color: rgba(220, 220, 220, 0.2); + border-radius: 6px; } #power-profiles-daemon { @@ -157,92 +80,15 @@ button:hover { } #power-profiles-daemon.performance { - background-color: #f53c3c; - color: #ffffff; + color: #fff7d6; } #power-profiles-daemon.balanced { - background-color: #2980b9; - color: #ffffff; + color: #d6efff; } #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; + color:#dcffd6; } #tray>.passive { @@ -253,82 +99,3 @@ label:focus { -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; -} diff --git a/hosts/lio/flake.lock b/hosts/lio/flake.lock index fd514d0..919cf27 100644 --- a/hosts/lio/flake.lock +++ b/hosts/lio/flake.lock @@ -103,11 +103,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1753592768, - "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=", + "lastModified": 1756245065, + "narHash": "sha256-aAZNbGcWrVRZgWgkQbkabSGcDVRDMgON4BipMy69gvI=", "owner": "rycee", "repo": "home-manager", - "rev": "fc3add429f21450359369af74c2375cb34a2d204", + "rev": "54b2879ce622d44415e727905925e21b8f833a98", "type": "github" }, "original": {