|
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 | |