Uninstall cleans up after itself; a shorter install command

- desktops.sh uninstall also removes Launch as Standalone's app copies
  and the title bar decoration, and Display Settings' uninstall the
  profiles' launcher entries; its install writes them back from the
  saved profiles (new: ft-layout launchers)
- the README says which settings an uninstall leaves
- the install command is now curl -fsSL https://deejanuz.github.io/
  frametop/get.sh | bash (GitHub Pages, from main)
- ft-gaze logs "action manifest ...: ok" instead of "error 0"

Found in a clean install test on the Frame (2026-10-01): uninstall,
then get.sh from the headset into a fresh clone; everything installed
and doctor.sh passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DeeJanuzandClaude Opus 5.5 committed 2026-10-01 15:42:37 -06:00
1 parent 7bcda94267
commit 8b854fd424
6 files changed
+22 -7

No files matched your search

+3
View File
@@ -58,6 +58,7 @@ Usage (on the Frame host; Frametop Display Settings calls it too):
ft-layout default NAME|none the profile the desktop starts with
ft-layout layouts list the named layouts (* = the one in use)
ft-layout rename OLD NEW | delete NAME
ft-layout launchers write each profile's launcher entry again (and drop stale ones)
ft-layout plan print the arrangement as JSON (no VR needed)
ft-layout scale per-screen scale, positions (as the screens are around
you), and primary to KWin
@@ -1059,6 +1060,8 @@ def main(argv):
delete_named(layout, argv[2])
save_layout(layout)
write_launchers(layout)
elif cmd == "launchers":
write_launchers(load_layout())
elif cmd == "default" and len(argv) == 3:
layout = load_layout()
if argv[2] == "none":