aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 9d581242203bf197ebc915a4d88478b4cc9948e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
monsterwm
=========

→ tiny and monsterous!
----------------------

**monsterwm** is a minimal, lightweight, tiny but monsterous dynamic tiling window manager.
It will try to stay as small as possible. Currently under 750 lines with the config file included.
It provides a set of different layout modes (see below), and has partial floating mode support.
Each virtual desktop has its own properties, unaffected by other desktops' settings.
For screenshots and ramblings/updates check the [topic on ArchLinux forums][monsterwm].

  [monsterwm]: https://bbs.archlinux.org/viewtopic.php?id=132122


Modes
-----

Monsterwm allows opening the new window as master or
opening the window at the bottom of the stack (attach\_aside)

---

*Common tiling mode:*

    --------------
    |        | W |
    |        |___|
    | Master |   |
    |        |___|
    |        |   |
    --------------

---

*Bottom Stack (bstack) tiling mode:*

    -------------
    |           |
    |  Master   |
    |-----------|
    | W |   |   |
    -------------

---

 *Grid tiling mode:*

    -------------
    |   |   |   |
    |---|---|---|
    |   |   |   |
    |---|---|---|
    |   |   |   |
    -------------

---

 *Monocle mode* (aka fullscreen)

    -------------
    |           |
    | no        |
    | borders!  |
    |           |
    -------------

---

 *floating mode*

    -------------
    |  |        |
    |--'  .---. |
    |     |   | |
    |     |   | |
    ------`---'--

 In floating mode one can freely move and resize windows in the screen space.
 Changing desktops, adding or removing floating windows, does not affect the
 floating status of the windows. Windows will revert to their tiling mode
 position once the user selects a tiling mode.
 Note, that one cannot "select" the floating mode, but it will be enabled if
 one tries to move or resize a window with the mouse. Once one does that, then
 the window is marked as being in floating mode.

---

All accessible with keyboard and mouse shortcuts are defined in the config.h file.

 * The window W at the top of the stack can be resized on a per desktop basis.
 * Changing a tiling mode or window size on one desktop doesn't affect the other desktops.


Panel - Statusbar
-----------------

The user can define an empty space on the bottom or top of the screen, to be
used by a panel. The panel is toggleable, but will be visible if no windows are
on the screen.
Monsterwm does not provide a panel and/or statusbar itself. Instead it adheres
to the [UNIX philosophy][unix] and outputs information about the existent
desktop, the number of windows on each, the mode of each desktop, the current
desktop and urgent hints whenever needed. The user can use whatever tool or
panel suits him best (dzen2, conky, w/e), to process and display that information.

  [unix]: http://en.wikipedia.org/wiki/Unix_philosophy


Installation
------------

You need Xlib, then,
copy `config.def.h` as `config.h`
and edit to suit your needs.
Build and install.

    $ cp config.def.h config.h
    $ $EDITOR config.h
    $ make
    # make clean install


Patches
-------

Some extensions to the code are supported in the form of patches.
See other branches for patch and code.

Currently:

 * [fib]            : adds fibanocci layout
 * [monocleborders] : adds borders to the monocle layout
 * [showhide]       : adds a function to show and hide all windows on all desktops
 * [uselessgaps]    : adds gaps around every window on screen

  [fib]:            https://github.com/c00kiemon5ter/monsterwm/tree/fib
  [monocleborders]: https://github.com/c00kiemon5ter/monsterwm/tree/monocleborders
  [showhide]:       https://github.com/c00kiemon5ter/monsterwm/tree/showhide
  [uselessgaps]:    https://github.com/c00kiemon5ter/monsterwm/tree/uselessgaps


Bugs
----

For any bug or request [fill an issue][bug] on [GitHub][ghp] or report on the [ArchLinux topic][monsterwm]

  [bug]: https://github.com/c00kiemon5ter/monsterwm/issues
  [ghp]: https://github.com/c00kiemon5ter/monsterwm


License
-------

Licensed under MIT/X Consortium License, see [LICENSE][law] file for more copyright and license information.

  [law]: https://raw.github.com/c00kiemon5ter/monsterwm/master/LICENSE

Thanks
------

[the suckless team][skls] for [dwm][],
[moetunes][] for [dminiwm][],
[pyknite][] for [catwm][]

  [skls]: http://suckless.org/
  [dwm]:  http://dwm.suckless.org/
  [moetunes]: https://github.com/moetunes
  [dminiwm]:  https://bbs.archlinux.org/viewtopic.php?id=126463
  [pyknite]: https://github.com/pyknite
  [catwm]:   https://github.com/pyknite/catwm