🧹 nixify polybar

nixos
Moritz Böhme 2022-02-07 18:13:55 +01:00
parent 6b2648d96c
commit 9676593e96
No known key found for this signature in database
GPG Key ID: 213820E2795F5CF5
4 changed files with 176 additions and 537 deletions

View File

@ -1,18 +0,0 @@
[colors]
background = #282a36
current-line = #44475a
foreground = #f8f8f2
comment = #6272a4
cyan = #8be9fd
green = #50fa7b
orange = #ffb86c
pink = #ff79c6
purple = #bd93f9
red = #ff5555
yellow = #f1fa8c
foreground-alt = ${self.foreground}
background-alt = #44475a
primary = ${self.pink}
secondary = ${self.green}

View File

@ -1,279 +0,0 @@
; Global WM Settings
[global/wm]
; Adjust the _NET_WM_STRUT_PARTIAL top value
; Used for top aligned bars
margin-bottom = 0
; Adjust the _NET_WM_STRUT_PARTIAL bottom value
; Used for bottom aligned bars
margin-top = 0
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;; File Inclusion
; include an external file, like module file, etc.
#include-file = ~/.config/polybar/colors.ini
#include-file = ~/.config/polybar/modules.ini
#include-file = ~/.config/polybar/custom/modules.ini
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[bar/bottom]
; Use either of the following command to list available outputs:
; If unspecified, the application will pick the first one it finds.
; $ polybar -m | cut -d ':' -f 1
; $ xrandr -q | grep " connected" | cut -d ' ' -f1
monitor = ${env:MONITOR}
; Use the specified monitor as a fallback if the main one is not found.
monitor-fallback =
; Require the monitor to be in connected state
; XRandR sometimes reports my monitor as being disconnected (when in use)
monitor-strict = false
; Tell the Window Manager not to configure the window.
; Use this to detach the bar if your WM is locking its size/position.
override-redirect = false
; Put the bar at the bottom of the screen
bottom = true
; Prefer fixed center position for the `modules-center` block
; When false, the center position will be based on the size of the other blocks.
fixed-center = true
; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
; the percentage can optionally be extended with a pixel offset like so:
; 50%:-10, this will result in a width or height of 50% minus 10 pixels
width = 100%
height = 30
; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
; the percentage can optionally be extended with a pixel offset like so:
; 50%:-10, this will result in an offset in the x or y direction
; of 50% minus 10 pixels
offset-x = 0
offset-y = 0
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
background = ${colors.background-alt}
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
foreground = ${colors.foreground}
; Background gradient (vertical steps)
; background-[0-9]+ = #aarrggbb
;;background-0 =
; Value used for drawing rounded corners
; Note: This shouldn't be used together with border-size because the border
; doesn't get rounded
; Individual top/bottom values can be defined using:
; radius-{top,bottom}
radius-top = 0.0
radius-bottom = 0.0
; Under-/overline pixel size and argb color
; Individual values can be defined using:
; {overline,underline}-size
; {overline,underline}-color
line-size = 3
line-color = ${colors.pink}
; Values applied to all borders
; Individual side values can be defined using:
; border-{left,top,right,bottom}-size
; border-{left,top,right,bottom}-color
; The top and bottom borders are added to the bar height, so the effective
; window height is:
; height + border-top-size + border-bottom-size
; Meanwhile the effective window width is defined entirely by the width key and
; the border is placed withing this area. So you effectively only have the
; following horizontal space on the bar:
; width - border-right-size - border-left-size
border-size = 0
border-bottom-color = ${colors.pink}
; Number of spaces to add at the beginning/end of the bar
; Individual side values can be defined using:
; padding-{left,right}
padding = 0
; Number of spaces to add before/after each module
; Individual side values can be defined using:
; module-margin-{left,right}
module-margin = 0
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
; Fonts are defined using <font-name>;<vertical-offset>
; Font names are specified using a fontconfig pattern.
; font-0 = NotoSans-Regular:size=8;2
; font-1 = MaterialIcons:size=10
; font-2 = Termsynu:size=8;-1
; font-3 = FontAwesome:size=10
; See the Fonts wiki page for more details
font-0 = "FiraCode Nerd Font:size=11;0"
; Modules are added to one of the available blocks
; modules-left = cpu ram
; modules-center = xwindow xbacklight
; modules-right = ipc clock
modules-left = cpu memory wlan eth battery
modules-center = bspwm
modules-right = pulseaudio date powermenu
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
; The separator will be inserted between the output of each module
separator =
; Opacity value between 0.0 and 1.0 used on fade in/out
dim-value = 1.0
; Value to be used to set the WM_NAME atom
; If the value is empty or undefined, the atom value
; will be created from the following template: polybar-[BAR]_[MONITOR]
; NOTE: The placeholders are not available for custom values
wm-name =
; Locale used to localize various module data (e.g. date)
; Expects a valid libc locale, for example: sv_SE.UTF-8
locale =
; Position of the system tray window
; If empty or undefined, tray support will be disabled
; NOTE: A center aligned tray will cover center aligned modules
;
; Available positions:
; left
; center
; right
; none
tray-position = right
; If true, the bar will not shift its
; contents when the tray changes
tray-detached = false
; Tray icon max size
tray-maxsize = 16
; Background color for the tray container
; ARGB color (e.g. #f00, #ff992a, #ddff1023)
; By default the tray container will use the bar
; background color.
tray-background = ${colors.background-alt}
; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
tray-offset-x = 0
tray-offset-y = 0
; Pad the sides of each tray icon
tray-padding = 2
; Scale factor for tray clients
tray-scale = 1.0
; Restack the bar window and put it above the
; selected window manager's root
;
; Fixes the issue where the bar is being drawn
; on top of fullscreen window's
;
; Currently supported WM's:
; bspwm
; i3 (requires: `override-redirect = true`)
wm-restack = bspwm
; Set a DPI values used when rendering text
; This only affects scalable fonts
; dpi =
; Enable support for inter-process messaging
; See the Messaging wiki page for more details.
enable-ipc = true
; Fallback click handlers that will be called if
; there's no matching module handler found.
click-left =
click-middle =
click-right =
scroll-up =
scroll-down =
double-click-left =
double-click-middle =
double-click-right =
; Requires polybar to be built with xcursor support (xcb-util-cursor)
; Possible values are:
; - default : The default pointer as before, can also be an empty string (default)
; - pointer : Typically in the form of a hand
; - ns-resize : Up and down arrows, can be used to indicate scrolling
cursor-click = pointer
cursor-scroll = ns-resize
;; WM Workspace Specific
; bspwm
;;scroll-up = #bspwm.next
;;scroll-down = #bspwm.prev
;;scroll-up = bspc desktop -f prev.local
;;scroll-down = bspc desktop -f next.local
;i3
;;scroll-up = i3wm-wsnext
;;scroll-down = i3wm-wsprev
;;scroll-up = i3-msg workspace next_on_output
;;scroll-down = i3-msg workspace prev_on_output
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
;; Application Settings
[settings]
; The throttle settings lets the eventloop swallow up til X events
; if they happen within Y millisecond after first event was received.
; This is done to prevent flood of update event.
;
; For example if 5 modules emit an update event at the same time, we really
; just care about the last one. But if we wait too long for events to swallow
; the bar would appear sluggish so we continue if timeout
; expires or limit is reached.
throttle-output = 5
throttle-output-for = 10
; Time in milliseconds that the input handler will wait between processing events
;throttle-input-for = 30
; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
screenchange-reload = true
; Compositing operators
; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
;;compositing-background = source
;;compositing-foreground = over
;;compositing-overline = over
;;compositing-underline = over
;;compositing-border = over
; Define fallback values used by all module formats
;format-foreground =
;format-background =
;format-underline =
;format-overline =
;format-spacing =
;format-padding =
;format-margin =
;format-offset =
; Enables pseudo-transparency for the bar
; If set to true the bar can be transparent without a compositor.
pseudo-transparency = false
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

View File

@ -2,7 +2,6 @@
{
home-manager.users.moritz = {
services.polybar = {
enable = true;
package = pkgs.polybar.override { pulseSupport = true; };
@ -11,9 +10,182 @@
MONITOR=$m polybar --reload bottom &
done
'';
config = ./config.ini;
extraConfig = builtins.readFile ./modules.ini
+ builtins.readFile ./colors.ini;
config = let
colors = {
background = "#282a36";
current-line = "#44475a";
foreground = "#f8f8f2";
comment = "#6272a4";
cyan = "#8be9fd";
green = "#50fa7b";
orange = "#ffb86c";
pink = "#ff79c6";
purple = "#bd93f9";
red = "#ff5555";
yellow = "#f1fa8c";
};
in {
"global/wm" = { margin-top = 5; };
"bar/bottom" = {
# position
monitor = "\${env:MONITOR}";
bottom = true;
width = "100%:-20";
heigth = 25;
background = colors.background;
foreground = colors.foreground;
radius = 10;
offset-x = 10;
offset-y = 5;
line-size = 3;
line-color = colors.pink;
font-0 = "FiraCode Nerd Font:size=10;0";
modules-left = "cpu memory wlan eth battery";
modules-center = "bspwm";
modules-right = "pulseaudio date";
wm-restack = "bspwm";
cursor-click = "pointer";
cursor-scroll = "ns-resize";
};
"module/battery" = {
type = "internal/battery";
battery = "BATT";
adapter = "ACAD";
time-format = "%H:%M";
format-charging = "<animation-charging> <label-charging>";
format-charging-underline = colors.green;
format-charging-padding = 1;
format-discharging = "<animation-discharging> <label-discharging>";
format-discharging-underline = colors.red;
format-discharging-padding = 1;
format-full = "<label-full>";
format-full-underline = colors.green;
format-full-padding = 1;
label-charging = "%percentage%% %time% remaining";
label-discharging = "%percentage%% %time% remaining";
label-full = "Fully charged";
animation-charging-0 = "";
animation-charging-1 = "";
animation-charging-2 = "";
animation-charging-3 = "";
animation-charging-4 = "";
animation-charging-framerate = 500;
animation-discharging-0 = "";
animation-discharging-1 = "";
animation-discharging-2 = "";
animation-discharging-3 = "";
animation-discharging-4 = "";
animation-discharging-framerate = 500;
};
"module/bspwm" = {
type = "internal/bspwm";
label-focused = "";
label-focused-foreground = colors.purple;
label-focused-padding = 1;
label-occupied = "";
label-occupied-foreground = colors.comment;
label-occupied-padding = 1;
label-urgent = "";
label-urgent-foreground = colors.red;
label-urgent-padding = 1;
label-empty = "";
label-empty-foreground = colors.comment;
label-empty-padding = 1;
label-separator = " ";
label-separator-foreground = colors.cyan;
label-separator-padding = 1;
pin-workspaces = true;
};
"module/cpu" = {
type = "internal/cpu";
interval = 2;
format-prefix = " ";
format-prefix-foreground = colors.red;
format-underline = colors.red;
format-padding = 2;
label = "%percentage:2%%";
};
"module/date" = {
type = "internal/date";
interval = 5;
date = "%A";
date-alt = "%Y-%m-%d";
time = "%H:%M";
time-alt = "%H:%M:%S";
format-underline = colors.purple;
format-padding = 2;
label = "%date% %time%";
click-middle = "${pkgs.kitty}/bin/kitty cal -m3";
};
"module/memory" = {
type = "internal/memory";
interval = 2;
format-prefix = " ";
format-prefix-foreground = colors.green;
format-underline = colors.green;
format-padding = 2;
label = "%percentage_used%%";
};
"module/pulseaudio" = {
type = "internal/pulseaudio";
format-volume = "<ramp-volume> <label-volume>";
format-padding = 2;
format-underline = colors.orange;
label-volume = "%percentage%%";
label-volume-foreground = colors.foreground;
label-muted = " muted";
label-muted-foreground = colors.red;
ramp-volume-0 = "";
ramp-volume-1 = "奔";
ramp-volume-2 = "";
click-middle = "${pkgs.pavucontrol}/bin/pavucontrol";
};
"module/eth" = {
type = "internal/network";
interface = "enp42s0";
interval = 3;
format-connected-underline = colors.purple;
format-connected = "<label-connected>";
label-connected = " %upspeed% %downspeed%";
format-connected-padding = 2;
};
"module/wlan" = {
type = "internal/network";
interface = "wlp1s0";
interval = 3;
format-connected-underline = colors.purple;
format-connected = "<label-connected>";
label-connected = " %upspeed% %downspeed%";
format-connected-padding = 2;
};
};
};
};
}

View File

@ -1,236 +0,0 @@
[module/battery]
type= internal/battery
battery= BATT
adapter= ACAD
; see "man date" for details on how to format the time string
; NOTE: if you want to use syntax tags here you need to use %%{...}
; Default: %H:%M:%S
time-format = %H:%M
; Available tags:
; <label-charging> (default)
; <bar-capacity>
; <ramp-capacity>
; <animation-charging>
format-charging = <animation-charging> <label-charging>
format-charging-underline = ${colors.green}
format-charging-padding = 1
; Available tags:
; <label-discharging> (default)
; <bar-capacity>
; <ramp-capacity>
; <animation-discharging>
format-discharging = <ramp-capacity> <label-discharging>
format-discharging-underline = ${colors.red}
format-discharging-padding = 1
; Available tags:
; <label-full> (default)
; <bar-capacity>
; <ramp-capacity>
format-full = <label-full>
format-full-underline = ${colors.green}
format-full-padding = 1
; Available tokens:
; %percentage% (default) - is set to 100 if full-at is reached
; %percentage_raw%
; %time%
; %consumption% (shows current charge rate in watts)
label-charging = %percentage%% %time% remaining
; Available tokens:
; %percentage% (default) - is set to 100 if full-at is reached
; %percentage_raw%
; %time%
; %consumption% (shows current discharge rate in watts)
label-discharging = %percentage%% %time% remaining
; Available tokens:
; %percentage% (default) - is set to 100 if full-at is reached
; %percentage_raw%
label-full = Fully charged
; Only applies if <ramp-capacity> is used
ramp-capacity-0 =
ramp-capacity-1 =
ramp-capacity-2 =
ramp-capacity-3 =
ramp-capacity-4 =
; Only applies if <bar-capacity> is used
bar-capacity-width = 10
; Only applies if <animation-charging> is used
animation-charging-0 =
animation-charging-1 =
animation-charging-2 =
animation-charging-3 =
animation-charging-4 =
; Framerate in milliseconds
animation-charging-framerate = 750
; Only applies if <animation-discharging> is used
animation-discharging-0 =
animation-discharging-1 =
animation-discharging-2 =
animation-discharging-3 =
animation-discharging-4 =
; Framerate in milliseconds
animation-discharging-framerate = 500
[module/bspwm]
type = internal/bspwm
reverse-scroll = false
label-focused =
label-focused-foreground = ${colors.purple}
label-focused-padding = 1
label-occupied =
label-occupied-foreground = ${colors.comment}
label-occupied-padding = 1
label-urgent =
label-urgent-foreground = ${colors.red}
label-urgent-padding = 1
label-empty =
label-empty-foreground = ${colors.comment}
; label-empty-background = ${colors.pink}
label-empty-padding = 1
label-separator = " "
label-separator-foreground = ${colors.cyan}
label-separator-padding = 1
pin-workspaces = true
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.red}
format-underline = ${colors.red}
format-padding = 2
label = %percentage:2%%
[module/date]
type = internal/date
interval = 5
date = "%A"
date-alt = " %Y-%m-%d"
time = %H:%M
time-alt = %H:%M:%S
format-underline = ${colors.purple}
format-padding = 2
label = %date% %time%
[module/eth]
type = internal/network
interface = enp42s0
interval = 3.0
format-connected-underline = ${colors.purple}
format-padding = 2
label-connected = "%upspeed% %downspeed%"
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.green}
format-underline = ${colors.green}
format-padding = 2
label = %percentage_used%%
click-left=kitty bpytop
[module/powermenu]
type = custom/menu
expand-right = false
format-spacing = 1
format-padding = 2
label-open = ""
label-open-foreground = ${colors.orange}
label-close = ""
label-close-foreground = ${colors.red}
label-separator = |
label-separator-foreground = ${colors.cyan}
menu-0-0 = " "
menu-0-0-exec = #powermenu.open.1
menu-0-1 = " "
menu-0-1-exec = #powermenu.open.2
menu-0-2 = " "
menu-0-2-exec = #powermenu.open.3
menu-1-0 = " "
menu-1-0-exec = systemctl reboot
menu-2-0 = " "
menu-2-0-exec = systemctl poweroff
menu-3-0 = " "
menu-3-0-exec = systemctl hibernate
[module/pulseaudio]
type = internal/pulseaudio
format-volume = <label-volume> <bar-volume>
format-padding = 2
format-underline = ${colors.orange}
label-volume = %percentage%%
label-volume-foreground = ${colors.foreground}
label-muted = " muted"
label-muted-foreground = ${colors.foreground-alt}
bar-volume-width = 12
bar-volume-foreground-0 = ${colors.green}
bar-volume-foreground-1 = ${colors.green}
bar-volume-foreground-2 = ${colors.green}
bar-volume-foreground-3 = ${colors.green}
bar-volume-foreground-4 = ${colors.green}
bar-volume-foreground-5 = ${colors.orange}
bar-volume-foreground-6 = ${colors.orange}
bar-volume-foreground-7 = ${colors.orange}
bar-volume-foreground-8 = ${colors.red}
bar-volume-gradient = true
bar-volume-indicator = |
bar-volume-indicator-font = 2
bar-volume-fill = -
bar-volume-fill-font = 2
bar-volume-empty = -
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground}
click-middle=pavucontrol
click-right=~/bin/cycle_sinks.sh
[module/wlan]
type = internal/network
interface = wlp1s0
interval = 3.0
format-connected-underline = ${colors.purple}
label-connected = "%upspeed% %downspeed%"
format-padding = 2
[module/xwindow]
type = internal/xwindow
format = <label>
label = %title:0:30:...%
format-underline = ${colors.orange}
format-padding = 2