Update readme

Author Mitja Felicijan <mitja.felicijan@gmail.com> 2026-04-15 16:50:42 +0200
Committer Mitja Felicijan <mitja.felicijan@gmail.com> 2026-04-15 16:50:42 +0200
Commit f214499d3d5be0bc3582f8de5d2567b8767fef87 (patch)
-rw-r--r-- README.md 16
1 files changed, 15 insertions, 1 deletions
diff --git a/README.md b/README.md
...
16
- **Maximization**: Vertical and horizontal maximization
16
- **Maximization**: Vertical and horizontal maximization
17
- **Edge Snapping**: Snap windows to screen edges
17
- **Edge Snapping**: Snap windows to screen edges
18
- **Window Centering**: Center windows on screen
18
- **Window Centering**: Center windows on screen
  
19
- **Audio Control**: Toggle microphone mute with on-screen status
  
20
- **Tiling Layout**: Toggle between floating and tiling layouts per desktop
  
21
- **On-screen Indicators**: Live status for desktop, layout, mic, and clock
19
- **Live Reload**: Reload configuration without restart
22
- **Live Reload**: Reload configuration without restart
20
  
23
  
21
## Technical Details
24
## Technical Details
22
  
25
  
23
- Built on X11/Xlib for low-level window management
26
- Built on X11/Xlib for low-level window management
24
- Uses EWMH (Extended Window Manager Hints) for fullscreen and state functionality
27
- Uses EWMH (Extended Window Manager Hints) for fullscreen and state functionality
  
28
- Integrated PulseAudio support for real-time microphone status tracking
  
29
- Xft-based on-screen widgets for system status (Clock, Mic, Layout, Desktop)
25
- Maintains state for maximized windows to enable toggle behavior
30
- Maintains state for maximized windows to enable toggle behavior
26
- Implements proper X11 event handling and window attribute management
31
- Implements proper X11 event handling and window attribute management
27
  
32
  
...
31
- GNU Make
36
- GNU Make
32
- pkg-config
37
- pkg-config
33
- X11 and Freetype development libraries
38
- X11 and Freetype development libraries
  
39
- libXft development library
  
40
- PulseAudio development library
34
  
41
  
35
### Installing Dependencies
42
### Installing Dependencies
36
  
43
  
37
**Void Linux:**
44
**Void Linux:**
38
  
45
  
39
```sh
46
```sh
40
sudo xbps-install libX11-devel freetype-devel pkg-config
47
sudo xbps-install libX11-devel freetype-devel libXft-devel pulseaudio-devel pkg-config
41
```
48
```
42
  
49
  
43
## Compilation
50
## Compilation
...
174
```c
181
```c
175
{ MODKEY,               XK_f,       toggle_fullscreen,   { 0 } },
182
{ MODKEY,               XK_f,       toggle_fullscreen,   { 0 } },
176
{ MODKEY,               XK_q,       close_window,        { 0 } },
183
{ MODKEY,               XK_q,       close_window,        { 0 } },
  
184
{ MODKEY,               XK_m,       toggle_mic_mute,     { 0 } },
  
185
{ MODKEY,               XK_space,   toggle_layout,       { 0 } },
177
{ MODKEY | ShiftMask,   XK_q,       quit,                { 0 } },
186
{ MODKEY | ShiftMask,   XK_q,       quit,                { 0 } },
178
{ MODKEY | ShiftMask,   XK_r,       reload,              { 0 } },
187
{ MODKEY | ShiftMask,   XK_r,       reload,              { 0 } },
179
{ MODKEY | ShiftMask,   XK_s,       toggle_pip,          { 0 } },
188
{ MODKEY | ShiftMask,   XK_s,       toggle_pip,          { 0 } },
180
{ MODKEY | ShiftMask,   XK_t,       toggle_always_on_top,{ 0 } },
189
{ MODKEY | ShiftMask,   XK_t,       toggle_always_on_top,{ 0 } },
181
{ Mod1Mask,             XK_Tab,     cycle_active_window, { .i = 0 } },
190
{ Mod1Mask,             XK_Tab,     cycle_active_window, { .i = 0 } },
  
191
{ Mod1Mask | ShiftMask, XK_Tab,     cycle_active_window, { .i = 1 } },
182
```
192
```
183
  
193
  
184
#### Window Maximization
194
#### Window Maximization
...
205
- `Mod+w`: Browser (brave)
215
- `Mod+w`: Browser (brave)
206
- `Mod+e`: File Manager (thunar)
216
- `Mod+e`: File Manager (thunar)
207
- `Mod+s`: Screen magnifier (xmagnify)
217
- `Mod+s`: Screen magnifier (xmagnify)
  
218
- `Mod+r`: Screen recorder (SSR)
  
219
- `Mod+l`: Screen lock (xlock)
208
- `Control+Escape`: Screenshot (maim)
220
- `Control+Escape`: Screenshot (maim)
209
  
221
  
210
## Function Reference
222
## Function Reference
...
230
| `toggle_always_on_top` | Control | None | Toggle Always-on-Top status |
242
| `toggle_always_on_top` | Control | None | Toggle Always-on-Top status |
231
| `window_hmaximize` | Maximize | None | Toggle horizontal maximize |
243
| `window_hmaximize` | Maximize | None | Toggle horizontal maximize |
232
| `window_vmaximize` | Maximize | None | Toggle vertical maximize |
244
| `window_vmaximize` | Maximize | None | Toggle vertical maximize |
  
245
| `toggle_mic_mute` | Audio | None | Toggle microphone mute state |
  
246
| `toggle_layout` | Layout | None | Toggle between floating/tiling |
233
| `reload` | System | None | Reload configuration/restart WM |
247
| `reload` | System | None | Reload configuration/restart WM |