README.md (3795B)
1 # wio 2 3 Wio is a Wayland compositor for Linux & FreeBSD which has a similar look & feel 4 to plan9's rio. 5 6 This software is incomplete. Notably missing is a Rio-esque FUSE filesystem and 7 Rio's built-in command line (we depend on an external, tty-style terminal 8 emulator). 9 10 ## Installation 11 12 To build and install wio: 13 14 git clone https://github.com/swaywm/wlroots.git subprojects/wlroots 15 meson build 16 cd build 17 ninja install 18 19 ## Basic principles 20 21 Wio uses [wlroots](https://github.com/swaywm/wlroots) to run a simple Wayland 22 compositor. Right clicking (and holding) outside of a window will bring up the 23 menu. Drag the mouse to the command you'd like to execute and release the mouse. 24 25 - **New**: Opens a new window. Click and hold the mouse, then drag, to define 26 the placement for the new window. 27 - **Resize**: Resizes a window. Click the window to resize, then click and drag 28 somewhere else to define the new placement. 29 - **Move**: Moves a window. Click and drag a window to move it. 30 - **Delete**: Deletes a window. Click the window you want to close. 31 - **Hide**: Hides a window. Open the menu again to show the window. 32 33 Each window runs [cage](https://github.com/Hjdskes/cage) by default, and 34 instructs cage to run a terminal emulator 35 ([alacritty](https://github.com/jwilm/alacritty) by default). This effectively 36 gives each window its own private Wayland compositor. If you want to run a 37 graphical application, simply run the command from the terminal and cage will 38 display it full-screen within its own window. 39 40 To access Wio's own Wayland compositor directly (for example, to take 41 screenshots with [grim](https://wayland.emersion.fr/grim)), set 42 `WAYLAND_DISPLAY=wayland-0` or similar. Note, however, that the only shell for 43 application windows which is supported directly by Wio is xdg-shell. 44 45 ## Usage 46 47 Some minor customization options are available by passing command line arguments 48 to Wio: 49 50 wio [-c <cage>] [-t <terminal>] [-o <output config>...] 51 52 - **-c <cage>**: specifies the `cage` command to run new windows in 53 - **-t <term>**: specifies the terminal command to run new windows in 54 55 For the authentic rio experience, try the alacritty config in `contrib/`. 56 57 ### Output configuration 58 59 Wio supports multihead configurations and HiDPI displays. In order to take 60 advantage of this, you must pass some output configurations on the command line. 61 You can specify the following options, in this order: 62 63 - Output name (`weston-info` can list output names & modes) 64 - X & Y coordinates in the multihead layout 65 - Width & height of the desired mode 66 - Scale factor 67 - Transform 68 69 Each property should be separated by a colon. Use -1 for X & Y to have Wio 70 automatically place the display, and 0 to have Wio select a mode or scale factor 71 automatically. You may omit any of these properties, but must include any 72 property which comes before the ones you're trying to set. 73 74 For example, to specify the X & Y coordinates of output `HDMI-A-1`, try the 75 following: `-o HDMI-A-1:1920:0`. If you also want to set its mode to 720p, use 76 `-o HDMI-A-1:1920:0:1280:720`. If you don't care about setting the mode but want 77 to flip it, use `-o HDMI-A-1:-1:-1:0:0:0:flipped`. 78 79 Available transforms are: 80 81 - `normal` 82 - `90` 83 - `180` 84 - `270` 85 - `flipped` 86 - `flipped-90` 87 - `flipped-180` 88 - `flipped-270` 89 90 ### Environment 91 92 Wio recognizes the following environment variables for basic keyboard 93 configuration: 94 95 - `XKB_DEFAULT_RULES` 96 - `XKB_DEFAULT_MODEL` 97 - `XKB_DEFAULT_LAYOUT` 98 - `XKB_DEFAULT_VARIANT` 99 - `XKB_DEFAULT_OPTIONS` 100 101 Read `xkeyboard-config(7)` for details. 102 103 ## Patches, bugs, etc 104 105 Patches, questions, feedback, and general discussions to the mailing list: 106 [~sircmpwn/wio@lists.sr.ht](https://lists.sr.ht/~sircmpwn/wio). 107 108 Tickets on the [bug tracker](https://todo.sr.ht/~sircmpwn/wio).