Skip to content

feat: auto-detect desktop in make install, simplify install docs - #12

Merged
vdemonchy merged 1 commit into
mainfrom
feat/auto-detect-install
Jun 7, 2026
Merged

vdemonchy merged 1 commit into
mainfrom
feat/auto-detect-install

Conversation

@vdemonchy

Copy link
Copy Markdown
Owner

Summary

make install is now a true one-command install. It builds the daemon, installs the core (udev rule + systemd --user service), detects the desktop, and installs the matching frontend — the GNOME Shell extension or the COSMIC applet.

Makefile

  • New install-frontend prerequisite on install. It honors FRONTEND=gnome|cosmic|none if set, otherwise detects from $XDG_CURRENT_DESKTOP (lowercased, substring-matched — so ubuntu:GNOME, pop:GNOME, COSMIC all resolve correctly).
  • Detection happens at recipe (shell) time, then dispatches via $(MAKE) install-gnome / install-cosmic, keeping a single source of truth. Those targets remain as explicit overrides.
  • COSMIC without Rust: core still installs, and the user is told to install Rust and run make install-cosmic — never a half-broken state.
  • Unknown desktop: core installs, the two explicit commands are printed.

Docs

  • INSTALL.md: rewritten make-first (Quick install → Finish the frontend → Verify → Uninstall). The manual curl/release-artefact steps are demoted to an Installing without a toolchain appendix.
  • README.md: Install section leads with the single auto-detecting make install; per-desktop blocks reframed around the one manual finish step.
  • CONTRIBUTING.md: clarifies make install now includes the frontend, and that the per-component targets are the dev path.

Test plan

  • make -n install parses and expands the full chain (daemon → udev → service → frontend).
  • Detection verified across ubuntu:GNOME, GNOME, COSMIC, pop:GNOME, KDE, empty, gnome-xorg.
  • FRONTEND=none and unknown-value branches print the expected guidance without side effects.
  • All INSTALL.md internal anchors resolve to real headings.

🤖 Generated with Claude Code

`make install` now installs the core (daemon + udev rule + systemd user
service) AND the matching frontend, detected from $XDG_CURRENT_DESKTOP:
GNOME gets the Shell extension, COSMIC gets the native applet. A new
`install-frontend` target does the detection at recipe (shell) time and
dispatches to the existing `install-gnome` / `install-cosmic` targets,
which stay as explicit overrides.

- FRONTEND=gnome|cosmic|none forces or skips the frontend (headless/SSH).
- COSMIC detected but Rust missing: core still installs, prints how to
  finish with `make install-cosmic` (never a half-broken state).
- Unknown desktop: core installs, prints the two explicit commands.

Docs simplified to lead with the one-command flow:
- INSTALL.md is now make-first; the manual release-artefact route is
  demoted to an "Installing without a toolchain" appendix.
- README Install section leads with auto-detecting `make install`.
- CONTRIBUTING.md notes `make install` includes the frontend and that the
  per-component targets are the dev path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the enhancement New feature or request label Jun 7, 2026
@vdemonchy
vdemonchy merged commit 564b299 into main Jun 7, 2026
1 check passed
@vdemonchy
vdemonchy deleted the feat/auto-detect-install branch June 7, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant