# TODO: # - try this PR to get custom workspace names to work: # - # - add network/bluetooth indicator # - # - add CPU/meminfo executor # - use sane-sysinfo { components, height, playerctlChars, windowIcon, windowTitle, workspaceHideEmpty, workspaceNumbers, }: [ { controls = "right"; css-name = "panel-top"; exclusive-zone = true; height = height; homogeneous = false; #< homogenous=false means to not force modules-{left,center,right} to an inflexible 33%/33%/33% real-estate split. icons = "light"; items-padding = 0; layer = "bottom"; margin-bottom = 0; margin-top = 0; menu-start = "off"; name = "panel-top"; # output = "All" => display the bar on every output. # - documented: # alternatively, i could declare one bar per display, # and then customize it so that the external display(s) render a less noisy bar. # this will be easier once this is addressed: output = "All"; padding-horizontal = 0; padding-vertical = 0; position = "top"; sigrt = 64; spacing = 0; start-hidden = false; use-sigrt = false; width = "auto"; modules-left = [ "sway-workspaces" ]; modules-center = [ "clock" ]; modules-right = [ "playerctl" ]; clock = { angle = 0.0; calendar-css-name = "calendar-window"; calendar-icon-size = 24; calendar-interval = 60; calendar-margin-horizontal = 0; calendar-margin-vertical = 0; calendar-on = true; calendar-path = ""; calendar-placement = "top"; css-name = "clock"; format = "%H:%M"; interval = 30; on-left-click = ""; on-middle-click = ""; on-right-click = ""; on-scroll-down = ""; on-scroll-up = ""; root-css-name = "root-clock"; tooltip-date-format = true; tooltip-text = "%a; %d %b %H:%M:%S"; }; controls-settings = { battery-low-interval = 4; #< notify every N minutes when battery continues to remain low battery-low-level = 15; #< notify if battery is lower than this percent # commands.battery = ""; #< optional action to perform when battery icon is clicked in the drop-down menu components = components; click-closes = false; custom-items = []; css-name = "controls-window"; hover-opens = false; icon-size = 16; interval = 1; leave-closes = false; menu.icon = "system-shutdown-symbolic"; menu.items = [ { # TODO: plumb through the configured locker instead of assuming `swaylock` name = "Lock"; cmd = "swaylock -f -c 000000"; } { name = "Logout"; cmd = "swaymsg exit"; } { name = "Reboot"; cmd = "systemctl reboot"; } { name = "Shutdown"; cmd = "systemctl -i poweroff"; } ]; menu.name = "Exit"; output-switcher = true; #< allow changing the default audio sink #v `show-` means "show the NUMERICAL VALUE corresponding to " # e.g. show-battery means "show the battery _percentage_ next to its icon". show-battery = true; show-brightness = false; show-values = false; show-volume = false; # window-width: should be 360 for moby, but because of weird `margin` tweaks in style.css # we have to add 20px to both sides window-width = 400; }; playerctl = { button-css-name = "playerctl-button"; buttons-position = "left"; chars = playerctlChars; icon-size = 16; interval = 2; label-css-name = "playerctl-label"; scroll = false; }; sway-workspaces = { angle = 0.0; custom-labels = []; focused-labels = []; hide-empty = workspaceHideEmpty; image-size = 16; mark-autotiling = true; mark-content = false; name-length = 40; numbers = workspaceNumbers; show-icon = windowIcon; show-layout = false; show-name = windowTitle; }; # unused modules: brightness-slider = {}; dwl-tags = {}; hyprland-taskbar = {}; hyprland-workspaces = {}; keyboard-layout = {}; openweather = {}; scratchpad = {}; sway-mode = {}; sway-taskbar = {}; #< windows-style taskbar, usually placed at the bottom of the screen, to show open windows & tab to them on click tray = {}; } ]