From 6f7babf046d22a429db48b6b8dba6273125e418c Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Wed, 14 Jun 2023 05:17:00 -0400 Subject: [PATCH] Rice out waybar --- home-manager/linux/programs/sway.nix | 328 ++++++++++++++++++--------- 1 file changed, 215 insertions(+), 113 deletions(-) diff --git a/home-manager/linux/programs/sway.nix b/home-manager/linux/programs/sway.nix index 7aae099..35cad3a 100644 --- a/home-manager/linux/programs/sway.nix +++ b/home-manager/linux/programs/sway.nix @@ -6,6 +6,9 @@ in with lib; { inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.swaylock-effects; swaylock-command = '' ${swaylock-package}/bin/swaylock --screenshots --grace 30 --indicator --clock --timestr "%-I:%M:%S %p" --datestr "%A %Y-%M-%d" --effect-blur 20x3''; + fuzzel-command = '' + fuzzel -f "Iosevka Sans Quasi" -b "103c48ff" -S "adbcbcff" -s "184956ff" -t "72898fff" -B 5 -r 5 -C "ed8649ff" + ''; wob-package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.wob; in { home.packages = with pkgs; [ @@ -74,16 +77,15 @@ in with lib; { kb_options = kb_rules = follow_mouse = 1 - # sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 - gaps_out = 20 - border_size = 2 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - col.inactive_border = rgba(595959aa) + gaps_out = 10 + border_size = 3 + col.active_border = rgba(3fc5b7ee) rgba(70b433ee) 45deg + col.inactive_border = rgba(252525aa) layout = dwindle } decoration { @@ -95,7 +97,7 @@ in with lib; { drop_shadow = true shadow_range = 4 shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) + col.shadow = rgba(181818ee) } animations { @@ -245,7 +247,7 @@ in with lib; { terminal = "alacritty"; # Use krunner (from kde) as our launcher menu = '' - fuzzel -f "Iosevka Sans Quasi" -b "103c48ff" -S "adbcbcff" -s "184956ff" -t "72898fff" -B 5 -r 5 -C "ed8649ff" + ${fuzzel-command} ''; # Use waybar, but through systemd bars = [ @@ -427,21 +429,87 @@ in with lib; { ######################### programs.waybar = { enable = true; - package = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".waybar; + package = + inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".waybar.overrideAttrs + (old: { mesonFlags = old.mesonFlags ++ [ "-Dexperimental=true" ]; }); systemd = { enable = false; }; settings = { mainBar = { layer = "top"; - position = "bottom"; - height = 27; - modules-left = [ "sway/workspaces" "sway/mode" ]; - modules-center = [ "sway/window" ]; - modules-right = [ "mpd" "clock" "tray" ]; - "sway/workspaces" = { disable-scroll = true; }; - "sway/window" = { icon = true; }; + position = "top"; + height = 30; + spacing = 4; + margin-top = 5; + margin-bottom = 0; + # modules-left = [ "wlr/workspaces" "hyprland/submap" ]; + # modules-center = [ "hyprland/window" ]; + # modules-right = [ "mpd" "clock" "tray" ]; + modules-center = [ + "custom/launcher" + "wlr/workspaces" + "mpd" + # "hyprland/window" + "idle_inhibitor" + "pulseaudio" + "network" + "cpu" + "memory" + # "temperature" + "tray" + "clock" + # "custom/power" + ]; + "custom/launcher" = { + format = " "; + on-click = fuzzel-command; + on-click-right = "killall fuzzel"; + }; + "idle_inhibitor" = { + format = "{icon}"; + format-icons = { + activated = ""; + deactivated = ""; + }; + }; + pulseaudio = { + scroll-step = 1; + format = "{volume}% {icon}"; + format-bluetooth = "{volume}% {icon}"; + format-bluetooth-muted = "{icon} {format_source}"; + format-muted = "{format_source}"; + format-source = ""; + format-source-muted = ""; + format-icons = { + headphone = ""; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = [ "" "" "" ]; + }; + on-click = "pavucontrol"; + }; + network = { + # // "interface": "wlp2*", // (Optional) To force the use of this interface + format-wifi = "{essid} ({signalStrength}%) "; + format-ethernet = "Connected  "; + tooltip-format = "{ifname} via {gwaddr} "; + format-linked = "{ifname} (No IP) "; + format-disconnected = "Disconnected ⚠"; + format-alt = "{ifname}: {ipaddr}/{cidr}"; + on-click-right = "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu"; + }; + cpu = { + format = "{usage}% "; + tooltip = false; + }; + memory = { format = "{}% ({used}GB/{total}GB) "; }; + "tray" = { + icon-size = 20; + spacing = 10; + }; "clock" = { format = "{:%I:%M%p %Y-%m-%d}"; }; - "window" = { icon = true; }; - "tray" = { spacing = 5; }; "mpd" = { format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S})"; @@ -460,15 +528,16 @@ in with lib; { }; style = '' * { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: FontAwesome, Iosevka Sans Quasi; - font-size: 14px; + border: none; + border-radius: 0px; + font-family: Roboto, Helvetica, Arial, sans-serif; + font-size: 12px; + min-height: 0; } window#waybar { - background-color: #103c48; - border: 2px solid #2d5b69; - color: #adbcbc; + background-color: transparent; + color: #ffffff; transition-property: background-color; transition-duration: .5s; } @@ -477,50 +546,35 @@ in with lib; { 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; - } #workspaces button { - padding: 0 5px; - background-color: #184956; - color: #72898f; - /* Use box-shadow instead of border so the text isn't offset */ - box-shadow: inset 0 -3px transparent; - /* Avoid rounded borders under each workspace name */ - border: none; - border-radius: 0; + background: #1f1f1f; + color: #ffffff; + border-radius: 20px; + } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ #workspaces button:hover { - background: rgba(0, 0, 0, 0.2); - box-shadow: inset 0 -3px #ffffff; + background: lightblue; + color: black; + border-bottom: 3px solid #ffffff; + } - #workspaces button.focused { - background-color: #2d5b69; - color: #adbcbc; - /* box-shadow: inset 0 -3px #ffffff; */ + #workspaces button.active { + background: #3f3f3f; + } + + #workspaces button.active:hover { + background: lightblue; + color: black; + border-bottom: 3px solid #ffffff; + } #workspaces button.urgent { - background-color: #2d5b69; - color: #fa5750; + background-color: #eb4d4b; } #mode { @@ -538,32 +592,45 @@ in with lib; { #network, #pulseaudio, #custom-media, + #custom-launcher, + #custom-power, #tray, #mode, #idle_inhibitor, #mpd { padding: 0 10px; + color: black; + } + #mpd { + background-color: #8EC5FC; + background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%); + color: black; + border-radius: 20px; + margin-right: 5px; } #window, #workspaces { - margin: 0 4px; + margin: 0px 4px; } /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { - margin-left: 0; + margin-left: 0px; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { - margin-right: 0; + margin-right: 0px; } #clock { - border: 2px solid #41c7b9; - background-color: #184956; - color: #41c7b9; + background-color: #FA8BFF; + background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; + border-radius: 0px 20px 20px 0px; + margin-right: 4px; + } #battery { @@ -598,56 +665,104 @@ in with lib; { } #cpu { - background-color: #2ecc71; - color: #000000; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #memory { - background-color: #9b59b6; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #disk { - background-color: #964B00; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #backlight { - background-color: #90b1b1; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + } #network { - background-color: #2980b9; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #network.disconnected { - background-color: #f53c3c; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: red; } #pulseaudio { - background-color: #f1c40f; - color: #000000; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #pulseaudio.muted { - background-color: #90b1b1; - color: #2a5c45; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: red; } #custom-media { - background-color: #66cc99; - color: #2a5c45; - min-width: 100px; + background-color: #8EC5FC; + background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%); + color: black; + border-radius: 20px; + margin-right: 5px; } #custom-media.custom-spotify { - background-color: #66cc99; + background-color: #8EC5FC; + background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%); + color: black; + border-radius: 20px; + margin-right: 5px; + } #custom-media.custom-vlc { - background-color: #ffa000; + background-color: #8EC5FC; + background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%); + color: black; + border-radius: 20px; + margin-right: 5px; } + #custom-power{ + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + font-size: 16px; + border-radius: 19px; + + } + #custom-launcher{ + background-color: #FA8BFF; + background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + font-size: 18px; + border-radius: 20px; + + } + + #custom-updater { + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; + } + + #temperature { - background-color: #f0932b; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #temperature.critical { @@ -655,68 +770,55 @@ in with lib; { } #tray { - background-color: #4695f7; - border: 2px solid #58a3ff; + background-color: #FA8BFF; + background-image: linear-gradient(-45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #tray > .passive { -gtk-icon-effect: dim; + background-color: #FA8BFF; + background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #tray > .needs-attention { -gtk-icon-effect: highlight; - background-color: #eb4d4b; + background-color: #FA8BFF; + background-image: linear-gradient(-45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; } #idle_inhibitor { - background-color: #2d3436; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + border-radius: 20px 0px 0px 20px; + } #idle_inhibitor.activated { - background-color: #ecf0f1; - color: #2d3436; - } + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #FA8BFF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; + border-radius: 20px 0px 0px 20px; - #mpd { - color: #adbcbc; - border: 2px solid #75b938; - background-color: #184956; - - } - - #mpd.disconnected { - color: #dbb32d; - border: 2px solid #dbb32d; - } - - #mpd.stopped { - color: #fa5750; - border: 2px solid #fa5750; - } - - #mpd.paused { - color: #f275be; - border: 2px solid #f275be; } #language { - background: #00b093; - color: #740864; - padding: 0 5px; - margin: 0 5px; + background-color: #FA8BFF; + background-image: linear-gradient(45deg, #2BD2FF 0%, #2BD2FF 52%, #2BD2FF 90%); + color: black; min-width: 16px; } #keyboard-state { background: #97e1ad; color: #000000; - padding: 0 0px; - margin: 0 5px; min-width: 16px; } #keyboard-state > label { - padding: 0 5px; + padding: 0px 5px; } #keyboard-state > label.locked {