# SAMU πŸͺ· **SAMU** is an opinionated Window Manager that manages the windows simple and without any **BS**. It's meant to be very _Zen like_, the user can focus on just what ever he wants to do on his PC an it will _just work_. It's my own custom & cute linux desktop (ˢ˃’˂ˢ). ```bash date +"%Y is the year of the `uname -o` desktop" ``` SAMU is a CWM fork with opinionated changes. The changes are big enough to justify a rename as it's not to be confused with the regular CWM anymore. ## Roadmap πŸ‘€ There will not be any big changes anymore as I'm focused on a new Wayland window manager. There are also still some applications that have issues on Wayland, especially on NVIDIA cards which makes this the '_final X11 WM until Wayland is there_' for me. There are still many CWM keywords in the code that could be cleaned up but I don't care. The WM is completely tested, stable and done until I will switch to Wayland. ## Features πŸ’« Some of the notable changes to CWM: - no coordinates when moving windows (removed with other useless stuff) - fix transparency on borders when using picom - slight changes to mouse behavior when opening new windows - added autostart - added new tiling options (top left, bottom right, etc..., center) (the gif shows some tiling, it only lags because of the compression) - added background color (only works without compositor) - colored window borders on sticky windows Notable features from CWM: - good **EWMH** support so that all applications will actually work well - very optimized performance when dragging around windows and resizing them ### Supported EWMH hints πŸ€– ``` "_NET_SUPPORTED", "_NET_SUPPORTING_WM_CHECK", "_NET_ACTIVE_WINDOW", "_NET_CLIENT_LIST", "_NET_CLIENT_LIST_STACKING", "_NET_NUMBER_OF_DESKTOPS", "_NET_CURRENT_DESKTOP", "_NET_DESKTOP_VIEWPORT", "_NET_DESKTOP_GEOMETRY", "_NET_VIRTUAL_ROOTS", "_NET_SHOWING_DESKTOP", "_NET_DESKTOP_NAMES", "_NET_WORKAREA", "_NET_WM_NAME", "_NET_WM_DESKTOP", "_NET_CLOSE_WINDOW", "_NET_WM_STATE", "_NET_WM_STATE_STICKY", "_NET_WM_STATE_MAXIMIZED_VERT", "_NET_WM_STATE_MAXIMIZED_HORZ", "_NET_WM_STATE_HIDDEN", "_NET_WM_STATE_FULLSCREEN", "_NET_WM_STATE_DEMANDS_ATTENTION", "_NET_WM_STATE_SKIP_PAGER", "_NET_WM_STATE_SKIP_TASKBAR", ``` ## Autostart πŸš—πŸ’¨ SAMU will attempt to run a `autostart.sh` file located by default in `XDG_CONFIG_HOME/samu/autostart.sh`. This file does not need to be there, but you can add other applications and commands there to run on launch. ## Config ✍️ Edit `~/.samurc`. Infos with `man samu`. Check out `conf.c` for pre configured configs, the default terminal is `kitty`. ## Installation πŸ‘· ### Manually πŸ—οΈ 1. Run `make` to build `samu`. 2. Copy it to your bin path or run `make install`. 3. Launch `samu-desktop` with `X` The executable of `samu` is called `samu-desktop` to avoid any complications with other software that might be called `samu` as well. ## Thanks Inspiration taken from: - [sowm](https://github.com/dylanaraps/sowm) - [cwm](https://github.com/leahneukirchen/cwm) - [bspwm](https://github.com/baskerville/bspwm) - [2bwm](https://github.com/venam/2bwm) - [SmallWM](https://github.com/adamnew123456/SmallWM) - [berry](https://github.com/JLErvin/berry) - [catwm](https://github.com/pyknite/catwm) - [dminiwm](https://github.com/moetunes/dminiwm) - [dwm](https://dwm.suckless.org) - [monsterwm](https://github.com/c00kiemon5ter/monsterwm) - [openbox](https://github.com/danakj/openbox) - [possum-wm](https://github.com/duckinator/possum-wm) - [swm](https://github.com/dcat/swm) - [tinywm](http://incise.org/tinywm.html)