diff options
author | Anton Vorontsov <anton@enomsg.org> | 2014-09-01 09:21:41 +0200 |
---|---|---|
committer | Anton Vorontsov <anton@enomsg.org> | 2014-09-01 09:21:41 +0200 |
commit | 925a7ecf632eddb21ff92e6b6f73850d6d2d1ee0 (patch) | |
tree | e95a75e3f0e8449f99ce61cb58c19edb7a73b5a1 /XMonad/Hooks/DynamicHooks.hs | |
parent | 1c870f828837d3558420bbb84c9e0f085f0ec352 (diff) | |
download | XMonadContrib-925a7ecf632eddb21ff92e6b6f73850d6d2d1ee0.tar.gz XMonadContrib-925a7ecf632eddb21ff92e6b6f73850d6d2d1ee0.tar.xz XMonadContrib-925a7ecf632eddb21ff92e6b6f73850d6d2d1ee0.zip |
Add Stoppable layout for power saving
Ignore-this: a52805d9f3095cd7af48507847ed2fe3
This module implements a special kind of layout modifier, which when
applied to a layout, causes xmonad to stop all non-visible processes. In a
way, this is a sledge-hammer for applications that drain power. For
example, given a web browser on a stoppable workspace, once the workspace
is hidden the web browser will be stopped.
Note that the stopped application won't be able to communicate with X11
clipboard. For this, the module actually stops applications after a
certain delay, giving a chance for a user to complete copy-paste sequence.
By default, the delay equals to 15 seconds, it is configurable via
'Stoppable' constructor.
The stoppable modifier prepends a mark (by default equals to "Stoppable")
to the layout description (alternatively, you can choose your own mark and
use it with 'Stoppable' constructor). The stoppable layout (identified by
a mark) spans to multiple workspaces, letting you to create groups of
stoppable workspaces that only stop processes when none of the workspaces
are visible, and conversely, unfreezing all processes even if one of the
stoppable workspaces are visible.
To stop the process we use signals, which works for most cases. For
processes that tinker with signal handling (debuggers), another
(Linux-centric) approach may be used. See
https://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txt
darcs-hash:20140901072141-1836e-f65c7bdad9b87883e41a526f496d93f0171ed149.gz
Diffstat (limited to 'XMonad/Hooks/DynamicHooks.hs')
0 files changed, 0 insertions, 0 deletions