Window Management

Window managers are programs that allow a user to interface with their computer.

I currently use the Sway window manager for the benefits that Wayland provides, but I've used EXWM, {Bspwm}, i3 and herbstluftwm in the past - as well as whatever GNOME system that Ubuntu had installed on 18.

[Sahand Nayebaziz on Twitter —]: Very cool keyboard-only manipulation of a design tool. The whole operating system should offer this level of easy, customizability and control over the work. I'm not a huge fan of the overuse of the command palette though...


Cool ideas

I want to be able to have a computing environment that's both local-first and accessible from anywhere. I don't always have an internet connection, so I want my information readily available, but on occasion I only have access to an arbitrary device - where the only guarantee I have is that the device has a web browser. My system should work within these constraints!

Cool WM projects

WM Reviews


  • ideas : changing the classname by identification in the bspwm tree!
  • ' sticky' scratchpad : will switch monitors only if the desktop is swapped with the other monitor. personal policy - 'scratchbad when opened occupies the biggest window'
  • sticky normal terminal window (with tmux, via byobu) to the scratchpad is much more useful and allows for a single terminal window to be kept open rather than having to use many

[] read on this!

a swap monitor action is very cool; may want to either retain or swap monitor focus independent of this! depending on the direction of the hotkey relative to the monitor which has focus.if key action points to opposite 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) as opposed to a continuously updating status line at the top or bottom of the screen. conky is super beautiful and configuring it would besuper useful. run conky above the desktop windows via xdotool as per sdothum's articles

this seems like the most useful and powerful way to go in terms of a system configuration. make sure to use this one in the future.



things it can do: (see sdothum here: []

  • 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 geometry width
  • blur background if a window is present on the desktop

note that monitor geometries are global when set.

honestly his explanation is pretty complicated: there are a lot of things that can be done without this complex configuration.

can have a status bar that follows the monitor focus! killing the status bar isn't super effective, but using xdotool to manage the visibility of the panels seems muh more palatable

check out his dotfiles for more information on this: []


cool because it is written in and configured with haskell. this is another manual tiling window manager; you have to manually align and manage 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! this means that u dont have to reconfigure all of the stuff displayed at any given time)

not sure if this is worthwhile as opposed to other things : bspwm doesn't do anything other than window management, unlike other programs that may not integrate very well into the existing shell.


  • extensive multimonitor support
  • stable and feature rich
  • easy to configure and extend


  • 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 images from BIOS - not a good experience. It's fine to show logs as your computer starts up.

things to integrate

  • whatever side manager that sdothum uses in lieu of the header interface
  • a terminal email client
  • better notification daemon
  • unifying chat app? (slacksignaldiscord/irc(????) frontend somehow)
  • twitter ? (may not want to browse twitter at all ...)

stream video over terminal or smth

2022-11-11 0f99a6c
2022-11-01 706ab97
2022-11-01 b0115e4
2022-10-31 2577ddb
2022-10-30 281447e
2021-09-22 52a677b
2021-09-21 7732812
2021-08-19 87d9551
2021-04-24 20fde56
2021-01-15 4cf5fb9
2020-11-18 61959c4
2020-11-15 a0eccac