I am now working on https://github.com/pop-os/cosmic-comp
cosmic-comp
shares a lot of my vision for fireplace, is also written in Rust /using smithay
, etc.
But unlike fireplace, it will be a part of a full featured desktop product developed by System76.
Developing this project along was fun, but at least currently I have no intention of spending more time on fireplace.
Fireplace strives to be a slim and fast playground for a full-featured tiling-based wayland compositor for now. Eventually I plan to implement a gnome-compatible desktop environment on top of fireplace with resonable amounts of eye-candy to be appealing to the general user, but without sacrificing on performance or keyboard based workflows.
The goal is to be gnome-abi compatible to applications (including the vast cast of dbus interfaces, but notably not gtk-specific styling or the horrific extension-api), while remaining composible and extendible through e.g. the wlr-protocols (most notable layer-shell).
What that transition means for fireplace and if the additional components of a full-featured desktop environment can be implemented without assimilating the original window manager is not yet decided. If possible fireplace should still be usable independently as a barebones wayland compositor.
Currently fireplace is getting reimplemented on top of Smithay, which is not "done" in any sense of the word as well. Expect development to be slow and new features to be sparse. As such fireplace will likely depend on git-versions of smithay from time to time and might not always compile.
Fireplace
- Floating windows
- [-] Workspaces
- BSP-style window tiling
- Basic UI rendering using layer-shell
- ...
Older (more feature-complete) wlc-based Codebase: https://github.com/Drakulix/fireplace/tree/old_codebase
You are currently expected to know how to compile rust programs and how to start custom compositors. Integrations for login managers will be provided at a later stage, when fireplace is deemed usable enough.
Configuration is done in YAML format.
You can see a detailed example at fireplace.yaml
The configuration file should be placed into the $XDG_CONFIG_DIR
- if set - or
into $HOME/.config
otherwise. The name may either be fireplace.yaml
or
.fireplace.yaml
. You can also add a folder called fireplace
and store the config file there, if you happen to like folders.
A global configuration can be provided in /etc/fireplace/fireplace.yaml
.
Pull requests, feature requests, bug reports, every contribution is highly appreciated, but please note, that I do this in my free time and your request maybe be given a very low priority and postponed for quite some time.
The best way to participate is start hacking on the codebase. I will give my best to answer any questions related to documentation and the core library as quickly as possible to assist you!