# How-to guides These how-to guides cover the key aspects of working with Mir. - [Developing a Compositor](developing-a-wayland-compositor-using-mir): build your own, custom compositor with Mir - [Developing protocol extensions for Mir](developing-wayland-extension-protocols-for-mir-servers): extend your compositor with support for a custom protocol extension - [Getting involved in Mir](getting_involved_in_mir): first steps to contributing to Mir - [Using checkbox-mir](how-to-use-checkbox-mir): validating your environment using [checkbox-mir](https://snapcraft.io/checkbox-mir) - [Calibrating a touchscreen device](how-to-calibrate-a-touchscreen-device): 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): 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) ```{toctree} :hidden: developing-a-wayland-compositor-using-mir developing-wayland-extension-protocols-for-mir-servers getting_involved_in_mir how-to-use-checkbox-mir how-to-calibrate-a-touchscreen-device how-to-enable-graphics-core22-on-a-device how-to-test-mir-for-a-release how-to-update-symbols-map how-to-specify-startup-apps how-to-handle-keyboard-input specifying-csd-ssd-preference ```