Wayfire

From Gentoo Wiki
Jump to:navigation Jump to:search
Resources

Wayfire is a Wayland compositor inspired by Compiz and based on wlroots.

Wayfire aims to create a customizable, extendable and lightweight environment without sacrificing its appearance. It features a lot of graphical effects, such as the desktop cube, wobbly windows, fire animation, fish eye, workspace scale view and window rotations, among many other features.

Installation

USE flags

USE flags for gui-wm/wayfire compiz like 3D wayland compositor

+dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
+gles3 Enable OpenGL ES 3.x Features.
X Enable support for X11 applications (XWayland).
openmp Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp"
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Emerge

root #emerge --ask gui-wm/wayfire

Configuration

The default configuration file is ~/.config/wayfire.ini but Wayfire also supports loading custom configuration files. A graphical interface for configuration is provided by the optional package gui-apps/wcm.

Manual configuration

Copy over the default configuration from /usr/share/wayfire like so:

user $cp /usr/share/wayfire/wayfire.ini ~/.config/

Plugins

Wayfire plugins can be enabled and disabled via adding and removing entries in the plugins = in the [core] section of ~/.config/wayfire.ini.

For example, to remove the wrot plugin which allows for window rotation, comment it out in ~/.config/wayfire.ini by adding # as the first character of the line:

FILE ~/.config/wayfire.ini
[core]
plugins = \
  alpha \
  animate \
  autostart \
  command \
  cube \
  decoration \
  expo \
  fast-switcher \
  fisheye \
  foreign-toplevel \
  grid \
  gtk-shell \
  idle \
  invert \
  move \
  oswitch \
  place \
  resize \
  switcher \
  vswitch \
  window-rules \
  wm-actions \
  wobbly \
#  wrot \
  zoom

To install extra plugins, emerge the gui-libs/wayfire-plugins-extra package:

root #emerge --ask gui-libs/wayfire-plugins-extra

Shortcuts

Important
Prior to 0.9.0, keybindings had to use evdev codes; refer to the relevant link in the "External resources" section. Since 0.9.0, one can use the xkb-bindings plugin to allow the use of xkb keysyms instead.

External shortcuts in Wayfire are managed by the command plugin. A custom keybinding requires two things:

  • A binding_- or repeatable_binding_-prefixed variable.
  • A command_-prefixed variable.

The repeatable_binding_ prefix assumes that the key in question is going to be held down.

Available meta keys include:

  • <super>
  • <alt>
  • <shift>

As an example, to add a keybinding to start Firefox by pressing <super>-<shift>-1:

FILE ~/.config/wayfire.ini
binding_firefox = <super> <shift> KEY_1
command_firefox = firefox

The order and name of the variables doesn't matter, as long as the binding_- and command_-prefixed variables have the same suffix, e.g. binding_x, command_x. Note that an underscore, _, must be used as the separator.

Usage

Wayfire is only a Wayland compositor and does not provide the full capabilities expected from a desktop environment. It is best used alongside gui-apps/wf-shell, which adds among other features a GTK3-based status bar and wallpaper support.

Wayfire needs additional applications which implement other parts of the XDG specifications from Freedesktop, such as desktop notifications, application launchers, screenshotting, screen recording and screen locking among other important necessities; refer to the List of software for Wayland article for examples.

Supported Wayland protocols

For information about Wayland protocols supported by Wayfire, refer to the Wayfire/Wayland protocols page.

Removal

Unmerge

root #emerge --ask --depclean --verbose gui-wm/wayfire

See also

  • Wayland — a replacement for the X11 window system protocol and architecture with the aim to be easier to develop, extend, and maintain
  • List of software for Wayland — various desktop related packages for Wayland

External resources

https://www.kernel.org/doc/Documentation/input/event-codes.txt - kernel documentation on all event input codes

https://github.com/WayfireWM/wayfire/wiki/Configuration - official wayfire documentation