{ config, lib, pkgs, ... }: let inherit (lib) getExe; config = with pkgs; { backlight = { format = "{percent}%"; format-icons = [ "" "" "" "" "" "" "" "" "" ]; }; battery = { format = "{capacity}% {icon}"; format-alt = "{time} {icon}"; format-charging = "{capacity}% "; format-icons = [ "" "" "" "" "" ]; format-plugged = "{capacity}% "; on-click = "${getExe rmenu} -r powermenu --single-click true"; states = { critical = 15; warning = 30; }; }; clock = { format-alt = "{:%d.%m.%Y}"; tooltip-format = "{:%Y %B}\n{calendar}"; }; cpu = { format = "{usage}% "; tooltip = false; on-click = "${getExe xdg-terminal-exec} ${getExe btop}"; }; "custom/media" = { escape = true; exec = "${getExe waybar-mpris} --position --autofocus --pause ⏵ --play ⏸ --order SYMBOL:TITLE:ARTIST:ALBUM:POSITION "; max-length = 40; on-click = "${getExe waybar-mpris} --send toggle"; on-scroll-down = "${getExe waybar-mpris} --send prev"; on-scroll-up = "${getExe waybar-mpris} --send next"; return-type = "json"; }; height = 30; idle_inhibitor = { format = "{icon}"; format-icons = { activated = ""; deactivated = ""; }; }; keyboard-state = { capslock = true; format = "{name} {icon}"; format-icons = { locked = ""; unlocked = ""; }; numlock = true; }; memory = { format = "{}% "; }; modules-center = [ # "wlr/taskbar" ]; modules-left = [ "sway/workspaces" "sway/mode" "sway/scratchpad" ]; modules-right = [ "custom/media" "idle_inhibitor" "pulseaudio" "network" "cpu" "memory" "temperature" "backlight" "keyboard-state" "battery" "clock" "tray" ]; network = { format-alt = "{ifname}: {ipaddr}/{cidr}"; format-disconnected = "Disconnected ⚠"; format-ethernet = "{ipaddr}/{cidr} "; format-linked = "{ifname} (No IP) "; format-wifi = "{essid} ({signalStrength}%) "; on-click-right = "nm-connection-editor"; tooltip-format = "{ifname} via {gwaddr} "; }; position = "top"; pulseaudio = { format = "{volume}% {icon} {format_source}"; format-bluetooth = "{volume}% {icon} {format_source}"; format-bluetooth-muted = "{icon} {format_source}"; format-icons = { car = ""; default = [ "" "" "" ]; hands-free = ""; headphone = ""; headset = ""; phone = ""; portable = ""; muted = "🔇"; }; format-muted = "{icon} {format_source}"; format-source = "{volume}% "; format-source-muted = ""; on-click = "${getExe pwvucontrol}"; }; spacing = 4; "sway/mode" = { format = "{}"; }; "sway/scratchpad" = { format = "{icon} {count}"; format-icons = [ "" "" ]; show-empty = false; tooltip = true; tooltip-format = "{app}: {title}"; }; temperature = { critical-threshold = 80; format = "{temperatureC}°C {icon}"; format-icons = [ "" "" "" ]; }; tray = { spacing = 10; }; "wlr/taskbar" = { format = "{icon}"; icon-size = 14; ignore-list = [ ]; on-click = "activate"; on-click-middle = "close"; rewrite = { "Firefox Web Browser" = "Firefox"; }; tooltip-format = "{title}"; }; }; in { grimmShared.sway.bar = { enable = true; config = pkgs.writers.writeJSON "config.json" config; style = ./style.css; }; }