Implement support for EWMH's _NET_WM_STATE_FULLSCREEN hint.

Since we already have a form of 'maximize', we need to differentiate
between 'maximize' and the new 'fullscreen' mode.  The 'maximize' mode
will continue to honor gap but now *retains* the border, matching the
'vert/horz maximize' behaviour.  The new 'fullscreen' mode supports and
follows the _NET_WM_STATE_FULLSCREEN hint, allowing the client perform
additional window modifications; in this mode, cwm(1) will *ignore* gap,
remove borders and freeze(move/resize) the client.  Additionally,
'fullscreen' mode will remember various combinations of previous states.

* default keybinding changes: CM-f 'fullscreen', CM-m 'maximize' (re-map
  as desired).

Positive feedback from a few, testing and ok sthen@
This commit is contained in:
okan
2013-12-16 19:02:17 +00:00
parent f98f4615c0
commit 19fc7f666b
7 changed files with 78 additions and 36 deletions

10
cwmrc.5
View File

@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: November 27 2013 $
.Dd $Mdocdate: December 13 2013 $
.Dt CWMRC 5
.Os
.Sh NAME
@@ -341,12 +341,14 @@ Raise current window.
Label current window.
.It freeze
Freeze current window geometry.
.It fullscreen
Full-screen current window (gap + border removed).
.It maximize
Maximize current window full-screen.
Maximize current window (gap + border honored).
.It vmaximize
Maximize current window vertically.
Vertically maximize current window (gap + border honored).
.It hmaximize
Maximize current window horizontally.
Horizontally maximize current window (gap + border honored).
.It moveup
Move window
.Ar moveamount