Skip to content

Installation

Wiktor edited this page Oct 16, 2026 · 1 revision

Installation

Mist targets Arch / CachyOS, Hyprland 0.55+ with the Lua config (hyprland.lua), and an NVIDIA or Mesa GPU. It is one person's daily driver: expect to read code when something does not fit your setup.

1. Get the binaries

Arch package

packaging/arch/PKGBUILD builds mist-shell-git: binaries in /usr/bin, shell files in /usr/share/mist.

git clone https://github.com/wiktor-jozwiak/mist && cd mist/packaging/arch && makepkg -si

From a checkout

The checkout can live anywhere.

git clone https://github.com/wiktor-jozwiak/mist ~/src/mist
~/src/mist/scripts/mistd/install.sh && ~/src/mist/native/install.sh
Installed Where
mist-ui-bin, mist-wall-bin, mist-comp ~/.local/bin
the guard mist-ui (first run only) ~/.local/bin
mistd (backends) scripts/bin/mistd in the checkout
a link to the checkout ~/.local/share/mist/shell

Running native/install.sh again rebuilds and swaps the binaries in place; the guard restarts mist-ui.

Prebuilt

Tagged releases carry mist-vX.Y.Z-x86_64.tar.gz (bin/ + share/mist/); the release notes say where to unpack it.

2. Dependencies

Build: rust (stable), pkgconf, libxkbcommon, pam, wayland, mesa (EGL headers). For mist-comp also libinput, libseat, libdrm, mesa (gbm), systemd-libs.

Runtime: hyprland, pipewire + pipewire-pulse, wireplumber, networkmanager, wl-clipboard, grim, slurp, polkit, noto-fonts, noto-fonts-emoji.

Optional: ddcutil (brightness keys on external monitors), kdeconnect and android-tools (see Phone), wf-recorder (only scripts/demo-reel.sh).

Font: the UI is designed for SF Pro (variable SF-Pro.ttf in ~/.local/share/fonts/SF-Pro/). Apple licenses it for its own platforms only and Mist does not ship it. Without it Mist uses Inter Variable, then Noto Sans.

3. Hyprland

Load the example config from your hyprland.lua:

dofile(os.getenv("HOME") .. "/.local/share/mist/shell/examples/hyprland/mist.lua")

It starts the guard on hyprland.start, binds the keys (Keybindings and IPC) and adds the layer rules that give the glass its blur. Copy only the parts you want if you keep your own bindings.

Then remove what Mist replaces, or they fight over the same D-Bus names and layers:

  • other bars and docks (Waybar, HyprPanel, Quickshell configs, ...),
  • notification daemons (mako, dunst, swaync),
  • polkit agents (hyprpolkitagent, polkit-gnome, ...),
  • idle and lock daemons (hypridle, hyprlock, swayidle): Mist has its own lock and idle (Configuration).

4. First start

Log out and in, or start it by hand:

~/.local/bin/mist-ui

The guard starts mist-ui-bin, which starts mist-wall and the mistd backends itself. Right click the desktop clock for Customise desktop: set the weather place (General) and the language (Appearance).

Uninstall

pkill -x mist-ui; pkill -x mist-ui-bin
rm ~/.local/bin/mist-ui ~/.local/bin/mist-ui-bin ~/.local/bin/mist-wall-bin ~/.local/bin/mist-comp
rm ~/.local/share/mist/shell

Remove the dofile line from hyprland.lua. Settings stay in ~/.config/mist/, caches in ~/.cache/mist/.

Clone this wiki locally