diff --git a/flake.lock b/flake.lock index 85f7522..ed91b3c 100644 --- a/flake.lock +++ b/flake.lock @@ -48,6 +48,21 @@ "type": "github" } }, + "crane_2": { + "locked": { + "lastModified": 1736032295, + "narHash": "sha256-QNRlMxQTT3rdgsQb3QxljO14kE8xxdDXNJ/4jIm4u3Q=", + "owner": "ipetkov", + "repo": "crane", + "rev": "9fa361afe873c740d5ca10ff526463d5807eab88", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -80,6 +95,22 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -101,6 +132,45 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "schizofox", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1735774679, + "narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -145,6 +215,54 @@ "type": "github" } }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": [ + "schizofox", + "nixpak", + "flake-parts" + ], + "nixpkgs": [ + "schizofox", + "nixpak", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733333617, + "narHash": "sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "56f8ea8d502c87cf62444bec4ee04512e8ea24ea", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "schizofox", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734344598, + "narHash": "sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "83ecd50915a09dca928971139d3a102377a8d242", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "hyprcursor": { "inputs": { "hyprlang": [ @@ -448,6 +566,32 @@ "type": "github" } }, + "nixpak": { + "inputs": { + "flake-parts": [ + "schizofox", + "flake-parts" + ], + "hercules-ci-effects": "hercules-ci-effects", + "nixpkgs": [ + "schizofox", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733970147, + "narHash": "sha256-63SguTBGenmU4jx7j44PVXlZMsWsALjaNPpRg9xlljs=", + "owner": "nixpak", + "repo": "nixpak", + "rev": "fbbb572e595decf5e749d7fbeb27e1ff09484ff8", + "type": "github" + }, + "original": { + "owner": "nixpak", + "repo": "nixpak", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1744098102, @@ -464,6 +608,34 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1736429638, + "narHash": "sha256-dDWqQqSgMQXw5eFtcyoVijv7HbYJZOIo+jWQdJtsxn4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f81eabd5dd7c9213516fa2d3fc1d108a751340d4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -519,7 +691,8 @@ "impermanence": "impermanence", "lanzaboote": "lanzaboote", "nixpkgs": "nixpkgs", - "systems": "systems" + "schizofox": "schizofox", + "systems": "systems_2" } }, "rust-overlay": { @@ -543,6 +716,53 @@ "type": "github" } }, + "schizofox": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts_2", + "home-manager": "home-manager", + "nixpak": "nixpak", + "nixpkgs": "nixpkgs_2", + "searx-randomizer": "searx-randomizer", + "systems": "systems" + }, + "locked": { + "lastModified": 1744892989, + "narHash": "sha256-SwJiKlZSYSQhXQR4xxaItURuD+NTRbUxtoLNQFzgvUI=", + "owner": "schizofox", + "repo": "schizofox", + "rev": "e2702bd7a09fc9d6089901adb4e7ae4a9aeef5ef", + "type": "github" + }, + "original": { + "owner": "schizofox", + "repo": "schizofox", + "type": "github" + } + }, + "searx-randomizer": { + "inputs": { + "crane": "crane_2", + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "schizofox", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1736054833, + "narHash": "sha256-fSvHee00LQpndvJ0N4ZahRuoAQd06g8ecdUzfNPLvLk=", + "owner": "schizofox", + "repo": "searx-randomizer", + "rev": "63d6fed21ae5a6608bac71665887a432781161c6", + "type": "github" + }, + "original": { + "owner": "schizofox", + "repo": "searx-randomizer", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1689347949, @@ -558,6 +778,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ diff --git a/flake.nix b/flake.nix index 9a4b1c2..e9303de 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,8 @@ impermanence.url = "github:nix-community/impermanence"; + schizofox.url = "github:schizofox/schizofox"; + # secure booting lanzaboote = { url = "github:nix-community/lanzaboote"; diff --git a/modules/programs/gui/schizofox/module.nix b/modules/programs/gui/schizofox/module.nix new file mode 100644 index 0000000..181b896 --- /dev/null +++ b/modules/programs/gui/schizofox/module.nix @@ -0,0 +1,117 @@ +{ + config, + inputs, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.options) mkEnableOption; + inherit (builtins) listToAttrs; + + cfg = config.modules.programs.schizofox; +in { + options.modules.programs.schizofox.enable = mkEnableOption "Schizofox browser"; + imports = [ + inputs.schizofox.nixosModules.default + ]; + + config = mkIf cfg.enable { + programs.schizofox = { + enable = true; + theme = { + font = "Lexend"; + colors = { + background-darker = "181825"; + background = "1e1e2e"; + foreground = "cdd6f4"; + }; + }; + + security = { + sanitizeOnShutdown.enable = true; + sandbox.enable = true; + noSessionRestore = true; + userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0"; + }; + + misc = { + drm.enable = true; + disableWebgl = false; + bookmarks = [ + { + Title = "Noogle"; + URL = "https://noogle.dev"; + Placement = "toolbar"; + } + { + Title = "Nixpkgs Manual"; + URL = "https://nixos.org/manual/nixpkgs/stable"; + Placement = "toolbar"; + } + ]; + }; + + extensions = { + simplefox.enable = true; + darkreader.enable = true; + + enableDefaultExtensions = true; + enableExtraExtensions = true; + extraExtensions = let + extensions = [ + { + id = "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}"; + name = "auto-tab-discard"; + } + { + id = "{a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad}"; + name = "refined-github-"; + } + { + id = "sponsorBlocker@ajay.app"; + name = "sponsorblock"; + } + { + id = "{446900e4-71c2-419f-a6a7-df9c091e268b}"; + name = "bitwarden-password-manager"; + } + { + id = "{74145f27-f039-47ce-a470-a662b129930a}"; + name = "clearurls"; + } + { + id = "{b86e4813-687a-43e6-ab65-0bde4ab75758}"; + name = "localcdn-fork-of-decentraleyes"; + } + { + id = "smart-referer@meh.paranoid.pk"; + name = "smart-referer"; + } + { + id = "skipredirect@sblask"; + name = "skip-redirect"; + } + { + id = "7esoorv3@alefvanoon.anonaddy.me"; + name = "libredirect"; + } + { + id = "DontFuckWithPaste@raim.ist"; + name = "dont-fuck-with-paste"; + } + ]; + + mappedExtensions = + map (extension: { + name = extension.id; + value = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/${extension.name}/latest.xpi"; + }; + }) + extensions; + in + listToAttrs mappedExtensions; + }; + }; + }; +}