⚠️ Warning: This app is not yet production-ready and has undergone limited testing. Use it at your own risk!
This application provides a graphical user interface (GUI) for common systemd features. It is designed to make Linux system management more accessible by reducing reliance on the command line. The app is lightweight and fast, with a size of approximately 600 kB.
⚠️ Warning: While browsing and viewing unit files is safe, destructive actions (such as enabling, disabling, starting, stopping, or restarting units) are marked with red buttons and will prompt for the root password. Only use these actions if you know what you are doing!
- List Units: Displays all available
systemd
units. Refer to the systemctl list-units documentation. - Enable Units: Allows enabling
systemd
units to start automatically at boot. Refer to the systemctl enable documentation. - Disable Units: Prevents
systemd
units from starting automatically at boot. Refer to the systemctl disable documentation. - Start Units: Initiates the runtime execution of a unit. Refer to the systemctl start documentation.
- Stop Units: Halts the runtime execution of a unit. Refer to the systemctl stop documentation.
- Restart Units: Stops and then starts the runtime execution of a unit. Refer to the systemctl restart documentation.
- View Unit File Content: Displays the configuration of individual unit files. Refer to the systemctl cat documentation.
- Prompt for Root Permissions: Automatically requests root permissions through the UI when required for privileged actions.
- UI Framework: Built with gtk-rs for a modern and user-friendly interface.
- Systemd Interaction: Uses the systemctl library, which communicates with
systemd
via pipes for robust functionality.
- Ensure your system meets the requirements listed above.
- Navigate to your dev folder.
- Clone this repository:
git clone https://github.com/your-username/systemd-gtk.git
- Navigate to the project directory:
cd systemd-gtk
- Build and run the application:
cargo run
- Create an optimized release build:
cargo build --profile release-lto
Binaries for x64 are available at the release page.
- testing!
- publish on crates.io
- switch to upstream systemctrl dependency, once it was patched
- free memory after viewing unit files
- use more idiomatic Rust: get rid of some .clone() calls
- publish AUR
- publish https://flatpak.org/