9 unstable releases (3 breaking)
0.5.3 | Dec 19, 2023 |
---|---|
0.5.2 | Nov 29, 2023 |
0.5.0 | Jun 23, 2023 |
0.4.1 | Apr 20, 2023 |
0.2.0 | Feb 10, 2023 |
#976 in GUI
Used in 3 crates
160KB
3.5K
SLoC
MARSWM Project
marswm
aims to be the rusty successor to moonwm.
In addition to the window manager this repository also contains the library it is built on, an accompanying status bar and an ipc client to control the window manager from external scripts.
You can find documentation on how to configure the window manger on crates.io or in the Github repo
DISCLAIMER: Although already usable this is still in development. The library API as well as the window manager itself might be subject to frequent changes.
The Components
marswm
marswm
's goal is to have a simple tiling window manager with tiling and workspaces for myself.
Features:
- dwm-style layouts
- workspaces (similar to i3 or bspwm)
- IPC using X11 atoms (
mars-relay
) - YAML for configuration and key bindings
libmars
libmars
aims expose xlib's ugly sides through a nice rusty interface that makes it easier to implement custom window managers.
It is still not very mature and mainly targeted to suit marswm
's needs, but it should be great for writing simple, personal window managers once the API is somewhat stable and documented.
Although not currently planned a wayland backend (as well as other backends) would be possible to implement due to the libraries modular concept.
mars-relay
mars-relay
lets you control EWMH-compliant X11 window managers and can be used as an IPC-client for marswm
and a lot of other window managers.
Installation (with package manager)
See installation.md.
For a guide on how to setup a working desktop environment with marswm as base take a look at the quickstart guide.
Building from Source
You have to install the following libraries natively: libX11
, libXft
, libXinerama
, libXrandr
.
Then you can use cargo to build the binaries.
# development build
cargo build
# release build
cargo build --release
The binary files will be in target/debug
or target/release
depending on your build type.
Dependencies
~0.4–1MB
~19K SLoC