A modern GNOME application for managing autostart entries, built with Rust and libadwaita.
- View all autostart entries from user and system directories
- Edit autostart entry commands and parameters
- Delete or disable autostart entries
- Multi-language support (English and German)
- Follows GNOME Human Interface Guidelines
- Fast and lightweight, built with Rust
Main window showing autostart entries |
Adding a new autostart entry |
Main window showing autostart entries |
Adding a new autostart entry |
Install Boot Mate from the rueegger-dev Flatpak repository:
flatpak remote-add --if-not-exists rueegger-dev https://flatpak.rueegger.dev/rueegger-dev.flatpakrepo
flatpak install rueegger-dev me.rueegger.bootmateOr install directly via the flatpakref file:
flatpak install https://flatpak.rueegger.dev/me.rueegger.bootmate.flatpakrefIf you prefer to build from source, see the Building section below.
- GTK 4.22.1 or later
- libadwaita 1.9.0 or later
- GLib 2.66 or later
All build dependencies are provisioned inside a dedicated Distrobox container
named bootmate-devsystem (Fedora 44 with GNOME 50 / libadwaita 1.9). The host only needs Distrobox
and a container runtime (Podman or Docker).
The repository ships helper scripts that execute every build step inside the container, so the host stays untouched.
scripts/devbox-setup.shThis creates the bootmate-devsystem container from
.distrobox/bootmate-devsystem.ini, runs a full
dnf upgrade --refresh, and installs the Meson + Rust + flatpak-builder toolchain inside it.
To refresh packages later:
scripts/devbox-update.shscripts/devbox-build.sh # debug build in ./build
scripts/devbox-run.sh # run ./build/src/bootmatescripts/devbox-build.sh release # release build in ./build-releasescripts/devbox-flatpak.shAll flatpak-builder state (state dir, OSTree repo, user installation) lives under
/var/cache/bootmate-flatpak/ inside the container — the host $HOME is never polluted.
scripts/devbox-enter.shAfter installation:
bootmateOr from the build directory without installing:
./build/src/bootmateOr launch from your application menu: Boot Mate
bootmate/
├── data/ # Application data files
│ ├── icons/ # Application icons
│ ├── ui/ # GTK UI templates
│ ├── *.desktop.in # Desktop entry file
│ └── *.metainfo.xml.in # AppStream metadata
├── po/ # Translations
│ ├── de.po # German translation
│ └── en.po # English translation
├── src/ # Rust source code
│ ├── main.rs # Application entry point
│ ├── application.rs # Application logic
│ ├── window.rs # Main window
│ ├── autostart.rs # Autostart entry management
│ └── entry_row.rs # List row widget
├── build.rs # Build script
├── Cargo.toml # Rust dependencies
├── meson.build # Meson build configuration
└── LICENSE # GPLv2 license
Boot Mate scans the following directories for .desktop files:
~/.config/autostart/- User autostart entries (takes precedence)/etc/xdg/autostart/- System-wide autostart entries/usr/share/gnome/autostart/- GNOME autostart entries
When you edit a system-wide autostart entry, Boot Mate creates a user-specific copy in ~/.config/autostart/ with your changes. This ensures system files remain untouched.
- User entries: Deleted directly from
~/.config/autostart/ - System entries: A hidden override is created in
~/.config/autostart/to disable the entry
Contributions are welcome! Please feel free to submit issues and pull requests.
- All code must be in English (comments, function names, variables)
- Follow Rust best practices and idioms
- Maintain GNOME HIG compliance
- Add translations for new user-facing strings
This project is licensed under the GNU General Public License v2.0 only (GPL-2.0-only).
See LICENSE for the full license text.
Samuel Rüegger
- GitHub: @srueegger
- Repository: bootmate
- Actionschnitzel (@actionschnitzel) - ARM64 build support
- Built with GTK 4 and libadwaita
- Rust bindings by gtk-rs
- Designed for modern GNOME desktop environments



