An Omarchy bar widget for Linkwarden, the self-hosted bookmark/link manager. Add, search, edit, favorite (pin) and delete links without leaving the desktop.
- Search — full-text search across your Linkwarden links
- Favorites — a dedicated tab backed by Linkwarden's native "pinned" links, no tags required
- Add link — URL, name, description, collection and tags (existing tags are searchable, new ones are created on the fly)
- Edit link — the same form, pre-filled, to change any of the above on an existing link
- Delete — with an inline confirm step to avoid mistakes
- Keyboard-driven:
j/kmove,enteropens the selected link in your browser,fpins/unpins,eedits,xdeletes,/focuses search,aopens the add form,h/lswitch between All and Favorites,escsteps back or closes
- A running Linkwarden instance (self-hosted or linkwarden.app)
- A Linkwarden API token (Settings → Access Tokens in the Linkwarden web UI)
omarchy plugin add https://github.com/marcuspelo/omalink.git- Create
~/.config/omalink/.envwith your Linkwarden API token:Keeping the token in this file (outside the plugin folder) instead ofAPI_KEY=your-linkwarden-api-token URL_BASE=https://your-linkwarden-hostshell.jsonkeeps it out of any config you might sync or share.URL_BASEis optional but recommended:omarchy plugin disable/enabledrops the widget's bar-layout entry (including whateverbaseUrlwas set via the panel oromarchy bar set), so a value in.envis what keeps working across that reset. - Enable the widget:
Setting
omarchy plugin enable marcuspelo.omalinkbaseUrlviaomarchy bar set marcuspelo.omalink baseUrl "https://your-linkwarden-host"is only needed ifURL_BASEisn't set in.env.
The API token never appears in process arguments: every curl call sends it as an Authorization: Bearer header supplied over the child process's stdin (curl -K - with a header = "Authorization: Bearer ..." config line), not as a -H argument — so it's invisible to ps/process inspection. ~/.config/omalink/.env is also set to mode 0600 automatically every time the plugin reads it; you can do this yourself too: chmod 600 ~/.config/omalink/.env.
Available settings (shell.json, or omarchy bar set marcuspelo.omalink <key> <value>):
| Setting | Type | Default | Description |
|---|---|---|---|
baseUrl |
string | (empty) | Base URL of your Linkwarden instance (no trailing slash). Falls back to URL_BASE in ~/.config/omalink/.env when unset. |
pageSize |
integer | 20 |
Results requested per search page (5–100) |
defaultCollectionId |
integer | 0 |
Collection pre-selected when adding a new link (0 = Unorganized) |
| Key | Action |
|---|---|
j / k |
Move selection down / up |
h / l |
Switch to "All" / "Favorites" |
enter |
Open the selected link in your browser |
f |
Pin/unpin (favorite) the selected link |
e |
Edit the selected link |
x |
Delete the selected link (with confirm) |
/ |
Focus the search field |
a |
Open the add-link form |
r |
Refresh |
esc |
Back a screen, or close the panel |
omarchy plugin remove marcuspelo.omalinkMIT
