Repository navigation
Quicklinks - #8
rafalyovson wants to merge 7 commits into
Conversation
Pure JS shared by QML and node tests: save/update/remove/import/export with unique names, the SPEC §8.3 placeholder grammar for links, ICU dates, web-address detection, and the argv that opens a link. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Quicklink rows and actions, the four Quicklinks commands, Search Quicklinks, and Open in Browser / Create Quicklink for a typed address. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
quicklinks.* methods and store, the create/edit form with an Open With picker, the argument form, import, export and delete confirmation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4bd673e to
09e85a9
Compare
Brings PR typecraft-dev#8 up to date with main and joins the features both sides built separately: - Quicklink arguments use main's argument pills. Candidates carry {name, placeholder, required} plus defaultValue and options; a default makes an argument optional, and an option argument steps with up/down. The PR's own inline argument fields are dropped. - Delete Quicklink asks through main's confirm alert instead of a pushed confirm-delete view. - The quicklink form, Open With picker and import view keep their editor key handling alongside main's popups, filter and vim bindings. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Hi @rafalyovson, this PR conflicts with I merged current
Unit tests pass (121), Pick up the merge commit if you like ( |
…main merge - The confirm alert ignores a key repeat, so a held Enter that opened "Delete Quicklink" (or Shut Down, Restart, Log Out) cannot also confirm it. - An edit key such as Ctrl+U in an empty argument pill is swallowed instead of falling through and clearing the search text and the other arguments. - Drop the quicklinks screenshot: it showed the inline fields this merge replaced with main's pills. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks @amanmprojects, I took your merge as is (b18512e), so this is up to date with main again. On top of it, 462497b brings back two guards that #8 had and main's code doesn't: the confirm alert now ignores a key repeat, so a held Enter can't open and confirm Delete Quicklink in one go (the same applies to main's Shut Down / Restart alerts), and Ctrl+U in an empty argument pill no longer falls through and clears the search. I also dropped the screenshot, since it showed the old inline fields. Tested live: pills, Tab, Ctrl+U, and delete through the alert. |
Both sides extended the same places. The PR's `editor` flag now also covers the script-menu input prompt, replacing the fork's `textEntry`; the result list keeps the PR's form anchoring and the fork's detail-pane width; notifications, empty states and placeholders keep both sets.
Keep main's async search, row reuse, delayed loading footer, and clipboard paste. Keep this branch's quicklink forms, Open With, argument pills, and delete confirmation. Tab moves between form fields. Ctrl+U in an empty pill does not clear the search. A repeated Enter does not confirm an alert. Keys do not change the query while an alert is open, and the Open With list treats typing as its search. Co-authored-by: Rafa Lyóvson <rafa@lyovson.com>
Put back the notes from the quicklinks branch, including the held Enter guard and the oma-cast run pill prompt. Clear pendingPrompt when the launcher hides so the next open does not focus that pill. Co-authored-by: Rafa Lyóvson <rafa@lyovson.com>
Quicklinks (SPEC §8.4)
Adds Raycast-style quicklinks:
github.com/x,localhost:3000,https://…) adds a Link section with Open in Browser and Create Quicklink.{argument}(name, default, options; up to 3), legacy{query}and{word:default},{clipboard},{selection}(primary selection),{uuid},{date}/{time}/{datetime}/{day}with ICU formats, offsets andlocale=, and every modifier.{cursor},{snippet},{calculator},{browser-tab}and{clipboard offset=N}are refused with a message.xdg-openfor everything else.[{name, link, openWith?}]JSON. Import takes a file path, or the clipboard when the field is left empty. Export writes~/Downloads/oma-cast-quicklinks-<date>.jsonand copies it to the clipboard.Design notes
plugin/core/Quicklinks.jsis pure JS and has no imports. RootSearch receives it throughdeps.omarchy-launch-browserfor http(s) (the same launcher the web-search fallbacks use),xdg-openfor paths and other schemes, anduwsm-app -- gtk-launch <id>for a chosen app. A link that starts with-or usesjavascript:is refused.| raw). Values in a file-path link are not, so~/Notes/{argument}openstodo list.md.wl-pasteunder a 2 s timeout. It uses the data-control protocol, so it works after the launcher has closed.e.g,vs.codeandnode.jsstay searches.localhost, loopback and private IPv4 hosts open ashttp://; other bare hosts ashttps://.{clipboard}can't be read (empty, not text, or timed out), you get a notification instead of a half-filled link.Try it
DuckDuckGoand set the link tohttps://duckduckgo.com/?q={argument name=query}. Ctrl+↵ saves.duck, press Tab, type a search and press ↵.Testing
mainthrough @amanmprojects' merge (b18512e): thank you. On top of it, 462497b restores two guards: the confirm alert ignores a key repeat, so a held Enter can't open and confirm a delete at once, and Ctrl+U in an empty pill no longer clears the search.node --test tests/: 120 of 121 pass, also underTZ=America/Los_AngelesandTZ=Asia/Yerevan. The one failure isthe installed Omarchy menu parses completely, which reads the local menu file and is unchanged frommain. Myomarchy-devbuild has nostyleentry at the top of that menu.omarchy-dev4.0.0.r7241 (Hyprland 0.56.2): argument pills with Tab, Ctrl+U in an empty pill, Delete through the alert (the alias, favourite and ranking are removed too),omarchy plugin validate, and no QML errors after reload.🤖 Generated with Claude Code