Firefox Addon / Chrome & Edge Extension
Access long URLs with short, easy-to-remember names.qwiklinks was built as a way to help people get around in their browser faster. Instead of having to memorize URL prefixes or randomly typing in keywords until the search bar autocompletes the URL, you can simply associate the URL with a short and memorable name. In a sense, qwiklinks are similar to bookmarks, but don't require you to use your mouse, take up no screen space, and don't force you to sift through a sea of bookmarks to find the one you're looking for.
If you've used GoLinks, you can think of it as a "personal" alternative to their product. For a more in-depth explanation of the benefits over using bookmarks, see their website and blog post for resources written by those much more proficient in the ways of persuasion than I.
You can use qwiklinks either through an extension on your browser, or as a background service on your local machine (latter is not recommended for now).
The qwiklinks extension allows you to access your links through the browser search bar. Simply type qw <name>
and hit enter to load the corresponding URL. A list of suggestions matching what you currently have typed will appear as you type the name.
You can specify arguments by inserting placeholders such as $1, $2, and $3 in your URL. To use these placeholders, simply type the arguments after the qwiklink name, separated by spaces; for instance, qw mail 0
replaces all occurences of $1
in the "mail" qwiklink URL with 0
.
The qwiklinks extension provides a dashboard to manage your links.
- Click the extension icon on the browser toolbar
- Use the
_dash
qwiklink (qw _dash
) - Open the extension's options page.
If you see a red outline around your field
- A red outline on a name field indicates that it is a duplicate.
- In the case of duplicate names, qwiklinks will use the first one.
- A red outline on a url field indicates that it is an invalid URL. Note that most URLs have to start with a valid protocol, like
https://
You can export your links to a file, which can then be shared across browsers or with other users through the import options. On Firefox, the import options will only appear when the dashboard is open in its own tab (due to some limitations of popups for security reasons).
There are two types of import options:
[append]
will add all of the new links on top of your existing ones, so you won't lose anything.[replace]
is a destructive action. It will override all of your existing links and replace them with the new ones. Take care when using this option (TODO prompt?)
- Arguments ($1, $2, ...)
- Default arguments
- Autosuggest
- Export and import (append/replace)
- Themes
- Make help? less sketchy
- Switch scripts to deno/node?
Development is done Firefox-first, with the Chromium code being generated using scripts/pkg-chromium.sh
. The codebases for the two extensions are practically identical, with a few differences.
- The Firefox extension uses Manifest V2, while the Chromium one uses V3
- The browser APIs for Firefox use the
browser
namespace, while Chromium useschrome
.chrome
should also work in Firefox, but just to be safe, I'll stick withbrowser
for the time being
All scripts live in the scripts/
directory. You can run chmod +x scripts/*.sh
to allow direct execution.
copy-icons
copies the icons from theassets/
folder to the unpacked extension directories.pkg-${browser}
builds the packed extension for the specified browser.pkg-all
does the same as above but for all supported browsers
Use of this is not recommended for now. Unless there's demand for this, development will be on hiatus. It's missing a lot of features and is also a hassle to set up relative to the browser extensions.
Enables browser-agnostic link redirection through the qw/
prefix.
- Ensure localhost port 80 is free.
- Add
127.0.0.1 qw
to your hosts file. - Install deno.
- Generate the binary by running
deno compile --allow-read --allow-net --output qwiklinks service/main.ts
. - Run it with elevated permissions (e.g.
sudo /path/to/qwiklinks
)
- Arguments ($1, $2, ...)
- Web dashboard to manage links
- Export and import links
- Hot reload links.toml