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 |
Pre-built DEB packages are automatically created for each release:
- DEB Package: Download from GitHub Releases
# Install deb package (Ubuntu/Debian)
sudo dpkg -i bootmate_1.2.1_amd64.deb
sudo apt-get install -f # Install dependencies if neededIf you prefer to build from source, see the Building section below.
- GTK 4.10 or later (GTK 4.12+ included in Ubuntu 24.04 LTS)
- libadwaita 1.4 or later (libadwaita 1.4+ included in Ubuntu 24.04 LTS)
- GLib 2.66 or later
- Rust 1.70 or later (1.80+ recommended)
- Meson 0.59 or later
- Cargo
- glib-compile-resources
- glib-compile-schemas
- gettext
On Ubuntu 24.04 LTS, you can install all dependencies with:
sudo apt install build-essential meson cargo rustc \
libgtk-4-dev libadwaita-1-dev libglib2.0-dev \
gettext appstream desktop-file-utils# Configure the build
meson setup build --prefix=/usr/local
# Build the application
meson compile -C build
# Install (optional)
sudo meson install -C buildFor development with debug symbols:
meson setup build -Dprofile=debug
meson compile -C buildFor optimized release build:
meson setup build -Dprofile=release
meson compile -C buildAfter 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 on Ubuntu 24.04 LTS and later



