Skip to content

srueegger/bootmate

Repository files navigation

Boot Mate

A modern GNOME application for managing autostart entries, built with Rust and libadwaita.

Features

  • 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

Screenshots

Light Mode

Boot Mate - Light Mode

Main window showing autostart entries

Boot Mate - Adding Entry (Light)

Adding a new autostart entry

Dark Mode

Boot Mate - Dark Mode

Main window showing autostart entries

Boot Mate - Adding Entry (Dark)

Adding a new autostart entry

Installation

Flatpak (Recommended)

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.bootmate

Or install directly via the flatpakref file:

flatpak install https://flatpak.rueegger.dev/me.rueegger.bootmate.flatpakref

From Source

If you prefer to build from source, see the Building section below.

Requirements

Runtime Dependencies

  • GTK 4.22.1 or later
  • libadwaita 1.9.0 or later
  • GLib 2.66 or later

Build Dependencies

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).

Building

The repository ships helper scripts that execute every build step inside the container, so the host stays untouched.

One-time setup

scripts/devbox-setup.sh

This 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.sh

Development build

scripts/devbox-build.sh             # debug build in ./build
scripts/devbox-run.sh               # run ./build/src/bootmate

Release build

scripts/devbox-build.sh release     # release build in ./build-release

Local Flatpak test build

scripts/devbox-flatpak.sh

All flatpak-builder state (state dir, OSTree repo, user installation) lives under /var/cache/bootmate-flatpak/ inside the container — the host $HOME is never polluted.

Interactive shell

scripts/devbox-enter.sh

Running

After installation:

bootmate

Or from the build directory without installing:

./build/src/bootmate

Or launch from your application menu: Boot Mate

Project Structure

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

How It Works

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

Editing 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.

Deleting Entries

  • User entries: Deleted directly from ~/.config/autostart/
  • System entries: A hidden override is created in ~/.config/autostart/ to disable the entry

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Development Guidelines

  • 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

License

This project is licensed under the GNU General Public License v2.0 only (GPL-2.0-only).

See LICENSE for the full license text.

Author

Samuel Rüegger

Contributors

Acknowledgments

About

Boot Mate a lightweight libadwaita‑based autostart manager for GNOME. Scans ~/.config/autostart/*.desktop, shows entries in a clean list, and lets you enable/disable or add new startup programs with a single click. Built in Rust with GTK 4 + libadwaita, fully GNOME‑HIG compliant.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors