diff --git a/hosts/muvo/home.nix b/hosts/muvo/home.nix index 9ba0dcb..92906ef 100644 --- a/hosts/muvo/home.nix +++ b/hosts/muvo/home.nix @@ -20,6 +20,7 @@ in { mods.terminal.tools.enable = true; mods.desktop.development.enable = true; mods.desktop.productivity.enable = false; + mods.zen.enable = true; home.packages = with pkgs; [ pulseaudio diff --git a/modules/home/desktop/default.nix b/modules/home/desktop/default.nix index 54d097e..9ff8ceb 100644 --- a/modules/home/desktop/default.nix +++ b/modules/home/desktop/default.nix @@ -1,5 +1,9 @@ -{ pkgs, lib, osConfig, ... }: -let +{ + pkgs, + lib, + osConfig, + ... +}: let cfg = osConfig.mods.desktop; in { imports = [ @@ -9,6 +13,7 @@ in { ./development.nix ./productivity.nix ./media.nix + ./zen.nix ]; mods.hyprland.enable = lib.mkIf cfg.wayland.enable true; diff --git a/modules/home/desktop/productivity.nix b/modules/home/desktop/productivity.nix index e23e21a..6072d85 100644 --- a/modules/home/desktop/productivity.nix +++ b/modules/home/desktop/productivity.nix @@ -13,12 +13,6 @@ in options.mods.desktop.productivity.enable = lib.mkEnableOption "enables gui productivity tools"; - imports = [ - inputs.zen-browser.homeModules.beta - # or inputs.zen-browser.homeModules.twilight - # or inputs.zen-browser.homeModules.twilight-official - ]; - config = lib.mkIf config.mods.desktop.productivity.enable { home.packages = with pkgs; [ # ISO downloader @@ -85,238 +79,5 @@ in exec = "${pkgs.mullvad-browser}/bin/mullvad-browser -p i2p"; }; }; - - stylix.targets.zen-browser.profileNames = []; - programs.zen-browser = { - enable = true; - - policies = let - mkLockedAttrs = builtins.mapAttrs (_: value: { - Value = value; - Status = "locked"; - }); - - mkPluginUrl = id: "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi"; - - mkExtensionEntry = { - id, - pinned ? false, - }: let - base = { - install_url = mkPluginUrl id; - installation_mode = "force_installed"; - }; - in - if pinned - then base // {default_area = "navbar";} - else base; - - mkExtensionSettings = builtins.mapAttrs (_: entry: - if builtins.isAttrs entry - then entry - else mkExtensionEntry {id = entry;}); - in { - AutofillAddressEnabled = false; - AutofillCreditCardEnabled = false; - DisableAppUpdate = true; - DisableFeedbackCommands = true; - DisableFirefoxStudies = true; - DisablePocket = true; - DisableTelemetry = true; - DontCheckDefaultBrowser = true; - OfferToSaveLogins = false; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - ExtensionSettings = mkExtensionSettings { - "uBlock0@raymondhill.net" = mkExtensionEntry { - id = "ublock-origin"; - pinned = true; - }; - "{85860b32-02a8-431a-b2b1-40fbd64c9c69}" = "github-file-icons"; - "{74145f27-f039-47ce-a470-a662b129930a}" = "clearurls"; - "github-no-more@ihatereality.space" = "github-no-more"; - "github-repository-size@pranavmangal" = "gh-repo-size"; - "@searchengineadremover" = "searchengineadremover"; - "jid1-BoFifL9Vbdl2zQ@jetpack" = "decentraleyes"; - "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = "vimium-ff"; - }; - Preferences = mkLockedAttrs { - "browser.aboutConfig.showWarning" = false; - "browser.tabs.warnOnClose" = false; - "media.videocontrols.picture-in-picture.video-toggle.enabled" = true; - # Disable swipe gestures (Browser:BackOrBackDuplicate, Browser:ForwardOrForwardDuplicate) - "browser.gesture.swipe.left" = ""; - "browser.gesture.swipe.right" = ""; - "browser.tabs.hoverPreview.enabled" = true; - "browser.newtabpage.activity-stream.feeds.topsites" = false; - "browser.topsites.contile.enabled" = false; - - "privacy.resistFingerprinting" = true; - "privacy.firstparty.isolate" = true; - "network.cookie.cookieBehavior" = 5; - "dom.battery.enabled" = false; - - "gfx.webrender.all" = true; - "network.http.http3.enabled" = true; - }; - }; - - profiles.default = rec { - settings = { - "zen.workspaces.continue-where-left-off" = true; - "zen.workspaces.natural-scroll" = true; - "zen.view.compact.hide-tabbar" = true; - "zen.view.compact.hide-toolbar" = true; - "zen.view.compact.animate-sidebar" = false; - "zen.welcome-screen.seen" = true; - }; - - bookmarks = { - force = true; - settings = [ - { - name = "Nix sites"; - toolbar = true; - bookmarks = [ - { - name = "homepage"; - url = "https://nixos.org/"; - } - { - name = "wiki"; - tags = ["wiki" "nix"]; - url = "https://wiki.nixos.org/"; - } - ]; - } - ]; - }; - - pinsForce = true; - pins = { - "GitHub" = { - id = "48e8a119-5a14-4826-9545-91c8e8dd3bf6"; - workspace = spaces."Work".id; - url = "https://github.com"; - position = 101; - isEssential = false; - }; - }; - - containersForce = true; - containers = { - Work = { - color = "blue"; - icon = "briefcase"; - id = 2; - }; - }; - - spacesForce = true; - spaces = { - "Personal" = { - id = "572910e1-4468-4832-a869-0b3a93e2f165"; - # icon = ""; - position = 1000; - }; - "Work" = { - id = "ec287d7f-d910-4860-b400-513f269dee77"; - # icon = "briefcase"; - position = 1001; - container = containers."Work".id; - }; - }; - - search = { - force = true; - default = "searx"; - engines = let - nixSnowflakeIcon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - in { - "Nix Packages" = { - urls = [ - { - template = "https://search.nixos.org/packages"; - params = [ - { - name = "type"; - value = "packages"; - } - { - name = "channel"; - value = "unstable"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = nixSnowflakeIcon; - definedAliases = ["np"]; - }; - "Nix Options" = { - urls = [ - { - template = "https://search.nixos.org/options"; - params = [ - { - name = "channel"; - value = "unstable"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = nixSnowflakeIcon; - definedAliases = ["nop"]; - }; - "Home Manager Options" = { - urls = [ - { - template = "https://home-manager-options.extranix.com/"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - { - name = "release"; - value = "master"; # unstable - } - ]; - } - ]; - icon = nixSnowflakeIcon; - definedAliases = ["hm"]; - }; - "searx" = { - urls = [ - { - template = "https://search.muon.host/search"; - params = [ - { - name = "q"; - value = "{searchTerms}"; - } - ]; - } - ]; - icon = "magnifying-glass"; - definedAliases = ["srx"]; - }; - bing.metaData.hidden = "true"; - }; - }; - }; - }; }; } diff --git a/modules/home/desktop/zen.nix b/modules/home/desktop/zen.nix new file mode 100644 index 0000000..5a0717e --- /dev/null +++ b/modules/home/desktop/zen.nix @@ -0,0 +1,256 @@ +{ + pkgs, + lib, + config, + osConfig, + system, + inputs, + ... +}: let + color = config.lib.stylix.colors.withHashtag; +in + with lib; { + options.mods.zen.enable = + lib.mkEnableOption "enables zen browser"; + + imports = [ + inputs.zen-browser.homeModules.beta + # or inputs.zen-browser.homeModules.twilight + # or inputs.zen-browser.homeModules.twilight-official + ]; + + config = lib.mkIf config.mods.desktop.productivity.enable { + stylix.targets.zen-browser.profileNames = []; + programs.zen-browser = { + enable = true; + + policies = let + mkLockedAttrs = builtins.mapAttrs (_: value: { + Value = value; + Status = "locked"; + }); + + mkPluginUrl = id: "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi"; + + mkExtensionEntry = { + id, + pinned ? false, + }: let + base = { + install_url = mkPluginUrl id; + installation_mode = "force_installed"; + }; + in + if pinned + then base // {default_area = "navbar";} + else base; + + mkExtensionSettings = builtins.mapAttrs (_: entry: + if builtins.isAttrs entry + then entry + else mkExtensionEntry {id = entry;}); + in { + AutofillAddressEnabled = false; + AutofillCreditCardEnabled = false; + DisableAppUpdate = true; + DisableFeedbackCommands = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DontCheckDefaultBrowser = true; + OfferToSaveLogins = false; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + ExtensionSettings = mkExtensionSettings { + "uBlock0@raymondhill.net" = mkExtensionEntry { + id = "ublock-origin"; + pinned = true; + }; + "{85860b32-02a8-431a-b2b1-40fbd64c9c69}" = "github-file-icons"; + "{74145f27-f039-47ce-a470-a662b129930a}" = "clearurls"; + "github-no-more@ihatereality.space" = "github-no-more"; + "github-repository-size@pranavmangal" = "gh-repo-size"; + "@searchengineadremover" = "searchengineadremover"; + "jid1-BoFifL9Vbdl2zQ@jetpack" = "decentraleyes"; + "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = "vimium-ff"; + }; + Preferences = mkLockedAttrs { + "browser.aboutConfig.showWarning" = false; + "browser.tabs.warnOnClose" = false; + "media.videocontrols.picture-in-picture.video-toggle.enabled" = true; + # Disable swipe gestures (Browser:BackOrBackDuplicate, Browser:ForwardOrForwardDuplicate) + "browser.gesture.swipe.left" = ""; + "browser.gesture.swipe.right" = ""; + "browser.tabs.hoverPreview.enabled" = true; + "browser.newtabpage.activity-stream.feeds.topsites" = false; + "browser.topsites.contile.enabled" = false; + + "privacy.resistFingerprinting" = true; + "privacy.firstparty.isolate" = true; + "network.cookie.cookieBehavior" = 5; + "dom.battery.enabled" = false; + + "gfx.webrender.all" = true; + "network.http.http3.enabled" = true; + }; + }; + + profiles.default = rec { + settings = { + "zen.workspaces.continue-where-left-off" = true; + "zen.workspaces.natural-scroll" = true; + "zen.view.compact.hide-tabbar" = true; + "zen.view.compact.hide-toolbar" = true; + "zen.view.compact.animate-sidebar" = false; + "zen.welcome-screen.seen" = true; + }; + + bookmarks = { + force = true; + settings = [ + { + name = "Nix sites"; + toolbar = true; + bookmarks = [ + { + name = "homepage"; + url = "https://nixos.org/"; + } + { + name = "wiki"; + tags = ["wiki" "nix"]; + url = "https://wiki.nixos.org/"; + } + ]; + } + ]; + }; + + pinsForce = true; + pins = { + "GitHub" = { + id = "48e8a119-5a14-4826-9545-91c8e8dd3bf6"; + workspace = spaces."Work".id; + url = "https://github.com"; + position = 101; + isEssential = false; + }; + }; + + containersForce = true; + containers = { + Work = { + color = "blue"; + icon = "briefcase"; + id = 2; + }; + }; + + spacesForce = true; + spaces = { + "Personal" = { + id = "572910e1-4468-4832-a869-0b3a93e2f165"; + # icon = ""; + position = 1000; + }; + "Work" = { + id = "ec287d7f-d910-4860-b400-513f269dee77"; + # icon = "briefcase"; + position = 1001; + container = containers."Work".id; + }; + }; + + search = { + force = true; + default = "searx"; + engines = let + nixSnowflakeIcon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + in { + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "channel"; + value = "unstable"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = nixSnowflakeIcon; + definedAliases = ["np"]; + }; + "Nix Options" = { + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + name = "channel"; + value = "unstable"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = nixSnowflakeIcon; + definedAliases = ["nop"]; + }; + "Home Manager Options" = { + urls = [ + { + template = "https://home-manager-options.extranix.com/"; + params = [ + { + name = "query"; + value = "{searchTerms}"; + } + { + name = "release"; + value = "master"; # unstable + } + ]; + } + ]; + icon = nixSnowflakeIcon; + definedAliases = ["hm"]; + }; + "searx" = { + urls = [ + { + template = "https://search.muon.host/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = "magnifying-glass"; + definedAliases = ["srx"]; + }; + bing.metaData.hidden = "true"; + }; + }; + }; + }; + }; + }