Автоматизировать все эти действия позволяют wm позволяющие разделять экран так, чтобы на нём легко умещались все открытые окна, и называются они мозаичными, фреймовыми или тайловыми (от англ. tile - плитка или черепица) оконными менеджерами. В каждый момент окна занимают весь экран, не перекрываясь и не оставляя свободного пространства.
Один из таких wm это приглянувшийся мне xmonad написанный на Haskell (что уже делает его интересным). Задумывался он как клон минималистичного dwm (где, к слову сказать, вся конфигурация заключается в перекомпилировании), но перерос своего родителя и обзавелся рядом интересных возможностей, среди которых: отельная статусная строка для каждого экрана; отдельные алгоритмы расположения окон для рабочих пространств; композитные расширения, поддержка Xinerama
Почему из огромного количества тайловых менеджеров (wmii, ion3, dwm, awesome, ratpoison, larswm, Stumpwm и другие) мне приглянулся именно xmonad я даже не знаю, возможно из-за неадекватности авторов wmii который я некоторое время использовал или хорошей документации к xmonad. Ответить на этот вопрос не могу, но xmonad поставил и первый его запуск на рабочем компьютере произойдет сразу после написания этих строк. Дома же xmonad уже второй день работает и радует своим изяществом и удобством.
К сожалению, для меня остается загадкой почему многие tiling wm для своей настройки требуют не малого углубления в структуру и синтаксис конфигурационных файлов. Причем, зачастую, не программист может и не разобраться, хотя подглядывать в чужие настройки никто не запрещает.