58 lines
1.4 KiB
Nix
58 lines
1.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.local.apps.firefox;
|
|
in {
|
|
options.local.apps.firefox = {
|
|
enable = mkEnableOption "firefox settings";
|
|
|
|
workspace = mkOption {
|
|
type = types.nullOr types.str;
|
|
default = null;
|
|
description = ''
|
|
i3 Workspace in which Firefox should open. If not set, Firefox will not open at startup
|
|
'';
|
|
};
|
|
|
|
makeDefaultBrowser = mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = ''
|
|
Take a guess
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable (mkMerge [
|
|
{
|
|
programs.firefox.enable = true;
|
|
|
|
xsession.windowManager.i3.config.startup = optional (cfg.workspace != null) {
|
|
command = "${lib.getExe pkgs.i3-gaps} 'workspace ${cfg.workspace}; exec ${lib.getExe pkgs.firefox}'";
|
|
};
|
|
}
|
|
|
|
(mkIf cfg.makeDefaultBrowser {
|
|
xdg = {
|
|
mimeApps = {
|
|
enable = true;
|
|
defaultApplications = {
|
|
"text/html" = ["firefox"];
|
|
"text/uri-list" = ["firefox"];
|
|
"x-scheme-handler/http" = ["firefox"];
|
|
"x-scheme-handler/https" = ["firefox"];
|
|
"x-scheme-handler/about" = ["firefox"];
|
|
"x-scheme-handler/unknown" = ["firefox"];
|
|
};
|
|
};
|
|
};
|
|
|
|
home.sessionVariables.DEFAULT_BROWSER = "${lib.getExe pkgs.firefox}";
|
|
})
|
|
]);
|
|
}
|