diff --git a/home/browser.nix b/home/browser.nix index 68dc3dd..ef0b60d 100644 --- a/home/browser.nix +++ b/home/browser.nix @@ -1,5 +1,58 @@ -{pkgs, ...}: { +{ + pkgs, + lib, + ... +}: let + package = pkgs.ungoogled-chromium; + createChromiumExtensionFor = browserVersion: { + id, + sha256, + version, + }: { + inherit id; + crxPath = builtins.fetchurl { + url = "https://clients2.google.com/service/update2/crx?response=redirect&acceptformat=crx2,crx3&prodversion=${browserVersion}&x=id%3D${id}%26installsource%3Dondemand%26uc"; + name = "${id}.crx"; + inherit sha256; + }; + inherit version; + }; + createChromiumExtension = createChromiumExtensionFor (lib.versions.major package.version); + extensions = [ + (createChromiumExtension { + # ublock origin + id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; + sha256 = "sha256-u81DNkZw/LBVyjk5nmrrJEVjdc+GFCay+rQZGpDH3jA="; + version = "1.37.2"; + }) + (createChromiumExtension { + # dark reader + id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; + sha256 = "sha256-JcM2Ki3cTWdskFEFs2jk6LQUTFOojkBf+6HqO1GPK90="; + version = "4.9.34"; + }) + ]; +in { programs.firefox = { enable = pkgs.stdenv.isLinux; }; + + programs.chromium = { + enable = pkgs.stdenv.isLinux; + package = package; + enableWidevine = true; + inherit extensions; + + extraOpts = { + ExtensionSettings = builtins.listToAttrs (map + (extension: { + name = extension.id; + value = { + installation_mode = "force_installed"; + update_url = "https://clients2.google.com/service/update2/crx"; + }; + }) + extensions); + }; + }; } diff --git a/home/default.nix b/home/default.nix index 851d96f..a455b83 100644 --- a/home/default.nix +++ b/home/default.nix @@ -23,6 +23,7 @@ in { ./direnv.nix ./sway.nix ./terminal.nix + ./browser.nix ]; # Home Manager needs a bit of information about you and the diff --git a/home/packages/linux.nix b/home/packages/linux.nix index a643ade..e26def3 100644 --- a/home/packages/linux.nix +++ b/home/packages/linux.nix @@ -11,5 +11,6 @@ mcrcon xfce.thunar pavucontrol + # ungoogled-chromium ]); }