These dotfiles are tailored for miracle-wm on Ubuntu 26.04. These dotfiles are very much geared towards my (corporate-ish) development life that largely revolves around C++, web, python, and other types of development.
Some dependencies that are not packaged in the Ubuntu archive are built from source here. The miracle-wm config plugin is not built locally — it is compiled by a GitHub workflow and downloaded as a prebuilt binary at install time (see Configurations).
I very much enjoy Dracula theming, so that's what you'll be getting if you install this 🧛
Note that this configuration will only work with the latest version of miracle-wm in the repository, so this is more of a rolling release than anything.
- miracle-wm — Wayland compositor / window manager
- swaylock — lockscreen
- swaync — notifications
- wofi — launcher
- waybar — top panel
- swww — animated wallpaper daemon (rotates the background)
- kitty — terminal
- wlogout — logout screen
- fish — shell
- Oh My Fish — fish shell framework
- bobthefish — fish prompt theme
- grimshot — screenshots
- slurp — region selection for screenshots
- nm-connection-manager — network control
- bat — better
cat - fdfind — better
find - eza — better
ls - pamixer — volume adjustment
- brightnessctl — brightness management
- wl-clipboard — clipboard for Wayland
- pavucontrol — sound control
- nautilus — file manager
- playerctl — media player control
- fastfetch — system info display
- Bibata Modern Classic — cursor theme
- Rust — via rustup
- Go — via apt
- pyenv — Python version manager
- clang / clangd — C/C++ compiler and language server
- cmake — build system
- ripgrep — fast grep
- bun — JavaScript runtime and package manager
- Flutter — cross-platform UI SDK
Ubuntu 26.04 is required. The install script will exit immediately if run on any other OS or version.
Caution
Only install on a fresh machine. This script is destructive — it will overwrite your existing dotfiles, shell configuration, and system packages without the ability to recover them. Do not run this on a machine with configuration you care about.
First, clone the repo:
git clone git@github.com:mattkae/dotfiles.gitNext, run the install script:
./install.sh [OPTIONS]Run with no flags to get an interactive menu (a gum-powered TUI, or plain prompts if
gum is unavailable) that lets you check/uncheck the optional feature groups before the
install begins. Desktop config, fonts, themes and the swww/Rust build are always installed.
Optional flags (passing any feature flag, or --yes, skips the menu):
Options:
--yes Skip the interactive menu / confirmation prompt
--force Reinstall everything, ignoring 'already installed' checks
--miracle Install the miracle-wm PPAs + package (default)
--no-miracle Skip the miracle-wm PPAs + package (e.g. local build)
--dev Install developer tooling (default)
--no-dev Skip developer tooling (bun, openssh, build tools, languages)
--help Show this help message and exit
~/.local/bin: local scripts~/.local/src: local source projects~/.local/share/wallpapers: the lockscreen image, plus arotation/set that the background cycles through
The primary configuration is ~/.config/miracle-wm/config.yaml. Users may place
any machine-specific configuration in ~/config/miracle-wm/user-config.yaml.
For example, I run xdg-desktop-portal-wlr there so that screensharing works.
The compositor's behavior is driven by a WebAssembly plugin built from the Rust
crate in config/miracle-wm/matts-config. Rather than compiling it locally, the
Build workflow compiles it on every push to
master and publishes matts_config.wasm as the nightly
release asset.
install.sh downloads that prebuilt binary into
~/.config/miracle-wm/plugins/matts_config.wasm.
- Users may add custom fish configuration in
~/.config/fish/user.sh.
- Rotating 4K wallpapers come from aynp/dracula-wallpapers (the
Art/4kcollection).
