Skip to content

feat: add Linux normal support - #1

Draft
Neo-Isshin wants to merge 1 commit into
normalfrom
codex/linux-normal
Draft

feat: add Linux normal support#1
Neo-Isshin wants to merge 1 commit into
normalfrom
codex/linux-normal

Conversation

@Neo-Isshin

Copy link
Copy Markdown
Owner

Summary

  • add a GTK3 + Cairo Linux implementation for the classic normal clock face
  • reuse the existing 14 local usage parsers, with SQLite history stored under XDG data paths
  • provide Linux loopback usage/history APIs on port 9988
  • adapt the installer and CLI for Linux, XDG autostart, and normal-only variant selection
  • add system-library shims for GTK3 and SQLite plus a reproducible Linux Docker build
  • document Linux installation, dependencies, behavior, and intentional feature limits

Why

The normal branch was macOS-only because its executable target, UI, persistence paths, installer, and CLI assumed SwiftUI/AppKit and macOS services. This change introduces a Linux-specific target while leaving the existing macOS normal build isolated and intact.

User impact

Debian and Ubuntu users can build and run the normal classic TokenClock, inspect all 14 supported local tool parsers, retain history via XDG directories, use the loopback API, and register login autostart. Liquid Glass, the macOS theme editor, and weather/location UI remain intentionally unavailable on Linux.

The Debian validation also found that the CLI only discovered .build/debug/TokenClock; it now recognizes release/debug binaries in both standard and architecture-qualified SwiftPM paths.

Validation

  • swift build on macOS normal
  • Linux Swift 6 release build in Ubuntu 22.04 container
  • production Docker image dependency validation for GTK3, SQLite, and libcurl
  • GUI/process smoke test under Xvfb
  • /api/usage and /api/history smoke tests
  • Debian 12.15 Bookworm ARM64 build and runtime validation with Swift 6.0.3
  • Debian CLI discovery/start/doctor and normal-only guard validation
  • bash -n cli/install.sh
  • bash -n cli/tokenclock
  • git diff --check

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant