320 lines
No EOL
7.4 KiB
Nix
320 lines
No EOL
7.4 KiB
Nix
{ pkgs, config, lib, ...}:
|
|
{
|
|
programs.waybar = {
|
|
enable = true;
|
|
package = pkgs.waybar;
|
|
settings = {
|
|
main_bar = {
|
|
layer = "top";
|
|
modules-left = [
|
|
"custom/launcher"
|
|
"cpu"
|
|
"memory"
|
|
"custom/media"
|
|
"tray"
|
|
];
|
|
modules-center = [];
|
|
modules-right = [
|
|
"custom/updates"
|
|
"custom/wallpaper"
|
|
"backlight"
|
|
"custom/pw-volume"
|
|
"clock"
|
|
"battery"
|
|
"custom/power"
|
|
];
|
|
"custom/pipewire" = {
|
|
"exec" = "pw-volume status";
|
|
"return-type" = "json";
|
|
"interval" = "once";
|
|
"signal" = 8;
|
|
"format" = "{icon} {percentage}";
|
|
"format-icons" = {
|
|
"mute" = "";
|
|
"default" = [
|
|
""
|
|
""
|
|
""
|
|
];
|
|
}
|
|
};
|
|
"network" = {
|
|
"tooltip" = false;
|
|
"format-wifi" = " {essid}";
|
|
"format-ethernet" = "";
|
|
};
|
|
"backlight" = {
|
|
"tooltip" = false;
|
|
"format" = " {}%";
|
|
"interval" = 1;
|
|
"on-scroll-up" = "light -A 5";
|
|
"on-scroll-down" = "light -U 5";
|
|
};
|
|
"battery" = {
|
|
"states" = {
|
|
"good" = 95;
|
|
"warning" = 30;
|
|
"critical" = 20;
|
|
}
|
|
"format" = "{icon} {capacity}%";
|
|
"format-charging" = " {capacity}%";
|
|
"format-plugged" = " {capacity}%";
|
|
"format-alt" = "{time} {icon}";
|
|
"format-icons" = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
}
|
|
"tray" = {
|
|
"icon-size" = 18;
|
|
"spacing" = 10;
|
|
}
|
|
"clock" = {
|
|
"format" = "{: %I:%M %p %d/%m/%Y}";
|
|
}
|
|
"cpu" = {
|
|
"interval" = 15;
|
|
"format" = " {}%";
|
|
"max-length" = 10;
|
|
}
|
|
"memory" = {
|
|
"interval" = 30;
|
|
"format" = " {}%";
|
|
"max-length" = 10;
|
|
}
|
|
"custom/media" = {
|
|
"interval" = 30;
|
|
"format" = "{icon} {}";
|
|
"return-type" = "json";
|
|
"max-length" = 20;
|
|
"format-icons" = {
|
|
"spotify" = " ";
|
|
"default" = " ";
|
|
}
|
|
"escape" = true;
|
|
"exec" = "$HOME/.config/system_scripts/mediaplayer.py 2> /dev/null";
|
|
"on-click" = "playerctl play-pause";
|
|
};
|
|
"custom/launcher" = {
|
|
"format" = " ";
|
|
"on-click" = "rofi -show drun";
|
|
"on-click-right" = "killall rofi";
|
|
};
|
|
"custom/power" = {
|
|
"format" = " ";
|
|
"on-click" = "bash ~/.config/rofi/leave/leave.sh";
|
|
};
|
|
"custom/updates" = {
|
|
"format" = "{} Update(s)";
|
|
"exec" = "checkupdates | wc -l";
|
|
"exec-if" = "[[ $(checkupdates | wc -l) != 0 ]]";
|
|
"interval" = 15;
|
|
"on-click" = "alacritty -e paru -Syu && notify-send 'The system has been updated' ";
|
|
};
|
|
"custom/wallpaper" = {
|
|
"format" = " ";
|
|
"on-click" = "bash ~/.config/system_scripts/pkill_bc";
|
|
};
|
|
};
|
|
};
|
|
style = ''
|
|
* {
|
|
border: none;
|
|
border-radius: 10;
|
|
font-family: "JetbrainsMono Nerd Font" ;
|
|
font-size: 15px;
|
|
min-height: 10px;
|
|
}
|
|
|
|
window#waybar {
|
|
background: transparent;
|
|
}
|
|
|
|
window#waybar.hidden {
|
|
opacity: 0.2;
|
|
}
|
|
|
|
#window {
|
|
margin-top: 6px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: transparent;
|
|
background: transparent;
|
|
}
|
|
|
|
#network {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #bd93f9;
|
|
}
|
|
|
|
#battery {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #B5E8E0;
|
|
}
|
|
|
|
#battery.charging, #battery.plugged {
|
|
color: #161320;
|
|
background-color: #B5E8E0;
|
|
}
|
|
|
|
#battery.critical:not(.charging) {
|
|
background-color: #B5E8E0;
|
|
color: #161320;
|
|
animation-name: blink;
|
|
animation-duration: 0.5s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
|
|
@keyframes blink {
|
|
to {
|
|
background-color: #BF616A;
|
|
color: #B5E8E0;
|
|
}
|
|
}
|
|
|
|
#backlight {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #F8BD96;
|
|
}
|
|
|
|
#clock {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #ABE9B3;
|
|
/*background: #1A1826;*/
|
|
}
|
|
|
|
#memory {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
margin-bottom: 0px;
|
|
padding-right: 10px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #DDB6F2;
|
|
}
|
|
|
|
#cpu {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
margin-bottom: 0px;
|
|
padding-right: 10px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #96CDFB;
|
|
}
|
|
|
|
#tray {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
margin-bottom: 0px;
|
|
padding-right: 10px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #B5E8E0;
|
|
background: #161320;
|
|
}
|
|
|
|
#custom-launcher {
|
|
font-size: 24px;
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 5px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #89DCEB;
|
|
background: #161320;
|
|
}
|
|
|
|
#custom-power {
|
|
font-size: 20px;
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
margin-right: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 5px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #F28FAD;
|
|
}
|
|
|
|
#custom-wallpaper {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #C9CBFF;
|
|
}
|
|
|
|
#custom-updates {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #E8A2AF;
|
|
}
|
|
|
|
#custom-media {
|
|
margin-top: 6px;
|
|
margin-left: 8px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
margin-bottom: 0px;
|
|
border-radius: 10px;
|
|
transition: none;
|
|
color: #161320;
|
|
background: #F2CDCD;
|
|
}
|
|
'';
|
|
};
|
|
} |