/sfwbar

S* Floating Window Bar

Primary LanguageCGNU General Public License v3.0GPL-3.0

SFWBar

SFWBar (S* Floating Window Bar) is a flexible taskbar application for wayland compositors, designed with a stacking layout in mind. Originally developed for Sway, SFWBar will work with any wayland compositor supporting layer shell protocol, the taskbar and window switcher functionality shall work with any compositor supportinig foreign toplevel protocol, but the pager, and window placement functionality require sway (or at least i3 IPC support).

If you're getting expression errors when upgrading from version 1.0_beta9 or earlier, please check your data types. The expression parser now applies strict type checks.

SFWBar is licensed under GNU GPL. Weather icons are from yr.no and are licensed under MIT license

SFWBar implements the following features:

  1. Taskbar - to control floating windows
  2. Task Switcher - to allow switching active window (Alt-Tab)
  3. Pager - to allow switching between workspaces
  4. Tray - a system tray using status notification item protocol
  5. Window placement engine - to open new windows in more logical locations
  6. A simple widget set to display information from system files

Compiling from Source

Install dependencies:

  • gtk3
  • gtk-layer-shell
  • json-c

Runtime dependencies:

  • python is used by some widgets (i.e. battery and start menu widgets)
  • symbolic icons are used by battery.widget

Compile instructions:

meson setup build
ninja -C build
sudo ninja -C build install

Install packages

  • Fedora: sudo dnf install sfwbar
  • Debian: sudo apt install sfwbar

Configuration

Copy sfwbar.config from /usr/share/sfwbar/ to ~/.config/sfwbar/ If you prefer to start with something more like tint2 bar, you can copy t2.config into ~/.config/sfwbar/sfwbar.config instead. If you want something like waybar, you can copy wbar.config and if you prefer something from the darker side, w10.config could be for you. For more information on the format of configuration file, please see the man page

If you're using sway, you may want to add the following lines to your sway config file to open windows as floating by default:

# open new windows as floating by default
for_window [app_id="[.]*"] floating enable
# set Alt-tab as a task switcher combo
bindsym Alt+Tab bar hidden_state toggle 
# set $mod+c to hide/unhide taskbar 
bindsym $mod+c bar mode toggle