diff --git a/modules/desktop/polybar/colors.ini b/modules/desktop/polybar/colors.ini deleted file mode 100755 index 8cdf125..0000000 --- a/modules/desktop/polybar/colors.ini +++ /dev/null @@ -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} diff --git a/modules/desktop/polybar/config.ini b/modules/desktop/polybar/config.ini deleted file mode 100755 index 8c6aac1..0000000 --- a/modules/desktop/polybar/config.ini +++ /dev/null @@ -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 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 - -;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/modules/desktop/polybar/default.nix b/modules/desktop/polybar/default.nix index 260b4b1..5b3051a 100644 --- a/modules/desktop/polybar/default.nix +++ b/modules/desktop/polybar/default.nix @@ -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 = " "; + format-charging-underline = colors.green; + format-charging-padding = 1; + + format-discharging = " "; + format-discharging-underline = colors.red; + format-discharging-padding = 1; + + format-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 = " "; + 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 = "祝 %upspeed%  %downspeed%"; + format-connected-padding = 2; + }; + "module/wlan" = { + type = "internal/network"; + interface = "wlp1s0"; + interval = 3; + format-connected-underline = colors.purple; + format-connected = ""; + label-connected = "祝 %upspeed%  %downspeed%"; + format-connected-padding = 2; + }; + }; }; }; } diff --git a/modules/desktop/polybar/modules.ini b/modules/desktop/polybar/modules.ini deleted file mode 100755 index 4fa5a4b..0000000 --- a/modules/desktop/polybar/modules.ini +++ /dev/null @@ -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: -; (default) -; -; -; -format-charging = -format-charging-underline = ${colors.green} -format-charging-padding = 1 - -; Available tags: -; (default) -; -; -; -format-discharging = -format-discharging-underline = ${colors.red} -format-discharging-padding = 1 - -; Available tags: -; (default) -; -; -format-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 is used -ramp-capacity-0 =  -ramp-capacity-1 =  -ramp-capacity-2 =  -ramp-capacity-3 =  -ramp-capacity-4 =  - -; Only applies if is used -bar-capacity-width = 10 - -; Only applies if 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 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 = -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 =