Lily Tsuru
bc8ed5eb8a
Makes things cleaner. |
||
---|---|---|
cmake | ||
doc | ||
src | ||
third_party | ||
.clang-format | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
README.md
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)
$ 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?