diff --git a/flake.lock b/flake.lock index 8da4378..a6e80d7 100644 --- a/flake.lock +++ b/flake.lock @@ -68,21 +68,6 @@ "type": "github" } }, - "crane": { - "locked": { - "lastModified": 1766774972, - "narHash": "sha256-8qxEFpj4dVmIuPn9j9z6NTbU+hrcGjBOvaxTzre5HmM=", - "owner": "ipetkov", - "repo": "crane", - "rev": "01bc1d404a51a0a07e9d8759cd50a7903e218c82", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, "disko": { "inputs": { "nixpkgs": [ @@ -173,24 +158,6 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1765835352, - "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "a34fae9c08a15ad73f295041fec82323541400a9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-utils": { "inputs": { "systems": "systems" @@ -433,21 +400,6 @@ "type": "github" } }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1765674936, - "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, "nixpkgs-unstable": { "locked": { "lastModified": 1773646010, @@ -626,7 +578,7 @@ "rec-sh": "rec-sh", "sops-nix": "sops-nix", "stylix": "stylix", - "xremap": "xremap" + "zen-browser": "zen-browser" } }, "sops-nix": { @@ -810,43 +762,26 @@ "type": "github" } }, - "xremap": { + "zen-browser": { "inputs": { - "crane": "crane", - "flake-parts": "flake-parts_2", - "nixpkgs": [ - "nixpkgs" + "home-manager": [ + "home-manager" ], - "xremap": "xremap_2" + "nixpkgs": [ + "nixpkgs-unstable" + ] }, "locked": { - "lastModified": 1771968045, - "narHash": "sha256-BK2Zcio1gBMTIjIV2MfULqgxv21Y4S9HbgzGuI4AzSc=", - "owner": "xremap", - "repo": "nix-flake", - "rev": "b89f36dd4a0a68d904a4995e3156f0ac758fcdd6", + "lastModified": 1773737882, + "narHash": "sha256-P6k0BtT1/idYveVRdcwAZk8By9UjZW8XOMhSoS6wTBY=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "a7f1db35d74faf04e5189b3a32f890186ace5c28", "type": "github" }, "original": { - "owner": "xremap", - "repo": "nix-flake", - "type": "github" - } - }, - "xremap_2": { - "flake": false, - "locked": { - "lastModified": 1771790974, - "narHash": "sha256-hXbCEdWcpOvHsFIE7pQw3evqPjqXJhEYBCBJKoGVzJQ=", - "owner": "k0kubun", - "repo": "xremap", - "rev": "a2fc6caa0c7d35d87d130437dc4a4582a3908871", - "type": "github" - }, - "original": { - "owner": "k0kubun", - "ref": "v0.14.15", - "repo": "xremap", + "owner": "0xc000022070", + "repo": "zen-browser-flake", "type": "github" } } diff --git a/flake.nix b/flake.nix index 215f0db..763e75a 100644 --- a/flake.nix +++ b/flake.nix @@ -29,11 +29,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - xremap = { - url = "github:xremap/nix-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - heart-modpack = { url = "git+ssh://gitea@spacestation/heart/modpack.git"; # url = "git+file:///home/guz/.projects/heart-modpack"; @@ -55,6 +50,12 @@ url = "git+https://code.capytal.cc/dot013/rec.sh/?ref=main"; inputs.nixpkgs.follows = "nixpkgs"; }; + + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + inputs.home-manager.follows = "home-manager"; + }; }; outputs = { diff --git a/home/terminal/browser.nix b/home/terminal/browser.nix index 2656be9..e14c7d1 100644 --- a/home/terminal/browser.nix +++ b/home/terminal/browser.nix @@ -1,242 +1,364 @@ { config, lib, + osConfig, pkgs, self, ... -}: -with lib; { +}: { imports = [ - self.homeManagerModules.qutebrowser-profiles - ./scripts.nix - ./profiles.nix + self.homeManagerModules.zen-browser ]; - programs.qutebrowser = { - enable = true; + xdg.mimeApps.defaultApplications = with lib; + listToAttrs (map (name: { + inherit name; + value = config.programs.zen-browser.package.meta.desktopFileName; + }) [ + "application/x-extension-shtml" + "application/x-extension-xhtml" + "application/x-extension-html" + "application/x-extension-xht" + "application/x-extension-htm" + "x-scheme-handler/unknown" + "x-scheme-handler/mailto" + "x-scheme-handler/chrome" + "x-scheme-handler/about" + "x-scheme-handler/https" + "x-scheme-handler/http" + "application/xhtml+xml" + "application/json" + "text/plain" + "text/html" + ]); - keyBindings = { - normal = { - ",m" = "spawn umpv {url}"; - ",M" = "hint links spawn umpv {hint-url}"; - ";M" = "hint --rapid links spawn umpv {hint-url}"; - "tD" = "config-cycle -t -u {url} colors.webpage.darkmode.enabled false true ;; reload"; - }; + programs.zen-browser = let + locked = v: { + Value = v; + Status = "locked"; }; - settings = { - auto_save.session = true; - confirm_quit = ["downloads"]; - - tabs.width = builtins.floor (1920 * 0.1); - tabs.position = "left"; - - # Colors - colors.tabs.pinned.even.bg = mkForce "#181818"; - colors.tabs.pinned.odd.bg = mkForce "#181818"; - - colors.tabs.selected.even.bg = mkForce "#CDD6F4"; # Catppuccin's Text - colors.tabs.selected.odd.bg = mkForce "#CDD6F4"; # Catppuccin's Text - colors.tabs.selected.even.fg = mkForce "#111111"; - colors.tabs.selected.odd.fg = mkForce "#111111"; - - colors.tabs.pinned.selected.even.bg = mkForce "#CDD6F4"; # Catppuccin's Text - colors.tabs.pinned.selected.odd.bg = mkForce "#CDD6F4"; # Catppuccin's Text - - ## Darkmode - colors.webpage.darkmode.enabled = true; - colors.webpage.darkmode.algorithm = "lightness-cielab"; - colors.webpage.darkmode.policy.images = "never"; - - # Prevent fingerprinting - content.canvas_reading = false; - content.cookies.accept = "all"; - content.cookies.store = true; - content.geolocation = false; - content.webgl = false; - content.webrtc_ip_handling_policy = "default-public-interface-only"; + "beacon.enabled" = locked false; + "browser.startup.page" = locked 3; + "device.sensors.enabled" = locked false; + "dom.battery.enabled" = locked false; + "dom.event.clipboardevents.enabled" = locked false; + "geo.enabled" = locked false; + "media.peerconnection.enabled" = locked false; + "privacy.clearHistory.cookiesAndStorage" = locked false; + "privacy.clearHistory.siteSettings" = locked false; + "privacy.firstparty.isolate" = locked true; + "privacy.resistFingerprinting" = locked true; + "privacy.trackingprotection.enabled" = locked true; + "privacy.trackingprotection.socialtracking.enabled" = locked true; + "webgl.disabled" = true; + "zen.view.use-single-toolbar" = false; }; - - extraConfig = '' - config.set('colors.webpage.darkmode.enabled', False, 'file://*') - config.set('colors.webpage.darkmode.enabled', False, 'http://*:*/*') - - config.set('colors.webpage.darkmode.enabled', False, 'capytal.company') - config.set('colors.webpage.darkmode.enabled', False, '*.capytal.company') - config.set('colors.webpage.darkmode.enabled', False, 'capytal.cc') - config.set('colors.webpage.darkmode.enabled', False, '*.capytal.cc') - config.set('colors.webpage.darkmode.enabled', False, 'lored.dev') - config.set('colors.webpage.darkmode.enabled', False, '*.lored.dev') - config.set('colors.webpage.darkmode.enabled', False, 'guz.one') - config.set('colors.webpage.darkmode.enabled', False, '*.guz.one') - - # Thanks to @hseg on GitHub (https://github.com/qutebrowser/qutebrowser/issues/6880#issuecomment-1815248845) - config.bind('o', 'cmd-set-text -s :open -s') - config.bind('go', 'cmd-set-text :open -s {url:pretty}') - config.bind('O', 'cmd-set-text -s :open -s -t') - config.bind('gO', 'cmd-set-text :open -s -t -r {url:pretty}') - config.bind('xo', 'cmd-set-text -s :open -s -b') - config.bind('xO', 'cmd-set-text :open -s -b -r {url:pretty}') - config.bind('wo', 'cmd-set-text -s :open -s -w') - config.bind('wO', 'cmd-set-text :open -s -w {url:pretty}') - config.bind('pp', 'open -s -- {clipboard}') - config.bind('pP', 'open -s -- {primary}') - config.bind('Pp', 'open -s -t -- {clipboard}') - config.bind('PP', 'open -s -t -- {primary}') - config.bind('wp', 'open -s -w -- {clipboard}') - config.bind('wP', 'open -s -w -- {primary}') - ''; - - searchEngines = { - DEFAULT = "https://search.brave.com/search?q={}"; - # Nix - pkg = "https://search.nixos.org/packages?query={}"; - opt = "https://search.nixos.org/options?query={}"; - lib = "https://noogle.dev/q?term={}"; - hm = "https://home-manager-options.extranix.com/?query={}"; - wiki = "https://wiki.nixos.org/w/index.php?search={}"; - - # Wikipedia - w = "https://en.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1"; - wpt = "https://pt.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1"; - }; - - profiles = let - programmingSearchEngines = { - # Languages - go = "https://pkg.go.dev/search?q={}"; - }; - setColor = c: { - colors.tabs.selected.even.bg = c; - colors.tabs.selected.odd.bg = c; - colors.tabs.pinned.selected.even.bg = c; - colors.tabs.pinned.selected.odd.bg = c; - }; - in { - "art".settings = setColor "#CBA6F7"; # Catppuccin's Mauve; - "personal".settings = setColor "#F5E0DC"; # Catppuccin's Rosewater - "work" = { - settings = setColor "#74C7EC"; # Catppuccin's Sapphire - searchEngines = programmingSearchEngines; - }; - "job" = { - settings = - (config.programs.qutebrowser.profiles."work".settings) - // { - confirm_quit = ["always"]; - content.webgl = true; - } - // (setColor "#A6E2A1"); # Catppuccin's Green - searchEngines = programmingSearchEngines; - }; - "shopping".settings = setColor "#F9E2AF"; # Catppuccin's Yellow - "goverment".settings = setColor "#A6ADC8"; # Catppuccin's Subtext 1 - "academic".settings = - { - confirm_quit = ["always"]; - content.webgl = true; - } - // setColor "#19236F"; - "facebook".settings = setColor "#1877F2"; # Facebook's Blue - "yt-music".settings = - { - tabs.width = 10; - } - // (setColor "#FF0000"); # Youtube's Red - }; - - greasemonkey = [ - # Youtube Adblocking - (pkgs.fetchurl { - url = "https://raw.githubusercontent.com/afreakk/greasemonkeyscripts/refs/heads/master/youtube_adblock.js"; - hash = "sha256-AyD9VoLJbKPfqmDEwFIEBMl//EIV/FYnZ1+ona+VU9c="; - }) - - # Youtube Sponsorblock - (pkgs.fetchurl { - url = "https://raw.githubusercontent.com/afreakk/greasemonkeyscripts/refs/heads/master/youtube_sponsorblock.js"; - hash = "sha256-nwNade1oHP+w5LGUPJSgAX1+nQZli4Rhe8FFUoF5mLE="; - }) - - # Reddit adblock - (pkgs.fetchurl { - url = "https://github.com/afreakk/greasemonkeyscripts/raw/refs/heads/master/reddit_adblock.js"; - hash = "sha256-KmCXL4GrZtwPLRyAvAxADpyjbdY5UFnS/XKZFKtg7tk="; - }) - - # Pinterest adblock - (pkgs.writeText "pinterest_adblock.js" '' - // ==UserScript== - // @name remove ads from pinterest - // @version 1.0.0 - // @author guz - // @match *://*.pinterest.com/* - // ==/UserScript== - - const removeShit = () => { - document.querySelectorAll('[data-grid-item]:has([title="Promoted by"])').forEach((e) => e.remove()); - document.querySelectorAll('[data-grid-item]:has([data-test-id="oneTapPromotedPin"])').forEach((e) => e.remove()); - document.querySelectorAll('[data-grid-item]:has([aria-label="Product Pin"])').forEach((e) => e.remove()); - // document.querySelectorAll('[data-grid-item]:has-text(ideas you might love)').forEach((e) => e.remove()); - // document.querySelectorAll('[data-grid-item]:has-text(Seaches to try)').forEach((e) => e.remove()); + in { + enable = true; + profiles."default" = { + containersForce = true; + containers = { + Personal = { + color = "purple"; + icon = "fingerprint"; + id = 1; }; - (trySetInterval = () => { - window.setInterval(removeShit, 1000); - })(); - '') - - # Privacy Redirector - (pkgs.substitute { - src = pkgs.fetchurl { - url = "https://github.com/dybdeskarphet/privacy-redirector/raw/refs/heads/main/privacy-redirector.user.js"; - hash = "sha256-xj36+/3coiStIxftWCJUWHokSEmr+YRLOTktbmn5TkU="; + Work = { + color = "blue"; + icon = "fingerprint"; + id = 2; }; - substitutions = [ - # ON-OFF (Redirection / Farside) - "--replace" - "pinterest = [true, true]" - "pinterest = [false, false]" - "--replace" - "tumblr = [true, false]" - "tumblr = [false, false]" - "--replace" - "wikipedia = [true, false]" - "wikipedia = [false, false]" - "--replace" - "youtube = [true, false]" - "youtube = [false, false]" - "--replace" - "instagram = [true, true]" - "instagram = [false, false]" - ]; - }) - ]; + Shopping = { + color = "yellow"; + icon = "cart"; + id = 4; + }; + Goverment = { + color = "orange"; + icon = "dollar"; + id = 5; + }; + Academic = { + color = "orange"; + icon = "briefcase"; + id = 6; + }; + }; + extensions.force = true; + extensions.settings = { + "tridactyl.vim@cmcaine.co.uk".settings = { + userconfig = { + configVersion = "2.0"; + nmaps = { + "K" = "tabprev"; + "J" = "tabnext"; + }; + theme = "midnight"; + searchurls = with lib; + mapAttrs' (n: v: + nameValuePair + ( + if v?definedAliases + then elemAt v.definedAliases 0 + else n + ) + (replaceString "{searchTerms}" "" (elemAt v.urls 0).template)) + config.programs.zen-browser.profiles."default".search.engines; + }; + }; + "uBlock0@raymondhill.net".settings = { + selectedFilterLists = [ + "user-filters" + "ublock-filters" + "ublock-badware" + "ublock-privacy" + "ublock-unbreak" + "ublock-quick-fixes" + "easylist" + "easyprivacy" + "urlhaus-1" + "plowe-0" + ]; + dynamicFilteringString = '' + behind-the-scene * * noop + behind-the-scene * inline-script noop + behind-the-scene * 1p-script noop + behind-the-scene * 3p-script noop + behind-the-scene * 3p-frame noop + behind-the-scene * image noop + behind-the-scene * 3p noop + * * 3p-script block + * * 3p-frame block + capytal.cc * * noop + capytal.company * * noop + guz.one * * noop + keikos.work * * noop + lored.dev * * noop + home-manager-options.extranix.com extranix.com * noop + home-manager-options.extranix.com home-manager-options.extranix.com * noop + ''; + }; + "{ef87d84c-2127-493f-b952-5b4e744245bc}".settings = { + baseUrl = "http://127.0.0.1:5600"; + consentRequired = true; + consent = true; + hostname = osConfig.networking.hostName; + enabled = true; + browserName = "zen"; + }; + "7esoorv3@alefvanoon.anonaddy.me".settings = with builtins; fromJSON (readFile ./libredirect.json); + }; + search.default = "brave"; + search.force = true; + search.engines = { + brave = { + name = "Brave"; + urls = [{template = "https://search.brave.com/search?q={searchTerms}";}]; + }; + go = { + name = "Go Packages"; + urls = [{template = "https://pkg.go.dev/search?q={searchTerms}";}]; + icon = pkgs.fetchurl { + url = "https://pkg.go.dev/static/shared/logo/go-white.svg"; + hash = "sha256-oqFYZnPAxESEpY0Qcz5OPiCMTWXyI1nqOEYmsdbGqy4="; + }; + definedAliases = ["@go"]; + }; + mdn = { + name = "MDN"; + urls = [{template = "https://developer.mozilla.org/en-US/search?q={searchTerms}";}]; + icon = pkgs.fetchurl { + url = "https://developer.mozilla.org/static/client/mdn-m.70aac857e4a908d0.svg"; + hash = "sha256-sTAKxjk5b8lUaa9057LOH0H3N54LeXkPF/mOe4gpHDI="; + }; + definedAliases = ["@mdn"]; + }; + nix-home-manager = { + name = "Home Manager"; + urls = [{template = "https://home-manager-options.extranix.com/?query={searchTerms}";}]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@hm"]; + }; + nix-noodle = { + name = "Noodle"; + urls = [{template = "https://noogle.dev/q?term={searchTerms}";}]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@lib"]; + }; + nix-options = { + name = "Nix Options"; + urls = [{template = "https://search.nixos.org/options?query={searchTerms}";}]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@opt"]; + }; + nix-packages = { + name = "Nix Packages"; + urls = [{template = "https://search.nixos.org/packages?query={searchTerms}";}]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@pkg"]; + }; + nix-wiki = { + name = "Nix Wiki"; + urls = [ + {template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";} + {template = "https://nixos.wiki/index.php?search={searchTerms}";} + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@wiki"]; + }; + }; + settings = with builtins; + mapAttrs (n: v: + if isAttrs v + then v.Value + else v) + settings; + shortcuts = { + "key_search" = {key = "";}; + "key_search2" = {key = "";}; + "zen-workspace-forward" = { + key = "j"; + modifiers = { + control = true; + }; + action = "cmd_zenWorkspaceForward"; + }; + "zen-workspace-backward" = { + key = "k"; + modifiers = { + control = true; + }; + action = "cmd_zenWorkspaceBackward"; + }; + }; + spacesForce = true; + spaces = let + containers = config.programs.zen-browser.profiles."default".containers; + in { + "Space" = { + id = "c6de089c-410d-4206-961d-ab11f988d40a"; + position = 1000; + }; + "Work" = { + id = "cdd10fab-4fc5-494b-9041-325e5759195b"; + icon = "chrome://browser/skin/zen-icons/selectable/star-1.svg"; + container = containers."Work".id; + position = 7000; + }; + "Work 2" = { + id = "761ecf8e-5850-4030-b0d8-0d4c0efe1a2e"; + icon = "chrome://browser/skin/zen-icons/selectable/star.svg"; + container = containers."Work".id; + position = 6000; + }; + "Work 3" = { + id = "fdbed307-bad6-4ddb-bb6d-2d1bab864162"; + icon = "chrome://browser/skin/zen-icons/selectable/sun.svg"; + container = containers."Work".id; + position = 5000; + }; + "Academic" = { + id = "92529b12-d9ab-4a65-887c-056e041ff497"; + icon = "chrome://browser/skin/zen-icons/selectable/school.svg"; + container = containers."Academic".id; + position = 4000; + }; + "Goverment" = { + id = "7e83e835-caef-4b94-be0c-b6b3959d0830"; + icon = "chrome://browser/skin/zen-icons/selectable/folder.svg"; + container = containers."Goverment".id; + position = 3000; + }; + "Shopping" = { + id = "78aabdad-8aae-4fe0-8ff0-2a0c6c4ccc24"; + icon = "chrome://browser/skin/zen-icons/selectable/basket.svg"; + container = containers."Shopping".id; + position = 2000; + }; + }; + }; + policies = { + AutofillAdressEnabled = true; + AutofillCreditCardEnabled = false; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + ExtensionSettings = { + "@contain-facebook" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/facebook-container/latest.xpi"; + installation_mode = "force_installed"; + }; + "7esoorv3@alefvanoon.anonaddy.me" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/libredirect/latest.xpi"; + installation_mode = "force_installed"; + }; + "addon@darkreader.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; + installation_mode = "force_installed"; + }; + "addon@simplelogin" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/simplelogin/latest.xpi"; + installation_mode = "force_installed"; + }; + "deArrow@ajay.app" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi"; + installation_mode = "force_installed"; + }; + "extraneous@sysrqmagician.github.io" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/extraneous/latest.xpi"; + installation_mode = "force_installed"; + }; + "idcac-pub@guus.ninja" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/istilldontcareaboutcookies/latest.xpi"; + installation_mode = "force_installed"; + }; + "tridactyl.vim@cmcaine.co.uk" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/tridactyl-vim/latest.xpi"; + installation_mode = "force_installed"; + }; + "sponsorBlocker@ajay.app" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; + installation_mode = "force_installed"; + }; + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + "{74145f27-f039-47ce-a470-a662b129930a}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/clearurls/latest.xpi"; + installation_mode = "force_installed"; + }; + "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/violentmonkey/latest.xpi"; + installation_mode = "force_installed"; + }; + "{ef87d84c-2127-493f-b952-5b4e744245bc}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/aw-watcher-web/latest.xpi"; + installation_mode = "force_installed"; + }; + }; + DisableAppUpdate = true; + DisableFeedbackCommands = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DontCheckDefaultBrowser = true; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + Preferences = with builtins; + mapAttrs ( + n: v: + if isAttrs v + then v + else {Value = v;} + ) + settings; + ShowHomeButton = false; + WindowsSSO = false; + }; }; - - programs.mpv.enable = true; - programs.mpv.scripts = with pkgs.mpvScripts; [ - quality-menu - sponsorblock - ]; - - xdg.mimeApps.defaultApplications = listToAttrs (map (name: { - inherit name; - value = config.programs.qutebrowser.package.meta.desktopFileName; - }) [ - "application/x-extension-shtml" - "application/x-extension-xhtml" - "application/x-extension-html" - "application/x-extension-xhtm" - "application/x-extension-htm" - "x-scheme-handler/unknown" - "x-scheme-handler/mailto" - "x-scheme-handler/chrome" - "x-scheme-handler/about" - "x-scheme-handler/https" - "x-scheme-handler/http" - "application/xhtml+xml" - "application/json" - "text/plain" - "text/html" - ]); } diff --git a/home/terminal/configuration.nix b/home/terminal/configuration.nix index bd10155..d0fe994 100644 --- a/home/terminal/configuration.nix +++ b/home/terminal/configuration.nix @@ -1,44 +1,61 @@ { - config, inputs, + lib, pkgs, - pkgs-unstable, self, ... -}: { +} @ args: { imports = [ inputs.home-manager.nixosModules.default ]; # User + home-manager = { + backupFileExtension = "bkp"; + extraSpecialArgs = {inherit (args) inputs self pkgs-unstable;}; + useGlobalPkgs = true; + useUserPackages = true; + users."guz" = ./home.nix; + }; + users.users."guz" = { extraGroups = ["wheel" "guz"]; isNormalUser = true; - hashedPasswordFile = builtins.toString config.sops.secrets."guz/password".path; + password = "1313"; + # hashedPasswordFile = builtins.toString config.sops.secrets."guz/password".path; shell = self.packages.${pkgs.stdenv.hostPlatform.system}.devkit.zsh; }; users.groups."guz" = {}; - home-manager.backupFileExtension = "bkp"; - home-manager.extraSpecialArgs = {inherit inputs self pkgs-unstable;}; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users."guz" = ./home.nix; + # Shell + programs.zsh.enable = true; services.displayManager.sddm = { enable = true; + extraPackages = with pkgs; [ + kdePackages.qtmultimedia + kdePackages.qtsvg + kdePackages.qtvirtualkeyboard + ]; + theme = "${pkgs.sddm-astronaut.override {embeddedTheme = "hyprland_kath";}}/share/sddm/themes/sddm-astronaut-theme"; wayland.enable = true; }; + services.desktopManager.gnome = { + enable = true; + }; + programs.hyprland = { enable = true; withUWSM = true; xwayland.enable = true; }; + # Steam + programs.steam.enable = true; + xdg.portal.xdgOpenUsePortal = true; xdg.portal.extraPortals = with pkgs; [xdg-desktop-portal-gtk]; - # Shell - programs.zsh.enable = true; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; } diff --git a/home/terminal/desktop.nix b/home/terminal/desktop.nix index dff44bf..6d67f85 100644 --- a/home/terminal/desktop.nix +++ b/home/terminal/desktop.nix @@ -1,285 +1,98 @@ { config, - lib, - osConfig, pkgs, ... -}: -with lib; { - xdg.configFile."uwsm/env".source = "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh"; # Set environment variables - - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = mkForce false; # Incompatible with UWSM - package = null; # Use the package from the NixOS module - portalPackage = null; # Use the package from the NixOS module - settings = { - "$MONITOR-1" = mkDefault ""; - "$MONITOR-2" = mkDefault ""; - - animations.enabled = true; - - decoration.rounding = 5; - decoration.dim_inactive = true; - decoration.dim_strength = 0.2; - decoration.dim_around = 0.4; - - exec-once = [ - "wl-paste --type text --watch cliphist store" - "wl-paste --type image --watch cliphist store" - ]; - - dwindle.pseudotile = true; - dwindle.preserve_split = true; - - general.gaps_in = 5; - general.gaps_out = 10; - general.border_size = 0; - general.layout = "dwindle"; - - input.kb_layout = elemAt 0 (strings.splitString "-" osConfig.console.keyMap); - input.kb_variant = elemAt 1 (strings.splitString "-" osConfig.console.keyMap); - input.follow_mouse = 1; - input.sensitivity = 0; - - monitor = [", preferred, auto, 1"]; - - workspace = [ - # Primary monitor - "1,monitor:$MONITOR-1,default:true" - "2,monitor:$MONITOR-1" - "3,monitor:$MONITOR-1" - "4,monitor:$MONITOR-1" - "5,monitor:$MONITOR-1" - # Second monitor - "6,monitor:$MONITOR-2" - "7,monitor:$MONITOR-2" - "8,monitor:$MONITOR-2" - "9,monitor:$MONITOR-2" - "10,monitor:$MONITOR-2,default:true" - ]; - - # Keymaps - bind = [ - # Applications shortcut - "SUPER, Q, exec, ${config.home.sessionVariables.TERMINAL}" # Terminal - # TODO: "SUPER, E, exec, " # File manager - "SUPER, W, exec, xdg-open https://search.brave.com" - - # Launcher - # TODO: "SUPER, S, exec, " - "SUPER, I, exec, ${getExe pkgs.rofimoji}" # Emoji Picker - - # Navigation - "SUPER, C, killactive" - "SUPER, F, fullscreen" - "SUPER_SHIFT, F, togglefloating" - - "SUPER, h, movefocus l" - "SUPER, l, movefocus r" - "SUPER, k, movefocus u" - "SUPER, j, movefocus d" - - "SUPER, 1, workspace 1" - "SUPER, 2, workspace 2" - "SUPER, 3, workspace 3" - "SUPER, 4, workspace 4" - "SUPER, 5, workspace 5" - "SUPER, 6, workspace 6" - "SUPER, 7, workspace 7" - "SUPER, 8, workspace 8" - "SUPER, 9, workspace 9" - "SUPER, 0, workspace 10" - - "SUPER_SHIFT, 1, movetoworkspace 1" - "SUPER_SHIFT, 2, movetoworkspace 2" - "SUPER_SHIFT, 3, movetoworkspace 3" - "SUPER_SHIFT, 4, movetoworkspace 4" - "SUPER_SHIFT, 5, movetoworkspace 5" - "SUPER_SHIFT, 6, movetoworkspace 6" - "SUPER_SHIFT, 7, movetoworkspace 7" - "SUPER_SHIFT, 8, movetoworkspace 8" - "SUPER_SHIFT, 9, movetoworkspace 9" - "SUPER_SHIFT, 0, movetoworkspace 10" - - # Clipboard manager - "SUPER, V, exec, cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy" - - # Print region - ",Print, exec, ${getExe pkgs.grim} -g \"$(${getExe slurp} -d)\" - | wl-copy" - - # Copy color - "SUPER, P, exec, ${getExe pkgs.hyprpicker} | wl-copy" - ]; - # Mouse Keymaps - bindm = [ - "SUPER, mouse:272, movewindow" # Left-click - "SUPER, mouse:273, resizewindow" # Right-click - ]; - }; - }; - - # Application Launcher - programs.rofi = { - enable = true; - modes = ["drun" "emoji"]; - }; - - # Clipboard - services.cliphist = { - enable = true; - allowImages = true; - }; - home.packages = with pkgs; [ - wl-clipboard +}: { + programs.gnome-shell.enable = true; + programs.gnome-shell.extensions = with pkgs.gnomeExtensions; [ + {package = arcmenu;} + {package = blur-my-shell;} + {package = forge;} + {package = gsconnect;} ]; - # Notifications - services.dunst = { - enable = true; - settings = { - global.follow = "mouse"; + dconf.enable = true; + dconf.settings = { + "org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = with pkgs.gnomeExtensions; [ + arcmenu.extensionUuid + blur-my-shell.extensionUuid + forge.extensionUuid + gsconnect.extensionUuid + ]; + }; + "org/gnome/shell/app-switcher" = { + current-workspace-only = true; + }; + "org/gnome/mutter" = { + dynamic-workspaces = false; + num-workspaces = 5; + }; + "org/gnome/desktop/wm/keybindings" = { + close = ["C"]; + minimize = []; + move-to-workspace-1 = ["1"]; + move-to-workspace-2 = ["2"]; + move-to-workspace-3 = ["3"]; + move-to-workspace-4 = ["4"]; + move-to-workspace-5 = ["5"]; + switch-to-workspace-1 = ["1"]; + switch-to-workspace-2 = ["2"]; + switch-to-workspace-3 = ["3"]; + switch-to-workspace-4 = ["4"]; + switch-to-workspace-5 = ["5"]; + toggle-quick-settings = []; + }; + "org/gnome/desktop/wm/preferences" = { + focus-mode = "mouse"; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + screensaver = []; + }; + "org/gtk/gtk4/settings/file-chooser" = { + show-hidden = true; + }; + "org/gnome/shell/extensions/arcmenu" = { + menu-button-appearance = "None"; + runner-hotkey = ["S"]; + runner-position = "Centered"; + runner-show-frequent-apps = true; + show-activities-button = true; + }; + "org/gnome/shell/extensions/blur-my-shell/panel" = { + blur = false; + }; + "org/gnome/shell/extensions/forge" = { + dnd-center-layout = "stacked"; + focus-on-hover-enabled = true; + tabbed-tiling-mode-enabled = false; + move-pointer-focus-enabled = true; + window-toggle-float = ["F"]; + window-toggle-always-float = []; }; }; - # Bar - programs.waybar.settings = let - layer = "top"; - position = "top"; + home.packages = with pkgs; [ + gnome-extension-manager + gnome-tweaks + ]; - height = 25; - spacing = 5; + qt.enable = true; + qt.style.name = "adwaita-dark"; - margin-top = 5; - margin-x = 10; - margin-right = margin-x; - margin-left = margin-x; - in { - main = let - monitor = config.wayland.windowManager.hyprland.settings."$MONITOR-1"; - in { - inherit - layer - position - height - spacing - margin-top - margin-right - margin-left - ; - - output = [monitor]; - - modules-left = [ - "hyprland/workspaces" - ]; - - "hyprland/workspaces" = { - active-only = false; - persistent-workspaces = { - "${monitor}" = [1 2 3 4 5]; - }; - format = "{icon}"; - format-icons = { - default = ""; - active = ""; - }; - }; - - modules-center = [ - "clock" - ]; - - modules-right = [ - "pulseaudio" - ]; - - "clock" = { - format = "{:%d 󰥔 %R}"; - format-alt = "{:%B %d, 12.0%y (%A)}"; - tooltip-format = "{calendar}"; - calendar = { - mode = "year"; - mode-mon-col = 3; - weeks-pos = "left"; - on-scroll = 1; - format = with config.lib.stylix.colors.withHashtag; { - months = "{}"; - days = "{}"; - weeks = "W{}"; - weeksdays = "{}"; - today = "{}"; - }; - }; - }; - - "pulseaudio" = { - format = "{icon} {volume}%"; - format-muted = ""; - format-icons = { - default = ["" ""]; - }; - onclick = "${lib.getExe pkgs.pwvucontrol}"; - }; - }; - secondary = let - monitor = config.wayland.windowManager.hyprland.settings."$MONITOR-2"; - in { - inherit - layer - position - height - spacing - margin-top - margin-right - margin-left - ; - - output = [monitor]; - - modules-left = [ - "cpu" - "memory" - "disk" - ]; - - "cpu" = { - format = " {usage}%"; - }; - - "memory" = { - format = " {percentage}%"; - }; - - "disk" = { - interval = 30; - format = "󰨣 {specific_free:0.2f}"; - unit = "GB"; - }; - - modules-center = [ - "hyprland/window" - ]; - - "hyprland/window" = { - format = "{title}"; - }; - - modules-right = [ - "hyprland/workspaces" - ]; - - "hyprland/workspaces" = { - active-only = false; - persistent-workspaces = { - "${monitor}" = [6 7 8 9 10]; - }; - format = "{icon}"; - format-icons = { - default = ""; - active = ""; - }; - }; + # Fonts + fonts.fontconfig.enable = true; + fonts.fontconfig.defaultFonts = with config.stylix.fonts; { + sansSerif = [sansSerif.name]; + serif = [serif.name]; + monospace = [monospace.name]; + emoji = [emoji.name]; + }; + stylix.fonts = { + monospace = { + package = pkgs.nerd-fonts.fira-code; + name = "FiraCode Nerd Font"; }; }; } diff --git a/home/terminal/impermanence.nix b/home/terminal/impermanence.nix index 4f1c1ba..7b58bc2 100644 --- a/home/terminal/impermanence.nix +++ b/home/terminal/impermanence.nix @@ -8,8 +8,10 @@ with lib; { mode = elemAt d 0; } else d) [ + ["0755" "Academic"] ["0755" "Documents"] ["0755" "Downloads"] + ["0755" "Job"] ["0755" "KritaRecorder"] ["0755" "Music"] ["0755" "Nextcloud"] @@ -19,20 +21,22 @@ with lib; { ["0755" "go"] ["0700" ".gnupg"] ["0700" ".ssh"] + ["0755" ".steam"] ["0755" ".cache/blender"] ["0755" ".cache/go-build"] ["0755" ".cache/godot"] ["0700" ".cache/gopls"] ["0755" ".cache/nvim"] - ["0700" ".cache/qutebrowser"] ["0755" ".cache/starship"] ["0700" ".cache/wezterm"] ["0755" ".cache/zellij"] + ["0700" ".cache/zen"] + ["0755" ".config/sops/age"] ["0755" ".config/blender"] ["0751" ".config/inkscape"] ["0600" ".config/kritarc"] ["0644" ".config/kritadisplayrc"] - ["0755" ".config/qutebrowser"] + ["0755" ".config/zen"] ["0755" ".local/share/direnv"] ["0700" ".local/share/keyrings"] ]; diff --git a/home/terminal/libredirect.json b/home/terminal/libredirect.json new file mode 100644 index 0000000..64722fb --- /dev/null +++ b/home/terminal/libredirect.json @@ -0,0 +1,637 @@ +{ + "options": { + "youtube": { + "enabled": true, + "redirectType": "main_frame", + "frontend": "invidious", + "embedFrontend": "invidious", + "unsupportedUrls": "bypass", + "redirectOnlyInIncognito": false + }, + "invidious": ["https://inv.nadeko.net"], + "materialious": ["https://app.materialio.us"], + "piped": ["https://pipedapi-libre.kavin.rocks"], + "pipedMaterial": ["https://piped-material.xn--17b.net"], + "poketube": ["https://poketube.fun"], + "cloudtube": ["https://tube.cadence.moe"], + "lightTube": ["https://tube.kuylar.dev"], + "tuboYoutube": ["https://tubo.media"], + "viewtube": ["https://viewtube.io"], + "ytify": ["https://ytify.pp.ua"], + "youtubeMusic": { + "enabled": false, + "frontend": "invidiousMusic", + "unsupportedUrls": "bypass", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "hyperpipe": ["https://hp.ggtyler.dev"], + "invidiousMusic": [], + "twitter": { + "enabled": true, + "redirectType": "main_frame", + "unsupportedUrls": "bypass", + "frontend": "nitter", + "instance": "public", + "redirectOnlyInIncognito": false + }, + "nitter": [ + "https://nitter.tiekoetter.com", + "https://xcancel.com", + "https://nitter.privacyredirect.com" + ], + "chatGpt": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "duckDuckGoAiChat", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "bluesky": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "skyview", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "skyview": ["https://skyview.social"], + "reddit": { + "enabled": true, + "frontend": "redlib", + "unsupportedUrls": "bypass", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "libreddit": [], + "redlib": [ + "https://safereddit.com", + "https://l.opnxng.com", + "https://redlib.thebunny.zone" + ], + "teddit": [], + "eddrit": ["https://eddrit.com"], + "tumblr": { + "enabled": false, + "redirectType": "main_frame", + "unsupportedUrls": "bypass", + "frontend": "priviblur", + "instance": "public", + "redirectOnlyInIncognito": false + }, + "priviblur": ["https://pb.bloat.cat"], + "twitch": { + "enabled": true, + "redirectType": "main_frame", + "unsupportedUrls": "bypass", + "frontend": "safetwitch", + "instance": "public", + "redirectOnlyInIncognito": false + }, + "safetwitch": [ + "https://safetwitch.drgns.space", + "https://twitch.seitan-ayoub.lol", + "https://safetwitch.lunar.icu", + "https://safetwitch.privacyredirect.com", + "https://safetwitch.darkness.services" + ], + "twineo": ["https://twineo.exozy.me"], + "tiktok": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "proxiTok", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "proxiTok": [ + "https://proxitok.pabloferreiro.es", + "https://proxitok.pussthecat.org", + "https://tok.habedieeh.re", + "https://tok.artemislena.eu", + "https://cringe.whatever.social", + "https://proxitok.lunar.icu", + "https://cringe.seitan-ayoub.lol", + "https://proxitok.belloworld.it" + ], + "offtiktok": ["https://www.offtiktok.com"], + "instagram": { + "enabled": false, + "frontend": "proxigram", + "unsupportedUrls": "bypass", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "proxigram": ["https://ig.opnxng.com"], + "imdb": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "libremdb", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "libremdb": [ + "https://libremdb.iket.me", + "https://libremdb.pussthecat.org", + "https://libremdb.lunar.icu", + "https://binge.whatever.social", + "https://libremdb.r4fo.com", + "https://libremdb.catsarch.com", + "https://d.opnxng.com", + "https://libremdb.ducks.party", + "https://lmdb.bloat.cat", + "https://libremdb.franklyflawless.org", + "https://libremdb-fly.fly.dev" + ], + "bilibili": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "mikuInvidious", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "mikuInvidious": [], + "pixiv": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "pixivFe", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "pixivFe": [ + "https://pixiv.perennialte.ch", + "https://pixivfe.thebunny.zone", + "https://pixivfe.darkness.services", + "https://pixivfe.ducks.party" + ], + "liteXiv": ["https://litexiv.465321.best", "https://litexiv.bloat.cat"], + "vixipy": ["https://vx.maid.zone"], + "pixivViewer": ["https://pixiv.pictures"], + "fandom": { + "enabled": true, + "unsupportedUrls": "bypass", + "instance": "public", + "frontend": "breezeWiki", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "breezeWiki": [ + "https://breezewiki.com", + "https://breezewiki.pussthecat.org", + "https://antifandom.com", + "https://bw.artemislena.eu", + "https://breeze.hostux.net", + "https://z.opnxng.com", + "https://breeze.nohost.network", + "https://breeze.mint.lgbt", + "https://breezewiki.catsarch.com", + "https://breezewiki.hyperreal.coffee", + "https://breezewiki.4o1x5.dev", + "https://fandom.reallyaweso.me", + "https://breezewiki.nadeko.net", + "https://fan.blitzw.in" + ], + "imgur": { + "enabled": true, + "redirectType": "main_frame", + "unsupportedUrls": "bypass", + "frontend": "rimgo", + "instance": "public", + "redirectOnlyInIncognito": false + }, + "rimgo": [ + "https://rimgo.pussthecat.org", + "https://ri.nadeko.net", + "https://rimgo.in.projectsegfau.lt", + "https://rimgo.us.projectsegfau.lt", + "https://rimgo.eu.projectsegfau.lt", + "https://rimgo.catsarch.com", + "https://rimgo.nohost.network", + "https://r.opnxng.com", + "https://imgur.fsky.io", + "https://rimgo.astrial.org", + "https://rimgo.canine.tools", + "https://rimgo.thebunny.zone", + "https://imgur.nerdvpn.de", + "https://rg.kuuro.net" + ], + "pinterest": { + "enabled": true, + "unsupportedUrls": "bypass", + "redirectType": "main_frame", + "frontend": "binternet", + "redirectOnlyInIncognito": false + }, + "binternet": [ + "https://bn.bloat.cat", + "https://binternet.darkness.services", + "https://binternet.revvy.de", + "https://binternet.lunar.icu", + "https://binternet.privacyredirect.com", + "https://binternet.4o1x5.dev", + "https://binternet.ducks.party", + "https://bn.opnxng.com", + "https://pin.blitzw.in", + "https://bn.kuuro.net" + ], + "painterest": ["https://pt.bloat.cat"], + "soundcloud": { + "enabled": true, + "redirectType": "main_frame", + "frontend": "soundcloak", + "unsupportedUrls": "bypass", + "redirectOnlyInIncognito": false + }, + "tuboSoundcloud": ["https://tubo.media"], + "soundcloak": [ + "https://sc.opnxng.com", + "https://sc.bloat.cat", + "https://sc.maid.zone", + "https://sc.kuuro.net", + "https://sc.tijn.dev", + "https://sc2.bloat.cat" + ], + "bandcamp": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "tent", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "tent": [ + "https://tent.sny.sh", + "https://tent.bloat.cat", + "https://tent.nbh.ax", + "https://tent.lab8.cz", + "https://tent.deep-swarm.xyz", + "https://tn.vern.cc", + "https://tn.maid.zone", + "https://tn.dc09.ru" + ], + "tekstowo": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "tekstoLibre", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "tekstoLibre": ["https://davilarek.github.io/TekstoLibre"], + "genius": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "dumb", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "dumb": [ + "https://dumb.lunar.icu", + "https://dumb.ducks.party", + "https://dumb.hyperreal.coffee", + "https://db.kuuro.net", + "https://lyr.dc09.ru" + ], + "intellectual": ["https://intellectual.insprill.net"], + "medium": { + "frontend": "scribe", + "enabled": true, + "unsupportedUrls": "bypass", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "scribe": [ + "https://scribe.rip", + "https://scribe.privacyredirect.com", + "https://scribe.r4fo.com", + "https://m.opnxng.com", + "https://scribe.nixnet.services" + ], + "libMedium": ["https://md.vern.cc"], + "small": ["https://small.bloat.cat"], + "freedium": ["https://freedium.cfd"], + "quora": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "quetre", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "quetre": [ + "https://quetre.iket.me", + "https://quetre.pussthecat.org", + "https://q.opnxng.com", + "https://quetre.lunar.icu", + "https://ask.habedieeh.re", + "https://quetre.ducks.party", + "https://quetre.drgns.space", + "https://qt.bloat.cat", + "https://quetre.franklyflawless.org", + "https://quetre.privacyredirect.com" + ], + "github": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "gothub", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "gothub": [], + "gitlab": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "laboratory", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "laboratory": ["https://lab.vern.cc"], + "stackOverflow": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "anonymousOverflow", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "anonymousOverflow": [ + "https://code.whatever.social", + "https://overflow.hostux.net", + "https://overflow.adminforge.de", + "https://overflow.lunar.icu", + "https://ao.owo.si", + "https://anonoverflow.frontendfriendly.xyz", + "https://ao.bloat.cat", + "https://anonoverflow.hyperreal.coffee", + "https://exchange.seitan-ayoub.lol" + ], + "reuters": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "neuters", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "neuters": ["https://neuters.de"], + "snopes": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "suds", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "suds": ["https://sd.vern.cc"], + "ifunny": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "unfunny", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "unfunny": ["https://uf.vern.cc"], + "tenor": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "soprano", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "soprano": ["https://sp.vern.cc"], + "knowyourmeme": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "meme", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "meme": ["https://mm.vern.cc"], + "urbanDictionary": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "ruralDictionary", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "ruralDictionary": [ + "https://ruraldictionary.franklyflawless.org", + "https://rd.thirtysix.pw", + "https://rd.bloat.cat" + ], + "goodreads": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "biblioReads", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "biblioReads": [ + "https://biblioreads.lunar.icu", + "https://biblioreads.eu.org", + "https://read.seitan-ayoub.lol", + "https://biblioreads.ducks.party", + "https://biblioreads.privacyredirect.com", + "https://br.bloat.cat", + "https://biblioreads.franklyflawless.org" + ], + "wolframAlpha": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "wolfreeAlpha", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "wolfreeAlpha": [], + "instructables": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "structables", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "structables": ["https://structables.private.coffee"], + "destructables": ["https://ds.vern.cc"], + "indestructables": ["https://indestructables.private.coffee"], + "wikipedia": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "wikiless", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "wikiless": [], + "wikimore": ["https://wikimore.private.coffee"], + "waybackMachine": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "waybackClassic", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "waybackClassic": ["https://wayback-classic.net"], + "pastebin": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "pasted", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "pasted": ["https://pasted.drakeerv.com"], + "search": { + "enabled": false, + "frontend": "searxng", + "unsupportedUrls": "bypass", + "redirectGoogle": false, + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "searxng": ["https://nyc1.sx.ggtyler.dev"], + "searx": [], + "whoogle": [], + "librey": [], + "4get": ["https://4get.ca"], + "websurfx": ["https://alamin655-spacex.hf.space"], + "translate": { + "enabled": true, + "frontend": "simplyTranslate", + "unsupportedUrls": "bypass", + "instance": "public", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "simplyTranslate": [ + "https://simplytranslate.org", + "https://simplytranslate.ducks.party", + "https://st.adast.dk" + ], + "mozhi": ["https://mozhi.aryak.me"], + "libreTranslate": ["https://libretranslate.com"], + "translite": ["https://tl.bloat.cat"], + "maps": { + "redirectType": "main_frame", + "enabled": false, + "frontend": "osm", + "unsupportedUrls": "bypass", + "redirectOnlyInIncognito": false + }, + "osm": ["https://www.openstreetmap.org"], + "meet": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "jitsi", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "jitsi": [], + "sendFiles": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "send", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "send": [], + "textStorage": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "privateBin", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "privateBin": [], + "pasty": ["https://pasty.lus.pm"], + "office": { + "enabled": false, + "unsupportedUrls": "bypass", + "frontend": "cryptPad", + "redirectOnlyInIncognito": false + }, + "cryptPad": ["https://cryptpad.org"], + "ultimateGuitar": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "freetar", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "freetar": ["https://freetar.de"], + "baiduTieba": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "ratAintTieba", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "ratAintTieba": ["https://rat.fis.land"], + "threads": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "shoelace", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "shoelace": ["https://shoelace.mint.lgbt"], + "deviantArt": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "skunkyArt", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "skunkyArt": [ + "https://skunky.bloat.cat", + "https://da.opnxng.com", + "https://sa.dc09.ru", + "https://art.bloat.cat", + "https://skunkyart.lumaeris.com" + ], + "geeksForGeeks": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "nerdsForNerds", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "nerdsForNerds": ["https://nn.vern.cc"], + "ducksForDucks": ["https://ducksforducks.private.coffee"], + "coub": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "koub", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "koub": ["https://koub2.bloat.cat", "https://koub.bloat.cat"], + "chefkoch": { + "enabled": true, + "unsupportedUrls": "bypass", + "frontend": "gocook", + "redirectOnlyInIncognito": false, + "redirectType": "main_frame" + }, + "gocook": ["https://cook.adminforge.de"], + "exceptions": { + "url": [], + "regex": [] + }, + "theme": "detect", + "popupServices": [ + "youtube", + "reddit", + "translate", + "maps", + "stackOverflow", + "youtubeMusic", + "twitter", + "bluesky", + "pinterest" + ], + "fetchInstances": "github", + "redirectOnlyInIncognito": false, + "troddit": ["https://www.troddit.com"], + "ultimateTab": ["https://ultimate-tab.com"] + } +}