diff --git a/home/profiles/grovetender.nix b/home/profiles/grovetender.nix index b45f5042..16c422ad 100644 --- a/home/profiles/grovetender.nix +++ b/home/profiles/grovetender.nix @@ -25,16 +25,16 @@ anyrun.enable = true; }; lock = { - hyprlock.enable = false; + hyprlock.enable = true; }; services = { - ags.enable = true; + ags.enable = false; cliphist.enable = true; hypridle.enable = true; hyprpaper.enable = true; kanshi.enable = true; - # swaync.enable = true; - #waybar.enable = true; + swaync.enable = true; + waybar.enable = true; glance.enable = true; }; utils = { diff --git a/modules/home/core/style/stylix.nix b/modules/home/core/style/stylix.nix index ef58daa4..dd7845d7 100644 --- a/modules/home/core/style/stylix.nix +++ b/modules/home/core/style/stylix.nix @@ -35,8 +35,8 @@ fonts = { sizes.terminal = 13; monospace = { - name = "Roboto Mono Nerd Font Propo"; - package = pkgs.nerd-fonts.roboto-mono; + name = "GeistMono Nerd Font"; + package = pkgs.nerd-fonts.geist-mono; }; sansSerif = { name = "IBM Plex Sans"; diff --git a/modules/home/opt/launcher/anyrun/default.nix b/modules/home/opt/launcher/anyrun/default.nix index c8bd3f41..e84332d1 100644 --- a/modules/home/opt/launcher/anyrun/default.nix +++ b/modules/home/opt/launcher/anyrun/default.nix @@ -13,7 +13,6 @@ let inherit (lib) mkIf mkEnableOption; inherit (inputs) anyrun; inherit (pkgs) system; - opacity = toString config.stylix.opacity.popups; cfg = config.opt.launcher.anyrun; in @@ -114,51 +113,70 @@ in # this compiles the SCSS file from the given path into CSS # by default, `-t expanded` as the args to the sass compiler - extraCss = with config.lib.stylix.colors; '' - $fontSize: 1.3rem; - $fontFamily: Lexend; - $transparentColor: transparent; - $rgbaColor: rgba(203, 166, 247, 0.7); - $bgColor: rgba(30, 30, 46, 1); - $borderColor: #494d64; - $borderRadius: 16px; - $paddingValue: 8px; - + extraCss = with config.lib.stylix.colors.withHashtag; '' + /* Global */ * { - transition: 200ms ease; - font-family: Lexend; - font-size: 1.3rem; + all: unset; + font-family: "GeistMono Nerd Font Propo", sans-serif; + font-size: 11pt; + font-weight: 500; + transition: 300ms; } + /* Modules */ #window, #match, #entry, #plugin, #main { - background: transparent; + background: transparent; } - #match:selected { - background: "rgba(${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, ${opacity})"; + /* Entry */ + #entry { + background: ${base01}; + border-radius: 12px; + margin: 0.5rem; + padding: 0.5rem; } - #match { - padding: 3px; - border-radius: 6px; + /* Match */ + #match.activatable { + background: ${base01}; + padding: 0.5rem 1rem; } - #entry, + #match.activatable:first-child { + border-radius: 12px 12px 0 0; + } + + #match.activatable:last-child { + border-radius: 0 0 12px 12px; + } + + #match.activatable:only-child { + border-radius: 12px; + } + + /* Hover and selected states */ + #match:selected, + #match:hover, #plugin:hover { - border-radius: 6px;; + background: lighter(${base01}); } + /* Main container */ box#main { - background: ${base01}; - border: 2px solid ${base00}; - border-radius: 6px; - padding: 8px; + background: ${base00}; + border-radius: 12px; + padding: 0.5rem; } + /* Plugin within list */ + list > #plugin { + border-radius: 12px; + margin: 0.5rem; + } ''; }; }; diff --git a/modules/home/opt/services/waybar/default.nix b/modules/home/opt/services/waybar/default.nix index 6833c99b..a5b87ddf 100644 --- a/modules/home/opt/services/waybar/default.nix +++ b/modules/home/opt/services/waybar/default.nix @@ -1,132 +1,478 @@ -# ╭──────────────────────────────────────────────────╮ -# │ CREDITS TO: @khaneliman │ -# │ THIS IS A FORK OF HIS CONFIG, ALL CREDITS TO HIM │ -# ╰──────────────────────────────────────────────────╯ { + lib, config, pkgs, - lib, ... }: let - inherit (lib) mkIf mkEnableOption mkMerge; - - style = builtins.readFile ./styles/style.css; - controlCenterStyle = builtins.readFile ./styles/control-center.css; - powerStyle = builtins.readFile ./styles/power.css; - statsStyle = builtins.readFile ./styles/stats.css; - workspacesStyle = builtins.readFile ./styles/workspaces.css; - - custom-modules = import ./modules/custom-modules.nix { inherit config lib pkgs; }; - default-modules = import ./modules/default-modules.nix { inherit config lib pkgs; }; - group-modules = import ./modules/group-modules.nix; - hyprland-modules = import ./modules/hyprland-modules.nix { inherit config lib; }; - - commonAttributes = { - layer = "top"; - position = "top"; - - margin-top = 10; - margin-left = 10; - margin-right = 10; - - modules-left = [ - "custom/power" - "hyprland/workspaces" - "custom/separator-left" - "hyprland/window" - ]; - }; - - fullSizeModules = { - modules-right = [ - "group/tray" - "custom/separator-right" - "group/stats" - "custom/separator-right" - "group/control-center" - "hyprland/submap" - "custom/weather" - "battery" - "clock" - ]; - }; - - mkBarSettings = mkMerge [ - commonAttributes - fullSizeModules - custom-modules - default-modules - group-modules - hyprland-modules - ]; - - generateOutputSettings = - outputList: - builtins.listToAttrs ( - builtins.map (outputName: { - name = outputName; - value = mkMerge [ - mkBarSettings - { output = outputName; } - ]; - }) outputList - ); + inherit (lib) mkIf mkEnableOption; cfg = config.opt.services.waybar; in { options.opt.services.waybar.enable = mkEnableOption "waybar"; - config = mkIf cfg.enable { - - programs.waybar = { + config.programs.waybar = with config.lib.stylix.colors.withHashtag; { + enable = mkIf cfg.enable true; + systemd = { enable = true; - systemd.enable = true; - - settings = generateOutputSettings [ - "eDP-1" - "HDMI-A-1" - "DP-3" - "DP-4" - "DP-5" - "DP-6" - "DP-7" - ]; - style = - with config.lib.stylix.colors; - mkMerge [ - '' - @define-color surface0 #${base01}; - @define-color surface1 #${base01}; - @define-color surface2 #${base01}; - @define-color surface3 #${base01}; - - @define-color overlay0 #${base02}; - - @define-color surface4 #${base00}; - @define-color theme_base_color #${base00}; - - @define-color text #${base05}; - @define-color theme_text_color #${base05}; - - @define-color red #${base08}; - @define-color orange #${base09}; - @define-color peach #${base09}; - @define-color yellow #${base0A}; - @define-color green #${base0B}; - @define-color purple #${base0E}; - @define-color blue #${base0D}; - @define-color lavender #${base0E}; - @define-color teal #${base0C}; - '' - "${style}${controlCenterStyle}${powerStyle}${statsStyle}${workspacesStyle}" - ]; - }; - sops.secrets = { - weather_config = { - path = "${config.home.homeDirectory}/weather_config.json"; - }; + target = "graphical-session.target"; }; + settings = [ + { + layer = "top"; + position = "top"; + exclusive = true; + fixed-center = true; + gtk-layer-shell = true; + spacing = 0; + margin-top = 0; + margin-bottom = 0; + margin-left = 0; + margin-right = 0; + modules-left = [ + "image" + "hyprland/workspaces" + "idle_inhibitor" + "hyprland/window" + ]; + modules-right = [ + "group/network-modules" + "group/wireplumber-modules" + "group/backlight-modules" + "group/battery-modules" + "tray" + "clock" + "group/notifications-modules" + "group/powermenu" + ]; + + "image" = { + path = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + size = 24; + tooltip = false; + }; + + "hyprland/workspaces" = { + format = "{id}"; + }; + + idle_inhibitor = { + format = "{icon}"; + format-icons = { + activated = "󰅶"; + deactivated = "󰾪"; + }; + }; + + "hyprland/window" = { + format = "{title}"; + icon = true; + icon-size = 24; + separate-outputs = true; + }; + + "group/network-modules" = { + modules = [ + "network#icon" + "network#address" + ]; + orientation = "inherit"; + }; + "network#icon" = { + format-disconnected = "󰤮"; + format-ethernet = "󰈀"; + format-wifi = "󰤨"; + tooltip-format-wifi = "WiFi: {essid} ({signalStrength}%)\n󰅃 {bandwidthUpBytes} 󰅀 {bandwidthDownBytes}"; + tooltip-format-ethernet = "Ethernet: {ifname}\n󰅃 {bandwidthUpBytes} 󰅀 {bandwidthDownBytes}"; + tooltip-format-disconnected = "Disconnected"; + on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor"; + }; + "network#address" = { + format-disconnected = "Disconnected"; + format-ethernet = "{ipaddr}/{cidr}"; + format-wifi = "{essid}"; + tooltip-format-wifi = "WiFi: {essid} ({signalStrength}%)\n󰅃 {bandwidthUpBytes} 󰅀 {bandwidthDownBytes}"; + tooltip-format-ethernet = "Ethernet: {ifname}\n󰅃 {bandwidthUpBytes} 󰅀 {bandwidthDownBytes}"; + tooltip-format-disconnected = "Disconnected"; + }; + + "group/wireplumber-modules" = { + modules = [ + "wireplumber#icon" + "wireplumber#volume" + ]; + orientation = "inherit"; + }; + "wireplumber#icon" = { + format = "{icon}"; + format-muted = "󰖁"; + format-icons = [ + "󰕿" + "󰖀" + "󰕾" + ]; + on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle &> /dev/null"; + on-scroll-up = "${pkgs.wireplumber}/bin/wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 1%+ &> /dev/null"; + on-scroll-down = "${pkgs.wireplumber}/bin/wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 1%- &> /dev/null"; + tooltip-format = "Volume: {volume}%"; + }; + "wireplumber#volume" = { + format = "{volume}%"; + tooltip-format = "Volume: {volume}%"; + }; + + "group/backlight-modules" = { + modules = [ + "backlight#icon" + "backlight#percent" + ]; + orientation = "inherit"; + }; + "backlight#icon" = { + format = "{icon}"; + format-icons = [ + "󰃞" + "󰃟" + "󰃠" + ]; + on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set 1%+ &> /dev/null"; + on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 1%- &> /dev/null"; + tooltip-format = "Backlight: {percent}%"; + }; + "backlight#percent" = { + format = "{percent}%"; + tooltip-format = "Backlight: {percent}%"; + }; + + "group/battery-modules" = { + modules = [ + "battery#icon" + "battery#capacity" + ]; + orientation = "inherit"; + }; + "battery#icon" = { + format = "{icon}"; + format-charging = "󱐋"; + format-icons = [ + "󰂎" + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; + format-plugged = "󰚥"; + states = { + warning = 30; + critical = 15; + }; + tooltip-format = "{timeTo}, {capacity}%"; + }; + "battery#capacity" = { + format = "{capacity}%"; + tooltip-format = "{timeTo}, {capacity}%"; + }; + + tray = { + icon-size = 24; + spacing = 10; + show-passive-items = true; + }; + + clock = { + actions = { + on-scroll-down = "shift_down"; + on-scroll-up = "shift_up"; + }; + calendar = { + format = { + days = "{}"; + months = "{}"; + today = "{}"; + weekdays = "{}"; + }; + mode = "month"; + on-scroll = 1; + }; + format = "{:%I:%M %p}"; + tooltip-format = "{calendar}"; + }; + + "group/notifications-modules" = { + modules = [ + "notifications#icon" + ]; + orientation = "inherit"; + }; + "notifications#icon" = { + format = "󰂚"; + }; + + "group/powermenu" = { + drawer = { + children-class = "powermenu-child"; + transition-duration = 300; + transition-left-to-right = false; + }; + modules = [ + "custom/power" + "custom/lock" + "custom/suspend" + "custom/exit" + "custom/reboot" + ]; + orientation = "inherit"; + }; + "custom/power" = { + format = "󰐥"; + on-click = "${pkgs.systemd}/bin/systemctl poweroff"; + tooltip = false; + }; + "custom/lock" = { + format = "󰌾"; + on-click = "hyprlock"; + tooltip = false; + }; + "custom/suspend" = { + format = "󰤄"; + on-click = "${pkgs.systemd}/bin/systemctl suspend"; + tooltip = false; + }; + "custom/exit" = { + format = "󰍃"; + on-click = "${pkgs.systemd}/bin/loginctl terminate-user $USER"; + tooltip = false; + }; + "custom/reboot" = { + format = "󰜉"; + on-click = "${pkgs.systemd}/bin/systemctl reboot"; + tooltip = false; + }; + } + ]; + + style = '' + /* Global */ + * { + all: unset; + font-family: "GeistMono Nerd Font Propo", sans-serif; + font-size: 11pt; + font-weight: 500; + } + + /* Menu */ + menu { + background: ${base01}; + border-radius: 8px; + } + + menu separator { + background: ${base02}; + } + + menu menuitem { + background: transparent; + padding: 0.5rem; + transition: 300ms linear; + } + + menu menuitem:hover { + background: lighter(${base02}); + } + + menu menuitem:first-child { + border-radius: 8px 8px 0 0; + } + + menu menuitem:last-child { + border-radius: 0 0 8px 8px; + } + + menu menuitem:only-child { + border-radius: 8px; + } + + /* Tooltip */ + tooltip { + background: ${base00}; + border-radius: 8px; + } + + tooltip label { + margin: 0.5rem; + } + + /* Waybar */ + window#waybar { + background: ${base00}; + } + + .modules-left { + padding-left: 0.25rem; + } + + .modules-right { + padding-right: 0.25rem; + } + + /* Modules */ + #workspaces, + #workspaces button, + #idle_inhibitor, + #network-modules, + #wireplumber-modules, + #backlight-modules, + #battery-modules, + #notifications-modules, + #tray, + #clock, + #custom-exit, + #custom-lock, + #custom-suspend, + #custom-reboot, + #custom-power { + background: ${base02}; + border-radius: 8px; + margin: 0.5rem 0.25rem; + transition: 300ms linear; + } + + #image, + #window, + #network.address, + #wireplumber.volume, + #backlight.percent, + #battery.capacity, + #tray, + #clock { + padding: 0.25rem 0.75rem; + } + + #idle_inhibitor, + #network.icon, + #wireplumber.icon, + #backlight.icon, + #battery.icon, + #notifications.icon, + #custom-exit, + #custom-lock, + #custom-suspend, + #custom-reboot, + #custom-power { + background: ${base0D}; + color: ${base02}; + border-radius: 8px; + font-size: 13pt; + padding: 0.25rem; + min-width: 1.5rem; + transition: 300ms linear; + } + + /* Workspaces */ + #workspaces button { + margin: 0; + padding: 0.25rem; + min-width: 1.5rem; + } + + #workspaces button label { + color: ${base05}; + } + + #workspaces button.empty label { + color: ${base05}; + } + + #workspaces button.urgent label, + #workspaces button.active label { + color: ${base02}; + } + + #workspaces button.urgent { + background: ${base08}; + } + + #workspaces button.active { + background: ${base0D}; + } + + /* Idle Inhibitor */ + #idle_inhibitor { + background: ${base02}; + color: ${base0D}; + } + + #idle_inhibitor.deactivated { + color: ${base05}; + } + + /* Systray */ + #tray > .passive { + -gtk-icon-effect: dim; + } + + #tray > .needs-attention { + -gtk-icon-effect: highlight; + background: ${base08}; + } + + /* Hover effects */ + #workspaces button:hover, + #idle_inhibitor:hover, + #idle_inhibitor.deactivated:hover, + #clock:hover { + background: lighter(${base02}); + } + + #workspaces button.urgent:hover { + background: lighter(${base08}); + } + + #workspaces button.active:hover, + #network.icon:hover, + #wireplumber.icon:hover, + #custom-exit:hover, + #custom-lock:hover, + #custom-suspend:hover, + #custom-reboot:hover, + #custom-power:hover { + background: lighter(${base0D}); + } + + #workspaces button.urgent:hover label, + #workspaces button.active:hover label, + #network.icon:hover label, + #wireplumber.icon:hover label, + #custom-exit:hover label, + #custom-lock:hover label, + #custom-suspend:hover label, + #custom-reboot:hover label, + #custom-power:hover label { + color: lighter(${base02}); + } + + #workspaces button:hover label { + color: lighter(${base05}); + } + + #workspaces button.empty:hover label { + color: lighter(${base05}); + } + + #idle_inhibitor:hover { + color: lighter(${base0D}); + } + + #idle_inhibitor.deactivated:hover { + color: lighter(${base05}); + } + ''; }; } diff --git a/modules/home/opt/services/waybar/modules/custom-modules.nix b/modules/home/opt/services/waybar/modules/custom-modules.nix deleted file mode 100644 index ed791150..00000000 --- a/modules/home/opt/services/waybar/modules/custom-modules.nix +++ /dev/null @@ -1,174 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - inherit (lib) getExe getExe'; - - githubHelper = - pkgs.writeShellScriptBin "githubHelper" # bash - '' - #!/usr/bin/env bash - - NOTIFICATIONS="$(${getExe pkgs.gh} api notifications)" - COUNT="$(echo "$NOTIFICATIONS" | ${getExe pkgs.jq} 'length')" - - echo '{"text":'"$COUNT"',"tooltip":"'"$COUNT"' Notifications","class":""}' - ''; -in -{ - "custom/ellipses" = { - format = ""; - tooltip = false; - }; - - "custom/github" = { - format = " {}"; - return-type = "json"; - interval = 60; - exec = "${getExe githubHelper}"; - on-click = "${getExe' pkgs.coreutils "sleep"} 0.1 && gio open https://github.com/notifications"; - }; - - "custom/lock" = { - format = "󰍁"; - tooltip = false; - on-click = "${getExe config.programs.hyprlock.package}"; - }; - - "custom/media" = { - format = "{icon} {}"; - return-type = "json"; - max-length = 40; - format-icons = { - spotify = ""; - default = "🎜"; - }; - escape = true; - exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; - }; - - "custom/notification" = { - tooltip = true; - format = "{icon} {}"; - format-icons = { - notification = ""; - none = ""; - dnd-notification = ""; - dnd-none = ""; - inhibited-notification = ""; - inhibited-none = ""; - dnd-inhibited-notification = ""; - dnd-inhibited-none = ""; - }; - return-type = "json"; - exec-if = "which ${getExe' config.services.swaync.package "swaync-client"}"; - exec = "${getExe' config.services.swaync.package "swaync-client"} -swb"; - on-click = "${getExe' pkgs.coreutils "sleep"} 0.1 && ${getExe' config.services.swaync.package "swaync-client"} -t -sw"; - on-click-right = "${getExe' pkgs.coreutils "sleep"} 0.1 && ${getExe' config.services.swaync.package "swaync-client"} -d -sw"; - escape = true; - }; - - "custom/power" = { - format = ""; - tooltip = false; - menu = "on-click"; - menu-file = - pkgs.writeText "powermenu.xml" # xml - '' - - - - - - Activity - - - - - - - - Lock - - - - - Logout - - - - - Suspend - - - - - Hibernate - - - - - - - - Shutdown - - - - - Reboot - - - - - ''; - menu-actions = - let - systemctl = getExe' pkgs.systemd "systemctl"; - hyprlock = getExe config.programs.hyprlock.package; - poweroff = getExe' pkgs.systemd "poweroff"; - reboot = getExe' pkgs.systemd "reboot"; - terminal = getExe config.programs.foot.package; - top = getExe config.programs.btop.package; - hyprctl = getExe' config.wayland.windowManager.hyprland.package "hyprctl"; - swaymsg = getExe' config.wayland.windowManager.sway.package "swaymsg"; - in - { - inherit poweroff reboot; - - hibernate = "${systemctl} hibernate"; - lock = ''([[ "$XDG_CURRENT_DESKTOP" == "Hyprland" ]] && ${hyprlock} --immediate)''; - suspend = "${systemctl} suspend"; - top = "${terminal} ${top}"; - logout = "$(${hyprctl} dispatch exit || ${swaymsg} exit) && ${systemctl} --user exit "; - }; - }; - - "custom/separator-right" = { - format = ""; - tooltip = false; - }; - - "custom/separator-left" = { - format = ""; - tooltip = false; - }; - - "custom/weather" = { - exec = "${getExe pkgs.wttrbar} --location $(${getExe pkgs.jq} -r '.wttr | (.location)' ~/weather_config.json) --main-indicator temp_C"; - return-type = "json"; - format = "{}"; - tooltip = true; - interval = 3600; - }; - - "custom/wlogout" = { - format = ""; - interval = "once"; - tooltip = false; - on-click = "${getExe' pkgs.coreutils "sleep"} 0.1 && ${getExe pkgs.wlogout} -c 5 -r 5 -p layer-shell"; - }; -} diff --git a/modules/home/opt/services/waybar/modules/default-modules.nix b/modules/home/opt/services/waybar/modules/default-modules.nix deleted file mode 100644 index bd7f5c71..00000000 --- a/modules/home/opt/services/waybar/modules/default-modules.nix +++ /dev/null @@ -1,267 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -let - inherit (lib) getExe getExe'; -in -{ - backlight = - let - brightnessctl = lib.getExe pkgs.brightnessctl; - in - { - format = "{icon}"; - format-icons = [ - "󰋙" - "󰫃" - "󰫄" - "󰫅" - "󰫆" - "󰫇" - "󰫈" - ]; - on-scroll-up = "${brightnessctl} s 1%-"; - on-scroll-down = "${brightnessctl} s +1%"; - }; - - battery = { - states = { - warning = 30; - critical = 15; - }; - format = "{icon}"; - format-charging = "󰂄"; - format-plugged = "󰂄"; - format-alt = "{icon}"; - format-icons = [ - "󰂃" - "󰁺" - "󰁻" - "󰁼" - "󰁽" - "󰁾" - "󰁾" - "󰁿" - "󰂀" - "󰂁" - "󰂂" - "󰁹" - ]; - }; - - bluetooth = { - format = ""; - format-disabled = "󰂲"; - format-connected = "󰂱"; - tooltip-format = "{controller_alias}\t{controller_address}"; - tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{device_enumerate}"; - tooltip-format-disabled = ""; - tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; - on-click = "blueman-manager"; - }; - - cava = { - framerate = 120; - autosens = 1; - bars = 12; - method = "pipewire"; - source = "auto"; - bar_delimiter = 0; - input_delay = 2; - sleep_timer = 2; - hide_on_silence = true; - format-icons = [ - "▁" - "▂" - "▃" - "▄" - "▅" - "▆" - "▇" - "█" - ]; - }; - - clock = with config.lib.stylix.colors; { - tooltip-format = "{:%Y %B}\n{calendar}"; - format = "󰃭 {:%a %d %b \n 󰅐 %I:%M %p}"; - calendar = { - mode = "year"; - mode-mon-col = 3; - weeks-pos = "right"; - on-scroll = 1; - format = { - months = "{}"; - days = "{}"; - weeks = "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 = { - format = " {usage}%"; - tooltip = true; - states = { - "50" = 50; - "60" = 75; - "70" = 90; - }; - }; - - disk = { - format = " {percentage_used}%"; - }; - - idle_inhibitor = { - format = "{icon} "; - format-icons = { - activated = ""; - deactivated = ""; - }; - }; - - keyboard-state = { - numlock = true; - capslock = true; - format = "{icon} {name}"; - format-icons = { - locked = ""; - unlocked = ""; - }; - }; - - memory = { - format = "󰍛 {}%"; - }; - - mpris = { - format = "{player_icon} {status_icon} {dynamic}"; - format-paused = "{player_icon} {status_icon} {dynamic}"; - max-length = 45; - player-icons = { - chromium = ""; - default = ""; - firefox = ""; - mopidy = ""; - mpv = ""; - spotify = ""; - }; - status-icons = { - paused = ""; - playing = ""; - stopped = ""; - }; - }; - - 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 = 2; - 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)"; - }; - - network = - let - nm-editor = "${getExe' pkgs.networkmanagerapplet "nm-connection-editor"}"; - in - { - interval = 1; - format-wifi = "󰜷 {bandwidthUpBytes} 󰜮 {bandwidthDownBytes}"; - format-ethernet = "󰜷 {bandwidthUpBytes} 󰜮 {bandwidthDownBytes}"; - tooltip-format = "󰈀 {ifname} via {gwaddr}"; - format-linked = "󰈁 {ifname} (No IP)"; - format-disconnected = " Disconnected"; - format-alt = "{ifname}: {ipaddr}/{cidr}"; - on-click-right = "${nm-editor}"; - }; - - pulseaudio = { - format = "{volume}% {icon}"; - format-bluetooth = "{volume}% {icon}"; - format-muted = ""; - format-icons = { - headphone = ""; - hands-free = ""; - headset = ""; - phone = ""; - portable = ""; - car = ""; - default = [ - "" - "" - ]; - }; - scroll-step = 1; - on-click = "pavucontrol"; - ignored-sinks = [ "Easy Effects Sink" ]; - }; - - "pulseaudio/slider" = { - min = 0; - max = 100; - orientation = "horizontal"; - }; - - systemd-failed-units = { - hide-on-ok = false; - format = "✗ {nr_failed}"; - format-ok = "✓"; - system = true; - user = false; - }; - - tray = { - spacing = 10; - }; - - user = { - format = "{user}"; - interval = 60; - height = 30; - width = 30; - icon = true; - }; - - wireplumber = { - format = "{volume}% {icon}"; - format-muted = ""; - on-click = "${getExe' pkgs.coreutils "sleep"} 0.1 && ${getExe pkgs.helvum}"; - format-icons = [ - "" - "" - "" - ]; - }; -} diff --git a/modules/home/opt/services/waybar/modules/group-modules.nix b/modules/home/opt/services/waybar/modules/group-modules.nix deleted file mode 100644 index eb8a5c5a..00000000 --- a/modules/home/opt/services/waybar/modules/group-modules.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ - "group/audio" = { - orientation = "horizontal"; - drawer = { - transition-duration = 500; - transition-left-to-right = false; - }; - modules = [ - "pulseaudio" - "pulseaudio/slider" - ]; - }; - - "group/power" = { - orientation = "horizontal"; - drawer = { - transition-duration = 500; - children-class = "not-power"; - transition-left-to-right = false; - }; - modules = [ - "custom/wlogout" - # "custom/power" - # "custom/quit" - # "custom/lock" - # "custom/reboot" - ]; - }; - - "group/control-center" = { - orientation = "horizontal"; - modules = [ - "gamemode" - "idle_inhibitor" - "systemd-failed-units" - "custom/notification" - "custom/github" - "bluetooth" - "group/audio" - ]; - }; - - "group/tray" = { - orientation = "horizontal"; - modules = [ "tray" ]; - }; - - "group/stats" = { - orientation = "horizontal"; - modules = [ - "network" - "cpu" - "memory" - "disk" - ]; - }; - - "group/stats-drawer" = { - orientation = "horizontal"; - drawer = { - transition-duration = 500; - transition-left-to-right = false; - }; - modules = [ - "custom/separator-right" - "network" - "cpu" - "memory" - "disk" - ]; - }; - - "group/tray-drawer" = { - orientation = "horizontal"; - drawer = { - transition-duration = 500; - transition-left-to-right = false; - }; - modules = [ - "custom/separator-right" - "tray" - ]; - }; -} diff --git a/modules/home/opt/services/waybar/modules/hyprland-modules.nix b/modules/home/opt/services/waybar/modules/hyprland-modules.nix deleted file mode 100644 index ce614d4d..00000000 --- a/modules/home/opt/services/waybar/modules/hyprland-modules.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ config, lib, ... }: -let - inherit (lib) getExe'; -in -{ - "custom/quit" = { - format = "󰗼"; - tooltip = false; - on-click = "${getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch exit"; - }; - - "hyprland/submap" = { - format = "✌️ {}"; - max-length = 8; - tooltip = false; - }; - - "hyprland/window" = { - format = "{}"; - separate-outputs = true; - }; - - "hyprland/workspaces" = { - all-outputs = false; - active-only = "false"; - on-scroll-up = "${getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch workspace e+1"; - on-scroll-down = "${getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch workspace e-1"; - format = "{icon} {windows}"; - format-icons = { - "1" = "󰎤"; - "2" = "󰎧"; - "3" = "󰎪"; - "4" = "󰎭"; - "5" = "󰎱"; - "6" = "󰎳"; - "7" = "󰎶"; - "8" = "󰎹"; - "9" = "󰎼"; - "10" = "󰽽"; - "urgent" = "󱨇"; - "default" = ""; - "empty" = "󱓼"; - }; - # "format-window-separator" = "->"; - window-rewrite-default = ""; - window-rewrite = { - "class<.blueman-manager-wrapped>" = ""; - "class<.devede_ng.py-wrapped>" = ""; - "class<.pitivi-wrapped>" = "󱄢"; - "class<.xemu-wrapped>" = ""; - "class<1Password>" = "󰢁"; - "class" = ""; - "class" = ""; - "class" = "󰞀"; - "class" = "󰈎"; - "class" = ""; - "class" = "󰭹"; - "class" = "󰄄"; - "class" = "󰊤"; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = "󰛮"; - "class" = "󰟡"; - "class" = "󰒱"; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = "󰨞"; - "class" = "󰡔"; - "class" = "󰙯"; - "class" = ""; - "class" = ""; - "class title<.*github.*>" = ""; - "class title<.*twitch|youtube|plex|tntdrama|bally sports.*>" = ""; - "class" = ""; - "class" = ""; - "class" = "󱢾"; - "class" = "󰜭"; - "class" = ""; - "class" = ""; - "class" = "󱎏"; - "class" = "󰽉"; - "class" = "󱎐"; - "class" = ""; - "class" = "󱎓"; - "class" = "󱂷"; - "class" = "󱁇"; - "class" = "󰍳"; - "class" = ""; - "class" = "󰉋"; - "class" = "󰄄"; - "class" = ""; - "class" = "󰍳"; - "class" = ""; - "class" = "󰈰"; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = ""; - "class" = "󱩺"; - "class" = "󰊻"; - "class" = "󰉋"; - "class" = ""; - "class" = "󰚯"; - "class" = "󰢹"; - "class" = "󱇽"; - "class" = "󱍼"; - "class title<.*WL-1.*>" = ""; - "class" = ""; - "code-url-handler" = "󰨞"; - "title" = ""; - "title" = ""; - "title" = ""; - }; - }; -} diff --git a/modules/home/opt/services/waybar/styles/control-center.css b/modules/home/opt/services/waybar/styles/control-center.css deleted file mode 100644 index 6ebb3b44..00000000 --- a/modules/home/opt/services/waybar/styles/control-center.css +++ /dev/null @@ -1,90 +0,0 @@ -#control-center { - margin: 0.5em; - padding-left: 5px; - padding-right: 5px; - color: @peach; - font-weight: bold; - background-color: @surface0; - border: 2px solid @surface1; -} - -#custom-notification, -#custom-updates, -#custom-github, -#idle_inhibitor, -#wireplumber, -#pulseaudio, -#audio, -#bluetooth, -#gamemode, -#systemd-failed-units - { - padding: 0 0.5em; -} - -#custom-updates.updated { - padding-left: 0; - padding-right: 1em; -} - -/* Unique colors for modules */ -#idle_inhibitor { - color: @yellow; -} - -#pulseaudio{ - color: @green; -} - -#custom-github { - color: @blue; -} - -#custom-updates { - color: @red; -} - -#systemd-failed-units { - color: @mauve; -} - -#custom-pipewire.muted, -#pulseaudio.muted { - background-color: #90b1b1; - color: #2a5c45; -} - -#keyboard-state { - padding: 0 0px; - min-width: 16px; - color: @mauve; -} - -#keyboard-state > label { - padding: 0 5px; -} - -#keyboard-state > label.locked { - background: rgba(0, 0, 0, 0.2); -} - -#pulseaudio-slider slider { - min-height: 0px; - min-width: 0px; - opacity: 0; - background-color: @green; - background-image: none; - border: none; - box-shadow: none; -} -#pulseaudio-slider trough { - min-height: 10px; - min-width: 80px; - border-radius: 5px; - background-color: @base; -} -#pulseaudio-slider highlight { - min-width: 10px; - border-radius: 5px; - background-color: @green; -} diff --git a/modules/home/opt/services/waybar/styles/power.css b/modules/home/opt/services/waybar/styles/power.css deleted file mode 100644 index 5bc02e72..00000000 --- a/modules/home/opt/services/waybar/styles/power.css +++ /dev/null @@ -1,11 +0,0 @@ -/* Custom styling for the logout icon on end */ -#custom-wlogout, #custom-power { - font-size: 1.75em; - padding-right: 0.5em; - padding-left: 0.5em; - color: @blue; -} - -#power .not-power { - color: @red; - } diff --git a/modules/home/opt/services/waybar/styles/stats.css b/modules/home/opt/services/waybar/styles/stats.css deleted file mode 100644 index ce542514..00000000 --- a/modules/home/opt/services/waybar/styles/stats.css +++ /dev/null @@ -1,34 +0,0 @@ -#stats, -#stats-drawer { - margin: 0.5em; - padding-left: 5px; - padding-right: 5px; - color: @peach; - font-weight: bold; - background-color: @surface0; - border: 2px solid @surface1; -} -#battery, -#cpu, -#memory, -#disk, -#network { - padding: 0 0.5em; -} - -/* Unique colors for modules */ -#cpu { - color: @red; -} - -#memory { - color: @yellow; -} - -#network { - color: @blue; -} - -#network.disconnected { - background-color: #f53c3c; -} diff --git a/modules/home/opt/services/waybar/styles/style.css b/modules/home/opt/services/waybar/styles/style.css deleted file mode 100644 index 8a77289a..00000000 --- a/modules/home/opt/services/waybar/styles/style.css +++ /dev/null @@ -1,80 +0,0 @@ -/** -* Global configuration for theme -* */ -* { - font-family: Iosevka NF; - font-size: 16px; - border-radius: 0.5em; -} - -window#waybar { - border: 2px solid @surface1; - background: @theme_base_color; - box-shadow: 1px 1px 10px 10px @mantle; - color: @theme_text_color; - transition-property: background-color; - transition-duration: 0.5s; -} - -window#waybar.hidden { - opacity: 0.2; -} - -tooltip { - background: @base; - border: 1px solid @blue; -} - -tooltip label { - color: white; -} - -label:focus { - background-color: #000000; -} - -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; -} - -/* Remove border from parent waybar */ -box { - border: none; -} - -/* Add spacing for right side modules */ -#user, -#custom-weather, -#keyboard-state, -#mpd { - padding: 0 1em; -} - -/* tray needs less padding */ -#tray { - padding: 0em; -} - -#clock { - font-size: 16px; - font-weight: 900; -} - -#custom-separator-right, -#custom-separator-left { - font-size: 20px; - padding-left: 1em; - padding-right: 1em; - color: @text; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } -} diff --git a/modules/home/opt/services/waybar/styles/workspaces.css b/modules/home/opt/services/waybar/styles/workspaces.css deleted file mode 100644 index 13bcd57b..00000000 --- a/modules/home/opt/services/waybar/styles/workspaces.css +++ /dev/null @@ -1,42 +0,0 @@ -#workspaces { - margin: 0.5em; - padding-left: 5px; - padding-right: 5px; - color: @peach; - font-weight: bold; - background-color: @surface0; - border: 2px solid @surface1; -} - -#workspaces label { - font-family: Iosevka NF; - font-size: 20px; -} - -#workspaces button { - padding: 0 0.5em; - background-color: @surface0; - color: @text; - margin: 0.25em; -} - -#workspaces button.empty { - /* background-color: @surface2; */ - color: @overlay0; -} - -#workspaces button.visible { - /* background-color: @surface2; */ - color: @blue; -} - -#workspaces button.active { - /* background-color: @surface2; */ - color: @green; -} - -#workspaces button.urgent { - box-shadow: 2px 2px 2px 2px; - border-radius: 1em; - color: @red; -}