75 lines
2.1 KiB
Markdown
75 lines
2.1 KiB
Markdown
# URL Eater
|
|
Clean unnecessary parameters from URLs copied to clipboard
|
|
|
|
## Usage
|
|
Run with a filter file that specifies which parameters should be removed:
|
|
```
|
|
url-eater denylist.kdl
|
|
```
|
|
An example filter file:
|
|
```d
|
|
category "Spotify" {
|
|
params "context@open.spotify.com" "si@open.spotify.com"
|
|
}
|
|
category "Campaign tracking (itm)" {
|
|
params "itm_*"
|
|
}
|
|
```
|
|
Categories do not have significance other than to make filter files better structured.
|
|
Each parameter applies to all URLs, unless a domain like `@example.com` is specified at the end.
|
|
Both the parameter and the domain parts can contain wildcards. Use `*` to match 0 or more characters, and `?` to match exactly one character.
|
|
The structure is based on [NeatURL's format](https://github.com/Smile4ever/Neat-URL/#default-blocked-parameters), with a few differences (aside from a different file format):
|
|
- Single character matching (`?`) is supported.
|
|
- `$` and `!` rules are currently unsupported.
|
|
|
|
The intended use case is running the program as a background service.
|
|
|
|
## Example
|
|
Before:
|
|
```
|
|
https://open.spotify.com/track/0ibuggkWTSDXHo25S0Qqvj?si=e4c675cbaee94c3a
|
|
```
|
|
After:
|
|
```
|
|
https://open.spotify.com/track/0ibuggkWTSDXHo25S0Qqvj
|
|
```
|
|
|
|
## Usage example
|
|
This repository also contains a Nix flake. It can be used in a NixOS configuration like this:
|
|
1. Add flake to inputs:
|
|
```nix
|
|
url-eater.url = "github:AgathaSorceress/url-eater";
|
|
```
|
|
2. Add package
|
|
```nix
|
|
nixpkgs.overlays = [
|
|
(final: prev: {
|
|
url-eater = url-eater.defaultPackage.${final.system};
|
|
})
|
|
];
|
|
```
|
|
3. Add a module that defines a systemd service:
|
|
```nix
|
|
{ pkgs, ... }:
|
|
let
|
|
filters = pkgs.writeText "filters.kdl" ''
|
|
category "Spotify" {
|
|
params "context@open.spotify.com" "si@open.spotify.com"
|
|
}
|
|
category "Twitter" {
|
|
params "cxt@*.twitter.com" "ref_*@*.twitter.com" "s@*.twitter.com" "t@*.twitter.com" "twclid"
|
|
}
|
|
'';
|
|
in {
|
|
systemd.user.services."url-eater" = {
|
|
description = "Clipboard URL cleanup service";
|
|
|
|
after = [ "graphical-session-pre.target" ];
|
|
wantedBy = [ "graphical-session.target" ];
|
|
|
|
script = ''
|
|
exec ${pkgs.url-eater}/bin/url-eater ${filters}
|
|
'';
|
|
};
|
|
}
|
|
``` |