Прочитал про комнаты KDE, фича однозначно полезная, более того, если вы сами можете управлять, какие окна будут заморожены, а какие нет.
Например, у вас ноутбук работает от батареи, в одной комнате играет плеер и запущен браузер, вы переключаетесь на другую комнату, чтобы писать код - браузер замораживается, чтобы не тратить процессорное время, плеер продолжает играть, а текстовый редактор размораживается. Годнота да и только.
Пока только прототип, и работает так, что, когда вы переключаетесь на другое окно (пока что окно, потом будет «другой стол/страница»), и если в данный момент текущее окно содержит название «Firefox», то вызывается функция FuncFvwmProc firefox, которая устанавливает переменную окну (по которой проверяется состояние, заморожено оно или нет), и замораживает/размораживает первым параметром указанный процесс, и только затем уже переключает окно.
DestroyFunc FuncFvwmNextWindow
AddToFunc FuncFvwmNextWindow
+ I Current (Firefox) FuncFvwmProc firefox
+ I Current (Leafpad) FuncFvwmProc leafpad
+ I Next (CurrentPage, !Iconic, CirculateHit, AcceptsFocus) FlipFocus NoWarp
+ I Current Raise
DestroyFunc FuncFvwmPrevWindow
AddToFunc FuncFvwmPrevWindow
+ I Current (Firefox) FuncFvwmProc firefox
+ I Current (Leafpad) FuncFvwmProc leafpad
+ I Prev (CurrentPage, !Iconic, CirculateHit, AcceptsFocus) Focus NoWarp
+ I Current Raise
DestroyFunc FuncFvwmProc
AddToFunc FuncFvwmProc
+ I ThisWindow (State 10) Exec kill -CONT $(pgrep $0)
+ I TestRc (False) Exec kill -STOP $(pgrep $0)
+ I State 10
но, может быть запущено много одинаковых процессов с одинаковым названием окна (как например текстовый редактор Leafpad), и нужно точно определять ID процесса по окну. скорей всего придется воспользоваться какой-нибудь сторонней утилитой, - подскажите, такая существует в природе? :)
и да, вопрос по юзабилити, - как бы вы сделали лучше управление процессами, в какой момент их замораживать/размораживать? желательно конечно делать это автоматически, но можно и просто, в заголовок окна повешать еще одну кнопочку, и на нее жмякаешь - процесс данного окна замораживается/размораживается. :)