example-extensions | ||
LICENSE | ||
README.md | ||
xdg-sanity | ||
xdg-sanity.sh |
xdg-sanity
The xdg-sanity
script is built to replace your default web browser in your
desktop/XDG settings. It intercepts http/s URIs sent to the default browser by
xdg-open
and sends it to the appropriate application. For example, it will
send image/jpeg
MIME type files to your image viewer.
Installation
Arch Linux
I maintain a package on the AUR.
From Source
Dependencies:
curl(1)
xdg-utils(1)
orhandlr(1)
tomcat(1)
You can get tomcat
here
Instructions:
Clone this repository and move the xdg-sanity
binary wherever your operating
system stores locally-installed binaries. This is usually /usr/local/bin
or
$HOME/.local/bin
for your user. Make sure the installation location is in your
$PATH
.
Create an xdg-sanity.desktop
file either manually or with gendesk(1)
,
placing it where your OS stores locally-installed .desktop
files, which is
usually /usr/local/share/applications
or $XDG_DATA_HOME/applications
for
your user. Set your default web browser to that .desktop
file with
xdg-settings(1)
or an equivalent.
Configuration
This program uses TOML for its configuration. The configuration file is set up like this:
$ cat $XDG_CONFIG_HOME/xdg-sanity.toml
[tools]
browser = "firefox"
xdg = "handlr launch"
The options available for xdg
are handlr launch
if you use handlr(1)
and
xdg-open
if you use xdg-utils(1)
.
Usage
xdg-sanity [RESOURCE]
Open links from applications outside your web browser as normal. Alternatively,
you can call xdg-sanity
directly with the only argument accepted being a URI.
Extensions
Extensions are written using TOML and are stored in either
/usr/share/xdg-sanity
when installed from a package manager,
/usr/local/share/xdg-sanity
when installed locally, or
$XDG_DATA_HOME/xdg-sanity
for your user.
There are two types of extensions: MIME and replace. MIME extensions are parsed first and replace the MIME type of the content being fetched. Replace extensions change the URI passed to the command to another.
The type of the extension depends on the file name. MIME extensions should have
a name ending in -mime.toml
and replace extensions should have
-replace.toml
.
Here's what a MIME extension looks like:
cat $XDG_DATA_HOME/xdg-sanity/youtube-mime.toml
[replace]
urls = [ "youtube.com", "youtu.be" ]
[with]
mime = "video/vnd.youtube.yt"
and here's what a replace extension looks like:
cat $XDG_DATA_HOME/xdg-sanity/youtube-replace.toml
[replace]
urls = [ "youtube.com", "youtu.be" ]
[with]
url = "https://piped.mint.lgbt/"