mgradwohl / mgradwohl/tasksmack
[Feature] Service Management (start/stop/enable services)
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1
- Forks
- 0
- Avg merge
- 3h 4m
- Merged PRs (30d)
- 115
Description
Problem Statement
TaskSmack has no way to view or control system services. Windows Task Manager's Services tab and TaskSlinger's service management are both standard in this category. tasksmack.md's own "Current Engineering Direction" section already names "service/startup management" as a candidate area.
Proposed Solution
A new panel/tab listing services (name, status, startup type) with start/stop/restart/enable/disable actions.
Alternatives Considered
Ship a read-only view first (list + status, no control actions) before adding control, since service control actions typically need elevation and carry real risk (stopping the wrong service can affect system stability) — a reasonable phased scope.
Additional Context
n/a
Implementation Notes
- Linux: systemd D-Bus API (
org.freedesktop.systemd1) preferred over shelling out tosystemctl; fallback to parsingsystemctl list-units --type=serviceoutput if D-Bus access isn't available. - Windows: Service Control Manager (
OpenSCManager/EnumServicesStatusExfor listing,ControlService/ChangeServiceConfigfor actions). - New
Platforminterface pair (e.g.IServiceProbe/IServiceActions) alongside the existingIProcessActionspattern; wired from the App composition root the same wayProcessesPanelwiresIProcessActionstoday. - Control actions should reuse the existing confirmation-dialog pattern (
ProcessDetailsPanel::renderConfirmDialog) given the risk of stopping the wrong service.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading tasksmack.md's Current Engineering Direction, then trace the existing IProcessActions pattern, ProcessesPanel wiring, and ProcessDetailsPanel::renderConfirmDialog. Determine whether the first milestone is read-only service listing or full control actions across Linux and Windows. Done means the agreed service panel and its scoped operations work through the App composition root with confirmation for risky actions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100