Trying out Spectrwm
Spectrwm
As of writing this, I'm currently using I3WM but I wanted to rice out spectrwm to be my next window manager that I try out/move to.
Initial pain point
Not completely sure why but when trying to set a wallpaper, feh isnt able to detect the wallpaper from ~/.config/spectrwm/wallpaper.png but is able to detect it when I specify it from /home/tr1x/.config/spectrwm/wallpaper.png. I think this might be because its a startup process where my user hasnt been determined while the window manager is starting up as rofi, which runs after I log in, is able to load my rofi config correctly which is mapped using a relative path instead of an absolute path to its directory
Major pain point
I want to start this off by saying customizing spectrwm is somewhat easy. Normally, the config for most applications by default lives in /etc where I could find the default spectrwm.conf. This default config contains everything about starting up programs and customizing the window manager. The only problem is that the additional config files (keybinds and the bar which ill go into depth on later) wasnt in /etc for some reason which may be due to how the window manager is packaged for opensuse tumbleweed but it was quite annoying trying to find the config for the keybinds and bar on the spectrwm github repository.
The biggest issue I had setting up spectrwm was when customizing the bar. You can customize the bar by using a bash script to grab the items you want to render in the bar but the format of the bar is very weird. I think the syntax for specifying placement and fonts in the bar from the shell script make sense for instance:
+@fg=1; +@fn=2;+@fn=1; $(cpu)
- fg = foreground where you specify the position you want to place an item in the bar
- fn = the font you want to select for that block This means this is the first element in the bar where the icon is given font 2 and the cpu variable is given font 1. The thing I dont like is the accompanying config to display these elements in the bar from the spectrwm config:
+|L+1<+N:+I +S (+D) +W +|R+A+1<+@fg=5;+@fn=2;+@fn=1; %a %d %b, %I:%M
This specifies that you want the workspace and window name to appear on the left and on the right side of the bar, you want to populate the contents of the bar shell script to occupy 5 positions in the bar where the remaining item in the bar is a calendar using font 2 for the icon and font 1 for rendering the date time information. This syntax is detailed in the man page of the spectrwm config but the syntax is not very easy to wrap your head around when you see it for the first time.