Operator‑grade GUI for managing systemd timers, cron jobs, environment variables, and remote hosts, built with deterministic refresh cycles and strict security invariants.
Suite: Linktech Engineering Tools Suite
Maintainer: Leon McClatchey, Linktech Engineering LLC
License: MIT (source) · Proprietary (binaries, if distributed)
Requires: Python 3.12+
Version: 0.2.0 (In Development)
Packaging: AppImage · Flatpak · DEB · RPM · TGZ · ZIP (planned)
PythonTools: 0.2.0 (integration planned)
Last Updated: 2026‑09‑26
- Overview
- Architecture
- Configuration System (YAML + JSON Schema)
- Features
- Remote Operations
- Security Model
- Development
- Roadmap
- Related Projects
- Documentation Index
- License
TaskScheduler provides a unified, deterministic interface for viewing and managing scheduled tasks across Linux systems. It integrates:
- systemd timers
- cron jobs
- environment variables
- logs
- remote hosts (SSH)
The application is built around operator‑grade principles: predictable behavior, explicit state transitions, deterministic refresh cycles, and strict privilege boundaries.
TaskScheduler uses a layered architecture:
- MainWindow
- Sidebar (scope, user, password, remote mode, host selection)
- Stacked views (Dashboard, Systemd, Cron, Env, Logs)
- Editor windows for each subsystem
- Systemd Manager
- Cron Manager
- Environment Manager
- Orchestrator (deterministic refresh pipeline)
- Security & privilege model
- Remote execution model
- Structured parsers for systemd, cron, and environment files
- Deterministic comment extraction
- Log viewer pipeline
- Config loaders (YAML + JSON Schema)
TaskScheduler now uses a strict schema‑validated configuration pipeline:
Defines:
- mode
- features
- GUI behavior
- safety rules
- install mode
- logging configuration
- paths
Defines OS capability matrix:
- supports_cron
- supports_systemd
- supports_env
- cron/systemd paths
- binaries
- package manager
Defines:
- sudo rules
- user switching rules
- privilege escalation
- vault configuration
- password policy
Defines:
- per‑user settings
- remote host associations
- privilege overrides
All configuration files are validated at startup using JSON Schema Draft‑2020‑12.
TaskScheduler provides:
- systemd timers
- cron jobs
- environment variables
- logs
- Scope (User/System)
- User selection
- Password entry (system scope or user mismatch)
- Remote mode toggle
- Host selection
- Cron editor
- Systemd timer editor
- Environment variable editor
- Inline + preceding comments (cron + systemd)
- Multi‑line comment accumulation
- Description fallback for systemd
- Cron ↔ Systemd
- Env ↔ Cron/Systemd
- SSH config parsing
- Remote cron/systemd/env operations
- Deterministic remote execution pipeline
Remote operations follow the rules defined in Remote.md:
- SSH‑based execution only
- No plaintext transport
- No persistent sessions
- Deterministic command execution
- Vault / Encrypton / SSH key authentication
- Remote cron/systemd/env management
Remote mode integrates seamlessly with the sidebar and password model.
Security follows the invariants defined in Passwords.md and Security.json:
- Passwords never logged
- Passwords never retained longer than necessary
- Passwords never written to disk unless encrypted
- Vault + Encrypton support
- Plaintext only allowed with strict permissions
- System‑scope operations always require authentication
- All password handling goes through PasswordManager
- Remote passwords transmitted only over SSH
Privilege escalation is deterministic and explicit.
- Python 3.12+
- PySide6
- Access to systemctl, journalctl, crontab
python -m timerdecktimerdeck/
├─ ui/
├─ core/
├─ data/
├─ resources/
└─ tests/
- Data integration
- Sidebar refactor
- Password logic
- Remote host enumeration
- Orchestrator conversion
- Editor windows
- Move operations
- Privilege‑aware actions
- Log viewer enhancements
- Diagnostics
- Search/filtering
- Full SSH remote support
- Dark mode
- Packaging
v1.0 release
TaskScheduler is part of the Linktech Engineering Tools Suite, a collection of deterministic, operator‑grade utilities designed for system reliability, automation, and structured tooling.
PythonTools Deterministic Python automation utilities, including:
- structured logging
- safe file operations
- deterministic subprocess orchestration
- cross‑platform helpers
Used internally by TaskScheduler for future orchestration and packaging.
NMS_Tools Network Monitoring System utilities for:
- SNMP polling
- system health checks
- structured diagnostics
- operator‑grade dashboards
Shares architectural principles with TaskScheduler (deterministic refresh, explicit state).
CSharpTools Cross‑platform .NET utilities built with Avalonia:
- GUI tooling
- structured editors
- operator‑grade workflows
- Provides architectural inspiration for TaskScheduler’s UI design.
EpubPublisher (planned) Structured EPUB generation with:
- deterministic chapter ordering
- invariant‑based layout
- operator‑grade publishing pipeline
Will integrate with PythonTools.
PSCleaner (planned) PowerShell cleanup and formatting utilities:
- whitespace normalization
- comment alignment
- deterministic formatting rules
Part of the broader Linktech tooling ecosystem.
A structured documentation index helps operators, contributors, and maintainers navigate TaskScheduler’s architecture and behavior.
- Menus.md Tasks menu, View menu, Help menu, and operator‑grade navigation rules.
- Sidebar.md Scope selector, user selection, password rules, remote mode, host selection, and frame‑based visibility logic.
- Logs.md Logs view, future diagnostics, filtering, and export plans.
- Icons.md Icon system, stroke rules, design invariants, and naming conventions.
See docs/ui/index.md for the complete UI module overview and deterministic design guarantees.
- Systemd.md Timer enumeration, unit linkage, next/last run parsing, comment extraction.
- Cron.md Cron parsing rules, inline comments, preceding comments, multi‑line accumulation.
- Env.md Environment variable extraction, deterministic parsing, editor behavior.
- Orchestrator.md Manager orchestration model, refresh cycles, deterministic state transitions.
See docs/core/index.md for the complete architecture module overview and deterministic guarantees.
- Passwords.md
Password rules:
- required for system scope
- required for user mismatch
- frame‑based visibility
- show/hide toggle behavior
- Remote.md SSH host enumeration, remote mode behavior, host selection rules.
- Structure.md Project layout, module boundaries, UI/core/data separation.
- Testing.md Unit test structure, deterministic test rules, mock environments.
- Packaging.md Packaging plans: AppImage, Flatpak, DEB, RPM, TGZ, ZIP.
- Phase2.md — Data integration & UI stabilization
- Phase3.md — Editors, privilege operations, move operations
- Phase4.md — Diagnostics, search, filtering, SSH
- Phase5.md — Polish, dark mode, packaging, v1.0 release
High‑level architectural overview of TaskScheduler, including:
- Application Structure
- MainWindow
- SidebarWidget
- View stack (Dashboard, Systemd, Cron, Env, Logs)
- Menu system (File, Tasks, View, Help)
- UI Architecture
- Frame‑based sidebar design
- Deterministic visibility rules
- Password logic (system scope + user mismatch)
- Remote mode and host selection
- Icon system and design invariants
- Core Architecture
- Systemd manager
- Cron manager
- Environment manager
- Orchestrator pattern
- Deterministic refresh cycle
- Comment extraction rules
- Security Model
- Privilege boundaries
- Password requirements
- Remote host behavior
- Planned sudo/pkexec integration
- Data Flow
- How views request data
- How managers return structured results
- How refresh cycles propagate through the UI
- How editor windows commit changes
- Future Architectural Extensions
- SSH remote orchestration
- Log viewer pipeline
- Diagnostics subsystem
- Export/reporting pipeline
- Packaging architecture
This document defines the invariants that keep TaskScheduler deterministic, predictable, and operator‑grade.
TaskScheduler is released under the MIT License. See the LICENSE file for full details.