292 lines
7.8 KiB
Nix
292 lines
7.8 KiB
Nix
|
{ pkgs, config, ... }: let
|
||
|
colors = config.colors.defaultColorSet;
|
||
|
inherit (config) machineVars;
|
||
|
in {
|
||
|
services.polybar = {
|
||
|
enable = true;
|
||
|
|
||
|
script = ''
|
||
|
polybar top &
|
||
|
'';
|
||
|
|
||
|
package = pkgs.polybar.override {
|
||
|
githubSupport = true;
|
||
|
mpdSupport = true;
|
||
|
};
|
||
|
|
||
|
settings = {
|
||
|
"bar/top" = {
|
||
|
bottom = false;
|
||
|
# monitor =
|
||
|
tray.position = "right";
|
||
|
|
||
|
background = colors.background;
|
||
|
foreground = colors.foreground;
|
||
|
|
||
|
padding = {
|
||
|
left = 2;
|
||
|
right = 2;
|
||
|
};
|
||
|
width = "100%";
|
||
|
height = 40;
|
||
|
|
||
|
fixed-center = true;
|
||
|
|
||
|
font = map (f: f + ":pixelsize=12:antialias=true:hinting=true") [
|
||
|
"Fira Code Retina"
|
||
|
"Noto Sans CJK JP"
|
||
|
"FiraCode Nerd Font"
|
||
|
];
|
||
|
|
||
|
modules = {
|
||
|
left = "xmonad";
|
||
|
center = "date";
|
||
|
right = builtins.concatStringsSep " " [
|
||
|
"filesystem "
|
||
|
(if machineVars.wlanInterface != null then "wlan " else "")
|
||
|
(if machineVars.battery != null then "batt " else "")
|
||
|
"vol"
|
||
|
"mpd"
|
||
|
];
|
||
|
};
|
||
|
|
||
|
tray = {
|
||
|
padding = 4;
|
||
|
maxsize = 25;
|
||
|
background = colors.background;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
"module/xmonad" = {
|
||
|
type = "custom/script";
|
||
|
exec = "${pkgs.xmonad-log}/bin/xmonad-log";
|
||
|
tail = "true";
|
||
|
};
|
||
|
|
||
|
"module/date" = {
|
||
|
type = "internal/date";
|
||
|
interval = 1.0;
|
||
|
|
||
|
format-padding = 1;
|
||
|
|
||
|
label = "%date% | %time%";
|
||
|
label-padding = 1;
|
||
|
|
||
|
date = "W%W | %Y.%M.%d | %A";
|
||
|
time = "%R";
|
||
|
};
|
||
|
|
||
|
"module/wlan" = {
|
||
|
type = "internal/network";
|
||
|
interval = 1.0;
|
||
|
unknown-as-up = true;
|
||
|
# Wireless interfaces often start with `wl` and ethernet interface with `eno` or `eth`. Check " ifconfig/iwconfig "
|
||
|
interface = pkgs.lib.mkIf (machineVars.wlanInterface != null) machineVars.wlanInterface;
|
||
|
|
||
|
format = {
|
||
|
connected = "<label-connected>";
|
||
|
connected-padding = 1;
|
||
|
# connected-suffix = "%{A1:networkmanager_dmenu &:}%{A}"
|
||
|
# connected-suffix-padding = 1
|
||
|
# connected-suffix-foreground = ${colors.fg-alt}
|
||
|
# connected-suffix-background = ${colors.accent}
|
||
|
|
||
|
disconnected = "<label-disconnected>";
|
||
|
disconnected-padding = 1;
|
||
|
# disconnected-suffix = "%{A1:networkmanager_dmenu &:}%{A}"
|
||
|
# disconnected-suffix-padding = 1
|
||
|
# disconnected-suffix-foreground = ${colors.fg-alt}
|
||
|
# disconnected-suffix-background = ${colors.accent}
|
||
|
|
||
|
label = {
|
||
|
connected = "%essid%";
|
||
|
connected-padding = 1;
|
||
|
# connected-background = ${colors.fg-alt}
|
||
|
|
||
|
disconnected = "OFF";
|
||
|
disconnected-padding = 1;
|
||
|
# disconnected-background = ${colors.fg-alt}
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
"module/batt" = {
|
||
|
type = "internal/battery";
|
||
|
full-at = 99;
|
||
|
|
||
|
battery = pkgs.lib.mkIf (machineVars.battery != null) machineVars.battery;
|
||
|
adapter = "AC";
|
||
|
|
||
|
poll.interval = 5;
|
||
|
|
||
|
# format-charging = "<label-charging>"
|
||
|
format.charging.padding = 1;
|
||
|
|
||
|
# format-charging-suffix = "%{A1:xfce4-power-manager-settings &:}%{A}"
|
||
|
# format-charging-suffix-padding = 1
|
||
|
# format-charging-suffix-foreground = ${colors.fg-alt}
|
||
|
# format-charging-suffix-background = ${colors.accent}
|
||
|
#
|
||
|
# format-discharging = "<label-discharging>"
|
||
|
# format-discharging-padding = 1
|
||
|
#
|
||
|
# format-discharging-suffix = "%{A1:xfce4-power-manager-settings &:}%{A}"
|
||
|
# format-discharging-suffix-padding = 1
|
||
|
# format-discharging-suffix-foreground = ${colors.fg-alt}
|
||
|
# format-discharging-suffix-background = ${colors.accent}
|
||
|
#
|
||
|
|
||
|
label-charging = "%percentage%%";
|
||
|
label-discharging = "%percentage%%";
|
||
|
label-full = "FULL";
|
||
|
label = {
|
||
|
charging = {
|
||
|
padding = 1;
|
||
|
foreground = colors.green;
|
||
|
# background = ${colors.fg-alt}
|
||
|
};
|
||
|
discharging = {
|
||
|
padding = 1;
|
||
|
foreground = colors.yellow;
|
||
|
};
|
||
|
full = {
|
||
|
padding = 1;
|
||
|
foreground = colors.blue;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
"module/vol" = {
|
||
|
type = "internal/alsa";
|
||
|
# format-volume = "<bar-volume>}"
|
||
|
# format-volume = "%{A1:bash -c '~/.scripts/get-volume' &:}<bar-volume>%{A}"
|
||
|
# format-volume = <label-volume> <bar-volume>
|
||
|
|
||
|
# format-volume-padding = 1
|
||
|
# format-muted-padding = 1
|
||
|
format-volume = "%{T3}%{T-} <label-volume> <bar-volume>";
|
||
|
# label-volume =
|
||
|
label-volume-foreground = colors.magenta;
|
||
|
# format-muted-foreground = "${colors.foreground-alt}";
|
||
|
label-muted = "mute";
|
||
|
|
||
|
bar.volume = {
|
||
|
width = 8;
|
||
|
foreground = [
|
||
|
"#55aa55"
|
||
|
"#55aa55"
|
||
|
"#55aa55"
|
||
|
"#55aa55"
|
||
|
"#55aa55"
|
||
|
"#f5a70a"
|
||
|
"#ff5555"
|
||
|
];
|
||
|
gradient = false;
|
||
|
indicator = "|";
|
||
|
# indicator-font = 1
|
||
|
fill = "─";
|
||
|
# fill-font = 1
|
||
|
empty = "─";
|
||
|
# empty-font = 1
|
||
|
# empty-foreground = "${colors.foreground-alt}";
|
||
|
};
|
||
|
|
||
|
#
|
||
|
# format-volume-prefix = "%{A3:pavucontrol &:}%{A}"
|
||
|
# format-volume-prefix-padding = 1
|
||
|
# format-volume-prefix-background = ${colors.fg-alt}
|
||
|
#
|
||
|
#
|
||
|
# format-muted-prefix = "%{A3:pavucontrol &:}%{A}"
|
||
|
# format-muted-prefix-padding = 1
|
||
|
# format-muted-prefix-background = ${colors.fg-alt}
|
||
|
#
|
||
|
# label-muted = " "
|
||
|
# label-muted-background = ${colors.fg-alt}
|
||
|
#
|
||
|
# bar-volume-width = 5
|
||
|
# bar-volume-indicator = ""
|
||
|
# bar-volume-empty = ""
|
||
|
# bar-volume-fill = ""
|
||
|
#
|
||
|
# bar-volume-indicator-foreground = ${colors.fg}
|
||
|
# bar-volume-indicator-background = ${colors.fg-alt}
|
||
|
#
|
||
|
# bar-volume-empty-foreground = ${colors.fg-alt}
|
||
|
# bar-volume-empty-background = ${colors.fg-alt}
|
||
|
#
|
||
|
# bar-volume-fill-foreground = ${colors.accent-alt}
|
||
|
# bar-volume-fill-background = ${colors.fg-alt}
|
||
|
};
|
||
|
|
||
|
"module/mpd" = {
|
||
|
type = "internal/mpd";
|
||
|
|
||
|
# your port and host here
|
||
|
host = "127.0.0.1";
|
||
|
port = "6600";
|
||
|
|
||
|
format-online = "<toggle> <label-song>";
|
||
|
|
||
|
# These are opposite, because polybar expects you to click the icon to change state,
|
||
|
# instead of showing the current state.
|
||
|
|
||
|
icon-pause = "";
|
||
|
icon.pause = {
|
||
|
font = 3;
|
||
|
padding = 1;
|
||
|
foreground = colors.green;
|
||
|
} ;
|
||
|
|
||
|
icon-play = "";
|
||
|
icon.play = {
|
||
|
font = 3;
|
||
|
padding = 1;
|
||
|
foreground = colors.red;
|
||
|
} ;
|
||
|
|
||
|
label-song = "%title%";
|
||
|
label.song = {
|
||
|
maxlen = 15;
|
||
|
ellipsis = true;
|
||
|
padding = 1;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
"module/filesystem" = {
|
||
|
type = "internal/fs";
|
||
|
|
||
|
# Mountpoints to display
|
||
|
mount = [
|
||
|
"/"
|
||
|
];
|
||
|
# ] ++ (builtins.values machineVars.dataDrives.drives);
|
||
|
|
||
|
format.mount = [
|
||
|
{ background = "#101010"; }
|
||
|
];
|
||
|
|
||
|
# Seconds to sleep between updates
|
||
|
# Default: 30
|
||
|
interval = 10;
|
||
|
|
||
|
# Display fixed precision values
|
||
|
# Default: false
|
||
|
fixed-values = true;
|
||
|
|
||
|
# Spacing (number of spaces, pixels, points) between entries
|
||
|
# Default: 2
|
||
|
spacing = 4;
|
||
|
|
||
|
# Default: 90
|
||
|
# New in version 3.6.0
|
||
|
warn-percentage = 75;
|
||
|
};
|
||
|
|
||
|
"settings" = {
|
||
|
screenchange-reload = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|