blob: e7903a92bb2fdd0a75187bae7cc81b5175f08a73 (
plain) (
tree)
|
|
{
config,
pkgs,
lib,
user_js,
video_pause,
...
}: 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 video_pause;};
policies = (import ./config/policies) {inherit config extensions;};
search = {
default = "Brave Search";
force = true;
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;
};
programs.firefox = {
enable = true;
inherit (config.soispha.firefox) package;
profiles =
profiles
// taskwarriorProfiles;
};
};
}
|