diff --git a/flake.lock b/flake.lock index 1ca406e..501d746 100644 --- a/flake.lock +++ b/flake.lock @@ -1201,6 +1201,22 @@ "type": "github" } }, + "nixpkgs_12": { + "locked": { + "lastModified": 1777268161, + "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1776548001, @@ -1421,90 +1437,6 @@ "type": "github" } }, - "qs-anti-adblock-fuckoff": { - "flake": false, - "locked": { - "narHash": "sha256-r8TloE5nLk2b4FW+lsi5ZBnRRz92HCSZnxFb6Gh1TIY=", - "type": "file", - "url": "https://update.greasyfork.org/scripts/397070/Anti-AdBlocker%20Fuckoff.user.js" - }, - "original": { - "type": "file", - "url": "https://update.greasyfork.org/scripts/397070/Anti-AdBlocker%20Fuckoff.user.js" - } - }, - "qs-bypass-paywalls-clean": { - "flake": false, - "locked": { - "narHash": "sha256-gaJ/dwxYLpETu8t42aC8hT2W6ZruGh9gB4IqK6jk/c0=", - "type": "file", - "url": "https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=userscript/bpc.en.user.js" - }, - "original": { - "type": "file", - "url": "https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=userscript/bpc.en.user.js" - } - }, - "qs-dont-track-me-google": { - "flake": false, - "locked": { - "narHash": "sha256-3WnaMOGedvNTLqvxmL2+2070QyjgcEBFzUgc13wjqr0=", - "type": "file", - "url": "https://update.greasyfork.org/scripts/428243/Don%27t%20track%20me%20Google.user.js" - }, - "original": { - "type": "file", - "url": "https://update.greasyfork.org/scripts/428243/Don%27t%20track%20me%20Google.user.js" - } - }, - "qs-i-dont-care-about-cookies": { - "flake": false, - "locked": { - "narHash": "sha256-cq1Hz8P+tH3WUugOXRjLN4bvpsKCDIynXclzlFPmL0w=", - "type": "file", - "url": "https://update.greasyfork.org/scripts/522645/I%20don%27t%20care%20about%20cookies.user.js" - }, - "original": { - "type": "file", - "url": "https://update.greasyfork.org/scripts/522645/I%20don%27t%20care%20about%20cookies.user.js" - } - }, - "qs-return-youtube-dislike": { - "flake": false, - "locked": { - "narHash": "sha256-bnnaKtgzC0FdQbR1qiojKpn9PyE94tOFLrh1OcC8pko=", - "type": "file", - "url": "https://update.greasyfork.org/scripts/436115/Return%20YouTube%20Dislike.user.js" - }, - "original": { - "type": "file", - "url": "https://update.greasyfork.org/scripts/436115/Return%20YouTube%20Dislike.user.js" - } - }, - "qs-sponsorblock-lite": { - "flake": false, - "locked": { - "narHash": "sha256-GfTwfZVW4Xng5OOG2UBkkWSqADBWyGv/n6bMV0nFxkA=", - "type": "file", - "url": "https://update.greasyfork.org/scripts/560869/SponsorBlock%20Lite.user.js" - }, - "original": { - "type": "file", - "url": "https://update.greasyfork.org/scripts/560869/SponsorBlock%20Lite.user.js" - } - }, - "qs-tracking-token-stripper": { - "flake": false, - "locked": { - "narHash": "sha256-G1V4oUE1JJGFZIJz5qaGhjVDCCSrMSeL5nnn+WA97bM=", - "type": "file", - "url": "https://github.com/doggy8088/TrackingTokenStripper/raw/refs/heads/master/TrackingTokenStripper.user.js" - }, - "original": { - "type": "file", - "url": "https://github.com/doggy8088/TrackingTokenStripper/raw/refs/heads/master/TrackingTokenStripper.user.js" - } - }, "quickshell": { "inputs": { "nixpkgs": [ @@ -1565,16 +1497,10 @@ "nixpkgs": "nixpkgs_8", "nixpkgs-stable": "nixpkgs-stable", "nvf": "nvf", - "qs-anti-adblock-fuckoff": "qs-anti-adblock-fuckoff", - "qs-bypass-paywalls-clean": "qs-bypass-paywalls-clean", - "qs-dont-track-me-google": "qs-dont-track-me-google", - "qs-i-dont-care-about-cookies": "qs-i-dont-care-about-cookies", - "qs-return-youtube-dislike": "qs-return-youtube-dislike", - "qs-sponsorblock-lite": "qs-sponsorblock-lite", - "qs-tracking-token-stripper": "qs-tracking-token-stripper", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", - "stylix": "stylix" + "stylix": "stylix", + "usbguard-tui": "usbguard-tui" } }, "sops-nix": { @@ -1918,6 +1844,24 @@ "type": "github" } }, + "usbguard-tui": { + "inputs": { + "nixpkgs": "nixpkgs_12" + }, + "locked": { + "lastModified": 1777931773, + "narHash": "sha256-Vvv2c/f9eTrk1XKJQpygwznw1jjazDxyKu5xzRSJK2U=", + "owner": "anotherhadi", + "repo": "usbguard-tui", + "rev": "8c250389b33f1f6676a1ae657b052e1885f856b2", + "type": "github" + }, + "original": { + "owner": "anotherhadi", + "repo": "usbguard-tui", + "type": "github" + } + }, "vpnconfinement": { "locked": { "lastModified": 1765634578, diff --git a/flake.nix b/flake.nix index 95f4ad5..9732127 100644 --- a/flake.nix +++ b/flake.nix @@ -45,35 +45,6 @@ awesome-wallpapers.url = "github:anotherhadi/awesome-wallpapers"; iknowyou.url = "github:anotherhadi/iknowyou"; - # Qutebrowser userscripts (greasemonkey) - qs-return-youtube-dislike = { - url = "https://update.greasyfork.org/scripts/436115/Return%20YouTube%20Dislike.user.js"; - flake = false; - }; - qs-sponsorblock-lite = { - url = "https://update.greasyfork.org/scripts/560869/SponsorBlock%20Lite.user.js"; - flake = false; - }; - qs-dont-track-me-google = { - url = "https://update.greasyfork.org/scripts/428243/Don%27t%20track%20me%20Google.user.js"; - flake = false; - }; - qs-i-dont-care-about-cookies = { - url = "https://update.greasyfork.org/scripts/522645/I%20don%27t%20care%20about%20cookies.user.js"; - flake = false; - }; - qs-tracking-token-stripper = { - url = "https://github.com/doggy8088/TrackingTokenStripper/raw/refs/heads/master/TrackingTokenStripper.user.js"; - flake = false; - }; - qs-bypass-paywalls-clean = { - url = "https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=userscript/bpc.en.user.js"; - flake = false; - }; - qs-anti-adblock-fuckoff = { - url = "https://update.greasyfork.org/scripts/397070/Anti-AdBlocker%20Fuckoff.user.js"; - flake = false; - }; }; outputs = inputs @ { diff --git a/home/programs/qutebrowser/userscripts.nix b/home/programs/qutebrowser/userscripts.nix index 1a39dbe..16348e6 100644 --- a/home/programs/qutebrowser/userscripts.nix +++ b/home/programs/qutebrowser/userscripts.nix @@ -1,39 +1,47 @@ { + config, + lib, pkgs, - inputs, ... }: { - xdg.dataFile = { - # Startpage: hide sponsored results (custom script, no upstream) - "qutebrowser/greasemonkey/startpage-no-ads.user.js".text = '' - // ==UserScript== - // @name Startpage - Hide Ads - // @match https://www.startpage.com/* - // @run-at document-start - // ==/UserScript== + xdg.dataFile."qutebrowser/greasemonkey/startpage-no-ads.user.js".text = '' + // ==UserScript== + // @name Startpage - Hide Ads + // @match https://www.startpage.com/* + // @run-at document-start + // ==/UserScript== - new MutationObserver(function(mutations) { - mutations.forEach((mutation) => { - if (mutation.type === 'childList') { - mutation.addedNodes.forEach((node) => { - if (node.nodeType === 1 && node.nodeName === 'DIV' && node.id === 'gcsa-top') { - node.remove(); - this.disconnect(); - } - }); - } - }); - }).observe(document, { childList: true, subtree: true }); - ''; + new MutationObserver(function(mutations) { + mutations.forEach((mutation) => { + if (mutation.type === 'childList') { + mutation.addedNodes.forEach((node) => { + if (node.nodeType === 1 && node.nodeName === 'DIV' && node.id === 'gcsa-top') { + node.remove(); + this.disconnect(); + } + }); + } + }); + }).observe(document, { childList: true, subtree: true }); + ''; - "qutebrowser/greasemonkey/return-youtube-dislike.user.js".source = inputs.qs-return-youtube-dislike; - "qutebrowser/greasemonkey/sponsorblock-lite.user.js".source = inputs.qs-sponsorblock-lite; - "qutebrowser/greasemonkey/dont-track-me-google.user.js".source = inputs.qs-dont-track-me-google; - "qutebrowser/greasemonkey/i-dont-care-about-cookies.user.js".source = - inputs.qs-i-dont-care-about-cookies; - "qutebrowser/greasemonkey/tracking-token-stripper.user.js".source = - inputs.qs-tracking-token-stripper; - "qutebrowser/greasemonkey/bypass-paywalls-clean.user.js".source = inputs.qs-bypass-paywalls-clean; - "qutebrowser/greasemonkey/anti-adblock-fuckoff.user.js".source = inputs.qs-anti-adblock-fuckoff; - }; + home.activation.downloadUserscripts = lib.hm.dag.entryAfter ["writeBoundary"] '' + scripts_dir="${config.home.homeDirectory}/.local/share/qutebrowser/greasemonkey" + $DRY_RUN_CMD mkdir -p "$scripts_dir" + + download() { + local name="$1" url="$2" + if [[ ! -f "$scripts_dir/$name" ]]; then + $DRY_RUN_CMD ${pkgs.curl}/bin/curl -sSL -o "$scripts_dir/$name" "$url" || true + fi + } + + download "return-youtube-dislike.user.js" "https://update.greasyfork.org/scripts/436115/Return%20YouTube%20Dislike.user.js" + download "sponsorblock-lite.user.js" "https://update.greasyfork.org/scripts/560869/SponsorBlock%20Lite.user.js" + download "dont-track-me-google.user.js" "https://update.greasyfork.org/scripts/428243/Don%27t%20track%20me%20Google.user.js" + download "i-dont-care-about-cookies.user.js" "https://update.greasyfork.org/scripts/522645/I%20don%27t%20care%20about%20cookies.user.js" + download "tracking-token-stripper.user.js" "https://github.com/doggy8088/TrackingTokenStripper/raw/refs/heads/master/TrackingTokenStripper.user.js" + download "bypass-paywalls-clean.user.js" "https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=userscript/bpc.en.user.js" + download "anti-adblock-fuckoff.user.js" "https://update.greasyfork.org/scripts/397070/Anti-AdBlocker%20Fuckoff.user.js" + ''; }