Convert Figma logo to code with AI

WayfireWM logowayfire

A modular and extensible wayland compositor

2,355
174
2,355
166

Top Related Projects

14,537

i3-compatible Wayland compositor

20,987

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.

1,604

A Wayland window-stacking compositor

3,204

[mirror] A dynamic tiling Wayland compositor

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:

  1. Install Wayfire and its dependencies:

    sudo apt install wayfire wf-config libwf-config-dev wlroots-dev
    
  2. Create a basic configuration file:

    mkdir -p ~/.config/wayfire
    cp /usr/share/wayfire/wayfire.ini ~/.config/wayfire/
    
  3. Start Wayfire:

    wayfire
    
  4. 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
    
  5. Restart Wayfire to apply changes.

For more detailed configuration and usage instructions, refer to the official Wayfire documentation and GitHub repository.

Competitor Comparisons

14,537

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.

20,987

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.

1,604

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.

3,204

[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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Wayfire

Version Matrix: #wayfire:matrix.org IRC: #wayfire on Libera.chat Discord CI Packaging status License

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.

Wayfire demos YouTube Play Button · Wayfire demos

Dependencies

Wayfire Dependencies

These are the dependencies needed for building Wayfire.

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.