# How-to guides
These how-to guides cover the key aspects of working with Mir.

- [Developing a Compositor](developing-a-wayland-compositor-using-mir.md): build your own, custom compositor with Mir
- [Developing protocol extensions for Mir](developing-wayland-extension-protocols-for-mir-servers.md): extend your compositor with support for a custom protocol extension
- [Getting involved in Mir](getting_involved_in_mir.md): first steps to contributing to Mir
- [Using checkbox-mir](how-to-use-checkbox-mir.md): validating your environment using [checkbox-mir](https://snapcraft.io/checkbox-mir)
- [Calibrating a touchscreen device](how-to-calibrate-a-touchscreen-device.md): creating and using a calibration matrix using [the libinput snap](https://snapcraft.io/libinput)
- [Enabling graphics-core22 on a device](how-to-enable-graphics-core22-on-a-device.md): creating a `graphics-core22` provider snap for a new board
- [How to specify start up applications](how-to-specify-startup-apps.md)
- [How to handle user input](how-to-handle-keyboard-input.md)
- [Specifying CSD/SSD Preference](specifying-csd-ssd-preference.md)
- [Enable screencasting](how-to-enable-screencasting.md)

```{toctree}
:hidden:

developing-a-wayland-compositor-using-mir.md
developing-wayland-extension-protocols-for-mir-servers.md
getting_involved_in_mir.md
how-to-use-checkbox-mir.md
how-to-calibrate-a-touchscreen-device.md
how-to-enable-graphics-core22-on-a-device.md
how-to-test-mir-for-a-release.md
how-to-update-symbols-map.md
how-to-specify-startup-apps.md
how-to-handle-keyboard-input.md
specifying-csd-ssd-preference.md
how-to-enable-screencasting.md
```
