aboutsummaryrefslogtreecommitdiffstats
path: root/modules/home/conf/firefox/default.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:31:11 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:33:40 +0200
commitfd9b0ecef4142a62b45404700ba1cff488f84a73 (patch)
treeef6c1f74f05a2220a41ccff4b0890c39229f32f7 /modules/home/conf/firefox/default.nix
parentrefactor(pkgs): Categorize into `by-name` shards (diff)
downloadnixos-config-fd9b0ecef4142a62b45404700ba1cff488f84a73.zip
refactor(modules/home): Setup as "normal" NixOS module
Diffstat (limited to 'modules/home/conf/firefox/default.nix')
-rw-r--r--modules/home/conf/firefox/default.nix134
1 files changed, 134 insertions, 0 deletions
diff --git a/modules/home/conf/firefox/default.nix b/modules/home/conf/firefox/default.nix
new file mode 100644
index 00000000..f2ccfc99
--- /dev/null
+++ b/modules/home/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;
+ };
+ };
+}