35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# nanosm
|
|
|
|
A nano-sized not-really-a session manager intended to replace less-than-robust Bash/etc scripts.
|
|
|
|
Written in C++20, using epoll (without helper libraries), to stay nice and smol (Yes I know io_uring exists, but using it for something tiny that literally just waits and restarts processes would be far more overkill).
|
|
|
|
# Why write this?
|
|
|
|
Because `app &` then `exec wm` in `.xinitrc` is impressively awful. What if your WM crashes, or your panel? Guess you lose them!
|
|
|
|
And if your WM crashes? Your whole Xorg server goes with it, meaning so does everything else.
|
|
|
|
A more robust solution that's still small and easy to setup (read: Not written in bash) is clearly a better idea.
|
|
|
|
# Installation
|
|
|
|
Requirements:
|
|
- A C++20 compiler (GCC 13 known to work, whatever clang version probably works too)
|
|
|
|
```bash
|
|
$ git clone --recursive https://git.crustywindo.ws/modeco80/nanosm
|
|
$ cd nanosm
|
|
$ cmake -Wno-dev -GNinja -Bbuild -DCMAKE_INSTALL_PREFIX=/usr
|
|
$ ninja -C build
|
|
# ninja -C build install
|
|
```
|
|
|
|
# Configuration
|
|
|
|
- Copy `/usr/share/doc/nanosm/nanosm.toml` to `~/.config/nanosm/` and edit it to your liking/setup.
|
|
- Remove the applications you added to your `nanosm.toml` from your `.xinitrc`, since nanosm will handle them
|
|
- Add `exec nanosm` to the end of your `.xinitrc`.
|
|
- ...
|
|
- Profit?
|