about summary refs log tree commit diff
path: root/modules/nixos/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/firefox')
-rw-r--r--modules/nixos/firefox/addons.json48
-rw-r--r--modules/nixos/firefox/addons.nix1143
-rw-r--r--modules/nixos/firefox/default.nix576
-rw-r--r--modules/nixos/firefox/userChrome.css172
-rw-r--r--modules/nixos/firefox/userContent.css399
5 files changed, 0 insertions, 2338 deletions
diff --git a/modules/nixos/firefox/addons.json b/modules/nixos/firefox/addons.json
deleted file mode 100644
index eb26194..0000000
--- a/modules/nixos/firefox/addons.json
+++ /dev/null
@@ -1,48 +0,0 @@
-[
-  {
-    "pname": "bitwarden",
-    "slug": "bitwarden-password-manager"
-  },
-  {
-    "pname": "bypass-paywalls",
-    "slug": "bypass-paywalls-clean-d"
-  },
-  {
-    "slug": "consent-o-matic"
-  },
-  {
-    "slug": "darkreader"
-  },
-  {
-    "slug": "furiganaize"
-  },
-  {
-    "slug": "ipfs-companion"
-  },
-  {
-    "slug": "languagetool"
-  },
-  {
-    "slug": "no-pdf-download"
-  },
-  {
-    "pname": "rikaichamp",
-    "slug": "10ten-ja-reader"
-  },
-  {
-    "slug": "redirector"
-  },
-  {
-    "slug": "skip-redirect"
-  },
-  {
-    "slug": "ublock-origin"
-  },
-  {
-    "pname": "user-agent-switcher",
-    "slug": "user-agent-string-switcher"
-  },
-  {
-    "slug": "violentmonkey"
-  }
-]
diff --git a/modules/nixos/firefox/addons.nix b/modules/nixos/firefox/addons.nix
deleted file mode 100644
index 28235d4..0000000
--- a/modules/nixos/firefox/addons.nix
+++ /dev/null
@@ -1,1143 +0,0 @@
-{ buildFirefoxXpiAddon, lib }:
-{
-  "bitwarden" = buildFirefoxXpiAddon {
-    pname = "bitwarden";
-    version = "2024.2.1";
-    addonId = "{446900e4-71c2-419f-a6a7-df9c091e268b}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4246600/bitwarden_password_manager-2024.2.1.xpi";
-    sha256 = "f2db399e5a0915e4fd7e4906c32c72eac4a2b7bb4b4acacd892fff18e73085d4";
-    meta = with lib; {
-      homepage = "https://bitwarden.com";
-      description = "At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information.";
-      license = licenses.gpl3;
-      mozPermissions = [
-        "<all_urls>"
-        "tabs"
-        "contextMenus"
-        "storage"
-        "unlimitedStorage"
-        "clipboardRead"
-        "clipboardWrite"
-        "idle"
-        "http://*/*"
-        "https://*/*"
-        "webRequest"
-        "webRequestBlocking"
-        "file:///*"
-        "https://lastpass.com/export.php"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "bypass-paywalls" = buildFirefoxXpiAddon {
-    pname = "bypass-paywalls";
-    version = "3.6.0.0";
-    addonId = "magnolia_limited_permissions_d@12.34";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4251818/bypass_paywalls_clean_d-3.6.0.0.xpi";
-    sha256 = "30a57df51a241838dca9360a12801ea82f2deaf76a6b63f1279235e2f5f3c939";
-    meta = with lib; {
-      homepage = "https://gitlab.com/magnolia1234/bypass-paywalls-firefox-clean";
-      description = "Bypass Paywalls";
-      license = licenses.mit;
-      mozPermissions = [
-        "cookies"
-        "storage"
-        "activeTab"
-        "webRequest"
-        "webRequestBlocking"
-        "*://*.360dx.com/*"
-        "*://*.60millions-mag.com/*"
-        "*://*.aargauerzeitung.ch/*"
-        "*://*.abc.es/*"
-        "*://*.abendblatt.de/*"
-        "*://*.abqjournal.com/*"
-        "*://*.abril.com.br/*"
-        "*://*.ad.nl/*"
-        "*://*.adage.com/*"
-        "*://*.adelaidenow.com.au/*"
-        "*://*.adweek.com/*"
-        "*://*.aerokurier.de/*"
-        "*://*.aerztezeitung.de/*"
-        "*://*.afr.com/*"
-        "*://*.ajc.com/*"
-        "*://*.al.com/*"
-        "*://*.allgemeine-zeitung.de/*"
-        "*://*.alternatives-economiques.fr/*"
-        "*://*.ambito.com/*"
-        "*://*.americanaffairsjournal.org/*"
-        "*://*.americanbanker.com/*"
-        "*://*.americastestkitchen.com/*"
-        "*://*.apollo-magazine.com/*"
-        "*://*.ara.cat/*"
-        "*://*.arabalears.cat/*"
-        "*://*.architecturaldigest.com/*"
-        "*://*.arcinfo.ch/*"
-        "*://*.artforum.com/*"
-        "*://*.artnet.com/*"
-        "*://*.artsenkrant.com/*"
-        "*://*.atavist.com/*"
-        "*://*.atlantico.fr/*"
-        "*://*.augsburger-allgemeine.de/*"
-        "*://*.auto-motor-und-sport.de/*"
-        "*://*.autocar.co.uk/*"
-        "*://*.automobilwoche.de/*"
-        "*://*.autonews.com/*"
-        "*://*.autoplus.fr/*"
-        "*://*.autosport.com/*"
-        "*://*.axios.com/*"
-        "*://*.azcentral.com/*"
-        "*://*.backpacker.com/*"
-        "*://*.balkaninsight.com/*"
-        "*://*.baltimoresun.com/*"
-        "*://*.barandbench.com/*"
-        "*://*.barrons.com/*"
-        "*://*.bd.nl/*"
-        "*://*.beleggersbelangen.nl/*"
-        "*://*.belfasttelegraph.co.uk/*"
-        "*://*.bendigoadvertiser.com.au/*"
-        "*://*.beobachter.ch/*"
-        "*://*.berliner-zeitung.de/*"
-        "*://*.berlingske.dk/*"
-        "*://*.betamtb.com/*"
-        "*://*.betternutrition.com/*"
-        "*://*.betterprogramming.pub/*"
-        "*://*.bicycling.com/*"
-        "*://*.bild.de/*"
-        "*://*.billboard.com/*"
-        "*://*.bizjournals.com/*"
-        "*://*.bloomberg.com/*"
-        "*://*.bloombergadria.com/*"
-        "*://*.bnd.com/*"
-        "*://*.bndestem.nl/*"
-        "*://*.boersen-zeitung.de/*"
-        "*://*.bonappetit.com/*"
-        "*://*.bordermail.com.au/*"
-        "*://*.bostonglobe.com/*"
-        "*://*.bostonherald.com/*"
-        "*://*.bqprime.com/*"
-        "*://*.braunschweiger-zeitung.de/*"
-        "*://*.brisbanetimes.com.au/*"
-        "*://*.britannica.com/*"
-        "*://*.buffalonews.com/*"
-        "*://*.business-standard.com/*"
-        "*://*.businessam.be/*"
-        "*://*.businessinsider.com.pl/*"
-        "*://*.businessinsider.com/*"
-        "*://*.businessinsider.nl/*"
-        "*://*.businessoffashion.com/*"
-        "*://*.businesspost.ie/*"
-        "*://*.cairnspost.com.au/*"
-        "*://*.calgaryherald.com/*"
-        "*://*.cambiocolombia.com/*"
-        "*://*.canarias7.es/*"
-        "*://*.canberratimes.com.au/*"
-        "*://*.capitalgazette.com/*"
-        "*://*.cartacapital.com.br/*"
-        "*://*.causeur.fr/*"
-        "*://*.cen.acs.org/*"
-        "*://*.centralwesterndaily.com.au/*"
-        "*://*.centrepresseaveyron.fr/*"
-        "*://*.challenges.fr/*"
-        "*://*.charentelibre.fr/*"
-        "*://*.charliehebdo.fr/*"
-        "*://*.charlotteobserver.com/*"
-        "*://*.chicagobusiness.com/*"
-        "*://*.chicagotribune.com/*"
-        "*://*.chronicle.com/*"
-        "*://*.cicero.de/*"
-        "*://*.cieletespace.fr/*"
-        "*://*.cincinnati.com/*"
-        "*://*.citywire.com/*"
-        "*://*.clarin.com/*"
-        "*://*.cleaneatingmag.com/*"
-        "*://*.cleveland.com/*"
-        "*://*.clicrbs.com.br/*"
-        "*://*.climbing.com/*"
-        "*://*.cmjornal.pt/*"
-        "*://*.cnbc.com/*"
-        "*://*.cntraveler.com/*"
-        "*://*.columbian.com/*"
-        "*://*.commentary.org/*"
-        "*://*.commercialappeal.com/*"
-        "*://*.computerweekly.com/*"
-        "*://*.connaissancedesarts.com/*"
-        "*://*.correiodopovo.com.br/*"
-        "*://*.corriere.it/*"
-        "*://*.corriereadriatico.it/*"
-        "*://*.corrieredellosport.it/*"
-        "*://*.cosmopolitan.com/*"
-        "*://*.cosmopolitan.fr/*"
-        "*://*.countryliving.com/*"
-        "*://*.courant.com/*"
-        "*://*.courier-journal.com/*"
-        "*://*.couriermail.com.au/*"
-        "*://*.courrierinternational.com/*"
-        "*://*.crainscleveland.com/*"
-        "*://*.crainsdetroit.com/*"
-        "*://*.crainsnewyork.com/*"
-        "*://*.crikey.com.au/*"
-        "*://*.cronista.com/*"
-        "*://*.crusoe.com.br/*"
-        "*://*.csmonitor.com/*"
-        "*://*.ctpost.com/*"
-        "*://*.curbed.com/*"
-        "*://*.cw.com.tw/*"
-        "*://*.dagsavisen.no/*"
-        "*://*.dailyadvertiser.com.au/*"
-        "*://*.dailyliberal.com.au/*"
-        "*://*.dailymail.co.uk/*"
-        "*://*.dailypress.com/*"
-        "*://*.dailytelegraph.com.au/*"
-        "*://*.dailywire.com/*"
-        "*://*.dallasnews.com/*"
-        "*://*.defector.com/*"
-        "*://*.delish.com/*"
-        "*://*.democratandchronicle.com/*"
-        "*://*.demorgen.be/*"
-        "*://*.denverpost.com/*"
-        "*://*.deraktionaer.de/*"
-        "*://*.desmoinesregister.com/*"
-        "*://*.destentor.nl/*"
-        "*://*.detroitnews.com/*"
-        "*://*.df.cl/*"
-        "*://*.dhnet.be/*"
-        "*://*.di.se/*"
-        "*://*.diariocorreo.pe/*"
-        "*://*.diariodemallorca.es/*"
-        "*://*.diariosur.es/*"
-        "*://*.diariovasco.com/*"
-        "*://*.diepresse.com/*"
-        "*://*.digiday.com/*"
-        "*://*.discovermagazine.com/*"
-        "*://*.dispatch.com/*"
-        "*://*.doorbraak.be/*"
-        "*://*.dvhn.nl/*"
-        "*://*.dwell.com/*"
-        "*://*.eastbaytimes.com/*"
-        "*://*.eastwest.eu/*"
-        "*://*.echo-online.de/*"
-        "*://*.economictimes.com/*"
-        "*://*.economist.com/*"
-        "*://*.ed.nl/*"
-        "*://*.editorialedomani.it/*"
-        "*://*.elcomercio.es/*"
-        "*://*.elcomercio.pe/*"
-        "*://*.elconfidencial.com/*"
-        "*://*.elcorreo.com/*"
-        "*://*.eldia.es/*"
-        "*://*.eldiario.es/*"
-        "*://*.eldiariomontanes.es/*"
-        "*://*.elespanol.com/*"
-        "*://*.elespectador.com/*"
-        "*://*.elle.com/*"
-        "*://*.elle.fr/*"
-        "*://*.elledecor.com/*"
-        "*://*.elmercurio.com/*"
-        "*://*.elmundo.es/*"
-        "*://*.elnortedecastilla.es/*"
-        "*://*.elnuevoherald.com/*"
-        "*://*.elobservador.com.uy/*"
-        "*://*.elpais.com.uy/*"
-        "*://*.elpais.com/*"
-        "*://*.elperiodico.com/*"
-        "*://*.eltiempo.com/*"
-        "*://*.eltribuno.com/*"
-        "*://*.em.com.br/*"
-        "*://*.enotes.com/*"
-        "*://*.epe.es/*"
-        "*://*.epicurious.com/*"
-        "*://*.epoch.org.il/*"
-        "*://*.espn.com/*"
-        "*://*.esprit.presse.fr/*"
-        "*://*.esquire.com/*"
-        "*://*.estadao.com.br/*"
-        "*://*.etc.se/*"
-        "*://*.euobserver.com/*"
-        "*://*.european-rubber-journal.com/*"
-        "*://*.europower.no/*"
-        "*://*.exame.com/*"
-        "*://*.examiner.com.au/*"
-        "*://*.expansion.com/*"
-        "*://*.expressnews.com/*"
-        "*://*.expresso.pt/*"
-        "*://*.farodevigo.es/*"
-        "*://*.fastcompany.com/*"
-        "*://*.faz.net/*"
-        "*://*.fd.nl/*"
-        "*://*.femmesdaujourdhui.be/*"
-        "*://*.fieldandstream.com/*"
-        "*://*.financialexpress.com/*"
-        "*://*.financialpost.com/*"
-        "*://*.firstthings.com/*"
-        "*://*.fiskeribladet.no/*"
-        "*://*.flair.be/*"
-        "*://*.flair.nl/*"
-        "*://*.flugrevue.de/*"
-        "*://*.fnlondon.com/*"
-        "*://*.forbes.com.au/*"
-        "*://*.forbes.com/*"
-        "*://*.foreignaffairs.com/*"
-        "*://*.foreignpolicy.com/*"
-        "*://*.fortune.com/*"
-        "*://*.foxnews.com/*"
-        "*://*.freep.com/*"
-        "*://*.freiepresse.de/*"
-        "*://*.freitag.de/*"
-        "*://*.fresnobee.com/*"
-        "*://*.ft.com/*"
-        "*://*.ftm.eu/*"
-        "*://*.ftm.nl/*"
-        "*://*.gazetadopovo.com.br/*"
-        "*://*.gazzetta.it/*"
-        "*://*.gbnews.com/*"
-        "*://*.geelongadvertiser.com.au/*"
-        "*://*.gelderlander.nl/*"
-        "*://*.genomeweb.com/*"
-        "*://*.gestion.pe/*"
-        "*://*.glassdoor.com/*"
-        "*://*.globes.co.il/*"
-        "*://*.globo.com/*"
-        "*://*.glossy.co/*"
-        "*://*.goldcoastbulletin.com.au/*"
-        "*://*.goodhousekeeping.com/*"
-        "*://*.gq.com/*"
-        "*://*.granta.com/*"
-        "*://*.groene.nl/*"
-        "*://*.grubstreet.com/*"
-        "*://*.haaretz.co.il/*"
-        "*://*.haaretz.com/*"
-        "*://*.handelszeitung.ch/*"
-        "*://*.harpers.org/*"
-        "*://*.harpersbazaar.com/*"
-        "*://*.haz.de/*"
-        "*://*.hbr.org/*"
-        "*://*.hbvl.be/*"
-        "*://*.heraldsun.com.au/*"
-        "*://*.hilltimes.com/*"
-        "*://*.hindustantimes.com/*"
-        "*://*.hindutamil.in/*"
-        "*://*.historyextra.com/*"
-        "*://*.hln.be/*"
-        "*://*.housebeautiful.com/*"
-        "*://*.houstonchronicle.com/*"
-        "*://*.hoy.es/*"
-        "*://*.huffingtonpost.it/*"
-        "*://*.humanite.fr/*"
-        "*://*.humo.be/*"
-        "*://*.ideal.es/*"
-        "*://*.ilfattoquotidiano.it/*"
-        "*://*.ilfoglio.it/*"
-        "*://*.ilgazzettino.it/*"
-        "*://*.ilgiorno.it/*"
-        "*://*.illawarramercury.com.au/*"
-        "*://*.ilmanifesto.it/*"
-        "*://*.ilmattino.it/*"
-        "*://*.ilmessaggero.it/*"
-        "*://*.ilrestodelcarlino.it/*"
-        "*://*.ilsecoloxix.it/*"
-        "*://*.ilsole24ore.com/*"
-        "*://*.iltelegrafolivorno.it/*"
-        "*://*.iltirreno.it/*"
-        "*://*.inc.com/*"
-        "*://*.inc42.com/*"
-        "*://*.independent.co.uk/*"
-        "*://*.independent.ie/*"
-        "*://*.indianexpress.com/*"
-        "*://*.indiatimes.com/*"
-        "*://*.indiatoday.in/*"
-        "*://*.indystar.com/*"
-        "*://*.inews.co.uk/*"
-        "*://*.informacion.es/*"
-        "*://*.infzm.com/*"
-        "*://*.inkl.com/*"
-        "*://*.inquirer.com/*"
-        "*://*.insidehighered.com/*"
-        "*://*.intelligentinvestor.com.au/*"
-        "*://*.interestingengineering.com/*"
-        "*://*.internazionale.it/*"
-        "*://*.intrafish.com/*"
-        "*://*.intrafish.no/*"
-        "*://*.investorschronicle.co.uk/*"
-        "*://*.investsmart.com.au/*"
-        "*://*.ipolitics.ca/*"
-        "*://*.irishexaminer.com/*"
-        "*://*.irishtimes.com/*"
-        "*://*.italian.tech/*"
-        "*://*.italiaoggi.it/*"
-        "*://*.jacksonville.com/*"
-        "*://*.jacobin.de/*"
-        "*://*.janes.com/*"
-        "*://*.japantimes.co.jp/*"
-        "*://*.jazziz.com/*"
-        "*://*.jazzwise.com/*"
-        "*://*.jgnt.co/*"
-        "*://*.journaldemillau.fr/*"
-        "*://*.journaldemontreal.com/*"
-        "*://*.journaldequebec.com/*"
-        "*://*.journaldunet.com/*"
-        "*://*.journalnow.com/*"
-        "*://*.journalstar.com/*"
-        "*://*.jpost.com/*"
-        "*://*.jsonline.com/*"
-        "*://*.kansas.com/*"
-        "*://*.kansascity.com/*"
-        "*://*.kentucky.com/*"
-        "*://*.kn-online.de/*"
-        "*://*.knack.be/*"
-        "*://*.knoxnews.com/*"
-        "*://*.krautreporter.de/*"
-        "*://*.ksta.de/*"
-        "*://*.kurier.at/*"
-        "*://*.kw.be/*"
-        "*://*.la-croix.com/*"
-        "*://*.labusinessjournal.com/*"
-        "*://*.lacote.ch/*"
-        "*://*.ladepeche.fr/*"
-        "*://*.ladiaria.com.uy/*"
-        "*://*.lalibre.be/*"
-        "*://*.lamontagne.fr/*"
-        "*://*.lanacion.com.ar/*"
-        "*://*.lanazione.it/*"
-        "*://*.lanouvellerepublique.fr/*"
-        "*://*.lanuovasardegna.it/*"
-        "*://*.laprovincia.es/*"
-        "*://*.larepubliquedespyrenees.fr/*"
-        "*://*.larioja.com/*"
-        "*://*.lasegunda.com/*"
-        "*://*.lasprovincias.es/*"
-        "*://*.lastampa.it/*"
-        "*://*.latercera.com/*"
-        "*://*.latimes.com/*"
-        "*://*.latribune.fr/*"
-        "*://*.lavanguardia.com/*"
-        "*://*.lavenir.net/*"
-        "*://*.laverdad.es/*"
-        "*://*.lavoz.com.ar/*"
-        "*://*.lavozdigital.es/*"
-        "*://*.law.com/*"
-        "*://*.lc.nl/*"
-        "*://*.lecho.be/*"
-        "*://*.lecourrierdesstrateges.fr/*"
-        "*://*.ledevoir.com/*"
-        "*://*.legrandcontinent.eu/*"
-        "*://*.lehighvalleylive.com/*"
-        "*://*.lejdd.fr/*"
-        "*://*.lemagit.fr/*"
-        "*://*.lemoniteur.fr/*"
-        "*://*.lenouveleconomiste.fr/*"
-        "*://*.lenouvelliste.ch/*"
-        "*://*.leparisien.fr/*"
-        "*://*.lepoint.fr/*"
-        "*://*.lescienze.it/*"
-        "*://*.lesechos.fr/*"
-        "*://*.lesinrocks.com/*"
-        "*://*.lesoleil.com/*"
-        "*://*.letelegramme.fr/*"
-        "*://*.levante-emv.com/*"
-        "*://*.levif.be/*"
-        "*://*.lexpress.fr/*"
-        "*://*.libelle.be/*"
-        "*://*.libelle.nl/*"
-        "*://*.limburger.nl/*"
-        "*://*.lindependant.fr/*"
-        "*://*.linforme.com/*"
-        "*://*.literaryreview.co.uk/*"
-        "*://*.livelaw.in/*"
-        "*://*.livemint.com/*"
-        "*://*.ln-online.de/*"
-        "*://*.lne.es/*"
-        "*://*.loebclassics.com/*"
-        "*://*.loeildelaphotographie.com/*"
-        "*://*.lopinion.fr/*"
-        "*://*.losandes.com.ar/*"
-        "*://*.lrb.co.uk/*"
-        "*://*.luzernerzeitung.ch/*"
-        "*://*.lvz.de/*"
-        "*://*.macrobusiness.com.au/*"
-        "*://*.madison.com/*"
-        "*://*.mainichi.jp/*"
-        "*://*.mallorcazeitung.es/*"
-        "*://*.mannheimer-morgen.de/*"
-        "*://*.marca.com/*"
-        "*://*.margriet.nl/*"
-        "*://*.marianne.net/*"
-        "*://*.marketwatch.com/*"
-        "*://*.masslive.com/*"
-        "*://*.maz-online.de/*"
-        "*://*.mcall.com/*"
-        "*://*.mcclatchydc.com/*"
-        "*://*.medium.com/*"
-        "*://*.medscape.com/*"
-        "*://*.menshealth.com/*"
-        "*://*.mercurynews.com/*"
-        "*://*.mexiconewsdaily.com/*"
-        "*://*.miamiherald.com/*"
-        "*://*.mid-day.com/*"
-        "*://*.midilibre.fr/*"
-        "*://*.mlive.com/*"
-        "*://*.moda.it/*"
-        "*://*.modernhealthcare.com/*"
-        "*://*.modernretail.co/*"
-        "*://*.monacomatin.mc/*"
-        "*://*.monocle.com/*"
-        "*://*.morgenpost.de/*"
-        "*://*.motorradonline.de/*"
-        "*://*.mundodeportivo.com/*"
-        "*://*.mv-voice.com/*"
-        "*://*.mz.de/*"
-        "*://*.nationalgeographic.com/*"
-        "*://*.nationalpost.com/*"
-        "*://*.nationalreview.com/*"
-        "*://*.nautil.us/*"
-        "*://*.neuepresse.de/*"
-        "*://*.newcastleherald.com.au/*"
-        "*://*.newleftreview.org/*"
-        "*://*.newrepublic.com/*"
-        "*://*.news-press.com/*"
-        "*://*.newscientist.com/*"
-        "*://*.newsday.com/*"
-        "*://*.newsobserver.com/*"
-        "*://*.newstatesman.com/*"
-        "*://*.newsweek.com/*"
-        "*://*.newsweek.pl/*"
-        "*://*.newyorker.com/*"
-        "*://*.nhregister.com/*"
-        "*://*.niagarafallsreview.ca/*"
-        "*://*.nicematin.com/*"
-        "*://*.nieuwsblad.be/*"
-        "*://*.nikkei.com/*"
-        "*://*.nj.com/*"
-        "*://*.nola.com/*"
-        "*://*.northerndailyleader.com.au/*"
-        "*://*.northjersey.com/*"
-        "*://*.nouvelobs.com/*"
-        "*://*.noz.de/*"
-        "*://*.nrc.nl/*"
-        "*://*.nrpyrenees.fr/*"
-        "*://*.nrz.de/*"
-        "*://*.ntnews.com.au/*"
-        "*://*.nw.de/*"
-        "*://*.nwitimes.com/*"
-        "*://*.nybooks.com/*"
-        "*://*.nydailynews.com/*"
-        "*://*.nymag.com/*"
-        "*://*.nypost.com/*"
-        "*://*.nysun.com/*"
-        "*://*.nyteknik.se/*"
-        "*://*.nytimes.com/*"
-        "*://*.nzherald.co.nz/*"
-        "*://*.nzz.ch/*"
-        "*://*.observador.pt/*"
-        "*://*.ocbj.com/*"
-        "*://*.ocregister.com/*"
-        "*://*.oklahoman.com/*"
-        "*://*.omaha.com/*"
-        "*://*.oprahdaily.com/*"
-        "*://*.oregonlive.com/*"
-        "*://*.orlandosentinel.com/*"
-        "*://*.ostsee-zeitung.de/*"
-        "*://*.otz.de/*"
-        "*://*.outdoorlife.com/*"
-        "*://*.outlookbusiness.com/*"
-        "*://*.outlookindia.com/*"
-        "*://*.outsideonline.com/*"
-        "*://*.oxygenmag.com/*"
-        "*://*.paloaltoonline.com/*"
-        "*://*.parismatch.com/*"
-        "*://*.parool.nl/*"
-        "*://*.penews.com/*"
-        "*://*.pennlive.com/*"
-        "*://*.petitbleu.fr/*"
-        "*://*.philanthropy.com/*"
-        "*://*.philomag.com/*"
-        "*://*.philomag.de/*"
-        "*://*.philosophynow.org/*"
-        "*://*.pilotonline.com/*"
-        "*://*.pionline.com/*"
-        "*://*.piqd.de/*"
-        "*://*.plasticsnews.com/*"
-        "*://*.politicaexterior.com/*"
-        "*://*.polityka.pl/*"
-        "*://*.popsci.com/*"
-        "*://*.popularmechanics.com/*"
-        "*://*.post-gazette.com/*"
-        "*://*.pourlascience.fr/*"
-        "*://*.pourleco.com/*"
-        "*://*.precisionmedicineonline.com/*"
-        "*://*.pressenterprise.com/*"
-        "*://*.prevention.com/*"
-        "*://*.profi.de/*"
-        "*://*.profil.at/*"
-        "*://*.project-syndicate.org/*"
-        "*://*.prospectmagazine.co.uk/*"
-        "*://*.public.fr/*"
-        "*://*.pzc.nl/*"
-        "*://*.quora.com/*"
-        "*://*.quotidiano.net/*"
-        "*://*.quotidianodipuglia.it/*"
-        "*://*.qz.com/*"
-        "*://*.rechargenews.com/*"
-        "*://*.record.pt/*"
-        "*://*.repubblica.it/*"
-        "*://*.reuters.com/*"
-        "*://*.revistaoeste.com/*"
-        "*://*.revueconflits.com/*"
-        "*://*.rhein-zeitung.de/*"
-        "*://*.richmond.com/*"
-        "*://*.rnd.de/*"
-        "*://*.roadandtrack.com/*"
-        "*://*.rollingstone.com/*"
-        "*://*.rp.pl/*"
-        "*://*.rubbernews.com/*"
-        "*://*.rugbypass.com/*"
-        "*://*.rugbyrama.fr/*"
-        "*://*.ruhrnachrichten.de/*"
-        "*://*.rundschau-online.de/*"
-        "*://*.runnersworld.com/*"
-        "*://*.sabado.pt/*"
-        "*://*.sacbee.com/*"
-        "*://*.saltwire.com/*"
-        "*://*.sandiegouniontribune.com/*"
-        "*://*.schwaebische.de/*"
-        "*://*.schwarzwaelder-bote.de/*"
-        "*://*.schweizermonat.ch/*"
-        "*://*.science-et-vie.com/*"
-        "*://*.science.org/*"
-        "*://*.sciencesetavenir.fr/*"
-        "*://*.scientificamerican.com/*"
-        "*://*.scmp.com/*"
-        "*://*.scotsman.com/*"
-        "*://*.sdbj.com/*"
-        "*://*.seattletimes.com/*"
-        "*://*.seekingalpha.com/*"
-        "*://*.sfchronicle.com/*"
-        "*://*.sfvbj.com/*"
-        "*://*.shz.de/*"
-        "*://*.si.com/*"
-        "*://*.silive.com/*"
-        "*://*.skimag.com/*"
-        "*://*.slate.com/*"
-        "*://*.slideshare.net/*"
-        "*://*.sloanreview.mit.edu/*"
-        "*://*.sltrib.com/*"
-        "*://*.smh.com.au/*"
-        "*://*.sn.at/*"
-        "*://*.sofrep.com/*"
-        "*://*.sourcingjournal.com/*"
-        "*://*.spectator.co.uk/*"
-        "*://*.spectator.com.au/*"
-        "*://*.spglobal.com/*"
-        "*://*.spiegel.de/*"
-        "*://*.sportico.com/*"
-        "*://*.springermedizin.de/*"
-        "*://*.standaard.be/*"
-        "*://*.standard.co.uk/*"
-        "*://*.standard.net.au/*"
-        "*://*.star-telegram.com/*"
-        "*://*.staradvertiser.com/*"
-        "*://*.startribune.com/*"
-        "*://*.statesman.com/*"
-        "*://*.statista.com/*"
-        "*://*.stcatharinesstandard.ca/*"
-        "*://*.stereogum.com/*"
-        "*://*.stltoday.com/*"
-        "*://*.stocknews.com/*"
-        "*://*.straitstimes.com/*"
-        "*://*.stratfor.com/*"
-        "*://*.studocu.com/*"
-        "*://*.study.com/*"
-        "*://*.stuttgarter-nachrichten.de/*"
-        "*://*.stuttgarter-zeitung.de/*"
-        "*://*.stylist.co.uk/*"
-        "*://*.sudouest.fr/*"
-        "*://*.sueddeutsche.de/*"
-        "*://*.suedkurier.de/*"
-        "*://*.sun-sentinel.com/*"
-        "*://*.suomensotilas.fi/*"
-        "*://*.sustainableplastics.com/*"
-        "*://*.svz.de/*"
-        "*://*.swarajyamag.com/*"
-        "*://*.syracuse.com/*"
-        "*://*.tagblatt.ch/*"
-        "*://*.tagesspiegel.de/*"
-        "*://*.tampabay.com/*"
-        "*://*.techinasia.com/*"
-        "*://*.technologyreview.com/*"
-        "*://*.techtarget.com/*"
-        "*://*.telegraaf.nl/*"
-        "*://*.telegraph.co.uk/*"
-        "*://*.telerama.fr/*"
-        "*://*.tennessean.com/*"
-        "*://*.tes.com/*"
-        "*://*.texasmonthly.com/*"
-        "*://*.the-american-interest.com/*"
-        "*://*.the-scientist.com/*"
-        "*://*.the-tls.co.uk/*"
-        "*://*.theadvocate.com.au/*"
-        "*://*.theadvocate.com/*"
-        "*://*.theage.com.au/*"
-        "*://*.theamericanconservative.com/*"
-        "*://*.theartnewspaper.com/*"
-        "*://*.theathletic.com/*"
-        "*://*.theatlantic.com/*"
-        "*://*.theaustralian.com.au/*"
-        "*://*.thebaffler.com/*"
-        "*://*.thebanker.com/*"
-        "*://*.thebookseller.com/*"
-        "*://*.thebulletin.org/*"
-        "*://*.thechronicle.com.au/*"
-        "*://*.thecourier.com.au/*"
-        "*://*.thecritic.co.uk/*"
-        "*://*.thecut.com/*"
-        "*://*.thedailybeast.com/*"
-        "*://*.thediplomat.com/*"
-        "*://*.theepochtimes.com/*"
-        "*://*.theglobeandmail.com/*"
-        "*://*.thehill.com/*"
-        "*://*.thehindu.com/*"
-        "*://*.thehindubusinessline.com/*"
-        "*://*.theimpression.com/*"
-        "*://*.theintercept.com/*"
-        "*://*.thejuggernaut.com/*"
-        "*://*.thelampmagazine.com/*"
-        "*://*.thelawyersdaily.ca/*"
-        "*://*.themarker.com/*"
-        "*://*.themarket.ch/*"
-        "*://*.themercury.com.au/*"
-        "*://*.thenation.com/*"
-        "*://*.thenewatlantis.com/*"
-        "*://*.theneweuropean.co.uk/*"
-        "*://*.thenewsminute.com/*"
-        "*://*.thepeterboroughexaminer.com/*"
-        "*://*.thepointmag.com/*"
-        "*://*.theprovince.com/*"
-        "*://*.thequint.com/*"
-        "*://*.therecord.com/*"
-        "*://*.thesaturdaypaper.com.au/*"
-        "*://*.thespec.com/*"
-        "*://*.thespectator.com/*"
-        "*://*.thestage.co.uk/*"
-        "*://*.thestar.com/*"
-        "*://*.thestate.com/*"
-        "*://*.thetimes.co.uk/*"
-        "*://*.theverge.com/*"
-        "*://*.theweek.com/*"
-        "*://*.thewest.com.au/*"
-        "*://*.thewrap.com/*"
-        "*://*.thueringer-allgemeine.de/*"
-        "*://*.tijd.be/*"
-        "*://*.timeshighereducation.com/*"
-        "*://*.timesofindia.com/*"
-        "*://*.timesunion.com/*"
-        "*://*.tirebusiness.com/*"
-        "*://*.tlz.de/*"
-        "*://*.topagrar.com/*"
-        "*://*.torontosun.com/*"
-        "*://*.towardsdatascience.com/*"
-        "*://*.townandcountrymag.com/*"
-        "*://*.townsvillebulletin.com.au/*"
-        "*://*.tradewindsnews.com/*"
-        "*://*.trailrunnermag.com/*"
-        "*://*.tri-cityherald.com/*"
-        "*://*.triathlete.com/*"
-        "*://*.trouw.nl/*"
-        "*://*.tt.com/*"
-        "*://*.tubantia.nl/*"
-        "*://*.tucson.com/*"
-        "*://*.tulsaworld.com/*"
-        "*://*.tuttosport.com/*"
-        "*://*.twincities.com/*"
-        "*://*.unherd.com/*"
-        "*://*.uol.com.br/*"
-        "*://*.upstreamonline.com/*"
-        "*://*.usatoday.com/*"
-        "*://*.usinenouvelle.com/*"
-        "*://*.utech-polyurethane.com/*"
-        "*://*.valeursactuelles.com/*"
-        "*://*.vancouversun.com/*"
-        "*://*.vanityfair.com/*"
-        "*://*.variety.com/*"
-        "*://*.varmatin.com/*"
-        "*://*.vegetariantimes.com/*"
-        "*://*.vikatan.com/*"
-        "*://*.vn.at/*"
-        "*://*.vn.nl/*"
-        "*://*.vogue.co.uk/*"
-        "*://*.vogue.com/*"
-        "*://*.voguebusiness.com/*"
-        "*://*.vol.at/*"
-        "*://*.volkskrant.nl/*"
-        "*://*.volksstimme.de/*"
-        "*://*.vulture.com/*"
-        "*://*.washingtonexaminer.com/*"
-        "*://*.washingtonpost.com/*"
-        "*://*.watoday.com.au/*"
-        "*://*.waz.de/*"
-        "*://*.weeklytimesnow.com.au/*"
-        "*://*.wellandtribune.ca/*"
-        "*://*.welt.de/*"
-        "*://*.weltkunst.de/*"
-        "*://*.weser-kurier.de/*"
-        "*://*.westernadvocate.com.au/*"
-        "*://*.wiesbadener-kurier.de/*"
-        "*://*.winnipegfreepress.com/*"
-        "*://*.wired.com/*"
-        "*://*.wiwo.de/*"
-        "*://*.wochenblatt.com/*"
-        "*://*.womenshealth.de/*"
-        "*://*.womenshealthmag.com/*"
-        "*://*.womensrunning.com/*"
-        "*://*.wonderzine.com/*"
-        "*://*.wp.de/*"
-        "*://*.wr.de/*"
-        "*://*.wsj.com/*"
-        "*://*.wwd.com/*"
-        "*://*.ynet.co.il/*"
-        "*://*.yogajournal.com/*"
-        "*://*.yorkshirepost.co.uk/*"
-        "*://*.zeit.de/*"
-        "*://*.zerohedge.com/*"
-        "*://*.amplitude.com/*"
-        "*://*.ampproject.org/*"
-        "*://*.axate.io/*"
-        "*://*.blueconic.net/*"
-        "*://*.cxense.com/*"
-        "*://*.ensighten.com/*"
-        "*://*.evolok.net/*"
-        "*://*.fewcents.co/*"
-        "*://*.ippen.space/*"
-        "*://*.loader-cdn.azureedge.net/*"
-        "*://*.matheranalytics.com/*"
-        "*://*.newsmemory.com/*"
-        "*://*.omeda.com/*"
-        "*://*.onecount.net/*"
-        "*://*.pelcro.com/*"
-        "*://*.piano.io/*"
-        "*://*.pico.tools/*"
-        "*://*.poool.fr/*"
-        "*://*.qiota.com/*"
-        "*://*.sophi.io/*"
-        "*://*.steadyhq.com/*"
-        "*://*.tinypass.com/*"
-        "*://*.weborama.fr/*"
-        "*://*.zephr.com/*"
-        "*://*.blink.net/*"
-        "*://*.bwbx.io/*"
-        "*://*.californiatimes.com/*"
-        "*://*.cedscdn.it/*"
-        "*://*.cedsdigital.it/*"
-        "*://*.cloudfront.net/*"
-        "*://*.corriereobjects.it/*"
-        "*://*.emol.cl/*"
-        "*://*.epochbase.com/*"
-        "*://*.epochbase.eu/*"
-        "*://*.flip-pay.com/*"
-        "*://*.gitlab.com/magnolia1234/*"
-        "*://*.go.com/*"
-        "*://*.hadrianpaywall.com/*"
-        "*://*.kinja-static.com/*"
-        "*://*.masthead.me/*"
-        "*://*.medscapestatic.com/*"
-        "*://*.ndcmediagroep.nl/*"
-        "*://*.nhst.tech/*"
-        "*://*.nyt.com/*"
-        "*://*.pasedigital.cl/*"
-        "*://*.wbmdstatic.com/*"
-        "*://*.wgchrrammzv.com/*"
-        "*://*.wyleex.com/*"
-        "*://archive.fo/*"
-        "*://archive.is/*"
-        "*://archive.li/*"
-        "*://archive.md/*"
-        "*://archive.ph/*"
-        "*://archive.vn/*"
-        "*://webcache.googleusercontent.com/*"
-        "*://*.gitlab.com/magnolia1234"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "consent-o-matic" = buildFirefoxXpiAddon {
-    pname = "consent-o-matic";
-    version = "1.0.13";
-    addonId = "gdpr@cavi.au.dk";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4246350/consent_o_matic-1.0.13.xpi";
-    sha256 = "ee577eaedebd9fef65f77218b86c59972818442c9af551d551a7015a4a246e9a";
-    meta = with lib; {
-      homepage = "https://consentomatic.au.dk/";
-      description = "Automatic handling of GDPR consent forms";
-      license = licenses.mit;
-      mozPermissions = [
-        "activeTab"
-        "tabs"
-        "storage"
-        "<all_urls>"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "darkreader" = buildFirefoxXpiAddon {
-    pname = "darkreader";
-    version = "4.9.80";
-    addonId = "addon@darkreader.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4249607/darkreader-4.9.80.xpi";
-    sha256 = "a93f1250b72cc27fe4a9b02be062c68fb079e45a1233d562852b48e1e9b99307";
-    meta = with lib; {
-      homepage = "https://darkreader.org/";
-      description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.";
-      license = licenses.mit;
-      mozPermissions = [
-        "alarms"
-        "contextMenus"
-        "storage"
-        "tabs"
-        "theme"
-        "<all_urls>"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "furiganaize" = buildFirefoxXpiAddon {
-    pname = "furiganaize";
-    version = "0.7.2";
-    addonId = "{a2503cd4-4083-4c2f-bef2-37767a569867}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4032306/furiganaize-0.7.2.xpi";
-    sha256 = "7545bc418f2afbc576b0e762f2b2fa0545d5d94f3f80737e5356d087a5951c0b";
-    meta = with lib; {
-      homepage = "https://github.com/kuanyui/Furiganaize";
-      description = "Auto insert furigana (振り仮名) on Japanese kanji.";
-      license = licenses.mit;
-      mozPermissions = [
-        "http://*/*"
-        "https://*/*"
-        "file://*/*"
-        "<all_urls>"
-        "activeTab"
-        "tabs"
-        "storage"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "ipfs-companion" = buildFirefoxXpiAddon {
-    pname = "ipfs-companion";
-    version = "3.1.0";
-    addonId = "ipfs-firefox-addon@lidel.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4172699/ipfs_companion-3.1.0.xpi";
-    sha256 = "784f6d1e0497d86f1e42cfe7de8548b5cc28fabe80e50771d90f59ddf1b9d3c1";
-    meta = with lib; {
-      homepage = "https://github.com/ipfs/ipfs-companion";
-      description = "Harness the power of IPFS in your browser";
-      license = licenses.cc0;
-      mozPermissions = [
-        "idle"
-        "tabs"
-        "notifications"
-        "proxy"
-        "storage"
-        "unlimitedStorage"
-        "contextMenus"
-        "clipboardWrite"
-        "webNavigation"
-        "webRequest"
-        "webRequestBlocking"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "languagetool" = buildFirefoxXpiAddon {
-    pname = "languagetool";
-    version = "8.6.0";
-    addonId = "languagetool-webextension@languagetool.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4249956/languagetool-8.6.0.xpi";
-    sha256 = "d9db9aac9fdd53eb39179c153161762cd9e9eb1f6d7da8e8b8a32238b4847094";
-    meta = with lib; {
-      homepage = "https://languagetool.org";
-      description = "With this extension you can check text with the free style and grammar checker LanguageTool. It finds many errors that a simple spell checker cannot detect, like mixing up there/their, a/an, or repeating a word.";
-      mozPermissions = [
-        "activeTab"
-        "storage"
-        "contextMenus"
-        "alarms"
-        "http://*/*"
-        "https://*/*"
-        "file:///*"
-        "*://docs.google.com/document/*"
-        "*://languagetool.org/*"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "no-pdf-download" = buildFirefoxXpiAddon {
-    pname = "no-pdf-download";
-    version = "1.0.6";
-    addonId = "{b9b25e4a-bdf4-4270-868c-3f619eaf437d}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/3020560/no_pdf_download-1.0.6.xpi";
-    sha256 = "fa27b6729178a23ccf2eee07cd7650d841fc6040f2e5adfb919931b671ed79e6";
-    meta = with lib; {
-      homepage = "https://github.com/MorbZ/no-pdf-download";
-      description = "Opens all PDF files directly in the browser.";
-      license = licenses.mit;
-      mozPermissions = [
-        "webRequest"
-        "webRequestBlocking"
-        "<all_urls>"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "redirector" = buildFirefoxXpiAddon {
-    pname = "redirector";
-    version = "3.5.3";
-    addonId = "redirector@einaregilsson.com";
-    url = "https://addons.mozilla.org/firefox/downloads/file/3535009/redirector-3.5.3.xpi";
-    sha256 = "eddbd3d5944e748d0bd6ecb6d9e9cf0e0c02dced6f42db21aab64190e71c0f71";
-    meta = with lib; {
-      homepage = "http://einaregilsson.com/redirector/";
-      description = "Automatically redirects to user-defined urls on certain pages";
-      license = licenses.mit;
-      mozPermissions = [
-        "webRequest"
-        "webRequestBlocking"
-        "webNavigation"
-        "storage"
-        "tabs"
-        "http://*/*"
-        "https://*/*"
-        "notifications"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "rikaichamp" = buildFirefoxXpiAddon {
-    pname = "rikaichamp";
-    version = "1.18.0";
-    addonId = "{59812185-ea92-4cca-8ab7-cfcacee81281}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4241410/10ten_ja_reader-1.18.0.xpi";
-    sha256 = "5433bcfec5a327bf1fa198b3f0645a9cdcdc44232465ad940fa8a5858b6996f8";
-    meta = with lib; {
-      homepage = "https://github.com/birchill/10ten-ja-reader/";
-      description = "Quickly translate Japanese by hovering over words. Formerly released as Rikaichamp.";
-      license = licenses.gpl3;
-      mozPermissions = [
-        "alarms"
-        "clipboardWrite"
-        "contextMenus"
-        "storage"
-        "unlimitedStorage"
-        "http://*/*"
-        "https://*/*"
-        "file:///*"
-        "https://docs.google.com/*"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "skip-redirect" = buildFirefoxXpiAddon {
-    pname = "skip-redirect";
-    version = "2.3.6";
-    addonId = "skipredirect@sblask";
-    url = "https://addons.mozilla.org/firefox/downloads/file/3920533/skip_redirect-2.3.6.xpi";
-    sha256 = "dbe8950245c1f475c5c1c6daab89c79b83ba4680621c91e80f15be7b09b618ae";
-    meta = with lib; {
-      description = "Some web pages use intermediary pages before redirecting to a final page. This add-on tries to extract the final url from the intermediary url and goes there straight away if successful.";
-      license = licenses.mit;
-      mozPermissions = [
-        "<all_urls>"
-        "clipboardWrite"
-        "contextMenus"
-        "notifications"
-        "storage"
-        "webRequest"
-        "webRequestBlocking"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "ublock-origin" = buildFirefoxXpiAddon {
-    pname = "ublock-origin";
-    version = "1.56.0";
-    addonId = "uBlock0@raymondhill.net";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4237670/ublock_origin-1.56.0.xpi";
-    sha256 = "f5fbeeac511ca4e10a74723413727fda8e6f9236c726d16eb54ade1fbe7be5be";
-    meta = with lib; {
-      homepage = "https://github.com/gorhill/uBlock#ublock-origin";
-      description = "Finally, an efficient wide-spectrum content blocker. Easy on CPU and memory.";
-      license = licenses.gpl3;
-      mozPermissions = [
-        "alarms"
-        "dns"
-        "menus"
-        "privacy"
-        "storage"
-        "tabs"
-        "unlimitedStorage"
-        "webNavigation"
-        "webRequest"
-        "webRequestBlocking"
-        "<all_urls>"
-        "http://*/*"
-        "https://*/*"
-        "file://*/*"
-        "https://easylist.to/*"
-        "https://*.fanboy.co.nz/*"
-        "https://filterlists.com/*"
-        "https://forums.lanik.us/*"
-        "https://github.com/*"
-        "https://*.github.io/*"
-        "https://*.letsblock.it/*"
-        "https://github.com/uBlockOrigin/*"
-        "https://ublockorigin.github.io/*"
-        "https://*.reddit.com/r/uBlockOrigin/*"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "user-agent-switcher" = buildFirefoxXpiAddon {
-    pname = "user-agent-switcher";
-    version = "0.5.0";
-    addonId = "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4098688/user_agent_string_switcher-0.5.0.xpi";
-    sha256 = "9dc8da3c8c46d4f04d12fd789c63501fa6a2f502f859b286939a090db63eae33";
-    meta = with lib; {
-      homepage = "http://add0n.com/useragent-switcher.html";
-      description = "Spoof websites trying to gather information about your web navigation—like your browser type and operating system—to deliver distinct content you may not want.";
-      license = licenses.mpl20;
-      mozPermissions = [
-        "storage"
-        "<all_urls>"
-        "webNavigation"
-        "webRequest"
-        "webRequestBlocking"
-        "contextMenus"
-        "*://*/*"
-      ];
-      platforms = platforms.all;
-    };
-  };
-  "violentmonkey" = buildFirefoxXpiAddon {
-    pname = "violentmonkey";
-    version = "2.18.0";
-    addonId = "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4220396/violentmonkey-2.18.0.xpi";
-    sha256 = "4abbeea842b82965379c6011dec6a435dfff0f69c20749118a8ba2f7d14cb0f1";
-    meta = with lib; {
-      homepage = "https://violentmonkey.github.io/";
-      description = "Userscript support for browsers, open source.";
-      license = licenses.mit;
-      mozPermissions = [
-        "tabs"
-        "<all_urls>"
-        "webRequest"
-        "webRequestBlocking"
-        "notifications"
-        "storage"
-        "unlimitedStorage"
-        "clipboardWrite"
-        "contextMenus"
-        "cookies"
-      ];
-      platforms = platforms.all;
-    };
-  };
-}
diff --git a/modules/nixos/firefox/default.nix b/modules/nixos/firefox/default.nix
deleted file mode 100644
index 881e9ad..0000000
--- a/modules/nixos/firefox/default.nix
+++ /dev/null
@@ -1,576 +0,0 @@
-{
-  config,
-  inputs,
-  lib,
-  pkgs,
-  ...
-}:
-with lib;
-let
-  cfg = config.nixfiles.modules.firefox;
-in
-{
-  options.nixfiles.modules.firefox.enable = mkEnableOption "Firefox";
-
-  config = mkIf cfg.enable {
-    nixfiles.modules.common.xdg.defaultApplications.firefox = [
-      "text/html"
-      "x-scheme-handler/http"
-      "x-scheme-handler/https"
-    ];
-
-    hm = {
-      imports = [ inputs.arkenfox.hmModules.arkenfox ];
-
-      home.packages = with pkgs; [ profile-cleaner ];
-
-      stylix.targets.firefox = {
-        enable = true;
-        profileNames = [ "default" ];
-      };
-
-      programs.firefox = {
-        enable = true;
-
-        package = pkgs.firefox;
-
-        arkenfox.enable = true;
-
-        profiles.default =
-          let
-            mkCssWithRoot =
-              css:
-              mkMerge [
-                # https://github.com/tinted-theming/base24/blob/master/styling.md
-                (with config.colors.withHashtag; ''
-                  :root {
-                    --black: ${base01};
-                    --red: ${base08};
-                    --green: ${base0B};
-                    --yellow: ${base09};
-                    --blue: ${base0D};
-                    --magenta: ${base0E};
-                    --cyan: ${base0C};
-                    --white: ${base06};
-                    --bright-black: ${base02};
-                    --bright-red: ${base12};
-                    --bright-green: ${base14};
-                    --bright-yellow: ${base13};
-                    --bright-blue: ${base16};
-                    --bright-magenta: ${base17};
-                    --bright-cyan: ${base15};
-                    --bright-white: ${base07};
-                    --background: ${base00};
-                    --foreground: ${base05};
-                '')
-                (
-                  let
-                    mapFonts = concatMapStringsSep ", " (font: ''"${font}"'');
-                    size = toString config.stylix.fonts.sizes.applications;
-                  in
-                  with config.fonts.fontconfig.defaultFonts;
-                  ''
-                      --serif-font-family: ${mapFonts serif}, serif;
-                      --serif-font-size: ${size};
-                      --sans-serif-font-family: ${mapFonts sansSerif}, sans-serif;
-                      --sans-serif-font-size: ${size};
-                      --monospace-font-family: ${mapFonts monospace}, monospace;
-                      --monospace-font-size: ${size};
-                    }
-                  ''
-                )
-                (builtins.readFile css)
-              ];
-          in
-          {
-            id = 0;
-
-            isDefault = true;
-
-            userChrome = mkCssWithRoot ./userChrome.css;
-
-            userContent = mkCssWithRoot ./userContent.css;
-
-            extensions =
-              let
-                # This was done using the incredible addon generator[1]. All credit
-                # goes to Robert Helgesson.
-                #
-                # [1]: https://sr.ht/~rycee/mozilla-addons-to-nix/
-                buildFirefoxXpiAddon = makeOverridable (
-                  {
-                    stdenv ? pkgs.stdenv,
-                    fetchurl ? pkgs.fetchurl,
-                    pname,
-                    version,
-                    addonId,
-                    url,
-                    sha256,
-                    meta,
-                    ...
-                  }:
-                  stdenv.mkDerivation {
-                    name = "${pname}-${version}";
-                    inherit meta;
-                    src = fetchurl { inherit url sha256; };
-                    preferLocalBuild = true;
-                    allowSubstitutes = true;
-                    buildCommand = ''
-                      dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
-                      mkdir -p "$dst"
-                      install -v -m644 "$src" "$dst/${addonId}.xpi"
-                    '';
-                  }
-                );
-
-                addons = import ./addons.nix { inherit buildFirefoxXpiAddon lib; };
-              in
-              with addons;
-              [
-                bypass-paywalls
-                consent-o-matic
-                darkreader
-                furiganaize
-                languagetool
-                no-pdf-download
-                redirector
-                rikaichamp
-                skip-redirect
-                ublock-origin
-                user-agent-switcher
-                violentmonkey
-              ]
-              ++ optional config.nixfiles.modules.ipfs.enable ipfs-companion;
-
-            search = {
-              force = true;
-
-              default = "DuckDuckGo";
-              order = [
-                "DuckDuckGo"
-                "Yahoo"
-                "Google"
-              ];
-
-              engines =
-                let
-                  getIcon = url: sha256: pkgs.fetchurl { inherit url sha256; };
-                in
-                {
-                  "Amazon.com".metaData.hidden = true;
-                  "Bing".metaData.hidden = true;
-                  "Ebay".metaData.hidden = true;
-
-                  "2GIS" = {
-                    urls = [ { template = "https://2gis.ru/kazan/search/{searchTerms}"; } ];
-                    icon = getIcon "https://d-assets.2gis.ru/favicon.png" "sha256-BlSaYRcUx9zhfJnVK5V7rsyft4qaueIEOONiCg+6aLE=";
-                    definedAliases = [ "@2gis" ];
-                  };
-
-                  "AliExpress" = {
-                    urls = [ { template = "https://aliexpress.ru/wholesale?SearchText={searchTerms}"; } ];
-                    icon = getIcon "https://ae01.alicdn.com/images/eng/wholesale/icon/aliexpress.ico" "sha256-7xgem2pY2PNuv8as1YnS+U03GvDLLGjhcDLt69rtmaA=";
-                    definedAliases = [
-                      "@aliexpress"
-                      "@ali"
-                    ];
-                  };
-
-                  "Ansible Galaxy" = {
-                    urls = [ { template = "https://galaxy.ansible.com/search?keywords={searchTerms}"; } ];
-                    icon = getIcon "https://galaxy.ansible.com/assets/favicon.ico" "sha256-oAolpZhdKbVTraes6dDlafpvq/Vypu264vgKN4jzJk8=";
-                    definedAliases = [
-                      "@ansible"
-                      "@galaxy"
-                      "@ag"
-                    ];
-                  };
-
-                  "Arch Wiki" = {
-                    urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ];
-                    icon = getIcon "https://wiki.archlinux.org/favicon.ico" "sha256-0uxMtT8myzTT7p9k6v5UxsguPKu+vHPlglNTMbnN1T0=";
-                    definedAliases = [
-                      "@archwiki"
-                      "@aw"
-                    ];
-                  };
-
-                  "crates.io" = {
-                    urls = [ { template = "https://crates.io/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://crates.io/favicon.ico" "sha256-upooA/+m5KMUD1t4WFY3EOmytdpUFgNqUj12Auta1mM=";
-                    definedAliases = [ "@crates" ];
-                  };
-
-                  "Discogs" = {
-                    urls = [ { template = "https://www.discogs.com/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://st.discogs.com/d56dcb7367720ea20f1b11a4385705517c7e7702/images/favicon.ico" "sha256-zEDrbmcUf8XHUyYzNc6JsWzBioX8sm8tjScGHim5VTk=";
-                    definedAliases = [ "@discogs" ];
-                  };
-
-                  "Docker Hub" = {
-                    urls = [ { template = "https://hub.docker.com/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://www.docker.com/wp-content/uploads/2023/04/cropped-Docker-favicon-32x32.png" "sha256-4NmHGMaq31qoIvdlmy7fI3qTbkcp1/tJhqQu/9Ci4/c=";
-                    definedAliases = [
-                      "@dockerhub"
-                      "@docker"
-                    ];
-                  };
-
-                  "Ecosia" = {
-                    urls = [ { template = "https://www.ecosia.org/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://cdn-static.ecosia.org/static/icons/favicon.ico" "sha256-uvPShG1yVh4C4zaJmGuhhr96V/NredB1Wte9O3U6QxA=";
-                    definedAliases = [ "@ecosia" ];
-                  };
-
-                  "Genius" = {
-                    urls = [ { template = "https://genius.com/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://assets.genius.com/images/apple-touch-icon.png" "sha256-M9YQEVg3T7hMO/xPfihR1aXfG+/pNiVOBCOtzx3GrkE=";
-                    definedAliases = [ "@genius" ];
-                  };
-
-                  "GitHub" = {
-                    urls = [ { template = "https://github.com/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://github.githubassets.com/favicons/favicon-dark.svg" "sha256-qu/d9ftvsntplFuxw9RFL8BpI9b2g5b6xfeGw6Ekh6w=";
-                    definedAliases = [
-                      "@github"
-                      "@gh"
-                    ];
-                  };
-
-                  "godocs.io" = {
-                    urls = [ { template = "https://godocs.io/?q={searchTerms}"; } ];
-                    icon = getIcon "https://go.dev/images/favicon-gopher.svg" "sha256-OlKpUUeYF8TtMoX4e0ERK1ocIb53OJ8ZDxvwJaQVM/0=";
-                    definedAliases = [ "@godocs" ];
-                  };
-
-                  "pkgs.go.dev" = {
-                    urls = [ { template = "https://pkg.go.dev/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://go.dev/images/favicon-gopher.svg" "sha256-OlKpUUeYF8TtMoX4e0ERK1ocIb53OJ8ZDxvwJaQVM/0=";
-                    definedAliases = [ "@gopkgs" ];
-                  };
-
-                  "Hackage" = {
-                    urls = [ { template = "https://hackage.haskell.org/packages/search?terms={searchTerms}"; } ];
-                    icon = getIcon "https://hackage.haskell.org/static/favicon.png" "sha256-+6WAv93yaA3L2eheGKxklY/uRAvbKD1q/WcmufmhKxY=";
-                    definedAliases = [ "@hackage" ];
-                  };
-
-                  "Hoogle" = {
-                    urls = [ { template = "https://hoogle.haskell.org/?hoogle={searchTerms}"; } ];
-                    icon = getIcon "https://hoogle.haskell.org/favicon.png" "sha256-6qmjRYDDRUwm6EdLoZB6o9XtoujsfDEQJ9xOu3Knei8=";
-                    definedAliases = [ "@hoogle" ];
-                  };
-
-                  "Jisho" = {
-                    urls = [ { template = "https://jisho.org/search/{searchTerms}"; } ];
-                    icon = getIcon "https://assets.jisho.org/assets/favicon-062c4a0240e1e6d72c38aa524742c2d558ee6234497d91dd6b75a182ea823d65.ico" "sha256-BixKAkDh5tcsOKpSR0LC1VjuYjRJfZHda3WhguqCPWU=";
-                    definedAliases = [ "@jisho" ];
-                  };
-
-                  "コトバンク" = {
-                    urls = [ { template = "https://kotobank.jp/gs/?q={searchTerms}"; } ];
-                    icon = getIcon "https://kotobank.jp/favicon.ico" "sha256-t+EzqURlQwznuBqa0GcBbqumvZqtU7HrEAjGUlqp1tg=";
-                    definedAliases = [ "@kotobank" ];
-                  };
-
-                  "Kubernetes" = {
-                    urls = [ { template = "https://kubernetes.io/search/?q={searchTerms}"; } ];
-                    icon = getIcon "https://kubernetes.io/images/favicon.png" "sha256-YI5QvGQXoaTG3uUGQ/R99Xl2r+VqBAA1qqthzPbf8nQ=";
-                    definedAliases = [
-                      "@kubernetes"
-                      "@k8s"
-                    ];
-                  };
-
-                  "Last.fm" = {
-                    urls = [ { template = "https://www.last.fm/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://www.last.fm/static/images/favicon.702b239b6194.ico" "sha256-ID+DfF+dZ5CzKiBp/psQPRD6r/06PZ0rVYiELWUt5Mw=";
-                    definedAliases = [ "@lastfm" ];
-                  };
-
-                  "MDN" = {
-                    urls = [ { template = "https://developer.mozilla.org/en-US/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://developer.mozilla.org/favicon-48x48.cbbd161b.png" "sha256-Wnd0BqQIKgroGmV+R8vqV9uNBwDvcxBrQ8hXOLOFeKY=";
-                    definedAliases = [ "@mdn" ];
-                  };
-
-                  "MELPA" = {
-                    urls = [ { template = "https://melpa.org/#/?q={searchTerms}"; } ];
-                    icon = getIcon "https://melpa.org/favicon.ico" "sha256-bmlydqXBM8MUMC6cOTGSHPx6zN8tZFqmQ+srbXkSCA4=";
-                    definedAliases = [ "@melpa" ];
-                  };
-
-                  "MusicBrainz" = {
-                    urls = [ { template = "https://musicbrainz.org/search?type=artist&query={searchTerms}"; } ];
-                    icon = getIcon "https://musicbrainz.org/static/images/favicons/favicon-16x16.png" "sha256-M5mKQurmO9AP0gfC+5OLwi8k4XWQy759eQrrKAeytl0=";
-                    definedAliases = [
-                      "@musicbrainz"
-                      "@mb"
-                    ];
-                  };
-
-                  "NixOS Packages" = {
-                    urls = [ { template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; } ];
-                    icon = getIcon "https://nixos.org/favicon.png" "sha256-awcsDbbpRcDJnJpRavj/IcKMReEektRcqKbE35IJTKQ=";
-                    definedAliases = [
-                      "@nixpkgs"
-                      "@np"
-                    ];
-                  };
-
-                  "NixOS Options" = {
-                    urls = [ { template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; } ];
-                    icon = getIcon "https://nixos.org/favicon.png" "sha256-awcsDbbpRcDJnJpRavj/IcKMReEektRcqKbE35IJTKQ=";
-                    definedAliases = [
-                      "@nixopts"
-                      "@no"
-                    ];
-                  };
-
-                  "NixOS Wiki" = {
-                    urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ];
-                    icon = getIcon "https://nixos.wiki/favicon.png" "sha256-DE8IgVninF6Aq3iNMgerhvF1dpoXqDUSibtWSpf/dN4=";
-                    definedAliases = [
-                      "@nixoswiki"
-                      "@nw"
-                    ];
-                  };
-
-                  "OpenStreetMap" = {
-                    urls = [ { template = "https://www.openstreetmap.org/search?query={searchTerms}"; } ];
-                    icon = getIcon "https://www.openstreetmap.org/assets/favicon-32x32-99b88fcadeef736889823c8a886b89d8cada9d4423a49a27de29bacc0a6bebd1.png" "sha256-dt4QVbQPdb4neS/fwH3yOWOSbEdkjMZtAYnIeCfr7qI=";
-                    definedAliases = [
-                      "@openstreetmap"
-                      "@osm"
-                      "@maps"
-                    ];
-                  };
-
-                  "ProtonDB" = {
-                    urls = [ { template = "https://www.protondb.com/search?q={searchTerms}"; } ];
-                    icon = getIcon "https://www.protondb.com/sites/protondb/images/favicon.ico" "sha256-oauOp0EASNjMcThfzYJ2TfbaOYHBPL8LOp+9lmp4pmc=";
-                    definedAliases = [ "@protondb" ];
-                  };
-
-                  "PyPI" = {
-                    urls = [ { template = "https://pypi.org/search/?q={searchTerms}"; } ];
-                    icon = getIcon "https://pypi.org/static/images/logo-small.2a411bc6.svg" "sha256-+fcSfcNxAMLIFkp+gh52c48lQORoyhcegUIFtuq/zYs=";
-                    definedAliases = [ "@pypi" ];
-                  };
-
-                  "Python Docs" = {
-                    urls = [ { template = "https://docs.python.org/3/search.html?q={searchTerms}"; } ];
-                    icon = getIcon "https://docs.python.org/3/_static/py.svg" "sha256-WGW+i8wK+IhZSQPqARL2yNkjxXJsQIHoyFYRDMcznO8=";
-                    definedAliases = [ "@pydocs" ];
-                  };
-
-                  "Rate Your Music" = {
-                    urls = [ { template = "https://rateyourmusic.com/search?searchterm={searchTerms}"; } ];
-                    icon = getIcon "https://e.snmc.io/3.0/img/logo/sonemic-32.png" "sha256-JpTt1tjBkUvDMTGrG7Hg2EiE8PR3RL7McodeZk1EpZA=";
-                    definedAliases = [ "@rym" ];
-                  };
-
-                  "Rust Std" = {
-                    urls = [ { template = "https://doc.rust-lang.org/std/?search={searchTerms}"; } ];
-                    icon = getIcon "https://www.rust-lang.org/static/images/favicon-32x32.png" "sha256-l2y4jpnODbua4dyLvXTMBlHVkoDPM9y00l6L61so7eA=";
-                    definedAliases = [
-                      "@ruststd"
-                      "@rust"
-                    ];
-                  };
-
-                  "SourceHut" = {
-                    urls = [ { template = "https://sr.ht/projects?search={searchTerms}"; } ];
-                    icon = getIcon "https://sr.ht/static/logo.png" "sha256-NBzKZhqE9//zVJlOwYiwyW/jRFh8+nS2YvC3zMCQ1fU=";
-                    definedAliases = [
-                      "@sourcehut"
-                      "@srht"
-                    ];
-                  };
-
-                  "SteamDB" = {
-                    urls = [ { template = "https://steamdb.info/search/?a=app&q={searchTerms}"; } ];
-                    icon = getIcon "https://steamdb.info/static/logos/32px.png" "sha256-IUBiB5JUSvyDa+m/wecmHB8s3Wfu0JK98bJ+ZRZ5ybQ=";
-                    definedAliases = [ "@steamdb" ];
-                  };
-
-                  "WolframAlpha" = {
-                    urls = [ { template = "https://www.wolframalpha.com/input?i={searchTerms}"; } ];
-                    icon = getIcon "https://www.wolframalpha.com/_next/static/images/favicon_1zbE9hjk.ico" "sha256-S9k7AlBQiDElBCGopJ8xfBD6dIhGU+EBh8t1QYbP2S4=";
-                    definedAliases = [
-                      "@wolframalpha"
-                      "@wa"
-                    ];
-                  };
-
-                  "Yahoo" = {
-                    urls = [ { template = "https://yahoo.com/search/?text={searchTerms}"; } ];
-                    icon = getIcon "https://yahoostatic.net/s3/web4static/_/v2/oxjfXL1EO-B5Arm80ZrL00p0al4.png" "sha256-gvYh4oCZEO7BL2QZ6QvQFlmFiP2L4SLJrxAsKFcG6G4=";
-                    definedAliases = [
-                      "@yahoo"
-                      "@ya"
-                    ];
-                  };
-
-                  "YouTube" = {
-                    urls = [ { template = "https://yewtu.be/search?q={}"; } ];
-                    icon = getIcon "https://www.youtube.com/s/desktop/280a3f09/img/favicon.ico" "sha256-i7HQ+kOhdDbVndVG9vdMdtxEc13vdSLCLYAxFm24kR0=";
-                    definedAliases = [
-                      "@youtube"
-                      "@yt"
-                    ];
-                  };
-                };
-            };
-
-            # NOTE This silently overrides all other bookmarks.
-            bookmarks = [
-              {
-                name = "Bookmarks Toolbar";
-                toolbar = true;
-                bookmarks = with config.nixfiles.modules; [
-                  (mkIf syncthing.enable {
-                    name = "Syncthing";
-                    url = "http://${config.services.syncthing.guiAddress}";
-                  })
-                  (mkIf ipfs.enable {
-                    name = "IPFS";
-                    url = "http://127.0.0.1:${toString ipfs.apiPort}/webui";
-                  })
-                ];
-              }
-            ];
-
-            # https://github.com/arkenfox/user.js/blob/master/user.js
-            arkenfox = {
-              enable = true;
-              "0000".enable = true;
-              "0100" = {
-                enable = true;
-                "0103"."browser.startup.homepage".value = "about:blank";
-              };
-              "0200".enable = true;
-              "0300".enable = true;
-              "0400" = {
-                enable = true;
-                "0401"."browser.safebrowsing.phishing.enabled".enable = true;
-                "0402"."browser.safebrowsing.downloads.enabled".enable = true;
-                "0404" = {
-                  "browser.safebrowsing.downloads.remote.block_potentially_unwanted".enable = true;
-                  "browser.safebrowsing.downloads.remote.block_uncommon".enable = true;
-                };
-                "0405"."browser.safebrowsing.allowOverride".enable = true;
-              };
-              "0600".enable = true;
-              "0700" = {
-                enable = true;
-                "0710"."network.trr.mode" = {
-                  enable = true;
-                  value = 5;
-                };
-              };
-              "0800" = {
-                enable = true;
-                "0830" = {
-                  "browser.search.separatePrivateDefault" = {
-                    enable = true;
-                    value = false;
-                  };
-                  "browser.search.separatePrivateDefault.ui.enabled" = {
-                    enable = true;
-                    value = false;
-                  };
-                };
-              };
-              "0900".enable = true;
-              "1000" = {
-                enable = true;
-                "1001".enable = false;
-              };
-              "1200".enable = true;
-              "1600".enable = true;
-              "1700".enable = true;
-              "2000".enable = true;
-              "2400".enable = true;
-              "2600" = {
-                enable = true;
-                "2615"."permissions.default.shortcuts".enable = true;
-              };
-              "2700".enable = true;
-              "2800" = {
-                enable = true;
-                "2811"."privacy.clearOnShutdown.history".value = false;
-              };
-              "4500" = {
-                enable = true;
-                "4502".enable = false;
-                "4504".enable = false;
-              };
-              "5000" = {
-                enable = true;
-                "5003"."signon.rememberSignons".enable = true;
-                "5017" = {
-                  "extensions.formautofill.addresses.enabled".enable = true;
-                  "extensions.formautofill.creditCards.enabled".enable = true;
-                };
-                "5019"."browser.pagethumbnails.capturing_disabled".enable = true;
-              };
-              "5500" = {
-                enable = true;
-                "5508"."media.eme.enabled".enable = true;
-                "5508"."browser.eme.ui.enabled".enable = true;
-              };
-              "6000".enable = true;
-              "7000".enable = true;
-              "8000".enable = true;
-              "9000".enable = true;
-            };
-
-            settings = {
-              "app.update.auto" = false;
-              "browser.backspace_action" = 0;
-              "browser.disableResetPrompt" = true;
-              "browser.download.autohideButton" = false;
-              "browser.newtabpage.introShown" = true;
-              "browser.newtabpage.pinned" = "";
-              "browser.onboarding.enabled" = false;
-              "browser.open.lastDir" = config.my.home;
-              "browser.protections_panel.infoMessage.seen" = true;
-              "browser.region.update.region" = "US";
-              "browser.search.region" = "US";
-              "browser.search.update" = false;
-              "browser.shell.checkDefaultBrowser" = false;
-              "browser.tabs.closeWindowWithLastTab" = true;
-              "browser.tabs.firefox-view" = false;
-              "browser.tabs.firefox-view-next" = false;
-              "browser.tabs.inTitlebar" = 0;
-              "browser.tabs.tabmanager.enabled" = false;
-              "browser.tabs.warnOnClose" = false;
-              "browser.tabs.warnOnCloseOtherTabs" = false;
-              "browser.tabs.warnOnOpen" = false;
-              "browser.toolbars.bookmarks.visibility" = "newtab";
-              "browser.translations.enable" = false;
-              "browser.urlbar.decodeURLsOnCopy" = true;
-              "browser.urlbar.suggest.engines" = false;
-              "browser.warnOnQuitShortcut" = false;
-              "devtools.everOpened" = true;
-              "doh-rollout.home-region" = "US";
-              "extensions.pocket.enabled" = false;
-              "extensions.update.autoUpdateDefault" = false;
-              "extensions.update.enabled" = false;
-              "full-screen-api.warning.delay" = 0;
-              "full-screen-api.warning.timeout" = 0;
-              "general.autoScroll" = true;
-              "general.smoothScroll" = true;
-              "identity.fxaccounts.enabled" = false;
-              "media.autoplay.blocking_policy" = 2;
-              "media.autoplay.default" = 5;
-              "media.hardwaremediakeys.enabled" = false;
-              "reader.parse-on-load.enabled" = false;
-              "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
-            };
-          };
-      };
-    };
-  };
-}
diff --git a/modules/nixos/firefox/userChrome.css b/modules/nixos/firefox/userChrome.css
deleted file mode 100644
index 80d1f7a..0000000
--- a/modules/nixos/firefox/userChrome.css
+++ /dev/null
@@ -1,172 +0,0 @@
-@-moz-document url(chrome://browser/content/browser.xhtml)
-{
-  /*
-   ***
-   * Tabbar
-   ***
-   */
-
-  /*
-   * Apply colours and fonts.
-   */
-  .tabbrowser-tab {
-    color: var(--background-alt) !important;
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-  }
-  .tabbrowser-tab[visuallyselected="true"] {
-    background: var(--background) !important;
-    color: var(--foreground) !important;
-  }
-
-  /*
-   * Not sure why is this shit even exists...
-   */
-  .titlebar-spacer {
-    display: none !important;
-  }
-
-  /*
-   * Disable the Firefox View button.
-   */
-  #firefox-view-button {
-    display: none !important;
-  }
-
-  /*
-   * Disable borders and margins.
-   */
-  #tabbrowser-tabs {
-    border-inline-start: 0 !important;
-    /* padding-inline-start: 0 !important; */
-    margin-inline-start: 0 !important;
-  }
-  #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
-    > #tabbrowser-arrowscrollbox
-    > .tabbrowser-tab[first-visible-unpinned-tab] {
-    margin-inline-start: none !important;
-  }
-  .tabbrowser-tab::after,
-  .tabbrowser-tab::before {
-    border: none !important;
-  }
-
-  /*
-   * Make tabs backgroundless.
-   */
-  /* .tab-background, */
-  /* .tab-line { */
-  /*   display: none !important; */
-  /* } */
-
-  /*
-   * Stretch tabs to the max by default.
-   */
-  .tabbrowser-tab[fadein]:not([pinned="true"]) {
-    max-width: 100% !important;
-  }
-
-  /*
-   * Fix favicon location.
-   */
-  .tab-icon-image {
-    margin-inline-end: 10px !important;
-    margin-top: 0px !important;
-  }
-
-  /*
-   * "C-t" exists.
-   */
-  #tabs-newtab-button,
-  #TabsToolbar #new-tab-button {
-    display: none !important;
-  }
-
-  /*
-   * "C-w" exists.
-   */
-  .tab-close-button {
-    display: none !important;
-  }
-
-  /*
-   ***
-   * Navbar & urlbar.
-   ***
-   */
-
-  /*
-   * Remove padding between urlbar and side elements.
-   */
-  #customizableui-special-spring1,
-  #customizableui-special-spring2 {
-    display: none !important;
-  }
-
-  #urlbar {
-    background: var(--background) !important;
-    color: var(--foreground) !important;
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-    border-color: transparent !important;
-  }
-
-  /* #urlbar:not(:-moz-lwtheme):not([focused="true"]) > #urlbar-background, */
-  /* #searchbar:not(:-moz-lwtheme):not(:focus-within) { */
-  /*   border: none !important; */
-  /* } */
-
-  /* #urlbar *|*.textbox-input::-moz-placeholder { */
-  /*   color: transparent !important; */
-  /* } */
-
-  /* .urlbar-icon:hover:not([disabled]), */
-  /* .urlbar-icon-wrapper:hover:not([disabled]) { */
-  /*   background-color: var(--background-alt) !important; */
-  /* } */
-
-  /* #urlbar-background { */
-  /*   background: transparent !important; */
-  /* } */
-
-  /* .urlbarView-tags, */
-  /* .urlbarView-url, */
-  /* .urlbarView-title:not(:empty) ~ .urlbarView-action { */
-  /*   font-size: var(--sans-serif-font-size) !important; */
-  /* } */
-
-  .urlbarView-row[label="Firefox Suggest"] {
-    margin-block-start: 0 !important;
-  }
-  .urlbarView-row[label="Firefox Suggest"]::before {
-    display: none !important;
-  }
-
-  /*
-   ***
-   * Misc.
-   ***
-   */
-
-  /*
-   * Call indicator that some "designer" decided to make floating and impossible
-   * to hide.
-   */
-  #webrtcIndicator {
-    display: none !important;
-  }
-
-  /*
-   * Disable some context menu entries.
-   */
-  #context-navigation {
-    display: none !important;
-  }
-
-  /*
-   * Remove dumb websites that Mozilla is forced to include.
-   */
-  .search-one-offs {
-    display: none !important;
-  }
-}
diff --git a/modules/nixos/firefox/userContent.css b/modules/nixos/firefox/userContent.css
deleted file mode 100644
index cf7b659..0000000
--- a/modules/nixos/firefox/userContent.css
+++ /dev/null
@@ -1,399 +0,0 @@
-@-moz-document media-document(all) {
-  body {
-    background-image: none !important;
-    background-color: var(--background) !important;
-  }
-}
-
-@-moz-document regexp("about:(blank|home|newtab|privatebrowsing|welcome)") {
-  html,
-  body {
-    background: var(--background) !important;
-  }
-
-  body {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://.*")
-{
-  iframe[src^="https://accounts.google.com/gsi/iframe"]
-  {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://(www)?yandex\.(com|ru)/search/.*")
-{
-  #search-result-aside,
-  .RelatedAbove {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://music\.yandex\.ru.*")
-{
-  .bar-below.bar-below_plus,
-  .footer,
-  .notify,
-  .teaser {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://(.*.)?gitlab(\..*)?\.(com|org).*")
-{
-  body {
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-  }
-
-  code {
-    font-family: var(--monospace-font-family) !important;
-    font-size: var(--monospace-font-size) !important;
-  }
-}
-
-@-moz-document regexp("https?://(.*\.)?github.com.*")
-{
-  .color-fg-muted.f6.mt-4, /* GitHub profile guide. */
-    .flex-order-1.flex-md-order-none, /* Follow button. */
-    .js-user-status-item,
-    .protip,
-    .pt-3.mt-3.d-none.d-md-block, /* Profile achievements. */
-    .user-status-circle-badge-container,
-    .user-status-container,
-    a[href^="/account/choose?action=upgrade"],
-    a[href^="/collections"],
-    a[href^="/contact/report-content"],
-    a[href^="/events"],
-    a[href^="/explore"],
-    a[href^="/github-copilot"],
-    a[href^="/organizations/enterprise"],
-    a[href^="/settings/enterprises"],
-    a[href^="/sponsors"],
-    a[href^="/topics"],
-    a[href^="/trending"],
-    a[href^="https://github.com/codespaces"], /* Absolute cringe... */
-    button[data-testid="copilot-popover-button"],
-    details[id^="funding-links-modal"],
-    footer {
-    display: none !important;
-  }
-
-  .application-main {
-    padding-bottom: 20px !important;
-  }
-
-  .blob-num,
-  .blob-code-inner {
-    font-family: var(--monospace-font-family) !important;
-    font-size: var(--monospace-font-size) !important;
-  }
-}
-
-@-moz-document regexp("https?://github.com/?")
-{
-  .application-main {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://.*(stack(exchange|overflow)|askubuntu|superuser|serverfault)\.com/questions/.*")
-{
-  html,
-  body {
-    --ff-mono: var(--monospace-font-family) !important;
-    --ff-sans: var(--sans-serif-font-family) !important;
-    --ff-serif: var(--serif-font-family) !important;
-  }
-
-  #announcement-banner,
-  #footer,
-  #left-sidebar,
-  #noscript-warning,
-  #notify-container,
-  #post-form,
-  #sidebar,
-  .ai-start,
-  .bottom-notice,
-  .d-flex.g4,
-  .d-flex.s-btn-group,
-  .js-add-link.comments-link,
-  .js-consent-banner,
-  .js-dismissable-hero,
-  .js-post-issue,
-  .js-saves-btn,
-  .js-show-link.comments-link,
-  .js-vote-down-btn,
-  .js-vote-up-btn,
-  .post-taglist,
-  .s-notice,
-  .s-topbar,
-  .site-header,
-  a.ws-nowrap {
-    display: none !important;
-  }
-
-  #mainbar {
-    width: 100% !important;
-  }
-
-  #content {
-    margin-top: -50px !important;
-    border-width: 0 0 0 0 !important;
-  }
-}
-
-@-moz-document regexp("https?://kubernetes\.io/docs/.*")
-{
-  .announcement,
-  .announcement-main,
-  .d-none {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://min\.io/docs/.*")
-{
-  #cookie {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://werf\.io/documentation/.*")
-{
-  .guides-banner {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://grafana\.com/docs/.*")
-{
-  .ads__content,
-  .scroll,
-  .sticky-footer {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://habr\.com/(ru|en)/(articles|company/.*/news|news|companies|blog|post)/.*")
-{
-  .Vue-Toastification__container,
-  .tm-article-labels,
-  .tm-article-presenter__banner,
-  .tm-article-presenter__footer,
-  .tm-article-presenter__meta,
-  .tm-article-snippet__labels,
-  .tm-base-layout__header,
-  .tm-block.tm-block_spacing-bottom,
-  .tm-comment-footer,
-  .tm-comment__header,
-  .tm-editoral-subscription,
-  .tm-footer,
-  .tm-footer-menu,
-  .tm-header,
-  .tm-notice,
-  .tm-page__header,
-  .tm-page__sidebar,
-  .tm-placeholder-inset,
-  .tm-placeholder-promo,
-  .tm-user-info,
-  vue-portal-target {
-    display: none !important;
-  }
-
-  * {
-    transition: none !important;
-  }
-
-  html,
-  body {
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-  }
-
-  #app {
-    height: auto !important;
-  }
-
-  .tm-article-presenter__footer,
-  .tm-page__main_has-sidebar {
-    margin-left: auto !important;
-    margin-right: auto !important;
-    max-width: 100% !important;
-  }
-
-  .tm-page {
-    padding: 0 !important;
-  }
-
-  .tm-comment__buttons {
-    margin: 0 !important;
-  }
-
-  html,
-  body {
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-  }
-
-  code {
-    font-family: var(--monospace-font-family) !important;
-    font-size: var(--monospace-font-size) !important;
-  }
-}
-
-@-moz-document regexp("https?://jisho\.org.*")
-{
-  header,
-  footer {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://.*\.fandom\.com/wiki/.*")
-{
-  #WikiaBar,
-  #highlight__main-container,
-  .global-footer,
-  .global-navigation,
-  .global-registration-buttons {
-    display: none !important;
-  }
-
-  .main-container,
-  body {
-    background-image: none !important;
-    backgrounde: none !important;
-  }
-
-  .main-container {
-    margin-left: none !important;
-    width: auto !important;
-  }
-
-  .fandom-sticky-header {
-    left: 0px !important;
-  }
-}
-
-@-moz-document regexp("https?:\/\/gog\.com.*") {
-  .galaxy-section-wrapper,
-  footer {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://steamdb\.info.*")
-{
-  #steamdb-extension-protip {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://(.*\.)?hh\.ru.*")
-{
-  .HH-Supernova-Footer,
-  .index-dashboard-applicant__banners,
-  .notification-manager,
-  .resume-sidebar-background,
-  .supernova-overlay {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://www\.songsterr\.com.*")
-{
-  #favorite,
-  #fullscreen,
-  #logo,
-  #menu-favorites,
-  #menu-help,
-  #menu-plus,
-  #menu-signin,
-  #menu-submit,
-  #promo,
-  #revisions,
-  #showroom,
-  #showroom_sidebar,
-  #text-showroom,
-  footer {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://developer\.mozilla\.org.*")
-{
-  #nav-footer,
-  .main-document-header-container.top-navigation,
-  .mdn-cta-container,
-  .top-banner.fallback {
-    display: none !important;
-  }
-
-  .sidebar {
-    --offset: default !important;
-  }
-
-  html,
-  body {
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-  }
-}
-
-@-moz-document regexp("https?://(.*\.)?wikipedia\.org/wiki/.*")
-{
-  #footer,
-  #mp-topbanner,
-  #siteNotice,
-  #siteSub,
-  #wmde-banner-app,
-  .mw-footer-container,
-  .mw-header,
-  .vector-page-toolbar {
-    display: none !important;
-  }
-
-  html,
-  body {
-    font-family: var(--sans-serif-font-family) !important;
-    font-size: var(--sans-serif-font-size) !important;
-  }
-
-  .k-player,
-  body.mediawiki,
-  #dialogEngineContainer #dialogEngineDialog {
-    background: inherit !important;
-  }
-}
-
-@-moz-document regexp("https?://open-vsx\.org.*")
-{
-  MuiCollapse-container,
-  cc-window.cc-banner,
-  footer {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://duckduckgo\.com.*")
-{
-  .badge-link, /* Annoying DuckDuckGo extension ads. */
-  .footer {
-    display: none !important;
-  }
-}
-
-@-moz-document regexp("https?://ecosia\.org.*")
-{
-  .cookie-wrapper,
-  .main-header__install-cta,
-  .meta-results,
-  .notifications,
-  .personal-counter {
-    display: none !important;
-  }
-}

Consider giving Nix/NixOS a try! <3