art | ||
config | ||
opt | ||
LICENSE | ||
README.md | ||
wms_focuser.sh | ||
wms_usher.sh | ||
wms_voyeur.sh |
[ wms ]
[w]indow [m]manipulation [s]hellscripts.
A bunch of shellscripts around wmutils.
Well, not only is wms not a wm per se, it's also not an original project. What is it then you ask. It's my implementation of some tools from the wmutils project in a bunch of horrible shell scripts. As a clear requirement, you should have the wmutils binaries. Namely: https://github.com/wmutils.
Also wms is a derivative of [ ! wm]: https://git.disroot.org/root_sti/nowm.git (dead at birth)
This one is designed to maintain and incorporate from that one, things that are essential for my workflow. Also, this must contain future experiments around the configuration of my scripts. I am learning, discovering, experimenting. This makes these scripts very volatile. Some of the scripts have other crap as dependencies which I have made available at: https://git.disroot.org/root_sti/others.git
FUNDAMENTALS
Two great decisions that may seem like errors but are rather conditioning from which I cannot escape since in principle they move me towards their truth. To save: the use of Xterm as a term emulator is such an unorthodox launcher.
The first choice is based on the fact that in many distros Xterm is installed together with Xorg and if not, it is the terminal emulator closest to Xorg as a project. I could use st or urxvt, but it would be moving towards another paradigm and breaking the conceptual homogeneity of this project.
The second option is based on the extension of the first and the fact of using what is already installed. Since fzy/fzy is present in many scripts taking the place of a terminal menu, extending its operation and putting it in a resized terminal as a launcher is more than sensible.
I have left the three main scripts, which are the ones I use daily, as the fundamental option. I've put the others, which are mostly experimental features, in a folder called opt, for optional.
My thanks and credits to the wmutils project. I wish you luck on your way.
THE CORE SCRIPTS:
[wms_voyeur.sh]
watch xorg events and do things.
[wms_focuser.sh]
manage focus and colors.
[wms_usher.sh]
move / resize windows.
-fullsize.
-half screen (north, south, est, west).
-centered.
THE OPT SCRIPTS
[wms_jumper.sh]
jump across windows with menú. (dmenu, fzfmenu, etc.)
-next / prev / wid.
[wms_shepperd.sh]
herds (group windows by herd).
-add individual window.
-add all windows.
-togle herds.
[wms_layout.sh]
window arrangements.
-monocule.
-widespread.
-tiled.
THE FETICHES
[wms_batlarm.sh]
alternate color borders according to the state of the battery (only on laptops, depends on power.sh)
[wms_termrename.sh]
change terminal name.
[wms_clearer.sh]
clear desktop maping and unmaping windows.
[wms_mimic.sh]
extract colors from the desktop content and use them for decorations, background and more.
[wms_backgroundize.sh]
send windows to the background and ingore them.
[wms_screensaver.sh]
experimental scripts that keps windows in a loop of random movements.
SETUP STEPS 1 - download, compile and install wmutils/core and wmutils/opt.
2 - clone this repo and put at least the main scripts in some executable path.
3 - install a daemon for keyboard events, I have used sxhkd. Copy your configuration file, sxhkdrc, from wms/config to .config/sxhkd/.
4 - copy the wms variables file, wms_var, contained in wms/config to .config/wms/.
5 - add the following lines in .xinitrc or sxrc:
sxhkd &
exec wms_voyeur.sh \
!! In the case of using a Display Manager, copy the wms.desktop file contained in wms/config to /usr/share/xsessions and add the file wms.sh to the executable path.
This spawn doesn't have mouse support
Sorry for the verbosity of the comments, the idea is to explain each script in general terms so that it can be easier to hack them