sysmenu is an interactive systemd service manager for the command line. It uses fzf, gum, and bat to provide a simple and efficient way to manage systemd units.
- Interactive management: Easily start, stop, restart, enable, and disable
systemdservices. - System and user units: Lists both system and user
systemdunits. - Service status and logs: View the status and logs of any service.
- Favorites: Mark services as favorites for quick access.
- Fuzzy search: Uses
fzffor quick and easy service searching. - Desktop integration: Can be run as a desktop application.
sysmenu requires the following commands to be installed on your system:
fzfsystemctljournalctlsudoawk
For a better user experience, it is recommended to also install:
The easiest way to install sysmenu is using the automated installer:
curl -fsSL https://raw.githubusercontent.com/marcs-sus/sysmenu/master/install.sh | bash
⚠️ Security Note: It's generally not recommended to pipe curl commands directly to bash without checking them first. Theinstall.shscript simply downloads the sysmenu binary, makes it executable, installs the desktop entry, and updates your desktop database.
If you prefer to install manually:
-
Make the script executable:
chmod +x sysmenu.sh
-
Move the script to a directory in your
$PATH. A common choice is$HOME/.local/bin:mkdir -p "$HOME/.local/bin" mv sysmenu.sh "$HOME/.local/bin/sysmenu"
To run sysmenu, simply execute the script:
sysmenu--favorites,-f: Show only favorite services.--app,-a: Run as a desktop application (in a loop).
sysmenu allows you to mark services as "favorites" for quicker access. These favorites are stored at ~/.sysmenu_favorites. You can add a service to your favorites from within the sysmenu interface.
sysmenu includes a .desktop file that allows you to launch it as a desktop application from your application menu. The automated installer handles this for you, but if you installed manually, follow these steps:
-
Update the
Execpath insysmenu.desktopto point to the location where you installed thesysmenu.shscript. For example, if you installed it to$HOME/.local/bin/sysmenu, theExeclines should look like this:Exec=$HOME/.local/bin/sysmenu --appand for the favorite action
Exec=$HOME/.local/bin/sysmenu --app --favorites -
Install the
.desktopfile to your applications directory:desktop-file-install --dir="$HOME/.local/share/applications" sysmenu.desktop
After installation, you should be able to find "System Menu" in your application launcher.
To uninstall sysmenu:
curl -fsSL https://raw.githubusercontent.com/marcs-sus/sysmenu/master/uninstall.sh | bashOr simply remove the files:
rm ~/.local/bin/sysmenu
rm ~/.local/share/applications/sysmenu.desktop
rm ~/.sysmenu_favoritesThis project was mainly inspired by sysz, an excellent systemd service selector that provided the foundation for this tool's concept.
sysmenu also wouldn't be possible without these amazing tools: