diff options
Diffstat (limited to 'modules/home.legacy/conf/firefox/default.nix')
-rw-r--r-- | modules/home.legacy/conf/firefox/default.nix | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/firefox/default.nix b/modules/home.legacy/conf/firefox/default.nix new file mode 100644 index 00000000..f2ccfc99 --- /dev/null +++ b/modules/home.legacy/conf/firefox/default.nix @@ -0,0 +1,134 @@ +{ + config, + pkgs, + lib, + user_js, + ... +}: let + extensions = + builtins.fromJSON (builtins.readFile ./config/extensions/extensions.json); + + userChrome = builtins.readFile ./config/chrome/userChrome.css; + bookmarks = (import ./config/bookmarks/default.nix) { + inherit + pkgs + lib + ; + }; + engines = (import ./config/search/engines) {inherit pkgs;}; + + native_messaging_hosts = (import ./config/extensions/native_messaging_hosts/default.nix) {inherit pkgs;}; + + policies = (import ./config/policies) {inherit config extensions;}; + + search = { + default = "Brave Search"; + privateDefault = "Brave Search"; + force = true; + order = [ + # DEFAULT + "Brave Search" + + # NIX + "Nix Packages" + "Nix Options" + "Nixpkgs issues" + "Homemanager Options" + "NixOS Wiki" + "Nixpkgs Pull Request Tracker" + + # RUST + "Rust std" + "Rust tokio" + + # OTHER + "Google Scholar" + "Wikipedia" + "Arch Wiki" + ]; + + inherit engines; + }; + + prefConfig = builtins.readFile "${ + (import ./config/prefs) {inherit pkgs lib config bookmarks user_js;} + }/user.js"; + + # Package {{{ + package = import ./package.nix { + inherit config lib pkgs; + extraPolicies = policies; + extraNativeMessagingHosts = native_messaging_hosts; + }; + # }}} + + # Profiles {{{ + profiles = { + "default" = { + inherit search userChrome; + isDefault = true; + id = 0; + name = "default"; + extraConfig = prefConfig; + }; + }; + + taskwarriorProfiles = import ../taskwarrior/firefox { + inherit + config + lib + # options + + prefConfig + search + userChrome + ; + profile_size = builtins.length (builtins.attrNames profiles); + }; + # }}} +in { + options.soispha.firefox = { + package = lib.mkOption { + type = lib.types.package; + default = pkgs.firefox; + description = "Firefox package to use."; + defaultText = lib.literalExpression "pkgs.firefox"; + relatedPackages = [ + "firefox" + "firefox-beta-bin" + "firefox-bin" + "firefox-devedition-bin" + "firefox-esr" + ]; + }; + package_version = lib.mkOption { + type = lib.types.str; + default = pkgs.firefox.version; + description = "Firefox version to use"; + }; + }; + + config = { + soispha.firefox.package = package; + soispha.firefox.package_version = pkgs.firefox.version; + home.sessionVariables = { + # improve touch input & make scrolling smother + MOZ_USE_XINPUT2 = "1"; + + # improve wayland support + MOZ_ENABLE_WAYLAND = 1; + + # tell gtk to use portals + GTK_USE_PORTAL = 1; + + BROWSER = "firefox"; + }; + programs.firefox = { + enable = true; + inherit (config.soispha.firefox) package; + profiles = + profiles + // taskwarriorProfiles; + }; + }; +} |