Skip to content

Waybar & Scripts

The Taxi bar runs in its own isolated directory (~/.config/waybar6) to keep it completely safe from your other compositors' Waybar configs.

Layout

  • Left: Arch launcher icon, custom workspace pills, system tray
  • Center: Clock, weather
  • Right: Media player, volume, backlight, CPU, temp, RAM, battery, disk, swaync notifications, power menu

Custom Workspace Pills

Instead of using Waybar's native workspace modules, this rice uses a custom/workspaces module driven by two bash scripts:

"custom/workspaces": {
    "exec": "~/.config/waybar6/scripts/tide-workspaces.sh",
    "return-type": "json",
    "on-click": "~/.config/waybar6/scripts/ws-switch.sh",
    "tooltip": false
}
  • tide-workspaces.sh polls TideWM's IPC and outputs the JSON array of workspaces and their states (active, occupied, empty).
  • ws-switch.sh catches your mouse clicks and tells TideWM to switch to the clicked workspace.

This guarantees the pills always reflect the exact state of the compositor without relying on Wayland protocol quirks.

Shared Scripts

Notice that the weather and media player modules point to your main waybar scripts folder:

"exec": "~/.config/waybar/scripts/weather.py"
"exec": "~/.config/waybar/scripts/player.sh"

This is a great dotfiles practice: you maintain the heavy Python/bash logic in one place, and all your compositors just reference it.

Notifications

The bar uses swaync (Sway Notification Center) for the notification bell icon:

"exec": "swaync-client -swb",
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw"

Left-click toggles the notification panel; right-click toggles Do Not Disturb.