# Learn What Mir Can Do This tutorial will guide you through using some example programs that showcase Mir's capabilities in different setups. You will see how Mir supports a range of capabilities that can be used by Mir based compositors. Mir makes it easy to write compositors as shown in the [developer tutorial](write-your-first-wayland-compositor). ## Installation Mir demos are available on Debian derivatives, Fedora, and Alpine. For distros that don't have prebuilt binaries, examples can be built from source. To install Mir demos on Debian and its derivatives: ```sh sudo apt install mir-demos mir-graphics-drivers-desktop ```
Installing Demos on Other Distros Installing Mir demos on Fedora ```sh sudo dnf install mir-demos ``` Installing Mir demos on Alpine ```sh sudo apk add mir-demos mir ```
## Running The main script you'll want to play around with is `miral-app`. It runs a shell with some eyecandy by default, but you can run it in kiosk mode if that fits your usecase more. For the uninitiated: The shell mode runs a floating window manager just like GNOME and such where you can move windows and maximize or minimize them. Kiosk mode on the other hand assumes you want one (or more) applications in fullscreen mode all the time. To run in shell mode, just run: ```sh miral-app ``` for kiosk mode: ```sh miral-app -kiosk ``` **Note**: By default, Mir does not enable Wayland extensions that normal applications should not be using. For demonstration purposes we will override this and allow all supported extensions in some of the following examples by passing `--add-wayland-extensions all` when running the example. ## Running Natively The previous section showed how you can run Mir demos under an X11 or Wayland session. But Mir compositors can also run "natively" by launching them from a virtual terminal or a greeter. ### Launching from a virtual terminal To switch to a virtual terminal, you can press CTRL+ALT+F\. You can then log in and run: ```sh miral-app ``` ### Launching from a greeter You can also launch `miral-shell` from your greeter by opening the window manager list (bottom right cog on Ubuntu) and choosing "Miral Shell". Once you log in, you'll see `miral-shell` running fullscreen! ## Using On-screen Keyboards Mir based compositors can easily support on-screen keyboards. Note that due to security reasons, the Wayland extensions needed are disabled by default. For the purpose of demonstation, we'll use `ubuntu-frame-osk`, but you're free to use any Wayland compatible on-screen keyboard. You can install `ubuntu-frame-osk` by running: ```sh sudo snap install ubuntu-frame-osk sudo snap connect ubuntu-frame-osk:wayland ``` To test your favourite on-screen keyboard, you can start `miral-app` as follows: ```sh miral-app --add-wayland-extensions all ``` Once the shell loads, you can start the terminal, then run: ```sh ubuntu-frame-osk& ``` And an on-screen keyboard should pop up! ## Mixing Wayland and X11 Clients You can easily run X11 applications inside Mir based compositors. For example, to enable x11 support in `miral-shell`, you can run the following command: ```sh miral-app --enable-x11 true ``` When it loads, you can start a terminal and run `xclock` or any other X11 application alongside Wayland applications! ## Remote Desktop Mir also supports remote desktops via the VNC protocol. To demo this, we'll use `wayvnc`. You can install it by running: ```sh sudo apt install wayvnc ``` Start the shell with all extensions enabled: ```sh miral-app --add-wayland-extensions all ``` From inside, you can run the terminal and run `wayvnc`: ```sh wayvnc ``` This should start `wayvnc` and make it listen to `localhost`. To connect, run your favourite VNC viewer and connect to `localhost`. You should see the exact same view in both Mir compositor and the VNC viewer. For example: ```sh gvncviewer localhost ```