mgradwohl / mgradwohl/tasksmack

[Feature] Service Management (start/stop/enable services)

Open
#800 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement linux priority: high windows
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 to systemctl; fallback to parsing systemctl list-units --type=service output if D-Bus access isn't available.
  • Windows: Service Control Manager (OpenSCManager/EnumServicesStatusEx for listing, ControlService/ChangeServiceConfig for actions).
  • New Platform interface pair (e.g. IServiceProbe/IServiceActions) alongside the existing IProcessActions pattern; wired from the App composition root the same way ProcessesPanel wires IProcessActions today.
  • Control actions should reuse the existing confirmation-dialog pattern (ProcessDetailsPanel::renderConfirmDialog) given the risk of stopping the wrong service.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.