If you are like me and prefer Window Managers (bspwm, dwm, openbox, hlwm, spectrwm, etc.) to Desktop Environments (gnome, KDE, xfce, budgie, etc.), you may find this little tutorial/ adventure of interest.
By way of providing a brief use-case description, here are the challenges I faced and wanted to address:
- I want to run a single PC setup which affords access to multiple window manager desktops from a single login screen (I prefer LightDM).
- Each of the window manager desktops should ‘autostart’ a common set of features and functions. Ideally, I want as close to 100% commonality as possible. ( By way of full-disclosure, I have not achieved 100% commonality, but I’m quite close.)
- Since I use a pretty standard set of applications, I want my window managers to share a common set of keybindings; but, I really only want to maintain one set of keybindings. To quote yoda, lazy I am.
- I do not want to degrade the unique power of any individual window manager but rather wish to highlight their unique and collective capabilities.
- Because I want to leverage my learning, I want any functions I know how to perform, and am familiar with, to be as portable across desktops as possible (Yes, that’s by my definition…).
- In a perfect world, the setup I create should be distro independent.
Having noted the above criteria here is the software environment in which I build, test & operate:
- arch (specifically I used ArchLabs. which is a pretty vanilla arch distro).
- I have performed limited, successful testing on debian (MXLinux).
- ArchLabs is my implementation platform of choice (because it is light, fast, arch-based, and the ArchLabs Forum is full of geeky, helpful people).
Here’s how I went about meeting my objectives:
- I installed a clean version of AL (I removed all my cruff that way).
- NOTE: My data is not stored on the same device with my distro… I connect my distro & data files via symlinks.
- I find that keeping my data separate from my distro materials allows me to change up my environments quite rapidly.
- The separation, also, allows me to create rapid/ interactive/ automagic backups via Dropbox.
- Next, I added the following window managers to my new install:
- bspwm (via initial AL install)– Note: my #1 favorite
- openbox (via initial AL install)– Note: my #2 favorite
- dwm (via manual build in my home dir)– Without dwm, I’ll never be cool…
- spectrwm (installed via pacman as an after thought)
- herbstluftwm (installed via pacman because, why not?)
- In .xprofile I added all my autostart apps, including my
- sxhkd -c base.conf
- .xprofile.tar (a copy for your collection)
- I created 2 different/ unique sxhkdrc configuration files (confs):
– base.conf for all my WMs to use; base.conf.tar
– bspwm,conf for my unique bspwm needs: bspwm.conf.tar - bspwm.conf is added in a normal manner from within bspwmrc. bspwm is the only window manager where I have needed to use a secondary set of keybindings (thus far). Here’s the command line: sxhkd -c ~/.config/sxhkd/bspwm.conf &
I should say I’m not quite done with this adventure, I am still tweaking dwm, hlwm & spectrwm. Just the same, I feel very confident this approach will allow me to achieve my use-case objectives. Now all my wms share the same basic configurations and setups for the weird & unique application environment I want.
Enjoy!
Remember, like with all of my work, I am able to provide the following assurance(s):
- It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
- When/if it does break, you may keep all of the pieces.
- If you find my materials helpful, both you & I will be happy, at least for a little while.
- My advice is worth every penny you paid for it!
You must be logged in to post a comment.