[module/alsa] type = internal/alsa ; Soundcard to be used ; Usually in the format hw:# where # is the card number ; You can find the different card numbers in `/proc/asound/cards` master-soundcard = default speaker-soundcard = default headphone-soundcard = default ; Name of the master, speaker and headphone mixers ; Use the following command to list available mixer controls: ; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" ; If master, speaker or headphone-soundcard isn't the default, ; use `amixer -c # scontrols` instead where # is the number ; of the master, speaker or headphone soundcard respectively ; ; Default: Master master-mixer = Master ; Optionally define speaker and headphone mixers ; Default: none ;speaker-mixer = Speaker ; Default: none ;headphone-mixer = Headphone ; NOTE: This is required if headphone_mixer is defined ; Use the following command to list available device controls ; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort ; You may also need to use `amixer -c # controls` as above for the mixer names ; Default: none ;headphone-id = 9 ; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear ; Default: false mapped = true ; Interval for volume increase/decrease (in percent points) ; Default: 5 interval = 5 ; Available tags: ; <label-volume> (default) ; <ramp-volume> ; <bar-volume> format-volume = <ramp-volume> <label-volume> ; Available tags: ; <label-muted> (default) ; <ramp-volume> ; <bar-volume> format-muted = <label-muted> format-muted-prefix = format-muted-prefix-foreground = ${color.red} ; Available tokens: ; %percentage% (default) label-volume = %percentage%% ; Available tokens: ; %percentage% (default) label-muted = " Muted" label-muted-foreground = ${color.sep} ; Only applies if <ramp-volume> is used ramp-volume-0 = ramp-volume-1 = ramp-volume-2 = ramp-volume-foreground = ${color.blue} ; If defined, it will replace <ramp-volume> when ; headphones are plugged in to `headphone_control_numid` ; If undefined, <ramp-volume> will be used for both ; Only applies if <ramp-volume> is used ramp-headphones-0 = ramp-headphones-1 = ramp-headphones-foreground = ${color.blue} [module/battery0] 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 = 2 ; 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> ; 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 = <label-full> format-full-prefix = format-full-prefix-foreground = ${color.dark-green} ; Available tokens: ; %percentage% (default) ; %time% ; %consumption% (shows current charge rate in watts) label-charging = %percentage%% ; Available tokens: ; %percentage% (default) ; %time% ; %consumption% (shows current discharge rate in watts) label-discharging = %percentage%% ; Available tokens: ; %percentage% (default) label-full = " Full" ; Only applies if <ramp-capacity> is used ramp-capacity-0 = ramp-capacity-1 = ramp-capacity-2 = ramp-capacity-3 = ramp-capacity-4 = ramp-capacity-foreground = ${color.dark-yellow} ; 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 = animation-charging-foreground = ${color.green} ; 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/battery1] type = internal/battery ; This is useful in case the battery never reports 100% charge full-at = 89 ; Use the following command to list batteries and adapters: ; $ ls -1 /sys/class/power_supply/ battery = BAT1 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 = 2 ; 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> ; 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 = <label-full> format-full-prefix = format-full-prefix-foreground = ${color.dark-green} ; Available tokens: ; %percentage% (default) ; %time% ; %consumption% (shows current charge rate in watts) label-charging = %percentage%% ; Available tokens: ; %percentage% (default) ; %time% ; %consumption% (shows current discharge rate in watts) label-discharging = %percentage%% ; Available tokens: ; %percentage% (default) label-full = " Full" ; Only applies if <ramp-capacity> is used ramp-capacity-0 = ramp-capacity-1 = ramp-capacity-2 = ramp-capacity-3 = ramp-capacity-4 = ramp-capacity-foreground = ${color.dark-yellow} ; 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 = animation-charging-foreground = ${color.green} ; 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 ; Only show workspaces defined on the same output as the bar ; NOTE: The bspwm and XRandR monitor names must match, which they do by default. ; Default: true pin-workspaces = true ; Output mode flags after focused state label ; Default: false ;;inline-mode = false ; Create click handler used to focus workspace ; Default: true enable-click = true ; Create scroll handlers used to cycle workspaces ; Default: true enable-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 = true ; ws-icon-[0-9]+ = label;icon ; Note that the label needs to correspond with the bspwm workspace name ;;ws-icon-0 = code;♚ ;;ws-icon-1 = office;♛ ;;ws-icon-2 = graphics;♜ ;;ws-icon-3 = mail;♝ ;;ws-icon-4 = web;♞ ;;ws-icon-default = ♟ ; Available tags: ; <label-monitor> ; <label-state> - gets replaced with <label-(focused|urgent|occupied|empty)> ; <label-mode> - gets replaced with <label-(monocle|tiled|fullscreen|floating|locked|sticky|private)> ; Default: <label-state> format = <label-state> <label-mode> ; Available tokens: ; %name% ; Default: %name% label-monitor = %name% ; If any values for label-dimmed-N are defined, the workspace/mode ; colors will get overridden with those values if the monitor is out of focus ; To only override workspaces in a specific state, use: ; label-dimmed-focused ; label-dimmed-occupied ; label-dimmed-urgent ; label-dimmed-empty ;;label-dimmed-foreground = #555 ;;label-dimmed-underline = ${bar/top.background} ;;label-dimmed-focused-background = #f00 ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-focused = %icon% label-focused-foreground = ${color.foreground} label-focused-background = ${color.background} ;label-focused-underline = #fba922 ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-occupied = %icon% ;label-occupied-underline = #555555 ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-urgent = %icon% label-urgent-foreground = ${color.white} label-urgent-background = ${color.red} ;label-urgent-underline = #9b0a20 ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-empty = %icon% label-empty-foreground = ${color.foreground} ; The following labels will be used to indicate the layout/mode ; for the focused workspace. Requires <label-mode> ; ; Available tokens: ; None label-monocle = label-tiled = label-fullscreen = label-floating = label-pseudotiled = P label-locked = label-locked-foreground = #bd2c40 label-sticky = label-sticky-foreground = #fba922 label-private = label-private-foreground = #bd2c40 ; Separator in between workspaces label-separator = | label-separator-padding = 2 label-separator-foreground = ${color.sep} [module/cpu] type = internal/cpu ; Seconds to sleep between updates ; Default: 1 interval = 1 ; Available tags: ; <label> (default) ; <bar-load> ; <ramp-load> ; <ramp-coreload> ;;format = <label> <ramp-coreload> format = <label> format-prefix = format-prefix-foreground = ${color.red} ; Available tokens: ; %percentage% (default) - total cpu load averaged over all cores ; %percentage-sum% - Cumulative load on all cores ; %percentage-cores% - load percentage for each core ; %percentage-core[1-9]% - load percentage for specific core label = " %percentage%%" ; Spacing between individual per-core ramps ;;ramp-coreload-spacing = 1 ;;ramp-coreload-0 = ${cpu.load0} ;;ramp-coreload-1 = ${cpu.load1} ;;ramp-load-0 = ${cpu.load0} ;;ramp-load-1 = ${cpu.load1}i [module/date] type = internal/date ; Seconds to sleep between updates interval = 1.0 ; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string. ; NOTE: if you want to use syntax tags here you need to use %%{...} date = %a, %d %b ; Optional time format time = at %I:%M %p ; if `date-alt` or `time-alt` is defined, clicking ; the module will toggle between formats ;date-alt = It's %A, %d %B %Y ;time-alt = at %k:%M:%S ; Available tags: ; <label> (default) format = %{A1:gsimplecal:} <label> %{A} format-prefix = " " format-prefix-foreground = ${color.red} ; Available tokens: ; %date% ; %time% ; Default: %date% label = %date% %time% [module/filesystem] type = internal/fs ; Mountpoints to display mount-0 = / #mount-1 = /home ;mount-2 = /var ; Seconds to sleep between updates ; Default: 30 interval = 30 ; Display fixed precision values ; Default: false fixed-values = true ; Spacing between entries ; Default: 2 spacing = 0 ; Available tags: ; <label-mounted> (default) ; <bar-free> ; <bar-used> ; <ramp-capacity> format-mounted = <label-mounted> format-mounted-prefix = format-mounted-prefix-foreground = ${color.dark-green} ; Available tags: ; <label-unmounted> (default) format-unmounted = <label-unmounted> format-unmounted-prefix = format-unmounted-prefix-foreground = ${color.red} ; Available tokens: ; %mountpoint% ; %type% ; %fsname% ; %percentage_free% ; %percentage_used% ; %total% ; %free% ; %used% ; Default: %mountpoint% %percentage_free%% label-mounted = " %mountpoint% %percentage_used%% Used " ; Available tokens: ; %mountpoint% ; Default: %mountpoint% is not mounted label-unmounted = " %mountpoint%: NA" [module/memory] type = internal/memory ; Seconds to sleep between updates ; Default: 1 interval = 5 ; Available tags: ; <label> (default) ; <bar-used> ; <bar-free> ; <ramp-used> ; <ramp-free> ; <bar-swap-used> ; <bar-swap-free> ; <ramp-swap-used> ; <ramp-swap-free> format = <label> format-prefix = format-prefix-foreground = ${color.blue} ; 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% label = " %mb_used%" ; Only applies if <ramp-used> is used ;;ramp-used-0 = ${memory.used0} ;;ramp-used-1 = ${memory.used1} ;;ramp-used-2 = ${memory.used2} ; Only applies if <ramp-free> is used ;;ramp-free-0 = ${memory.free0} ;;ramp-free-1 = ${memory.free1} ;;ramp-free-2 = ${memory.free2} ; If you use both a wired and a wireless network, just add 2 module definitions. [module/wired-network] type = internal/network interface = eth0 [module/wireless-network] type = internal/network interface = wlp4s0 ; Normal Module [module/network] type = internal/network interface = wlp4s0 ; Seconds to sleep between updates ; Default: 1 interval = 1.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 have an unknown state, even when they're running ; Default: false unknown-as-up = true ; Available tags: ; <label-connected> (default) ; <ramp-signal> format-connected = <label-connected> ; Available tags: ; <label-disconnected> (default) format-disconnected = <label-disconnected> format-disconnected-prefix = format-disconnected-prefix-foreground = ${color.dark-yellow} ; Available tags: ; <label-connected> (default) ; <label-packetloss> ; <animation-packetloss> ;;format-packetloss = <animation-packetloss> <label-connected> ; Available tokens: ; %ifname% [wireless+wired] ; %local_ip% [wireless+wired] ; %local_ip6% [wireless+wired] ; %essid% [wireless] ; %signal% [wireless] ; %upspeed% [wireless+wired] ; %downspeed% [wireless+wired] ; %linkspeed% [wired] ; Default: %ifname% %local_ip% label-connected = " %essid% %downspeed:10%" label-connected-foreground = ${color.magenta} ; Available tokens: ; %ifname% [wireless+wired] ; Default: (none) label-disconnected = "Offline" label-disconnected-foreground = ${color.dark-red} ; Available tokens: ; %ifname% [wireless+wired] ; %local_ip% [wireless+wired] ; %local_ip6% [wireless+wired] ; %essid% [wireless] ; %signal% [wireless] ; %upspeed% [wireless+wired] ; %downspeed% [wireless+wired] ; %linkspeed% [wired] ; 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-foreground = ${color.purple} ; 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 [module/pulseaudio] type = internal/pulseaudio ; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) ; If not, uses default sink sink = alsa_output.pci-0000_12_00.3.analog-stereo ; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false ; Default: true use-ui-max = true ; Interval for volume increase/decrease (in percent points) ; Default: 5 interval = 5 ; Available tags: ; <label-volume> (default) ; <ramp-volume> ; <bar-volume> format-volume = <ramp-volume> <label-volume> ; Available tags: ; <label-muted> (default) ; <ramp-volume> ; <bar-volume> format-muted = <label-muted> format-muted-prefix = format-muted-prefix-foreground = ${color.red} ; Available tokens: ; %percentage% (default) ; %decibels% label-volume = %percentage%% ; Available tokens: ; %percentage% (default) ; %decibels% label-muted = " Muted" label-muted-foreground = ${color.sep} ; Only applies if <ramp-volume> is used ramp-volume-0 = ramp-volume-1 = ramp-volume-2 = ramp-volume-foreground = ${color.dark-blue} ; Right and Middle click click-right = pavucontrol ; click-middle = [module/temperature] type = internal/temperature ; Seconds to sleep between updates ; Default: 1 interval = 5 ; 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 = 1 ; 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/platform/coretemp.0/hwmon/hwmon2/temp1_input hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input ;hwmon-path = /sys/class/hwmon/hwmon1/temp1_input ; Threshold temperature to display warning label (in degrees celsius) ; Default: 80 warn-temperature = 84 ; Whether or not to show units next to the temperature tokens (°C, °F) ; Default: true units = true ; Available tags: ; <label> (default) ; <ramp> format = <ramp> <label> ; Available tags: ; <label-warn> (default) ; <ramp> format-warn = <ramp> <label-warn> ; Available tokens: ; %temperature% (deprecated) ; %temperature-c% (default, temperature in °C) ; %temperature-f% (temperature in °F) label = %temperature-c% ; Available tokens: ; %temperature% (deprecated) ; %temperature-c% (default, temperature in °C) ; %temperature-f% (temperature in °F) label-warn = "%temperature-c%" label-warn-foreground = ${color.red} ; Requires the <ramp> tag ; The icon selection will range from 0 to `warn-temperature` ; with the current temperature as index. ramp-0 = ramp-1 = ramp-2 = ramp-3 = ramp-4 = ramp-foreground = ${color.cyan} [module/keyboard] type = internal/xkeyboard ; List of indicators to ignore blacklist-0 = num lock blacklist-1 = scroll lock ; Available tags: ; <label-layout> (default) ; <label-indicator> (default) format = <label-layout> <label-indicator> format-prefix = format-prefix-foreground = ${color.magenta} ; Available tokens: ; %layout% ; %name% ; %number% ; Default: %layout% label-layout = " %layout%" ; Available tokens: ; %name% ; Default: %name% label-indicator-on = "%name%" label-indicator-on-foreground = ${color.white} label-indicator-on-background = ${color.dark-red} [module/title] type = internal/xwindow ; Available tags: ; <label> (default) format = <label> format-prefix = format-foreground = ${color.foreground} ; Available tokens: ; %title% ; Default: %title% label = " %title%" label-maxlen = 30 ; Used instead of label when there is no window title label-empty = " Desktop" [module/workspaces] type = internal/xworkspaces ; 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 ; Create click handler used to focus desktop ; Default: true enable-click = true ; Create scroll handlers used to cycle desktops ; Default: true enable-scroll = true ; icon-[0-9]+ = <desktop-name>;<icon> ; NOTE: The desktop name needs to match the name configured by the WM ; You can get a list of the defined desktops using: ; $ xprop -root _NET_DESKTOP_NAMES icon-0 = 1; icon-1 = 2; icon-2 = 3; icon-3 = 4; icon-4 = 5; icon-5 = 6; icon-6 = 7; icon-7 = 8; icon-8 = 9; icon-9 = 10; icon-default = ; Available tags: ; <label-monitor> ; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> ; Default: <label-state> format = <label-state> ; Available tokens: ; %name% ; Default: %name% label-monitor = %name% ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-active = %icon% label-active-foreground = ${color.red} ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-occupied = %icon% label-occupied-foreground = ${color.cyan} ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-urgent = %icon% label-urgent-foreground = ${color.dark-red} ; Available tokens: ; %name% ; %icon% ; %index% ; Default: %icon% %name% label-empty = %icon% label-empty-foreground = ${color.foreground} label-active-padding = 1 label-urgent-padding = 1 label-occupied-padding = 1 label-empty-padding = 1