diff --git a/apps/waybar/home.nix b/apps/waybar/home.nix index e69de29..f3fff2d 100644 --- a/apps/waybar/home.nix +++ b/apps/waybar/home.nix @@ -0,0 +1,167 @@ +{ + config, + pkgs, + ... +}: { + programs.waybar = { + enable = true; + settings = { + mainBar = { + reload_style_on_change = true; + layer = "top"; + position = "top"; + spacing = 0; + height = 26; + + modules-left = ["custom/omarchy" "hyprland/workspaces"]; + modules-center = ["clock" "custom/update" "custom/screenrecording-indicator"]; + modules-right = [ + "group/tray-expander" + "bluetooth" + "network" + "pulseaudio" + "cpu" + "battery" + ]; + + "hyprland/workspaces" = { + on-click = "activate"; + format = "{icon}"; + format-icons = { + "default" = ""; + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; + "10" = "0"; + "active" = "󱓻"; + }; + persistent-workspaces = { + "1" = []; + "2" = []; + "3" = []; + "4" = []; + "5" = []; + }; + }; + + "custom/omarchy" = { + format = "\ue900"; + on-click = "omarchy-menu"; + on-click-right = "xdg-terminal-exec"; + tooltip-format = "Omarchy Menu\n\nSuper + Alt + Space"; + }; + + "custom/update" = { + format = ""; + exec = "omarchy-update-available"; + on-click = "omarchy-launch-floating-terminal-with-presentation omarchy-update"; + tooltip-format = "Omarchy update available"; + signal = 7; + interval = 21600; + }; + + "cpu" = { + interval = 5; + format = "󰍛"; + on-click = "omarchy-launch-or-focus-tui btop"; + on-click-right = "alacritty"; + }; + + "clock" = { + format = "{:L%A %H:%M}"; + format-alt = "{:L%d %B W%V %Y}"; + tooltip = false; + on-click-right = "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select"; + }; + + "network" = { + format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"]; + format = "{icon}"; + format-wifi = "{icon}"; + format-ethernet = "󰀂"; + format-disconnected = "󰤮"; + tooltip-format-wifi = "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}"; + tooltip-format-ethernet = "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}"; + tooltip-format-disconnected = "Disconnected"; + interval = 3; + spacing = 1; + on-click = "omarchy-launch-wifi"; + }; + + "battery" = { + format = "{capacity}% {icon}"; + format-discharging = "{icon}"; + format-charging = "{icon}"; + format-plugged = ""; + format-icons = { + charging = ["󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"]; + default = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + }; + format-full = "󰂅"; + tooltip-format-discharging = "{power:>1.0f}W↓ {capacity}%"; + tooltip-format-charging = "{power:>1.0f}W↑ {capacity}%"; + interval = 5; + on-click = "omarchy-menu power"; + states = { + warning = 20; + critical = 10; + }; + }; + + "bluetooth" = { + format = ""; + format-disabled = "󰂲"; + format-connected = "󰂱"; + format-no-controller = ""; + tooltip-format = "Devices connected: {num_connections}"; + on-click = "omarchy-launch-bluetooth"; + }; + + "pulseaudio" = { + format = "{icon}"; + on-click = "omarchy-launch-or-focus-tui wiremix"; + on-click-right = "pamixer -t"; + tooltip-format = "Playing at {volume}%"; + scroll-step = 5; + format-muted = ""; + format-icons = { + default = ["" "" ""]; + }; + }; + + "group/tray-expander" = { + orientation = "inherit"; + drawer = { + transition-duration = 600; + children-class = "tray-group-item"; + }; + modules = ["custom/expand-icon" "tray"]; + }; + + "custom/expand-icon" = { + format = ""; + tooltip = false; + }; + + "custom/screenrecording-indicator" = { + on-click = "omarchy-cmd-screenrecord"; + # Note: $OMARCHY_PATH must be defined in your environment + exec = "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh"; + signal = 8; + return-type = "json"; + }; + + "tray" = { + icon-size = 12; + spacing = 17; + }; + }; + }; + }; +}