; Polybars ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [bar/top] ; Polybar Position monitor = ${env:MONITOR} width = 100% height = 25 ; Polybar Color ; Depreciated.. ;tray-transparent = true ; Transparent adds 2 leading values to color (2+hex) background = #00000000 ; Opaque is hex color (hex) foreground = #00c24a line-color = ${bar/bottom.background} line-size = 16 spacing = 2 tray-background = #00111111 ; Polybar Padding padding-left = 0 padding-right = 5 ; Margin Between Modules module-margin = 2 ; Type font font-0 = NotoSans-Regular:size=12;0 font-1 = Inconsolata Nerd Font:size=12;0 font-2 = Noto Sans Mono:size=10;0 ; Modules modules-left = powermenu weather modules-center = ki3 modules-right = brightness volume date ; Set the cursor to display pointer / resize is interaction available cursor-click = pointer cursor-scroll = ns-resize [bar/bottom] ; Position, size of polybar monitor = ${env:MONITOR} bottom = true width = 100% height = 30 ; Use top bar colors background = ${bar/top.background} foreground = ${bar/top.foreground} line-color = ${bar/top.background} line-size = 2 spacing = 3 ; Polybar padding padding-left = 6 padding-right = 6 ; Margins between modules module-margin-left = 1 module-margin-right = 2 ; Font settings, order matters ; Top font takes priority over following ;font-0 = Source Code Pro:size=10;0 font-0 = NotoSans-Regular:size=12;1 font-1 = Inconsolata Nerd Font:size=12;3 font-2 = Noto Sans Mono:size=8;0 ; Modules modules-left = temp-cpu cpu memory modules-center = popup-utc network public-ip filesystem modules-right = vpn battery ; Set the cursor to display pointer / resize is interaction available cursor-click = pointer cursor-scroll = ns-resize ; Modules ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; VPN Status ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/vpn] type = custom/script exec = mullvad status | awk '{print "VPN: "$3}' interval = 10 ; Pop-up Calendar ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/popup-utc] type = custom/script exec = ~/.local/bin/i3scripts/popup-calendar interval = 5 click-left = ~/.local/bin/i3scripts/popup-calendar --popup click-right = ~/.local/bin/i3scripts/popup-calendar-local ; Local Date ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/date] type = internal/date date = %%{F#aaa}%Y-%m-%d%%{F-} %%{F#fff}%H:%M%%{F-} date-alt = %%{F#aaa}%A, %d %B %Y %%{F#fff}%H:%M%%{F#666}:%%{F#fba922}%S%%{F-} click-right = exec notify-send hi ; Weather ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/weather] type = custom/script exec = ~/.local/bin/i3scripts/weathermap interval = 600 ;label-font = Font Awesome 5 Free Solid:size=40;0 ; Brightness ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/brightness] type = custom/script exec = echo " $(brightnessctl -P g)%" tail = true ; Type Speed ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/info-hackspeed] type = custom/script exec = ~/.local/bin/i3scripts/info-hackspeed tail = true ; Polybar Break Timer [module/breaktimer] type = custom/script format-prefix = " " ;format-foreground = ${colors.verdeclaro} exec = polybar-break-timer $HOME/.config/polybar/.env/break-timer click-left = echo left >> $HOME/.config/polybar/.env/break-timer click-middle = echo middle >> $HOME/.config/polybar/.env/break-timer click-right = echo right >> $HOME/.config/polybar/.env/break-timer scroll-up = echo scrollUp >> $HOME/.config/polybar/.env/break-timer scroll-down = echo scrollDown >> $HOME/.config/polybar/.env/break-timer tail = true ; System Idle Time ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/info-idle] type = custom/script exec = ~/.local/bin/i3scripts/info-idle tail = true ; Disk Space ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/filesystem] type = internal/fs ; Mountpoints to display mount-0 = / ;mount-1 = /home ;mount-2 = /var ; Seconds to sleep between updates ; Default: 30 interval = 10 ; Display fixed precision values ; Default: false fixed-values = true ;Available tags: ; <label-mounted> (default) ; <bar-free> ; <bar-used> ; <ramp-capacity> format-mounted = <label-mounted> ; Available tokens: ; %mountpoint% ; %type% ; %fsname% ; %percentage_free% ; %percentage_used% ; %total% ; %free% ; %used% ; Default: %mountpoint% %percentage_free%% label-mounted = %mountpoint% %free% ; Spacing between entries ; Default: 2 spacing = 4 ; Network Status ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/network] type = internal/network interface = enp0s31f6 ; Available tags: ; <label-connected> (default) ; <ramp-signal> format-connected = <label-connected> ; Available tags: ; <label-disconnected> (default) format-disconnected = <label-disconnected> ; Available tags: ; <label-connected> (default) ; <label-packetloss> ; <animation-packetloss> format-packetloss = <animation-packetloss> <label-connected> ; Default: %ifname% %local_ip% label-connected = %upspeed% / %downspeed:9% 龍 %linkspeed% %local_ip% label-connected-foreground =#00c24a ; Default: (none) label-disconnected = not connected label-disconnected-foreground = #d00 ; Default: (none) ;label-packetloss = %essid% ;label-packetloss-foreground = #eefafafa ; Only applies if <ramp-signal> is used ;ramp-signal-0 = 😱 ;ramp-signal-1 = 😠 ;ramp-signal-2 = 😒 ;ramp-signal-3 = 😊 ;ramp-signal-4 = 😃 ;ramp-signal-5 = 😈 ; Only applies if <animation-packetloss> is used ;animation-packetloss-0 = ⚠ ;animation-packetloss-0-foreground = #ffa64c ;animation-packetloss-1 = 📶 ;animation-packetloss-1-foreground = #000000 ; Framerate in milliseconds ;animation-packetloss-framerate = 500 ; Seconds to sleep between updates ; Default: 1 interval = 5.0 ; Test connectivity every Nth update ; A value of 0 disables the feature ; NOTE: Experimental (needs more testing) ; Default: 0 ;ping-interval = 3 ; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) ; Minimum output width of upload/download rate ; Default: 3 udspeed-minwidth = 5 ; Accumulate values from all interfaces ; when querying for up/downspeed rate ; Default: false accumulate-stats = true ; Consider an `UNKNOWN` interface state as up. ; Some devices like USB network adapters have ; an unknown state, even when they're running ; Default: false unknown-as-up = true ; Show Public IP ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/public-ip] type = custom/script exec = curl -s ifconfig.me interval = 600 ; CPU Temp ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/temp-cpu] type = custom/script ; Seconds to sleep between updates ; Default: 1 interval = 5.0 ; Full path of temperature sysfs path ; Use `sensors` to find preferred temperature source, then run ; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done ; to find path to desired file ; Default reverts to thermal zone setting exec = cat /sys/class/thermal/thermal_zone2/temp | awk '{print ( ( ( (9/5) * $1) / 1000) + 32) "°F" }' format = <label> tail = true label = CPU: %output% ; GPU Temp ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/temp-gpu] type = internal/temperature ; Seconds to sleep between updates ; Default: 1 interval = 5.0 ; Thermal zone to use ; To list all the zone types, run ; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done ; Default: 0 thermal-zone = 2 ; Full path of temperature sysfs path ; Use `sensors` to find preferred temperature source, then run ; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done ; to find path to desired file ; Default reverts to thermal zone setting hwmon-path = /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon3/temp1_input ; Base temperature for where to start the ramp (in degrees celsius) ; Default: 0 base-temperature = 20 ; Threshold temperature to display warning label (in degrees celsius) ; Default: 80 warn-temperature = 60 ; Available tokens: ; %temperature% (deprecated) ; %temperature-c% (default, temperature in °C) ; %temperature-f% (temperature in °F) label = ﲅ %temperature-f% ; Available tokens: ; %temperature% (deprecated) ; %temperature-c% (default, temperature in °C) ; %temperature-f% (temperature in °F) label-warn = %temperature-f% label-warn-foreground = #f00 ; Keyboard Status ; Locale, Caps, Numlock ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/keyboard] type = internal/xkeyboard ; List of indicators to ignore blacklist-1 = scroll lock label-indicator-on-capslock = Caps label-indicator-off-capslock = label-indicator-on-numlock = Num label-indicator-off-numlock = format = <label-indicator> <label-layout> ; layout-icon-[0-9]+ = layout;icon ; Assign each layout an icon that will be available as %icon% token for the ; <label-layout> tag. The part before ';' will try to match %layout% value. label-layout = %name% %icon% ;layout-icon-default = ;layout-icon-1 = us; ; System Menus ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/powermenu] type = custom/menu format-padding = 0 format = <label-toggle> <menu> label-open = " " label-close = " " menu-0-0 = " Restart i3 |" menu-0-0-foreground = #fba922 ;menu-0-0-background = #141414 menu-0-0-exec = i3 restart menu-0-1 = " Logout |" menu-0-1-foreground = #fba922 menu-0-1-exec = pkill -KILL -u kapper menu-0-2 = " Reboot |" menu-0-2-foreground = #fba922 menu-0-2-exec = reboot menu-0-3 = " Power off |" menu-0-3-foreground = #fba922 menu-0-3-exec = poweroff menu-0-4 = " Lock |" menu-0-4-foreground = #fba922 menu-0-4-exec = i3lock -c 000000 ; Pseudo-Caffeine ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/caffeine] type = custom/menu format = <menu> <label-toggle> label-open = " " label-close = " " label-open-padding = 0 label-close-padding = 1 label-separator = " " menu-0-0 = " ON " menu-0-0-exec = sh /home/kapper/.local/bin/i3scripts/xoffee disable menu-0-1 = " OFF " menu-0-1-exec = sh /home/kapper/.local/bin/i3scripts/xoffee enable ; CPU Core Usages ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/cpu] type = internal/cpu interval = 5 format = <ramp-coreload> <label> label = %percentage-cores% ramp-coreload-0 = ▁ ramp-coreload-0-font = 2 ramp-coreload-0-foreground = #aaff77 ramp-coreload-1 = ▂ ramp-coreload-1-font = 2 ramp-coreload-1-foreground = #aaff77 ramp-coreload-2 = ▃ ramp-coreload-2-font = 2 ramp-coreload-2-foreground = #aaff77 ramp-coreload-3 = ▄ ramp-coreload-3-font = 2 ramp-coreload-3-foreground = #aaff77 ramp-coreload-4 = ▅ ramp-coreload-4-font = 2 ramp-coreload-4-foreground = #fba922 ramp-coreload-5 = ▆ ramp-coreload-5-font = 2 ramp-coreload-5-foreground = #fba922 ramp-coreload-6 = ▇ ramp-coreload-6-font = 2 ramp-coreload-6-foreground = #ff5555 ramp-coreload-7 = █ ramp-coreload-7-font = 2 ramp-coreload-7-foreground = #ff5555 ; UTC Date / Time ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/clock-utc] type = custom/script exec = TZ=UTC date +"UTC: %%{F#999}%Y-%m-%d%%{F-} %%{F#fff}%H:%M%%{F-}" interval = 30 ; Local Date / Time ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/clock] type = internal/date interval = 30 date = %%{F#999}%Y-%m-%d%%{F-} %%{F#fff}%H:%M%%{F-} ; Memory Free MiB ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/memfree] type = custom/script exec = grep -w MemAvailable: /proc/meminfo | awk '{print $2 / 1024 "MiB"}' interval = 5 label = RAM: %output% ; Memory Usage ;;;;;;;;;;;;;;;;;;;;;;;;;; ; Available tags: ; <label> (default) ; <bar-used> ; <bar-free> ; <ramp-used> ; <ramp-free> ; <bar-swap-used> ; <bar-swap-free> ; <ramp-swap-used> ; <ramp-swap-free> ; Available tokens: ; %percentage_used% (default) ; %percentage_free% ; %gb_used% ; %gb_free% ; %gb_total% ; %mb_used% ; %mb_free% ; %mb_total% ; %percentage_swap_used% ; %percentage_swap_free% ; %mb_swap_total% ; %mb_swap_free% ; %mb_swap_used% ; %gb_swap_total% ; %gb_swap_free% ; %gb_swap_used% [module/memory] type = internal/memory format = <label> <bar-used> ;label = SWAP:%gb_swap_used% RAM: %gb_used% label = RAM: bar-used-width = 25 bar-used-foreground-0 = #aaff77 bar-used-foreground-1 = #fba922 bar-used-foreground-2 = #ff5555 ;bar-used-foreground-3 = #ff5555 bar-used-indicator = bar-used-indicator-font = 6 bar-used-indicator-foreground = #ff bar-used-fill = bar-used-fill-font = 6 bar-used-empty = - bar-used-empty-font = 6 bar-used-empty-foreground = #9a9999 ; Battery Status ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/battery] type = internal/battery ; This is useful in case the battery never reports 100% charge full-at = 99 ; Use the following command to list batteries and adapters: ; $ ls -1 /sys/class/power_supply/ battery = BAT0 adapter = AC ; If an inotify event haven't been reported in this many ; seconds, manually poll for new values. ; ; Needed as a fallback for systems that don't report events ; on sysfs/procfs. ; ; Disable polling by setting the interval to 0. ; ; Default: 5 poll-interval = 5 ; 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 = <ramp-capacity> <label-charging> ; Available tags: ; <label-discharging> (default) ; <bar-capacity> ; <ramp-capacity> ; <animation-discharging> format-discharging = <ramp-capacity> <label-discharging> ; Available tags: ; <label-full> (default) ; <bar-capacity> ; <ramp-capacity> format-full = <ramp-capacity> <label-full> ; 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 = Charging %percentage%% | %time% | %consumption% W ; 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% | %consumption% W ; 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 ;bar-used-width = 15 ;bar-used-foreground-0 = #aaff77 ;bar-used-foreground-1 = #aaff77 ;bar-used-foreground-2 = #fba922 ;bar-used-foreground-3 = #ff5555 ;bar-used-indicator = ;bar-used-indicator-font = 6 ;bar-used-indicator-foreground = #ff ;bar-used-fill = ;bar-used-fill-font = 6 ;bar-used-empty = - ;bar-used-empty-font = 6 ;bar-used-empty-foreground = #444444 ; 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 ; I3 Workspace Display ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/ki3] type = internal/i3 ; Only show workspaces defined on the same output as the bar ; ; Useful if you want to show monitor specific workspaces ; on different bars ; ; Default: false pin-workspaces = true ; This will split the workspace name on ':' ; Default: false strip-wsnumbers = false ; Sort the workspaces by index instead of the default ; sorting that groups the workspaces by output ; Default: false index-sort = true ; Create click handler used to focus workspace ; Default: true enable-click = true ; Create scroll handlers used to cycle workspaces ; Default: true enable-scroll = true ; Wrap around when reaching the first/last workspace ; Default: true wrapping-scroll = true ; Set the scroll cycle direction ; Default: true reverse-scroll = false ; Use fuzzy (partial) matching on labels when assigning ; icons to workspaces ; Example: code;♚ will apply the icon to all workspaces ; containing 'code' in the label ; Default: false fuzzy-match = false ; Available tags: ; <label-state> (default) - gets replaced with <label-(focused|unfocused|visible|urgent)> ; <label-mode> (default) format = <label-state> <label-mode> ; Available tokens: ; %mode% ; Default: %mode% label-mode = %mode% label-mode-padding = 2 label-mode-background = #e60053 ; ws-icon-[0-9]+ = label;icon ; NOTE: The label needs to match the name of the i3 workspace ws-icon-0 = 1; ws-icon-1 = 2; ws-icon-2 = 3; ws-icon-3 = 4; ws-icon-4 = 5; ws-icon-5 = 6; ws-icon-6 = 7; ws-icon-7 = 8; ws-icon-8 = 9; ws-icon-9 = 99; ws-icon-10 = 98; ws-icon-11 = 97; ws-icon-12 = 96;爵 ws-icon-13 = 95; ws-icon-14 = 94; ws-icon-default = ; NOTE: You cannot skip icons, e.g. to get a ws-icon-6 ; you must also define a ws-icon-5. ; NOTE: Icon will be available as the %icon% token inside label-* ; Available tokens: ; %name% ; %icon% ; %index% ; %output% ; Default: %icon% %name% label-focused = %icon% ;label-focused-foreground = #ffffff ;label-focused-background = #016239 ;label-focused-underline = #6e label-focused-padding = 4 ; Available tokens: ; %name% ; %icon% ; %index% ; %output% ; Default: %icon% %name% label-unfocused = %icon% label-unfocused-padding = 4 label-unfocused-foreground = #3f3f3f ; Available tokens: ; %name% ; %icon% ; %index% ; %output% ; Default: %icon% %name% label-visible = %icon% label-visible-foreground = #777777 ;label-visible-underline = #1f1f1f label-visible-padding = 4 ; Separator in between workspaces label-separator = | label-separator-padding = 1 label-separator-foreground = #ffb52a ; Volume Status ;;;;;;;;;;;;;;;;;;;;;;;;;; [module/volume] type = internal/alsa ;speaker-mixer = ;headphone-mixer = Headphone ;headphone-id = 9 format-volume = <ramp-volume> <label-volume> label-muted = muted label-muted-foreground = #66 ramp-volume-0 = 奄 ramp-volume-1 = 奔 ramp-volume-2 = 墳 ramp-volume-3 =