Setup and Running¶
Building with Meson¶
Install the following prerequisities:
XCB libraries (core window management and X server interaction)
Vulkan SDK (compositor)
glm (compositor maths)
Python 3.6+ and boost modules (configuration API layer)
python-xlib (configuration script, keysyms)
meson and ninja (build system)
(git)
shaderc Shader compiler (shader compiler)
Clone the source tree:
git clone https://github.com/jaelpark/chamferwm.git
Inside the source tree, create a build directory and run Meson to configure the build:
mkdir build
meson --buildtype=release build
Move to the build directory and build:
cd build
ninja
Once compiled, the build directory will contain the executable and shader objects (.spv files). Put the following line to your .xinitrc, with /path/to/
replaced with the real location in filesystem.
exec /path/to/build/chamfer --config=/path/to/config/config.py --shader-path=/path/to/spv/shaders/
Installing from AUR¶
For Arch Linux, a PKGBUILD is available from AUR. The package from AUR will install a default configuration and the precompiled shaders to /usr/share/chamfer/
. Copy the configuration to another location to make modifications. Once ready, put the following line to your .xinitrc:
exec chamfer --config=/usr/share/chamfer/config/config.py --shader-path=/usr/share/chamfer/shaders/
where the path to config.py
should be changed if configuration was copied for modifications.
Starting¶
With the exec
line in place in .xinitrc, X server together with Chamferwm may be started by running startx
.
Note
When multiple rendering devices are available, make the choice with --device-index=n
, where n is the zero-based index of the device (default = 0).
Note
NVIDIA users may have to add Option "AllowSHMPixmaps" "1"
to their Xorg configuration.
To run the window manager without the integrated compositor, use
exec chamfer --config=/path/to/config/config.py -n
In this case, any other external compositor may be used.
Command line Arguments¶
- -h, --help
Display this help menu
- -c path, --config=path
Configuration Python script
Backend
- -d, --debug-backend
Create a test environment for the compositor engine without redirection. The application will not act as a window manager.
- -C, --standalone-compositor
Use compositor for external window managers. (Work in progress)
Compositor
- -n, --no-compositor
Disable compositor.
- -e, --experimental
Enable experimental features
- --device-index=id
GPU to use by its index. By default the first device in the list of enumerated GPUs will be used.
- -l, --debug-layers
Enable Vulkan debug layers.
- --no-scissoring
Disable scissoring optimization.
- -m, --memory-import-mode=m
Memory import mode: 0: DMA-buf import, 1: Host memory import, 2: CPU import (slow, compatibility)
- --unredir-on-fullscreen
Unredirect a fullscreen window bypassing the compositor to improve performance.
- --shader-path=path
Shader lookup path. SPIR-V shader objects are identified by an ‘.spv’ extension. Multiple paths may be specified.