Just a short one on this problem with combination of Spectrwm tiling window manager and Polybar. Managed to sort it out after hours without finding a solution on the web. So here is my hack.
First, the problem... Once you replace the bar that comes with Spectrwm, with Polybar, you have to reserve a portion on top of the screen for Polybar. That's OK, but toggling Polybar leaves that reserved space empty so again you don't get a full screen. On the other hand, if you don't reserve that space, Polybar is displayed above your windows which is also not nice.
My solution is simple:
- Leave original bar ON with minimal settings, and remove reserved space for Polybar if you had it configured before (
regionin config). Only Spectrwm bar config items you need are:
bar_enabled = 1 bar_border_width = 0 bar_font = <any font, just adjust size so bar is as large as Polybar> bar_format = ' # <--- something minimal so bar is almost not visible
make sure your original keybinding to toggle Spectrwm bar is still active (Super+b)
xdotool. Miniature program that can send fake keys to Xorg
write shell script, I named it
fullscreen-toggle.shand put it somewhere (
mine are in ~/scripts/). Also make it executable:
#!/bin/sh xdotool key super+b polybar-msg cmd toggle
Script is really simple. First, xdotool toggles Spectrwm bar by sending fake keypresses. Then we use polybar-msg to send remote command to Polybar to toggle.
- Add new keybinding to Spectrwm conf (
~/.spectrwm.comf). I used MOD+Shift+f:
program[toggle_bars] = ~/scripts/fullscreen-toggle.sh bind[toggle_bars] = MOD+Shift+f
... and we're done! Restart Spectrwm (
Super+q) and try it out. Make sure your keybinding was free before assigning it. Also, try running shell script from terminal for test.
Top comments (0)