wm
Window managers are programs that allow a user to interface with theircomputer.
I currently use the Sway window manager for the benefits that Waylandprovides, but I've used EXWM, Bspwm, i3 andherbstluftwm in the past - as well as whatever GNOME system that Ubuntuhad installed on 18.
Sahand Nayebaziz on Twitter —Are.na: Very cool keyboard-onlymanipulation of a design tool. The whole operating system should offerthis level of easy, customizability and control over the work. I'm not ahuge fan of the overuse of the command palette though…
Utilities
- HideIt: shows a window by its name when a cursor is a defined regionon the screen
- DispUtils: provides utilities for getting information aboutdisplays
- wmutils: tools for X windowmanipulation. These can be used toscript your own window manager!
- autorandr automaticallydetects the current display and loads the appropriate X window setup.
- https://github.com/salman-abedin/devour is a script to open a toolcreated by a terminal on top of the terminal rather than allowing theterminal to waste space. This is a cool idea and makes the system feelsmoother - but it might be more interesting to see the output in someway while viewing the result of the command in an ergonomic,notebook-like way! Some terminals with web rendering capabilities areworking on these visualizations, but they've been done sincesmalltalk, really.
Cool ideas
I want to be able to have a computing environment that's bothlocal-first and accessible from anywhere. I don't always have aninternet connection, so I want my information readily available, but onoccasion I only have access to an arbitrary device - where the onlyguarantee I have is that the device has a web browser. My system shouldwork within these constraints!
Cool WM projects
- WindowChef: a stacking windowmanager
- Sara WM: the best features of DWM andBSPWM
- 2BWM: A fast, floating WM with twoborders
- goowmwm: get out of my way! simple and effective windowmanager.
- bug.n is a tiling window managerfor Windows written in AutoHotkey.
- https://github.com/conformal/spectrwm fun tiling wm
- StumpWM is interesting insofar as itsbehavior is runtime modifiable using Common Lisp. I'm not sure how farthis goes or to what degree people want to be able to modify theirwindow manager - it's not something that strikes me as particularlyflexible, but it might be nice to have such a system to work withduring development of a WM.
WM Reviews
BSPWM
- ideas : changing the classname by identification in the bspwm tree!
- ' sticky' scratchpad : will switch monitors only if the desktop isswapped with the other monitor. personal policy - 'scratchbad whenopened occupies the biggest window'
- sticky normal terminal window (with tmux, via byobu) to the scratchpadis much more useful and allows for a single terminal window to be keptopen rather than having to use many
https://www.reddit.com/r/unixporn/comments/1jubyi/arch_bspwm_never_going_back_to_xmonad/read on this!
- http://thedarnedestthing.com/bspwm idea : have window actions focusand place the window on the main window of the target desktop.
a swap monitor action is very cool; may want to either retain or swapmonitor focus independent of this! depending on the direction of thehotkey relative to the monitor which has focus.if key action points toopposite monitor, swap the desktop moving the focus with the desktop;else, retain focus on the current monitor while cycling the desktop
toggling the dock! this is much more distraction free (through conky) asopposed to a continuously updating status line at the top or bottom ofthe screen. conky is super beautiful and configuring it would besuperuseful. run conky above the desktop windows via xdotool as per sdothum'sarticles
this seems like the most useful and powerful way to go in terms of asystem configuration. make sure to use this one in the future.
herbstluftwm
http://thedarnedestthing.com/herbstluftwm things it can do: (seesdothum here: http://thedarnedestthing.com/herbstluftwm%20workflow)
- dynamic window placement to balance frames
- dynamic window focus to avoid empty frame focus on application close
- distraction free monocle layout proportions (versus fullscreen mode)
- automatic desktop layout restore on focus and monitor swap\*
- quick monitor and frame swapping with focus directions
- hide/unhide windows per desktop
- pulsating borders to indicate overlapped windows
- virtual monitors to show/hide the conky system information panel
- single status bar to follow monitor focus and hint monitor geometrywidth
- blur background if a window is present on the desktop
note that monitor geometries are global when set. honestly hisexplanation is pretty complicated: there are a lot of things that can bedone without this complex configuration.
can have a status bar that follows the monitor focus! killing the statusbar isn't super effective, but using xdotool to manage the visibility ofthe panels seems muh more palatable
check out his dotfiles for more information on this:http://thedarnedestthing.com/herbstluftwm%20juggling
XMonad
cool because it is written in and configured with haskell. this isanother manual tiling window manager; you have to manually align andmanage tiles.
idea : rather than manually moving the window in between panels,shifting all of the workspaces 'one to the right' or 'one to the left'to refocus the panel u want at the center seems super valuable! thismeans that u dont have to reconfigure all of the stuff displayed at anygiven time) not sure if this is worthwhile as opposed to other things :bspwm doesn't do anything other than window management, unlike otherprograms that may not integrate very well into the existing shell.
benefits:
- extensive multimonitor support
- stable and feature rich
- easy to configure and extend
drawbacks:
- huge
- fractured into many different libraries
- terrible floating layer that cannot always be avoided
- using haskell (though this is also a pro?)
The rEFInd boot menu and it's super slow as it has to load of the imagesfrom BIOS - not a good experience. It's fine to show logs as yourcomputer starts up.
things to integrate
- whatever side manager that sdothum uses in lieu of the headerinterface
- a terminal email client
- better notification daemon
- unifying chat app? (slack/signal/discord/irc(????) frontend somehow)
- twitter ? (may not want to browse twitter at all …)
stream video over terminal or smth