210 lines
6.8 KiB
Nix
210 lines
6.8 KiB
Nix
{ ... } : {
|
|
wayland.windowManager.hyprland.settings = {
|
|
exec-once = [
|
|
"waybar"
|
|
];
|
|
};
|
|
programs.waybar = {
|
|
enable = true;
|
|
settings = [
|
|
{
|
|
# "layer": "top", # Waybar at top layer
|
|
# "position": "bottom", # Waybar position (top|bottom|left|right)
|
|
height = 30; # Waybar height (to be removed for auto height)
|
|
# "width": 1280, # Waybar width
|
|
spacing = 4; # Gaps between modules (4px)
|
|
# Choose the order of the modules
|
|
modules-left = [
|
|
"hyprland/workspaces"
|
|
];
|
|
modules-center = [
|
|
"hyprland/window"
|
|
];
|
|
modules-right = [
|
|
"mpd"
|
|
"idle_inhibitor"
|
|
"wireplumber"
|
|
"network"
|
|
"power-profiles-daemon"
|
|
"cpu"
|
|
"memory"
|
|
"temperature"
|
|
"backlight"
|
|
"keyboard-state"
|
|
"sway/language"
|
|
"battery"
|
|
"battery#bat2"
|
|
"clock"
|
|
"tray"
|
|
"custom/power"
|
|
];
|
|
# Modules configuration
|
|
"hyprland/workspaces" = {
|
|
disable-scroll = true;
|
|
all-outputs = true;
|
|
warp-on-scroll = false;
|
|
format = "{name} {icon}";
|
|
format-icons = {
|
|
active = "";
|
|
default = "";
|
|
};
|
|
};
|
|
keyboard-state = {
|
|
numlock = true;
|
|
capslock = true;
|
|
format = "{name} {icon}";
|
|
format-icons = {
|
|
locked = "";
|
|
unlocked = "";
|
|
};
|
|
};
|
|
# "sway/mode": {
|
|
# "format": "<span style=\"italic\">{}</span>"
|
|
# },
|
|
# "sway/scratchpad": {
|
|
# "format": "{icon} {count}",
|
|
# "show-empty": false,
|
|
# "format-icons": ["", ""],
|
|
# "tooltip": true,
|
|
# "tooltip-format": "{app}: {title}"
|
|
# },
|
|
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 = 5;
|
|
consume-icons = {
|
|
on = " ";
|
|
};
|
|
random-icons = {
|
|
off = "<span color=\"#f53c3c\"></span> ";
|
|
on = " ";
|
|
};
|
|
repeat-icons = {
|
|
on = " ";
|
|
};
|
|
single-icons = {
|
|
on = "1 ";
|
|
};
|
|
state-icons = {
|
|
paused = "";
|
|
playing = "";
|
|
};
|
|
tooltip-format = "MPD (connected)";
|
|
tooltip-format-disconnected = "MPD (disconnected)";
|
|
};
|
|
idle_inhibitor = {
|
|
format = "{icon}";
|
|
format-icons = {
|
|
activated = "";
|
|
deactivated = "";
|
|
};
|
|
};
|
|
tray = {
|
|
# "icon-size": 21,
|
|
spacing = 10;
|
|
# "icons": {
|
|
# "blueman": "bluetooth",
|
|
# "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
|
|
# }
|
|
};
|
|
clock = {
|
|
# "timezone": "America/New_York",
|
|
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
|
format-alt = "{:%Y-%m-%d}";
|
|
};
|
|
cpu = {
|
|
format = "{usage}% ";
|
|
tooltip = false;
|
|
};
|
|
memory = {
|
|
format = "{}% ";
|
|
};
|
|
temperature = {
|
|
# "thermal-zone": 2,
|
|
# "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
|
critical-threshold = 80;
|
|
# "format-critical": "{temperatureC}°C {icon}",
|
|
format = "{temperatureC}°C {icon}";
|
|
format-icons = ["" "" ""];
|
|
};
|
|
backlight = {
|
|
# "device": "acpi_video1",
|
|
format = "{percent}% {icon}";
|
|
format-icons = ["" "" "" "" "" "" "" "" ""];
|
|
};
|
|
battery = {
|
|
states = {
|
|
# "good": 95,
|
|
warning = 30;
|
|
critical = 15;
|
|
};
|
|
format = "{capacity}% {icon}";
|
|
format-full = "{capacity}% {icon}";
|
|
format-charging = "{capacity}% ";
|
|
format-plugged = "{capacity}% ";
|
|
format-alt = "{time} {icon}";
|
|
# "format-good": "", // An empty format will hide the module
|
|
# "format-full": "",
|
|
format-icons = ["" "" "" "" ""];
|
|
};
|
|
"battery#bat2" = {
|
|
bat = "BAT2";
|
|
};
|
|
power-profiles-daemon = {
|
|
format = "{icon}";
|
|
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
|
tooltip = true;
|
|
format-icons = {
|
|
default = "";
|
|
performance = "";
|
|
balanced = "";
|
|
power-saver = "";
|
|
};
|
|
};
|
|
network = {
|
|
# "interface": "wlp2*", // (Optional) To force the use of this interface
|
|
format-wifi = "{essid} ({signalStrength}%) ";
|
|
format-ethernet = "{ipaddr}/{cidr} ";
|
|
tooltip-format = "{ifname} via {gwaddr} ";
|
|
format-linked = "{ifname} (No IP) ";
|
|
format-disconnected = "Disconnected ⚠";
|
|
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
|
};
|
|
wireplumber = {
|
|
format = "{volume}% {icon}";
|
|
format-muted = "";
|
|
# on-click = "helvum";
|
|
max-volume = 150;
|
|
scroll-step = 0.15;
|
|
format-icons = [" " " " " "];
|
|
};
|
|
"custom/media" = {
|
|
format = "{icon} {text}";
|
|
return-type = "json";
|
|
max-length = 40;
|
|
format-icons = {
|
|
spotify = "";
|
|
default = "🎜";
|
|
};
|
|
escape = true;
|
|
exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder;
|
|
# "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
|
};
|
|
"custom/power" = {
|
|
format = "⏻ ";
|
|
tooltip = false;
|
|
menu = "on-click";
|
|
menu-file = "$HOME/.config/waybar/power_menu.xml"; # Menu file in resources folde;
|
|
"menu-actions" = {
|
|
shutdown = "shutdown";
|
|
reboot = "reboot";
|
|
suspend = "systemctl suspend";
|
|
hibernate = "systemctl hibernate";
|
|
};
|
|
};
|
|
}
|
|
];
|
|
};
|
|
}
|