Top Related Projects
Quick Overview
Wayfire is a 3D Wayland compositor for Linux, designed to be lightweight and customizable. It aims to provide a modern, flexible desktop environment with a focus on performance and extensibility through plugins.
Pros
- Highly customizable through a plugin system
- Supports 3D effects and animations for a modern desktop experience
- Lightweight and efficient, suitable for both powerful and resource-constrained systems
- Active development and community support
Cons
- Limited documentation compared to more established desktop environments
- May require more manual configuration than traditional desktop environments
- Some features and plugins are still in development or experimental
- Smaller ecosystem of compatible applications compared to X11-based environments
Getting Started
To get started with Wayfire, follow these steps:
-
Install Wayfire and its dependencies:
sudo apt install wayfire wf-config libwf-config-dev wlroots-dev
-
Create a basic configuration file:
mkdir -p ~/.config/wayfire cp /usr/share/wayfire/wayfire.ini ~/.config/wayfire/
-
Start Wayfire:
wayfire
-
Customize your configuration by editing
~/.config/wayfire/wayfire.ini
:[core] plugins = alpha animate autostart command cube decoration expo fast-switcher fisheye grid idle invert move oswitch place resize switcher vswitch window-rules wobbly zoom [autostart] autostart_wf_shell = true
-
Restart Wayfire to apply changes.
For more detailed configuration and usage instructions, refer to the official Wayfire documentation and GitHub repository.
Competitor Comparisons
i3-compatible Wayland compositor
Pros of Sway
- More mature and stable project with a larger user base
- Strictly adheres to i3 compatibility, making it familiar for i3 users
- Extensive documentation and community support
Cons of Sway
- Less flexible and customizable compared to Wayfire
- Limited built-in effects and animations
- Steeper learning curve for users new to tiling window managers
Code Comparison
Sway configuration (sway/config):
input * {
xkb_layout "us"
}
output * bg ~/wallpaper.png fill
bar {
status_command i3status
}
Wayfire configuration (wayfire.ini):
[input]
xkb_layout = us
[output]
background = ~/wallpaper.png
[panel]
launcher_cmd = wofi --show drun
Wayfire offers a more modular and plugin-based approach, allowing for easier customization and extension. Sway's configuration closely mirrors i3, maintaining compatibility but potentially limiting flexibility for users seeking more advanced features.
Both projects are actively developed Wayland compositors, with Sway focusing on i3 compatibility and stability, while Wayfire emphasizes customization and extensibility through its plugin system.
Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
Pros of Hyprland
- More active development with frequent updates and new features
- Better performance and smoother animations
- Extensive customization options through configuration files
Cons of Hyprland
- Steeper learning curve due to complex configuration options
- Less stable compared to Wayfire, as it's a newer project
- Limited documentation and smaller community support
Code Comparison
Hyprland configuration example:
monitor=,preferred,auto,1
input {
kb_layout = us
follow_mouse = 1
}
general {
gaps_in = 5
gaps_out = 20
border_size = 2
col.active_border = rgba(33ccffee)
}
Wayfire configuration example:
[core]
plugins = alpha animate autostart command cube decoration expo fast-switcher fisheye grid idle invert move oswitch place resize switcher vswitch window-rules wobbly zoom
[decoration]
border_size = 4
active_color = \#33CCFFEE
inactive_color = \#333333AA
Both compositors offer configuration files, but Hyprland's syntax is more concise and offers more granular control over various aspects of the window manager.
A Wayland window-stacking compositor
Pros of labwc
- Lightweight and minimalistic, focusing on simplicity and efficiency
- Follows traditional stacking window manager paradigms, familiar to users of Openbox
- Written in C, potentially offering better performance and lower resource usage
Cons of labwc
- Less feature-rich compared to Wayfire's plugin system and extensibility
- Limited customization options due to its minimalistic approach
- Smaller community and ecosystem, potentially resulting in fewer third-party contributions
Code Comparison
labwc (main.c):
int main(int argc, char *argv[])
{
struct server server = { 0 };
return run(&server, argc, argv);
}
Wayfire (main.cpp):
int main(int argc, char *argv[])
{
wf::log::initialize_logging();
auto core = std::make_unique<wf::core_t>();
return core->run(argc, argv);
}
Both projects use a similar main function structure, but Wayfire's implementation shows its object-oriented C++ approach, while labwc uses a more traditional C structure-based design. Wayfire's code hints at its more complex architecture with logging initialization and a core object, whereas labwc's simplicity is evident in its straightforward server structure.
[mirror] A dynamic tiling Wayland compositor
Pros of River
- Minimalist and lightweight design, focusing on simplicity
- Written in Zig, offering memory safety and performance benefits
- Highly customizable through a simple configuration language
Cons of River
- Less feature-rich compared to Wayfire's extensive plugin system
- Smaller community and ecosystem, potentially leading to fewer resources and extensions
- Steeper learning curve for users unfamiliar with tiling window managers
Code Comparison
River configuration example:
riverctl map normal Super+Shift Return spawn foot
riverctl map normal Super P spawn bemenu-run
riverctl default-layout rivertile
Wayfire configuration example:
[key-bindings]
terminal = <super> <shift> KEY_ENTER
launcher = <super> KEY_P
[core]
plugins = [
autostart
grid
...
]
River focuses on a programmatic approach to configuration, while Wayfire uses a more traditional ini-style format. Wayfire's plugin system allows for more extensive customization, but River's minimalist design may appeal to users who prefer a simpler setup.
Both projects are actively developed Wayland compositors, with Wayfire offering a more feature-complete experience out of the box, while River provides a lightweight and highly customizable alternative for users who enjoy tiling window managers.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Wayfire
Get started | Manual | Configuration
Wayfire is a 3D Wayland compositor, inspired by Compiz and based on wlroots.
It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance.
Dependencies
Wayfire Dependencies
These are the dependencies needed for building Wayfire.
- Cairo
- Pango and PangoCairo
- FreeType
- GLM
- libdrm
- libevdev
- libGL
- libinput
- libjpeg
- libpng
- libxkbcommon
- libxml2
- Pixman
- pkg-config
- Wayland
- wayland-protocols
- wf-config
- wlroots
wlroots Dependencies
These are the dependencies needed for building wlroots, and should be installed before building it. They are relevant for cases when the system doesn't have a version of wlroots installed.
DRM Backend (required)
GLES2 renderer (required)
Libinput Backend (required)
Session Provider (required)
XWayland Support (optional)
X11 Backend (optional)
Installation
The easiest way to install Wayfire, wf-shell and WCM to get a functional desktop is to use the install scripts.
Alternatively, you can build from source:
meson build
ninja -C build
sudo ninja -C build install
Note: wf-config
and wlroots
can be built as submodules, by specifying
-Duse_system_wfconfig=disabled
and -Duse_system_wlroots=disabled
options to meson
.
This is the default if they are not present on your system.
Installing wf-shell is recommended for a complete experience.
Arch Linux
wayfire and wayfire-git are available in the AUR.
yay -S wayfire
Exherbo
cave resolve -x wayfire
Fedora
dnf install wayfire
FreeBSD
Install the latest release and recommended addons with
pkg install wayfire wayfire-plugins-extra wf-shell wcm
Gentoo
Install the latest release with
emerge --ask --verbose wayfire
and to use the live version
emerge --ask --verbose "=gui-wm/wayfire-9999"
NixOS
Enable Wayfire in your NixOS configuration:
programs.wayfire = {
enable = true;
plugins = with pkgs.wayfirePlugins; [
wcm
wf-shell
wayfire-plugins-extra
];
};
Ubuntu
apt install wayfire
Void
xbps-install -S wayfire
Configuration
Copy wayfire.ini
to ~/.config/wayfire.ini
.
Before running Wayfire, you may want to change the command to start a terminal.
See the Configuration document for information on the options.
Running
Run wayfire
from a TTY, or via a Wayland-compatible login manager.
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot