{
pkgs,
config,
...
} : {
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [ "DP-1" ];
modules-left = [
"hyprland/workspaces"
"mpris"
];
modules-center = [];
modules-right = [
"network"
"memory"
"cpu"
"clock"
];
# Widgets
"sway/workspaces" = {
disable-scroll = true;
all-outputs = true;
};
mpris = {
format = "{player_icon} {dynamic}";
format-paused = "{status_icon} {dynamic}";
max-length = 100;
player-icons = {
default = "⏸";
mpv = "🎵";
};
status-icons = {
paused = "▶";
};
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
network = {
tooltip = true;
format-wifi = "{icon} ";
format-icons = ["" "" ""];
rotate = 0;
format-ethernet = " ";
tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
format-linked = " {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = ["" "" "" "" "" "" "" "" ""];
max-length = 10;
};
cpu = {
interval = 1;
format = "{icon}";
rotate = 270;
format-icons = ["" "" "" "" "" "" "" "" ""];
};
clock = {
format = "{:%I:%M %p}";
rotate = 0;
on-click = "/usr/local/bin/ags -t ActivityCenter";
tooltip-format = "{calendar}";
calendar = {
mode = "month";
mode-mon-col = 3;
on-scroll = 1;
on-click-right = "mode";
format = {
months = "{}";
weekdays = "{}";
today = "{}";
};
};
actions = {
on-click-right = "mode";
on-click-forward = "tz_up";
on-click-backward = "tz_down";
on-scroll-up = "shift_up";
on-scroll-down = "shift_down";
};
};
};
secondBar = {
layer = "top";
position = "top";
height = 30;
output = [
"HDMI-A-2"
];
modules-left = [
"hyprland/workspaces"
];
modules-center = [
"custom/weather"
];
modules-right = [
"network"
];
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
default = "";
active = "";
};
};
"custom/weather" = {
exec = "python3 ~/.config/waybar/weather.py waybar";
restart-interval = 900;
return-type = "json";
};
network = {
tooltip = true;
format-wifi = "{icon} ";
format-icons = ["" "" ""];
rotate = 0;
format-ethernet = "{bandwidthTotalBits} {bandwidthUpBits} {bandwidthDownBits} ";
tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}";
format-linked = " {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel";
interval = 2;
};
};
};
};
home.file.".config/waybar" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
}