From 0f70ec9680e464e351144c71eb72912fb43a33f1 Mon Sep 17 00:00:00 2001 From: jacekpoz Date: Sat, 9 Mar 2024 14:25:42 +0100 Subject: [PATCH] remove waybar module and make each host define it themselves this will be cleaner anyway once I move to quickshell --- hosts/del/configuration.nix | 1 - hosts/del/default.nix | 1 + hosts/del/waybar.nix | 550 +++++++++++++++++++++++++++++++++++ hosts/niks/configuration.nix | 1 - hosts/niks/default.nix | 1 + hosts/niks/waybar.nix | 517 ++++++++++++++++++++++++++++++++ modules/gui/default.nix | 1 - modules/gui/waybar.nix | 523 --------------------------------- modules/services/greetd.nix | 1 - 9 files changed, 1069 insertions(+), 527 deletions(-) create mode 100644 hosts/del/waybar.nix create mode 100644 hosts/niks/waybar.nix delete mode 100644 modules/gui/waybar.nix diff --git a/hosts/del/configuration.nix b/hosts/del/configuration.nix index e0bc02ac..0208fbdd 100644 --- a/hosts/del/configuration.nix +++ b/hosts/del/configuration.nix @@ -213,7 +213,6 @@ }; neovim.enable = true; swaylock.enable = true; - waybar.enable = true; zathura.enable = true; hyprland = { enable = true; diff --git a/hosts/del/default.nix b/hosts/del/default.nix index db4b085a..8ff66f44 100644 --- a/hosts/del/default.nix +++ b/hosts/del/default.nix @@ -4,5 +4,6 @@ _: { ./hardware-configuration.nix ./profile.nix ./programs.nix + ./waybar.nix ]; } diff --git a/hosts/del/waybar.nix b/hosts/del/waybar.nix new file mode 100644 index 00000000..6b31c16d --- /dev/null +++ b/hosts/del/waybar.nix @@ -0,0 +1,550 @@ +{ + config, + inputs, + pkgs, + ... +}: let + username = config.myOptions.other.system.username; +in { + home-manager.users.${username} = { + programs.waybar = { + enable = true; + package = inputs.waybar.packages.${pkgs.system}.waybar; + settings.mainBar = { + gtk-layer-shell = true; + layer = "top"; + modules-left = [ "custom/launcher" "custom/xwayland" "custom/rot" "custom/wvkbd" "tray" "hyprland/workspaces" ]; + modules-center = [ "hyprland/window" ]; + modules-right = [ /*"custom/dnd"*/ "backlight" /*"cava"*/ /*"mpd"*/ "pulseaudio" "clock" "battery" "custom/power" ]; + + pulseaudio = { + tooltip = false; + scroll-step = "1"; + format = " {icon} {volume}%"; + format-muted = " 󰸈 {volume}%"; + format-icons = { + default = ["󰕿" "󰖀" "󰕾"]; + }; + on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + }; + "hyprland/workspaces" = { + sort-by-name = true; + sort-by-coordinates = false; + on-click = "activate"; + #on-scroll = "~/Scripts/cycle_workspace.sh 1"; + active-only = false; + format = "{icon}"; + format-icons = { + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; + "10" = "10"; + "11" = "1"; + "12" = "2"; + "13" = "3"; + "14" = "4"; + "15" = "5"; + "16" = "6"; + "17" = "7"; + "18" = "8"; + "19" = "9"; + "20" = "10"; + }; + }; + network = { + tooltip = false; + format = "{ipaddr} {icon}"; + format-alt = "{icon}"; + format-icons = { + wifi = [ "󰖩" ]; + ethernet = [ "󰈀" ]; + disconnected = [ "󰖪" ]; + }; + on-click-right = "foot -e nmtui"; + }; + backlight = { + interval = 1; + align = 0; + rotate = 0; + format = "{icon} {percent}%"; + format-icons = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ]; + #on-scroll-up = "~/Scripts/bright.sh s +1%"; + #on-scroll-down = "~/Scripts/bright.sh s 1%-"; + on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set +1%"; + on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 1%-"; + smooth-scrolling-threshold = 1; + }; + battery = { + interval = 1; + states = { + good = 75; + warning = 30; + critical = 20; + }; + format = "{icon}{capacity}%"; + format-charging = "󰚥{icon}{capacity}% 󱐋{power}"; + format-discharging = "{icon}{capacity}% 󱐋{power}"; + format-icons = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + format-charging-icons = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"]; + }; + tray = { + icon-size = 18; + spacing = 10; + }; + clock = { + interval = 1; + format = "{:󱑁 %H:%M:%S 󰃰 %d/%m/%Y}"; + format-alt = "{:󱑁 %H:%M:%S}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "T{:%W}"; + weekdays = "{}"; + today = "{}"; + }; + actions = { + on-click-right = "mode"; + on-click-forward = "tz_up"; + on-click-backward = "tz_down"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; + }; + }; + cpu = { + interval = 1; + format = "󰻠 {}%"; + max-length = 10; + }; + memory = { + interval = 1; + format = "󰍛 {}%"; + max-length = 10; + }; + "custom/launcher" = { + format = " "; + on-click = "~/.config/rofi/launchers/type-2/launcher.sh"; + on-click-right = "pkill rofi"; + }; + "custom/power" = { + format = "󰐥"; + on-click = "~/.config/rofi/powermenu/type-2/powermenu.sh"; + }; + "hyprland/window" = { + format = "{}"; + separate-outputs = true; + }; + gamemode = { + format = "{glyph}"; + format-alt = "{glyph} {count}"; + glyph = "󰊴"; + hide-not-running = true; + use-icon = true; + icon-name = "input-gaming-symbolic"; + icon-spacing = 4; + icon-size = 20; + tooltip = true; + tooltip-format = "Games running: {count}"; + }; + "custom/dnd" = { + exec = "~/Scripts/waybar-dunst.sh"; + on-click = "~/Scripts/dnd.sh"; + restart-interval = 1; + tooltip = false; + }; + cava = { + framerate = 165; + autosens = 1; + sensitivity = 100; + bars = 14; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + noise_reduction = 0.77; + input_delay = 2; + format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ]; + actions = { + on-click-right = "mode"; + }; + }; + "custom/power_profile" = { + exec = "asusctl profile -p | sed s:'Active profile is'::"; + interval = 30; + format = "󰈐{}"; + format-alt-click = "click-right"; + format-alt = "󰈐"; + on-click = "asusctl profile -n; pkill -SIGRTMIN+8 waybar"; + signal = 8; + }; + "custom/xwayland" = { + exec = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl clients | ${pkgs.ripgrep}/bin/rg -e 'xwayland: [1]' | ${pkgs.coreutils-full}/bin/wc -l"; + interval = 1; + format = "X {}"; + }; + "custom/rot" = { + exec = "${pkgs.procps}/bin/pidof rot8 > /dev/null; if [ $? -eq '0' ]; then echo -n '󰿆'; else echo -n '󰌾'; fi"; + interval = 1; + on-click = "${pkgs.procps}/bin/pkill rot8 || rot8 --threshold 0.75 & disown"; + format = "󰑤 {}"; + }; + "custom/wvkbd" = { + # RTMIN + on-click = "${pkgs.util-linux}/bin/kill -s 34 $(${pkgs.procps}/bin/pidof wvkbd-mobintl)"; + format = "󰌌"; + }; + mpd = { + format = "󰝚 {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S})"; + format-disconnected = "󰝚 Disconnected"; + format-stopped = "󰝚 Stopped"; + interval = 1; + tooltip-format = "MPD (connected)"; + tooltip-format-disconnected = "MPD (disconnected)"; + on-click = "mpc toggle"; + }; + }; + style = '' + @define-color base #1e1e2e; + @define-color mantle #181825; + @define-color crust #11111b; + + @define-color text #cdd6f4; + @define-color subtext0 #a6adc8; + @define-color subtext1 #bac2de; + + @define-color surface0 #313244; + @define-color surface1 #45475a; + @define-color surface2 #585b70; + + @define-color overlay0 #6c7086; + @define-color overlay1 #7f849c; + @define-color overlay2 #9399b2; + + @define-color blue #89b4fa; + @define-color lavender #b4befe; + @define-color sapphire #74c7ec; + @define-color sky #89dceb; + @define-color teal #94e2d5; + @define-color green #a6e3a1; + @define-color yellow #f9e2af; + @define-color peach #fab387; + @define-color maroon #eba0ac; + @define-color red #f38ba8; + @define-color mauve #cba6f7; + @define-color pink #f5c2e7; + @define-color flamingo #f2cdcd; + @define-color rosewater #f5e0dc; + + * { + border-radius: 10px; + font-family: Material Design Icons; + font-size: 24px; + } + + window#waybar { + background-color: alpha(@base, 0.5); + border-radius: 0px; + } + + window#waybar.hidden { + opacity: 0.2; + } + + #window { + margin-top: 4px; + margin-bottom: 4px; + padding-left: 10px; + padding-right: 10px; + background: @mantle; + color: @teal; + font-family: JetBrains Mono; + } + + #workspaces { + padding-left: 5px; + } + + #workspaces button { + border-radius: 15px; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; + margin-top: 6px; + margin-right: 3px; + margin-bottom: 6px; + margin-left: 3px; + background-color: @mantle; + color: @text; + min-width: 24px; + } + + #workspaces button.active { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0px; + padding-left: 0px; + margin-top: 6px; + margin-right: 3px; + margin-bottom: 6px; + margin-left: 3px; + background-color: @blue; + color: @mantle; + min-width: 24px; + } + + #workspaces button:hover { + background: alpha(@mantle, 0.7); + transition-property: background, min-width; + transition-duration: 0.5s; + transition-timing-function: ease; + } + + #workspaces button.focused { + background-color: @yellow; + } + + #workspaces button.urgent { + background-color: @red; + } + + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + .modules-right > widget:first-child > #workspaces { + margin-right: 0; + } + + #pulseaudio { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 0px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @peach; + /*border-top-left-radius: 0; + border-bottom-left-radius: 0;*/ + } + + #cava { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + margin-right: 0px; + padding-left: 10px; + padding-right: 0px; + transition: none; + background: @mantle; + color: @peach; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + #battery { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @teal; + } + + @keyframes blink { + to { + background-color: @red; + } + } + + #battery.charging, #battery.plugged { + background-color: @mantle; + } + + #battery.critical:not(.charging) { + background-color: @mantle; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } + + #backlight { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @yellow; + } + #clock { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition-property: min-width; + transition-duration: 0.5s; + background: @mantle; + color: @pink; + } + + #custom-power_profile { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @rosewater; + } + + #tray { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-launcher { + font-size: 16px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 5px; + transition: none; + background: @mantle; + color: @blue; + } + + #custom-power { + font-size: 20px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + margin-right: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @red; + } + + #custom-wallpaper { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-updates { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-media { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-dnd { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @flamingo; + } + + #custom-xwayland { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @green; + } + + #custom-rot { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @flamingo; + } + + #custom-wvkbd { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @blue; + } + + #mpd { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @green; + } + ''; + }; + }; +} + diff --git a/hosts/niks/configuration.nix b/hosts/niks/configuration.nix index 52f3ca0c..22c57a74 100644 --- a/hosts/niks/configuration.nix +++ b/hosts/niks/configuration.nix @@ -184,7 +184,6 @@ }; neovim.enable = true; swaylock.enable = true; - waybar.enable = true; zathura.enable = true; hyprland = { enable = true; diff --git a/hosts/niks/default.nix b/hosts/niks/default.nix index de26979e..17e9e287 100644 --- a/hosts/niks/default.nix +++ b/hosts/niks/default.nix @@ -6,6 +6,7 @@ _: { ./profile.nix ./programs.nix #./restic.nix + ./waybar.nix ./waydroid.nix ]; } diff --git a/hosts/niks/waybar.nix b/hosts/niks/waybar.nix new file mode 100644 index 00000000..bceb7671 --- /dev/null +++ b/hosts/niks/waybar.nix @@ -0,0 +1,517 @@ +{ + config, + inputs, + pkgs, + ... +}: let + username = config.myOptions.other.system.username; +in { + home-manager.users.${username} = { + programs.waybar = { + enable = true; + package = inputs.waybar.packages.${pkgs.system}.waybar; + settings.mainBar = { + gtk-layer-shell = true; + layer = "top"; + modules-left = [ "custom/launcher" "custom/xwayland" "tray" "hyprland/workspaces" ]; + modules-center = [ "hyprland/window" ]; + modules-right = [ /*"custom/dnd"*/ "backlight" /*"cava"*/ "mpd" "pulseaudio" "clock" "battery" "custom/power" ]; + + pulseaudio = { + tooltip = false; + scroll-step = "1"; + format = " {icon} {volume}%"; + format-muted = " 󰸈 {volume}%"; + format-icons = { + default = ["󰕿" "󰖀" "󰕾"]; + }; + on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + }; + "hyprland/workspaces" = { + sort-by-name = true; + sort-by-coordinates = false; + on-click = "activate"; + #on-scroll = "~/Scripts/cycle_workspace.sh 1"; + active-only = false; + format = "{icon}"; + format-icons = { + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; + "10" = "10"; + "11" = "1"; + "12" = "2"; + "13" = "3"; + "14" = "4"; + "15" = "5"; + "16" = "6"; + "17" = "7"; + "18" = "8"; + "19" = "9"; + "20" = "10"; + }; + }; + network = { + tooltip = false; + format = "{ipaddr} {icon}"; + format-alt = "{icon}"; + format-icons = { + wifi = [ "󰖩" ]; + ethernet = [ "󰈀" ]; + disconnected = [ "󰖪" ]; + }; + on-click-right = "foot -e nmtui"; + }; + backlight = { + interval = 1; + align = 0; + rotate = 0; + format = "{icon} {percent}%"; + format-icons = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ]; + #on-scroll-up = "~/Scripts/bright.sh s +1%"; + #on-scroll-down = "~/Scripts/bright.sh s 1%-"; + on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set +1%"; + on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 1%-"; + smooth-scrolling-threshold = 1; + }; + battery = { + interval = 1; + states = { + good = 75; + warning = 30; + critical = 20; + }; + format = "{icon}{capacity}%"; + format-charging = "󰚥{icon}{capacity}% 󱐋{power}"; + format-discharging = "{icon}{capacity}% 󱐋{power}"; + format-icons = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + format-charging-icons = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"]; + }; + tray = { + icon-size = 18; + spacing = 10; + }; + clock = { + interval = 1; + format = "{:󱑁 %H:%M:%S 󰃰 %d/%m/%Y}"; + format-alt = "{:󱑁 %H:%M:%S}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "T{:%W}"; + weekdays = "{}"; + today = "{}"; + }; + actions = { + on-click-right = "mode"; + on-click-forward = "tz_up"; + on-click-backward = "tz_down"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; + }; + }; + cpu = { + interval = 1; + format = "󰻠 {}%"; + max-length = 10; + }; + memory = { + interval = 1; + format = "󰍛 {}%"; + max-length = 10; + }; + "custom/launcher" = { + format = " "; + on-click = "~/.config/rofi/launchers/type-2/launcher.sh"; + on-click-right = "pkill rofi"; + }; + "custom/power" = { + format = "󰐥"; + on-click = "~/.config/rofi/powermenu/type-2/powermenu.sh"; + }; + "hyprland/window" = { + format = "{}"; + separate-outputs = true; + }; + gamemode = { + format = "{glyph}"; + format-alt = "{glyph} {count}"; + glyph = "󰊴"; + hide-not-running = true; + use-icon = true; + icon-name = "input-gaming-symbolic"; + icon-spacing = 4; + icon-size = 20; + tooltip = true; + tooltip-format = "Games running: {count}"; + }; + "custom/dnd" = { + exec = "~/Scripts/waybar-dunst.sh"; + on-click = "~/Scripts/dnd.sh"; + restart-interval = 1; + tooltip = false; + }; + cava = { + framerate = 165; + autosens = 1; + sensitivity = 100; + bars = 14; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + noise_reduction = 0.77; + input_delay = 2; + format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ]; + actions = { + on-click-right = "mode"; + }; + }; + "custom/power_profile" = { + exec = "asusctl profile -p | sed s:'Active profile is'::"; + interval = 30; + format = "󰈐{}"; + format-alt-click = "click-right"; + format-alt = "󰈐"; + on-click = "asusctl profile -n; pkill -SIGRTMIN+8 waybar"; + signal = 8; + }; + "custom/xwayland" = { + exec = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl clients | ${pkgs.ripgrep}/bin/rg -e 'xwayland: [1]' | ${pkgs.coreutils-full}/bin/wc -l"; + interval = 1; + format = "X {}"; + }; + mpd = { + format = "󰝚 {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S})"; + format-disconnected = "󰝚 Disconnected"; + format-stopped = "󰝚 Stopped"; + interval = 1; + tooltip-format = "MPD (connected)"; + tooltip-format-disconnected = "MPD (disconnected)"; + on-click = "mpc toggle"; + }; + }; + style = '' + @define-color base #1e1e2e; + @define-color mantle #181825; + @define-color crust #11111b; + + @define-color text #cdd6f4; + @define-color subtext0 #a6adc8; + @define-color subtext1 #bac2de; + + @define-color surface0 #313244; + @define-color surface1 #45475a; + @define-color surface2 #585b70; + + @define-color overlay0 #6c7086; + @define-color overlay1 #7f849c; + @define-color overlay2 #9399b2; + + @define-color blue #89b4fa; + @define-color lavender #b4befe; + @define-color sapphire #74c7ec; + @define-color sky #89dceb; + @define-color teal #94e2d5; + @define-color green #a6e3a1; + @define-color yellow #f9e2af; + @define-color peach #fab387; + @define-color maroon #eba0ac; + @define-color red #f38ba8; + @define-color mauve #cba6f7; + @define-color pink #f5c2e7; + @define-color flamingo #f2cdcd; + @define-color rosewater #f5e0dc; + + * { + border-radius: 10px; + font-family: Material Design Icons; + font-size: 16px; + } + + window#waybar { + background-color: alpha(@base, 0.5); + border-radius: 0px; + } + + window#waybar.hidden { + opacity: 0.2; + } + + #window { + margin-top: 4px; + margin-bottom: 4px; + padding-left: 10px; + padding-right: 10px; + background: @mantle; + color: @teal; + font-family: JetBrains Mono; + } + + #workspaces { + padding-left: 5px; + } + + #workspaces button { + border-radius: 15px; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; + margin-top: 6px; + margin-right: 3px; + margin-bottom: 6px; + margin-left: 3px; + background-color: @mantle; + color: @text; + min-width: 24px; + } + + #workspaces button.active { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0px; + padding-left: 0px; + margin-top: 6px; + margin-right: 3px; + margin-bottom: 6px; + margin-left: 3px; + background-color: @blue; + color: @mantle; + min-width: 24px; + } + + #workspaces button:hover { + background: alpha(@mantle, 0.7); + transition-property: background, min-width; + transition-duration: 0.5s; + transition-timing-function: ease; + } + + #workspaces button.focused { + background-color: @yellow; + } + + #workspaces button.urgent { + background-color: @red; + } + + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + .modules-right > widget:first-child > #workspaces { + margin-right: 0; + } + + #pulseaudio { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 0px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @peach; + /*border-top-left-radius: 0; + border-bottom-left-radius: 0;*/ + } + + #cava { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + margin-right: 0px; + padding-left: 10px; + padding-right: 0px; + transition: none; + background: @mantle; + color: @peach; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + #battery { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @teal; + } + + @keyframes blink { + to { + background-color: @red; + } + } + + #battery.charging, #battery.plugged { + background-color: @mantle; + } + + #battery.critical:not(.charging) { + background-color: @mantle; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } + + #backlight { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @yellow; + } + #clock { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition-property: min-width; + transition-duration: 0.5s; + background: @mantle; + color: @pink; + } + + #custom-power_profile { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @rosewater; + } + + #tray { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-launcher { + font-size: 16px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 5px; + transition: none; + background: @mantle; + color: @blue; + } + + #custom-power { + font-size: 20px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + margin-right: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @red; + } + + #custom-wallpaper { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-updates { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-media { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-dnd { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @flamingo; + } + + #custom-xwayland { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @green; + } + + #mpd { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @green; + } + ''; + }; + }; +} + diff --git a/modules/gui/default.nix b/modules/gui/default.nix index f125440c..b4b25462 100644 --- a/modules/gui/default.nix +++ b/modules/gui/default.nix @@ -16,7 +16,6 @@ _: { #./rofi.nix #./schizofox.nix ./swaylock.nix - ./waybar.nix ./zathura.nix ]; } diff --git a/modules/gui/waybar.nix b/modules/gui/waybar.nix deleted file mode 100644 index 22abbe45..00000000 --- a/modules/gui/waybar.nix +++ /dev/null @@ -1,523 +0,0 @@ -{ - config, - inputs, - lib, - pkgs, - ... -}: with lib; let - cfg = config.myOptions.programs.waybar; - username = config.myOptions.other.system.username; -in { - options.myOptions.programs.waybar.enable = mkEnableOption "enable waybar"; - - config = mkIf cfg.enable { - home-manager.users.${username} = { - programs.waybar = { - enable = true; - package = inputs.waybar.packages.${pkgs.system}.waybar; - systemd.enable = false; - settings.mainBar = { - gtk-layer-shell = true; - layer = "top"; - modules-left = [ "custom/launcher" "custom/xwayland" "tray" "hyprland/workspaces" ]; - modules-center = [ "hyprland/window" ]; - modules-right = [ /*"custom/dnd"*/ "backlight" /*"cava"*/ "mpd" "pulseaudio" "clock" "battery" "custom/power" ]; - - pulseaudio = { - tooltip = false; - scroll-step = "1"; - format = " {icon} {volume}%"; - format-muted = " 󰸈 {volume}%"; - format-icons = { - default = ["󰕿" "󰖀" "󰕾"]; - }; - on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; - }; - "hyprland/workspaces" = { - sort-by-name = true; - sort-by-coordinates = false; - on-click = "activate"; - #on-scroll = "~/Scripts/cycle_workspace.sh 1"; - active-only = false; - format = "{icon}"; - format-icons = { - "1" = "1"; - "2" = "2"; - "3" = "3"; - "4" = "4"; - "5" = "5"; - "6" = "6"; - "7" = "7"; - "8" = "8"; - "9" = "9"; - "10" = "10"; - "11" = "1"; - "12" = "2"; - "13" = "3"; - "14" = "4"; - "15" = "5"; - "16" = "6"; - "17" = "7"; - "18" = "8"; - "19" = "9"; - "20" = "10"; - }; - }; - network = { - tooltip = false; - format = "{ipaddr} {icon}"; - format-alt = "{icon}"; - format-icons = { - wifi = [ "󰖩" ]; - ethernet = [ "󰈀" ]; - disconnected = [ "󰖪" ]; - }; - on-click-right = "foot -e nmtui"; - }; - backlight = { - interval = 1; - align = 0; - rotate = 0; - format = "{icon} {percent}%"; - format-icons = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ]; - #on-scroll-up = "~/Scripts/bright.sh s +1%"; - #on-scroll-down = "~/Scripts/bright.sh s 1%-"; - on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set +1%"; - on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 1%-"; - smooth-scrolling-threshold = 1; - }; - battery = { - interval = 1; - states = { - good = 75; - warning = 30; - critical = 20; - }; - format = "{icon}{capacity}%"; - format-charging = "󰚥{icon}{capacity}% 󱐋{power}"; - format-discharging = "{icon}{capacity}% 󱐋{power}"; - format-icons = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; - format-charging-icons = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"]; - }; - tray = { - icon-size = 18; - spacing = 10; - }; - clock = { - interval = 1; - format = "{:󱑁 %H:%M:%S 󰃰 %d/%m/%Y}"; - format-alt = "{:󱑁 %H:%M:%S}"; - tooltip-format = "{calendar}"; - calendar = { - mode = "year"; - mode-mon-col = 3; - weeks-pos = "right"; - on-scroll = 1; - on-click-right = "mode"; - format = { - months = "{}"; - days = "{}"; - weeks = "T{:%W}"; - weekdays = "{}"; - today = "{}"; - }; - actions = { - on-click-right = "mode"; - on-click-forward = "tz_up"; - on-click-backward = "tz_down"; - on-scroll-up = "shift_up"; - on-scroll-down = "shift_down"; - }; - }; - }; - cpu = { - interval = 1; - format = "󰻠 {}%"; - max-length = 10; - }; - memory = { - interval = 1; - format = "󰍛 {}%"; - max-length = 10; - }; - "custom/launcher" = { - format = " "; - on-click = "~/.config/rofi/launchers/type-2/launcher.sh"; - on-click-right = "pkill rofi"; - }; - "custom/power" = { - format = "󰐥"; - on-click = "~/.config/rofi/powermenu/type-2/powermenu.sh"; - }; - "hyprland/window" = { - format = "{}"; - separate-outputs = true; - }; - gamemode = { - format = "{glyph}"; - format-alt = "{glyph} {count}"; - glyph = "󰊴"; - hide-not-running = true; - use-icon = true; - icon-name = "input-gaming-symbolic"; - icon-spacing = 4; - icon-size = 20; - tooltip = true; - tooltip-format = "Games running: {count}"; - }; - "custom/dnd" = { - exec = "~/Scripts/waybar-dunst.sh"; - on-click = "~/Scripts/dnd.sh"; - restart-interval = 1; - tooltip = false; - }; - cava = { - framerate = 165; - autosens = 1; - sensitivity = 100; - bars = 14; - lower_cutoff_freq = 50; - higher_cutoff_freq = 10000; - method = "pipewire"; - source = "auto"; - stereo = true; - reverse = false; - bar_delimiter = 0; - monstercat = false; - waves = false; - noise_reduction = 0.77; - input_delay = 2; - format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ]; - actions = { - on-click-right = "mode"; - }; - }; - "custom/power_profile" = { - exec = "asusctl profile -p | sed s:'Active profile is'::"; - interval = 30; - format = "󰈐{}"; - format-alt-click = "click-right"; - format-alt = "󰈐"; - on-click = "asusctl profile -n; pkill -SIGRTMIN+8 waybar"; - signal = 8; - }; - "custom/xwayland" = { - exec = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl clients | ${pkgs.ripgrep}/bin/rg -e 'xwayland: [1]' | ${pkgs.coreutils-full}/bin/wc -l"; - interval = 1; - format = "X {}"; - }; - mpd = { - format = "󰝚 {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S})"; - format-disconnected = "󰝚 Disconnected"; - format-stopped = "󰝚 Stopped"; - interval = 1; - tooltip-format = "MPD (connected)"; - tooltip-format-disconnected = "MPD (disconnected)"; - on-click = "mpc toggle"; - }; - }; - style = '' - @define-color base #1e1e2e; - @define-color mantle #181825; - @define-color crust #11111b; - - @define-color text #cdd6f4; - @define-color subtext0 #a6adc8; - @define-color subtext1 #bac2de; - - @define-color surface0 #313244; - @define-color surface1 #45475a; - @define-color surface2 #585b70; - - @define-color overlay0 #6c7086; - @define-color overlay1 #7f849c; - @define-color overlay2 #9399b2; - - @define-color blue #89b4fa; - @define-color lavender #b4befe; - @define-color sapphire #74c7ec; - @define-color sky #89dceb; - @define-color teal #94e2d5; - @define-color green #a6e3a1; - @define-color yellow #f9e2af; - @define-color peach #fab387; - @define-color maroon #eba0ac; - @define-color red #f38ba8; - @define-color mauve #cba6f7; - @define-color pink #f5c2e7; - @define-color flamingo #f2cdcd; - @define-color rosewater #f5e0dc; - - * { - border-radius: 10px; - font-family: Material Design Icons; - font-size: 16px; - } - - window#waybar { - background-color: alpha(@base, 0.5); - border-radius: 0px; - } - - window#waybar.hidden { - opacity: 0.2; - } - - #window { - margin-top: 4px; - margin-bottom: 4px; - padding-left: 10px; - padding-right: 10px; - background: @mantle; - color: @teal; - font-family: JetBrains Mono; - } - - #workspaces { - padding-left: 5px; - } - - #workspaces button { - border-radius: 15px; - padding-top: 0px; - padding-right: 0px; - padding-bottom: 0px; - padding-left: 0px; - margin-top: 6px; - margin-right: 3px; - margin-bottom: 6px; - margin-left: 3px; - background-color: @mantle; - color: @text; - min-width: 24px; - } - - #workspaces button.active { - padding-top: 0px; - padding-bottom: 0px; - padding-right: 0px; - padding-left: 0px; - margin-top: 6px; - margin-right: 3px; - margin-bottom: 6px; - margin-left: 3px; - background-color: @blue; - color: @mantle; - min-width: 24px; - } - - #workspaces button:hover { - background: alpha(@mantle, 0.7); - transition-property: background, min-width; - transition-duration: 0.5s; - transition-timing-function: ease; - } - - #workspaces button.focused { - background-color: @yellow; - } - - #workspaces button.urgent { - background-color: @red; - } - - .modules-left > widget:first-child > #workspaces { - margin-left: 0; - } - - .modules-right > widget:first-child > #workspaces { - margin-right: 0; - } - - #pulseaudio { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 0px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @peach; - /*border-top-left-radius: 0; - border-bottom-left-radius: 0;*/ - } - - #cava { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - margin-right: 0px; - padding-left: 10px; - padding-right: 0px; - transition: none; - background: @mantle; - color: @peach; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - #battery { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @teal; - } - - @keyframes blink { - to { - background-color: @red; - } - } - - #battery.charging, #battery.plugged { - background-color: @mantle; - } - - #battery.critical:not(.charging) { - background-color: @mantle; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - } - - #backlight { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @yellow; - } - #clock { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition-property: min-width; - transition-duration: 0.5s; - background: @mantle; - color: @pink; - } - - #custom-power_profile { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @rosewater; - } - - #tray { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - } - - #custom-launcher { - font-size: 16px; - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 5px; - transition: none; - background: @mantle; - color: @blue; - } - - #custom-power { - font-size: 20px; - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - margin-right: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @red; - } - - #custom-wallpaper { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - } - - #custom-updates { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - } - - #custom-media { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - } - - #custom-dnd { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @flamingo; - } - - #custom-xwayland { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @green; - } - - #mpd { - margin-top: 3px; - margin-bottom: 3px; - margin-left: 8px; - padding-left: 10px; - padding-right: 10px; - transition: none; - background: @mantle; - color: @green; - } - ''; - }; - }; - }; -} diff --git a/modules/services/greetd.nix b/modules/services/greetd.nix index 59508229..34e5e3c4 100644 --- a/modules/services/greetd.nix +++ b/modules/services/greetd.nix @@ -21,7 +21,6 @@ workspace=1,default:true,gapsout:0,gapsin:0,border:false,decorate:false - ${if config.myOptions.programs.waybar.enable then "exec-once=systemctl --user stop waybar.service" else ""} exec-once=[workspace 1;fullscreen;noanim] ${pkgs.greetd.${cfg.greeter}}/bin/${cfg.greeter} -l; ${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl dispatch exit exec-once=${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl dispatch focuswindow ${cfg.greeter} '';