{ config, pkgs, lib, ... }: let for_hyprland = config.programs.waybar.enable && config.wayland.windowManager.hyprland.enable; in { wayland.windowManager.hyprland = lib.mkIf for_hyprland { settings = { exec-once = [ "${pkgs.waybar}/bin/waybar &" "${pkgs.networkmanagerapplet}/bin/nm-applet &" "${pkgs.pasystray}/bin/pasystray &" ]; }; }; programs.waybar.settings.mainBar = lib.mkIf for_hyprland { position = "top"; layer = "top"; height = 5; margin-top = 0; margin-bottom = 0; margin-left = 0; margin-right = 0; modules-left = [ "custom/launcher" "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; modules-right = [ "clock" "cpu" "memory" "disk" "battery" "network" "tray" ]; clock = { calendar = { format = {today = "{}";}; }; format = " {:%H:%M}"; tooltip = "true"; tooltip-format = "{:%Y %B}\n{calendar}"; format-alt = " {:%d/%m}"; }; "hyprland/workspaces" = { active-only = false; disable-scroll = true; format = "{icon}"; on-click = "activate"; format-icons = { "1" = "󰈹"; "2" = ""; "3" = "󰘙"; "4" = "󰙯"; "5" = ""; "6" = ""; urgent = ""; default = ""; sort-by-number = true; }; persistent-workspaces = { "1" = []; "2" = []; "3" = []; "4" = []; "5" = []; }; }; memory = { format = "󰟜 {}%"; format-alt = "󰟜 {used} GiB"; #  interval = 2; }; cpu = { format = " {usage}%"; format-alt = " {avg_frequency} GHz"; interval = 2; }; disk = { # path = "/"; format = "󰋊 {percentage_used}%"; interval = 60; }; network = { format-wifi = " {signalStrength}%"; format-ethernet = "󰀂 "; tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; format-linked = "{ifname} (No IP)"; format-disconnected = "󰖪 "; }; tray = { icon-size = 20; spacing = 8; }; pulseaudio = { format = "{icon} {volume}%"; format-muted = "󰖁 {volume}%"; format-icons = { default = [" "]; }; scroll-step = 5; on-click = "pamixer -t"; }; battery = { format = "{icon} {capacity}%"; format-icons = [" " " " " " " " " "]; format-charging = " {capacity}%"; format-full = " {capacity}%"; format-warning = " {capacity}%"; interval = 5; states = { warning = 20; }; format-time = "{H}h{M}m"; tooltip = true; tooltip-format = "{time}"; }; "custom/launcher" = { format = ""; on-click = "${pkgs.rofi}/bin/rofi -show drun"; tooltip = "false"; }; }; }