summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authoruint23 <https://uint23.xyz/>2025-04-20 06:13:41 +0100
committeruint23 <https://uint23.xyz/>2025-04-20 06:13:41 +0100
commit3036894841fce9b73e6b34779eeabbe326e19302 (patch)
tree5c8e88c3b9cff8c86c7b092e1a69616ba3f3050f /README.md
parent4b53891cac71bb7d48410dd795c9a7a913cb657d (diff)
fullscr support + readme glowup + makefile glowup gaaaaashhh
Diffstat (limited to 'README.md')
-rw-r--r--README.md182
1 files changed, 161 insertions, 21 deletions
diff --git a/README.md b/README.md
index 22e10c8..a2d14ee 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,161 @@
-MIT License
-
-Copyright (c) Abhinav Prasai 2025
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+# sxwm (*The (truly) Simple Xorg Window Manager*)
+Performance greater than DWM, and easier to config than i3wm
+
+<a href="https://user-images.githubusercontent.com/username/sxwm-screen1.jpg"><img src="https://user-images.githubusercontent.com/username/sxwm-screen1.jpg" width="45%" align="right"></a>
+
+Here we have a **minimal**, **tiling**, and **configurable** window manager.
+
+- **Tiling & Floating**: Seamlessly switch between layouts.
+- **Workspaces**: Workspaces work with your bar.
+- **Bars work too**: BAR BAR BAR?! Why not try [sxbar](https://github.com/uint23/sxbar)
+- **Lightweight**: Single C file plus a small header and config.
+- **Easy Config**: All settings in `config`.
+- **SUPER Fast**: Sometimes **2M** sometimes **4M**, idk but still destroys DWM
+- **BEST WM**: Basically DWM on roids (and without the elitism).
+
+<br>
+
+<a href="TODO"><img src="TODO" width="45%" align="right"></a>
+
+- **Master-Stack**: Use the DWM native and super productive layout.
+- **Keyboard-driven**: Full coverage via `MOD` + keys.
+- **Mouse Support**: Focus under cursor, move & resize with modifiers.
+- **Zero Dependencies**: Only requires `libX11`.
+- **Compiles on a Toaster**: As long as it has a decently modern compiler.
+
+<br clear="right">
+
+---
+
+## Default Configuration
+
+All options reside in `config` (which is just a header-file) with clear comments.
+Keybindings are also easy to understand and quick to implement.
+No more bindsym or... *\*shudders\** C code...
+```c
+CMD(terminal, "st");
+CMD(browser, "firefox");
+
+static const Binding binds[] =
+{
+/*————< MODIFIER(S) >< KEY >—————< FUNCTION >——*/
+
+/*———————< Here are your functions calls >————— — */
+
+ CALL(MOD|SHIFT, e, quit),
+ CALL(MOD|SHIFT, q, close_focused),
+
+ CALL(MOD, j, focus_next),
+ CALL(MOD, k, focus_prev),
+
+ CALL(MOD|SHIFT, j, move_master_next),
+ CALL(MOD|SHIFT, k, move_master_prev),
+
+ CALL(MOD, equal, inc_gaps),
+ CALL(MOD, minus, dec_gaps),
+
+ CALL(MOD, space, toggle_floating),
+ CALL(MOD|SHIFT, space, toggle_floating_global),
+ .....
+```
+
+---
+
+## 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` + `=` / `-` | Inc/Dec gaps |
+| `MOD` + `f` | Fullscreen toggle |
+| `MOD` + `c` | Center window |
+| `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 | Programs (by default) |
+| -------------------- | ---------- | --------- |
+| `MOD` + `Return` | Terminal | `st` |
+| `MOD` + `b` | Browser | `firefox` |
+
+---
+
+## 📦 Dependencies
+
+- `libX11` (Xorg client library)
+- GCC / Clang & Make
+
+---
+
+## 🧰 Makefile Targets
+
+Below are the available `make` targets for streamlining common tasks:
+
+| Target | Description |
+| ---------------- | ------------------------------------------------------------------- |
+| `make` or `make all` | Compile the source files into the `sxwm` binary. |
+| `make clean` | Remove object files (`*.o`) and build artifacts. |
+| `make install` | Install `sxwm` to `$(PREFIX)/bin` (default `/usr/local/bin`). |
+| `make uninstall` | Remove the installed binary from `$(PREFIX)/bin`. |
+| `make clean-install` | Runs `make clean` then `make install`. |
+
+> You can override the install directory by specifying `PREFIX` or `DESTDIR`, for example:
+> ```sh
+> make install PREFIX=$HOME/.local
+> ```
+
+---
+
+## 🚀 Installation
+
+1. **Clone repository**
+
+ ```bash
+ git clone https://github.com/username/sxwm.git
+ cd sxwm
+ ```
+
+2. **Build**
+
+ ```bash
+ make
+ ```
+
+3. **Install** (optional)
+
+ ```bash
+ sudo make install PREFIX=/usr/local
+ ```
+
+4. **Run**
+
+ Add to `~/.xinitrc`:
+ ```sh
+ exec sxwm
+ ```
+
+---
+
+## 🙏 Thanks & Inspiration
+
+- [dwm](https://dwm.suckless.org)
+- [i3](https://i3wm.org)
+- [sowm](https://github.com/dylanaraps/sowm)
+- [2bwm](https://github.com/venam/2bwm)
+- [tinywm](http://incise.org/tinywm.html)
+
+---
+
+<p align="center">
+ <em>Contributions welcome! Open issues or submit PRs.</em>
+</p>