Skip to content

Repository files navigation

ServiceShift

Shift from services.msc to Debian systemd without losing the familiar overview.

ServiceShift is a focused KDE interface for inspecting and controlling existing systemd services. It is built for Windows administrators moving their daily work to Debian: search the service list, inspect state and startup behavior, then use familiar Start, Stop, Restart, Enable, and Disable actions.

ServiceShift is a thin wrapper around Debian's systemctl. It does not replace systemd, install a service manager, create service files, or maintain its own service database.

Current release: 0.1.1

The Shift suite

Tool Familiar starting point Debian engine
RDPShift An mstsc-style “enter a computer and connect” workflow FreeRDP
SSHShift Windows key → PuTTY → Enter → host → Enter, made native to KDE OpenSSH + Konsole
MapShift A familiar “map network drive” path into KDE applications KDE KIO SMB + KIO-FUSE
ServiceShift A services.msc-style overview with familiar service controls systemd + PolicyKit
TaskShift A Task Scheduler-style overview with safe schedule editing systemd timers + PolicyKit

Behavior

  • Shows system or per-user services, including inactive installed units.
  • Filters by service name, description, and state.
  • Shows the ordinary systemctl status command for the selected service.
  • Uses allowlisted systemctl arguments without invoking a shell.
  • Confirms Stop, Restart, and Disable because they can interrupt workloads or change startup behavior.
  • Lets KDE and PolicyKit handle administrator authentication when systemd requires it. ServiceShift never asks for or handles an administrator password.
  • Saves no service inventory, search history, selected unit, or action history.

The current release intentionally manages existing services only. Editing or creating unit files belongs in a later design that can explain ownership, drop-ins, daemon reloads, and rollback honestly.

Installation on Debian 13

sudo apt install git python3-pyqt6 systemd
git clone https://github.com/MadsIT-com/service-shift.git
cd service-shift
./install.sh

The application appears as ServiceShift in Plasma's application menu. To remove the wrapper:

./uninstall.sh

Uninstalling ServiceShift does not change any service or systemd setting.

Updates stay with Debian

ServiceShift uses Debian's systemd package instead of bundling a service engine. Normal apt upgrades therefore deliver systemd security and bug fixes through the same trusted path as the rest of the operating system.

Testing

python3 -m unittest discover -s tests -v
python3 -m py_compile service-shift
shellcheck install.sh uninstall.sh

Security boundary

Service names, states, and descriptions are not secrets: any local user with the relevant systemd access can query them independently. ServiceShift avoids creating an additional persistent inventory, constrains actions to selected units returned by systemd, and relies on systemd plus PolicyKit for authorization. See SECURITY.md for the complete boundary.

License

MIT. See LICENSE.

About

A profile-free services.msc-style KDE interface for Debian systemd, built for Windows admins moving to Debian.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages