blob: e2cc93fa7099e07cdbb26514a7edc92db675dc81 (
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
|
<div align="center">
<img src="images/sxwm_logo.png" width="30%">
<h2>sxwm</h2>
<b>Minimal. Fast. Configurable. Tiling Window Manager for X11</b>
<br>
<sub>By Abhinav Prasai (2025)</sub>
<br><br>
<img src="https://img.shields.io/github/v/release/uint23/sxwm?style=flat-square">
<img src="https://img.shields.io/github/license/uint23/sxwm?style=flat-square">
</div>
---
## Features
- **Tiling & Floating**: Switch seamlessly between layouts.
- **Workspaces**: 9 workspaces, fully integrated with your bar.
- **Live Config Reload**: Change your config and reload instantly with a keybind.
- **Easy Configuration**: Human-friendly `sxwmrc` file, no C required.
- **Master-Stack Layout**: Productive, DWM-inspired workflow.
- **Mouse Support**: Move, swap, resize, and focus windows with the mouse.
- **Zero Dependencies**: Only `libX11` and `Xinerama` required.
- **Lightweight**: Single C file, minimal headers, compiles in seconds.
- **Bar Friendly**: Works great with [sxbar](https://github.com/uint23/sxbar).
- **Xinerama Support**: Multi-monitor ready.
- **Fast**: Designed for speed and low resource usage.
---
## Screenshots
<a href="1"><img src="images/1.png" width="50%" align="right"></a>
<a href="2"><img src="images/2.png" width="50%" align="right"></a>
<br clear="right">
---
## Patch Notes
<details>
<summary><strong>Click to expand</strong></summary>
#### v1.1.1
- **NEW**: Xinerama support, swap windows with Mod + Shift + Drag.
- **FIXED**: New windows in `global_floating` mode spawn centered.
</details>
---
## Default Configuration
All options are in `sxwmrc` (which uses a simple DSL).
Keybindings are easy to read and edit.
No recompiling, no C code, just edit and reload!
---
## Default Keybindings
### Window Management
| Combo | Action |
| ---------------------------- | ------------------------- |
| Mouse | Focus under cursor |
| `MOD` + Left Mouse | Move window by mouse |
| `MOD` + Right Mouse | Resize window by mouse |
| `MOD` + `j` / `k` | Focus next / previous |
| `MOD` + `Shift` + `j` / `k` | Move in master stack |
| `MOD` + `Space` | Toggle floating |
| `MOD` + `Shift` + `Space` | Toggle all floating |
| `MOD` + `=` / `-` | Increase/Decrease gaps |
| `MOD` + `f` | Fullscreen toggle |
| `MOD` + `q` | Close focused window |
| `MOD` + `1-9` | Switch workspace 1–9 |
| `MOD` + `Shift` + `1-9` | Move window to WS 1–9 |
### Programs
| Combo | Action | Program |
| -------------------- | ---------- | ---------- |
| `MOD` + `Return` | Terminal | `st` |
| `MOD` + `b` | Browser | `firefox` |
| `MOD` + `p` | Launcher | `dmenu_run`|
---
## Dependencies
- `libX11` (Xorg client library)
- `Xinerama`
- GCC or Clang & Make
---
## Build & Install
### Arch Linux (AUR)
```sh
yay -S sxwm
```
### Build from Source
```sh
git clone --depth=1 https://github.com/uint23/sxwm.git
cd sxwm/
make
sudo make clean install
```
### Run
Add to your `~/.xinitrc`:
```sh
exec sxwm
```
---
## Makefile Targets
| Target | Description |
| --------------------- | --------------------------------------------------- |
| `make` / `make all` | Build the `sxwm` binary |
| `make clean` | Remove object files and build artifacts |
| `make install` | Install `sxwm` to `$(PREFIX)/bin` (default `/usr/local/bin`) |
| `make uninstall` | Remove the installed binary |
| `make clean install` | Clean and then install |
> Override install directory with `PREFIX` or `DESTDIR`:
> ```sh
> make install PREFIX=$HOME/.local
> ```
---
## Thanks & Inspiration
- [dwm](https://dwm.suckless.org) — Tiling & source code
- [i3](https://i3wm.org) — Easy configuration
- [sowm](https://github.com/dylanaraps/sowm) — README inspiration
- [tinywm](http://incise.org/tinywm.html) — Minimal X11 WM
---
<p align="center">
<em>Contributions welcome! Open issues or submit PRs.</em>
</p>
|