Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OmaLink

An Omarchy bar widget for Linkwarden, the self-hosted bookmark/link manager. Add, search, edit, favorite (pin) and delete links without leaving the desktop.

Panel

Features

  • 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/k move, enter opens the selected link in your browser, f pins/unpins, e edits, x deletes, / focuses search, a opens the add form, h/l switch between All and Favorites, esc steps back or closes

Requirements

  • A running Linkwarden instance (self-hosted or linkwarden.app)
  • A Linkwarden API token (Settings → Access Tokens in the Linkwarden web UI)

Install

omarchy plugin add https://github.com/marcuspelo/omalink.git

Setup

  1. Create ~/.config/omalink/.env with your Linkwarden API token:
    API_KEY=your-linkwarden-api-token
    URL_BASE=https://your-linkwarden-host
    
    Keeping the token in this file (outside the plugin folder) instead of shell.json keeps it out of any config you might sync or share. URL_BASE is optional but recommended: omarchy plugin disable/enable drops the widget's bar-layout entry (including whatever baseUrl was set via the panel or omarchy bar set), so a value in .env is what keeps working across that reset.
  2. Enable the widget:
    omarchy plugin enable marcuspelo.omalink
    Setting baseUrl via omarchy bar set marcuspelo.omalink baseUrl "https://your-linkwarden-host" is only needed if URL_BASE isn't set in .env.

Security

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.

Configuration

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)

Keyboard shortcuts

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

Remove

omarchy plugin remove marcuspelo.omalink

License

MIT

About

An Omarchy bar widget for Linkwarden, the self-hosted bookmark/link manager. Add, search, edit, favorite (pin) and delete links without leaving the desktop.

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages