#+title: Waybar Configuration * Layout Define the layout of the bar with workspaces and scratchpad on the left, the current window in the middle, and music player daemon, sound, network, CPU usage, memory usage, clock, and system tray on the right. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes { "height": 30, "spacing": 4, "modules-left": ["sway/workspaces", "sway/scratchpad"], "modules-center": ["sway/window"], "modules-right": ["mpd", "pulseaudio", "network", "cpu", "memory", "clock", "tray"], #+end_src * Components Define scratchpad component. To show an icon and the count of items in it. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "sway/scratchpad": { "format": "{icon} {count}", "show-empty": false, "format-icons": ["", ""], "tooltip": true, "tooltip-format": "{app}: {title}" }, #+end_src Define music player daemon component to list the current song, album, artist, and position in the song with an icon representing the status. Clicking it opens a TUI interface to the daemon. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "mpd": { "format": "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵", "format-disconnected": "Disconnected 🎵", "format-stopped": "{consumeIcon}Stopped 🎵", "unknown-tag": "N/A", "interval": 2, "state-icons": { "paused": "", "playing": "" }, "tooltip-format": "MPD (connected)", "tooltip-format-disconnected": "MPD (disconnected)", "on-click": "foot -e ncmpcpp" }, #+end_src Define tray component. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "tray": { "icon-size": 21, "spacing": 10, "show-passive-items": true }, #+end_src Define clock component to show the current time and a calendar in a tooltip. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "clock": { "format": "{:%H:%M\t%Y-%m-%d}", "tooltip-format": "{:%Y %B}\n{calendar}" }, #+end_src Define CPU usage component to show usage in percent with an icon. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "cpu": { "format": "{usage}% ", "tooltip": false }, #+end_src Define memory usage component to show usage in percent with an icon. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "memory": { "format": "{}% " }, #+end_src Define network component to show a Wi-Fi icon if connected and a warning signal if not. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "network": { // "interface": "wlp2*", // (Optional) To force the use of this interface "format-wifi": "", "tooltip": false, "format-ethernet": "", "format-linked": "", "format-disconnected": "⚠", "on-click": "kcmshell5 kcm_networkmanagement" }, #+end_src Define audio component to show the volume level and whether or not it is muted with an icon. Clicking it opens a GUI sound menu. #+begin_src js :tangle ~/.config/waybar/config :mkdirp yes "pulseaudio": { // "scroll-step": 1, // %, can be a float "format": "{volume}% {icon}", "format-bluetooth": "{volume}% {icon}", "format-bluetooth-muted": " {icon}", "format-muted": " ", "format-source": "{volume}% ", "format-source-muted": "", "format-icons": { "headphone": "", "hands-free": "", "headset": "", "phone": "", "portable": "", "car": "", "default": ["", "", ""] }, "on-click": "pavucontrol" } } #+end_src