Skip to content

Latest commit

 

History

History
94 lines (60 loc) · 4.93 KB

Configuration.md

File metadata and controls

94 lines (60 loc) · 4.93 KB

This page is incomplete. For a complete description of plugins, see the default config file, wayfire.ini.default

Wayfire configuration

Wayfire is managed through a config file, typically located in ~/.config/wayfire.ini. The location can be overriden using the -c <config file> argument when staring Wayfire.

Probably the easiest way to edit the configuration options is the WIP Wayfire config manager (WCM). However, it is still missing many important options (like output configuration), so for the time being you most probably want to edit the config file directly.

Config file structure

The configuration file follows a simple ini file format. It is divided into sections, which consist of multiple options, for ex.

[example-section]
example_option1 = value1
example_option2 = value2
....

There are several types of values:

  1. Integer, double, string

Examples: option = 1.0, option = your string

  1. Colors

They are represented by of four floating point numbers in RGBA format.
Example: option = 0.5 0.5 0.5 1.0 means a fully opaque grey color.

  1. Key- and buttonbindings

These represent a combination of modifier + key/button.
Modifiers can be <shift>, <ctrl>, <alt> and/or <super>.
Keys and buttons have names as defined in /usr/include/linux/input-event-codes.h.

Examples: option = <super> <shift> KEY_F, option = <ctrl> BTN_RIGHT

  1. Touch and axis bindings

These are represented via a modifier combination, for ex. option = <alt> means alt+scroll for an axis binding.

  1. Touch gesture bindings

Represent a touchscreen gesture (in the future also touchpad support is planned)

Examples:

option = swipe 3 up        #swipe up with 3 fingers <br/>
option = pinch 3 in        # pinch in(can also be set with out) with 3 fingers <br/>
option = edge-swipe 4 left # swipe left with 4 fingers, starting from the edge of the screen <br/>
  1. Activator bindings

Activator bindings combine multiple key/button/touch bindings, so that a single action can be triggered from multiple bindings. Example: toggle = <alt> BTN_EXTRA | pinch out 3 | <alt> KEY_E

Currently available options

The documentation for individual options has been split into multiple pages:

  1. Core options
  2. Basic plugins
  3. TBD: Desktop effects
  4. TBD: Misc plugins

Output configuration

To configure outputs, you first need to figure out each output's name. They are usually the same as xrandr output names. If you are unsure which output names are on your system, check the log. There you can also find information about the supported modes.

Each output has its own section in the config name. The section name is the same as the output name. Each of the following options should be put in the output section for the output that you want to configure.

  1. mode = width x height @ refresh or mode = default or mode = off or mode = mirror <output>

The first variant tells Wayfire to use the given mode. Refresh rate can be in Hz or mHz. Example: mode = 1920x1080@60. In the second case, the mode is detected automatically.

When mode = off is set, the output is turned off and left unused by Wayfire.

When mode = mirror <output>, if <output> is a valid name of another output, the output is used as a mirror of the specified output.

  1. custom_mode_N = modeline

Add a custom mode to the given output. The modeline is the same as the one which is used in X, and can be generated by for ex. cvt. The custom mode can then be set via the mode option. Example:

custom_mode_1 = 712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
  1. scale = X

Set output scale, use for HiDPI. Wayfire supports fractional scaling. Example: scale = 1.5. Default is 1

  1. transform = V

Set output transform, i.e rotation. Possible values: normal (default), 90, 180, 270, flipped, 90_flipped, 180_flipped, 270_flipped

  1. layout = x,y

Sets the position of the output in the global compositor space. Outputs which don't have a layout set will be arranged next to the rightmost output. Currently Wayfire supports only a very basic output layout. So, if you configure the outputs so that there is empty space between them, you won't be able to move the mouse from one to the other. Overlapping outputs also will result in possibly weird behavior.

To properly calculate the output size in the global compositor space, you need to take its resolution, divide by scale and then apply the rotation. You can use a little "trick" to save yourself the hassle of computing layouts if you have just 2 monitors arranged horizontally: just specify the layout of the left one to 0,0 and the other will be automatically arranged to the right.