An Emacs interface for managing systemd units based on tabulated-mode. This package provides a convenient way to view, control, and monitor systemd services from within Emacs using transient.
- 📋 View system and user units in a tabulated list interface
- 🚀 Start, stop, and restart systemd units
- ⚙️ Enable and disable units
- 📝 View unit logs in real-time
- 📄 Open unit configuration files for editing
- 🔄 Toggle between system and user units
- 🎨 Syntax highlighting for unit status
- ⚡ Interactive transient menu for quick actions
- Clone this repository:
git clone https://github.com/nineluj/systemd-manager.el.git - Add the directory to your Emacs load path:
(add-to-list 'load-path "/path/to/systemd-manager.el") (require 'systemd-manager)
This package is not yet available on MELPA, but you can install it using package managers like straight.el:
(use-package systemd-manager
:straight (:host github :repo "nineluj/systemd-manager.el"))Launch the systemd manager interface:
M-x systemd-managerThis will open a buffer showing all the system systemd units with their current status. To view user units, press u or call M-x systemd-manager--toggle-user-mode.
In the systemd-manager buffer, you can use these key bindings:
| Key | Action |
|---|---|
s | Start unit |
S | Stop unit |
r | Restart unit |
l | Show logs |
f | Open unit file |
u | Toggle user mode |
g | Refresh buffer |
Press any of the action keys to open the transient menu, which provides a visual interface for all available commands.
- Emacs 27.1 or later
- systemd (obviously!)
systemctlcommand available in PATH
The package works out of the box with minimal configuration needed. However, you can customize various aspects:
Control how long to wait before auto-refreshing the buffer after an action:
(setq systemd-manager--auto-refresh-delay 3) ; Default is 2 secondsThe package is organized into several modules:
systemd-manager.el- Main entry point and package definitionsystemd-manager--core.el- Core functionality and systemctl command executionsystemd-manager--ui.el- User interface and tabulated list displaysystemd-manager--actions.el- Unit control actions (start, stop, restart, etc.)systemd-manager--transient.el- Transient menu definitionssystemd-manager--logs.el- Log viewing functionalitysystemd-manager--faces.el- Face definitions for syntax highlighting
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
To contribute to this project:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See the LICENSE file for the full license text.
- [ ] Enable tailing logs, and generally make the journalctl view better. Potentially integrate with SebastianMeisel/journalctl-mode?
- Initial release
- Basic systemd unit management functionality
- Tabulated list interface
- Unit actions (start, stop, restart, enable, disable)
- Log viewing capabilities
- User/system unit toggle
- Transient menu interface