276 lines
7.6 KiB
Nix
276 lines
7.6 KiB
Nix
{ lib, pkgs, config, ... }: {
|
||
home-manager.users.agatha = {
|
||
|
||
systemd.user.services.polybar = {
|
||
Service = {
|
||
Environment = lib.mkForce (lib.concatStringsSep ":" [
|
||
"PATH=${config.home-manager.users.agatha.services.polybar.package}/bin"
|
||
"/run/wrappers/bin"
|
||
"${pkgs.dbus}/bin"
|
||
"${pkgs.dunst}/bin"
|
||
"${pkgs.systemd}/bin"
|
||
"${pkgs.util-linux}/bin"
|
||
"${pkgs.gnused}/bin"
|
||
]);
|
||
};
|
||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||
};
|
||
|
||
xdg.configFile."polybar/config.ini".onChange =
|
||
"${pkgs.systemd}/bin/systemctl --user restart polybar.service";
|
||
|
||
services.polybar = {
|
||
enable = true;
|
||
package = pkgs.polybarFull;
|
||
|
||
script = "polybar right &";
|
||
|
||
settings = let
|
||
color = n:
|
||
config.environment.graphical.colors.purple."${builtins.toString n}";
|
||
in {
|
||
"colors" = {
|
||
background = color 0;
|
||
foreground = color 7;
|
||
foreground-alt = color 7;
|
||
primary = color 1;
|
||
secondary = color 2;
|
||
alert = color 3;
|
||
red = color 4;
|
||
};
|
||
|
||
"bar/right" = {
|
||
monitor = "\${env:MONITOR:eDP-1}";
|
||
width = "100%:-30";
|
||
height = 30;
|
||
offset-x = 15;
|
||
offset-y = 12;
|
||
radius = 0;
|
||
fixed-center = true;
|
||
|
||
background = "\${colors.background}";
|
||
foreground = "\${colors.foreground}";
|
||
|
||
line = {
|
||
size = 0;
|
||
color = color 3;
|
||
};
|
||
border = {
|
||
size = 3;
|
||
color = color 1;
|
||
};
|
||
padding = {
|
||
left = 2;
|
||
right = 2;
|
||
};
|
||
module.margin = {
|
||
left = 1;
|
||
right = 1;
|
||
};
|
||
|
||
font = {
|
||
"0" = "Iosevka Gothic:pixelsize=10;3";
|
||
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
|
||
"2" = "Siji:pixelsize=11;2";
|
||
"3" = "Symbols Nerd Font:pixelsize=10;2";
|
||
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
|
||
};
|
||
|
||
modules = {
|
||
left = "bspwm";
|
||
center = "date";
|
||
right =
|
||
"filesystem battery pulseaudio xkeyboard memory cpu notification-status powermenu";
|
||
};
|
||
|
||
wm-restack = "bspwm";
|
||
cursor-click = "pointer";
|
||
locale = "de_DE.UTF-8";
|
||
};
|
||
|
||
"module/xkeyboard" = {
|
||
type = "internal/xkeyboard";
|
||
blacklist-0 = "num lock";
|
||
|
||
format-prefix = " ";
|
||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||
|
||
label = {
|
||
layout = "%layout%";
|
||
|
||
indicator = {
|
||
padding = 2;
|
||
margin = 1;
|
||
background = "\${colors.secondary}";
|
||
underline = "\${colors.secondary}";
|
||
};
|
||
};
|
||
};
|
||
|
||
"module/bspwm" = {
|
||
type = "internal/bspwm";
|
||
|
||
label = {
|
||
focused = "%name%";
|
||
focused-foreground = "\${colors.primary}";
|
||
focused-padding = 1;
|
||
|
||
occupied = "%name%";
|
||
occupied-padding = 1;
|
||
|
||
urgent = "%name%!";
|
||
urgent-background = "\${xrdb:color1:#222}";
|
||
urgent-padding = 1;
|
||
|
||
empty = "%name%";
|
||
empty-foreground = "\${colors.foreground-alt}";
|
||
empty-padding = 1;
|
||
};
|
||
};
|
||
|
||
"module/date" = {
|
||
type = "internal/date";
|
||
interval = 5;
|
||
|
||
date = "";
|
||
date-alt = " %a, %d %b %Y";
|
||
|
||
time = "%H:%M";
|
||
time-alt = "%H:%M:%S";
|
||
|
||
format-prefix = "";
|
||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||
|
||
label = ''
|
||
%{A3:${pkgs.dunst}/bin/dunstify ' Calendar' "$(${pkgs.util-linux}/bin/cal --color=always | ${pkgs.gnused}/bin/sed "s#\\x1b\\[7m#<b>#;s#\\x1b\\[27m#</b>#g")":}%date%%{A} %time%'';
|
||
};
|
||
|
||
"module/filesystem" = {
|
||
type = "internal/fs";
|
||
interval = 25;
|
||
|
||
mount-0 = "/";
|
||
|
||
label-mounted = "%mountpoint%: %percentage_used%%";
|
||
label-unmounted = "%mountpoint% not mounted";
|
||
label-unmounted-foreground = "\${colors.foreground-alt}";
|
||
};
|
||
|
||
"module/cpu" = {
|
||
type = "internal/cpu";
|
||
interval = 2;
|
||
format-prefix = " ";
|
||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||
label = "%{A1:kitty btop:}%percentage:2%%%{A}";
|
||
};
|
||
|
||
"module/memory" = {
|
||
type = "internal/memory";
|
||
interval = 2;
|
||
format-prefix = " ";
|
||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||
label = "%{A1:kitty btop:}%percentage_used%%%{A}";
|
||
};
|
||
|
||
"module/pulseaudio" = {
|
||
type = "internal/pulseaudio";
|
||
|
||
format-volume = "%{A3:pavucontrol:}<label-volume> <bar-volume>%{A}";
|
||
label-volume = " %percentage%%";
|
||
label-volume-foreground = "\${root.foreground}";
|
||
|
||
label-muted = " muted";
|
||
label-muted-foreground = "\${colors.primary}";
|
||
|
||
bar.volume = {
|
||
width = 14;
|
||
foreground-0 = "\${colors.secondary}";
|
||
foreground-1 = "\${colors.secondary}";
|
||
foreground-2 = "\${colors.primary}";
|
||
foreground-3 = "\${colors.primary}";
|
||
foreground-4 = "\${colors.primary}";
|
||
foreground-5 = "\${colors.alert}";
|
||
foreground-6 = "\${colors.red}";
|
||
gradient = false;
|
||
indicator = "|";
|
||
indicator-font = 5;
|
||
fill = "─";
|
||
fill-font = 2;
|
||
empty = "─";
|
||
empty-font = 2;
|
||
empty-foreground = "\${colors.foreground-alt}";
|
||
};
|
||
};
|
||
|
||
"module/powermenu" = {
|
||
type = "custom/menu";
|
||
|
||
expand-right = true;
|
||
format-spacing = 1;
|
||
|
||
label = {
|
||
open = "";
|
||
open-foreground = "\${colors.secondary}";
|
||
close = " cancel";
|
||
close-foreground = "\${colors.secondary}";
|
||
separator = "|";
|
||
separator-foreground = "\${colors.foreground-alt}";
|
||
};
|
||
|
||
menu = {
|
||
"0-0" = "reboot";
|
||
"0-0-exec" = "${pkgs.systemd}/bin/reboot";
|
||
"0-1" = "power off";
|
||
"0-1-exec" = "sudo ${pkgs.systemd}/bin/poweroff";
|
||
};
|
||
};
|
||
|
||
"module/battery" = {
|
||
type = "internal/battery";
|
||
full-at = 99;
|
||
low-at = 10;
|
||
battery = "BAT0";
|
||
adapter = "AC";
|
||
poll-interval = 3;
|
||
|
||
content-font = 3;
|
||
|
||
format-charging = "<animation-charging> <label-charging>";
|
||
format-discharging = "<ramp-capacity> <label-discharging>";
|
||
label = {
|
||
charging = "%percentage_raw%%";
|
||
discharging = "%percentage_raw%%";
|
||
full = "";
|
||
};
|
||
|
||
ramp = {
|
||
capacity-0 = "";
|
||
capacity-1 = "";
|
||
capacity-2 = "";
|
||
capacity-3 = "";
|
||
capacity-4 = "";
|
||
};
|
||
|
||
animation = {
|
||
charging-0 = "";
|
||
charging-1 = "";
|
||
charging-2 = "";
|
||
charging-3 = "";
|
||
charging-4 = "";
|
||
|
||
charging-framerate = 750;
|
||
};
|
||
};
|
||
|
||
"module/notification-status" = {
|
||
type = "custom/script";
|
||
exec = ''
|
||
if $(dunstctl is-paused); then echo "Notifications paused"; else echo ""; fi'';
|
||
interval = 2;
|
||
format-prefix = " ";
|
||
};
|
||
};
|
||
};
|
||
};
|
||
}
|