Table of Contents
This module uses the bspwm ipc client to display information about available monitors, desktops and layout states.
See the Configuration wiki page for details on how to configure the _NET_WM_STRUT_PARTIAL
values. This will allow you to update padding_{top,bottom}
when the bar is launched.
Accessible workspace cycling
You are able to define fallback click handlers for the whole bar window. Using those you could cycle your desktops by scrolling anywhere on the bar (except existing areas setup for the same button). You should probably disable scrolling for the module (enable-scroll = false
) if you are using this method.
The bspwm module supports the next
and prev
actions and will send the correct commands to bspwm to change the current workspace.
[bar/mybar]
; replace bspwm with the name of your bspwm module
scroll-up = #bspwm.prev
scroll-down = #bspwm.next
; Alternatively, you can send commands directly to bspwm
;scroll-up = bspc desktop -f prev.local
;scroll-down = bspc desktop -f next.local
Basic settings
To override the default path to the bspwm socket file, define the environment variable BSPWM_SOCKET
.
[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.
; But if you rename your bspwm monitors with bspc -n this option will no longer
; behave correctly.
; 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 = false
; Create scroll handlers used to cycle workspaces
; Default: true
enable-scroll = false
; 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
; Only scroll through occupied workspaces
; Default: false
; New in version 3.6.0
occupied-scroll = true
Additional formatting
; ws-icon-[0-9]+ = <label>;<icon>
; Note that the <label> needs to correspond with the bspwm workspace name
; Neither <label> nor <icon> can contain a semicolon (;)
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 = #ffffff
label-focused-background = #3f3f3f
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 = #000000
label-urgent-background = #bd2c40
label-urgent-underline = #9b0a20
; Available tokens:
; %name%
; %icon%
; %index%
; Default: %icon% %name%
label-empty = %icon%
label-empty-foreground = #55
; 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
;label-marked = M
; Separator in between workspaces
label-separator = |
label-separator-padding = 2
label-separator-foreground = #ffb52a
Generate ws-icon list
#!/bin/bash
counter=0
bspc query -D --names | while read -r name; do
printf 'ws-icon-%i = "%s;<insert-icon-here>"\n' $((counter++)) $name
done
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- 🏠 Home
- ℹ️ Help
- ⚙️ Configuration
- 🎨 Formatting
- 🗛 Fonts
- 💥 Actions
- 🏗️ Compiling
- 🔧 Debugging your Config
- 💬 Inter process messaging
- 🤫 Known Issues
- 📦 Packaging Polybar
- For Developers:
- Modules: