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
|
.TH VXWM 1 vxwm\-VERSION
.SH NAME
vxwm \- Versatile X Window Manager (dwm fork)
.SH SYNOPSIS
.B vxwm
.RB [ \-v ]
.SH DESCRIPTION
vxwm is a versatile dynamic window manager for X, forked from dwm.
It adds quality-of-life features such as 8-sided resize, cursor warping, enhanced floating toggle, gaps, fullscreen support and more — all of which can be enabled or disabled at compile time via simple defines in modules.h (similar in spirit to dwm-flexipatch).
It manages windows in three layouts: tiled, monocle and floating. Layouts can be switched dynamically to optimize for the current task or application.
In tiled layout, windows are arranged in a master area (left, one window by default) and a stacking area (right). The number of master windows and master area size are adjustable. Monocle maximizes all windows to screen size. Floating allows free moving and resizing. Dialogs and certain window types are always managed as floating.
Windows are organized by tags. Each window can have one or multiple tags; viewing a tag (or set of tags) shows all windows with matching tags.
The status bar (per screen) displays tags, current layout symbol, focused window title, and root window name text (set via xsetroot(1)). Selected tags use different colors; occupied tags and focused window tags are indicated with squares.
A small border around windows shows focus state.
.SH OPTIONS
.TP
.B \-v
prints version information to stderr, then exits.
.SH USAGE
.SS Status bar
.TP
.B X root window name
is read and displayed in the status area (set with
.BR xsetroot (1)).
.TP
.B Button1
on tag → view only that tag
on layout symbol → toggle tiled ↔ floating
.TP
.B Button3
on tag → add/remove that tag from view
.TP
.B Mod4\-Button1
on tag → apply tag to focused window
.TP
.B Mod4\-Button3
on tag → toggle tag on focused window
.SS Keyboard commands (default MODKEY = Mod4)
.TP
.B Mod4\-Shift\-Return
Start
.BR st(1).
.TP
.B Mod4\-p
Spawn
.BR dmenu(1)
for launching programs.
.TP
.B Mod4\-b
Toggle bar visibility.
.TP
.B Mod4\-j / k
Focus next / previous window.
.TP
.B Mod4\-i / d
Increase / decrease number of master windows.
.TP
.B Mod4\-h / l
Decrease / increase master area factor.
.TP
.B Mod4\-Return
Zoom focused window to/from master area (tiled layouts only).
.TP
.B Mod4\-0
View previously selected tags.
.TP
.B Mod4\-t / f / m
Set layout tiled / floating / monocle.
.TP
.B Mod4\-space
Cycle to next layout.
.TP
.B Mod4\-Shift\-space
Toggle focused window floating ↔ tiled.
.TP
.B Mod4\-Shift\-c
Close focused window.
.TP
.B Mod4\-[1-9]
View windows on tag 1–9.
.TP
.B Mod4\-Tab
View all windows (all tags).
.TP
.B Mod4\-Control\-[1-9]
Toggle tag 1–9 into/out of view.
.TP
.B Mod1\-[1-9]
Apply tag 1–9 to focused window.
.TP
.B Mod4\-Shift\-0
Apply all tags to focused window.
.TP
.B Mod4\-, / .
Focus previous / next monitor.
.TP
.B Mod4\-Shift\-, / .
Send focused window to previous / next monitor.
.TP
.B Mod4\-Shift\-q
Quit vxwm.
.SS Mouse commands
.TP
.B Mod4\-Button1
Drag to move focused window (toggles tiled → floating).
.TP
.B Mod4\-Button2
Toggle floating state of focused window.
.TP
.B Mod4\-Button3
Drag to resize focused window (toggles tiled → floating).
When BETTER_RESIZE is enabled, resizing works from all 8 sides/corners.
.SH CUSTOMIZATION
vxwm is configured by editing
.B config.h
(keys, colors, rules, bar, etc.) and
.B modules.h
(enabling/disabling patches and features), then recompiling.
This approach keeps vxwm fast, minimal and secure.
.SH SEE ALSO
.BR dwm (1),
.BR dmenu (1),
.BR st (1),
.BR xsetroot (1)
.SH ISSUES
Java applications using XToolkit/XAWT may show only grey windows due to ICCCM non-compliance assumptions in older JDK versions.
Workarounds:
- set
.B AWT_TOOLKIT=MToolkit
- run
.B wmname LG3D
or
.B xprop -root -f _NET_WM_NAME 32a -set _NET_WM_NAME LG3D
- for OpenJDK:
.B _JAVA_AWT_WM_NONREPARENTING=1
.SH BUGS
Report bugs and send patches to the maintainer (wh1tepearl) via the repository:
https://codeberg.org/wh1tepearl/vxwm
|