add firefox module

This commit is contained in:
Fabian Montero 2025-02-07 13:10:02 -06:00
parent 1c2b67ba0c
commit 2bfcb22a22
Signed by: fabian
GPG key ID: 1FFAC35E1798174F
3 changed files with 77 additions and 1 deletions

View file

@ -1 +1,10 @@
{} {
config,
lib,
pkgs,
...
}: {
imports = [
./programs
];
}

10
hm/programs/default.nix Normal file
View file

@ -0,0 +1,10 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
./firefox
];
}

View file

@ -0,0 +1,57 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.options.trivium.programs.firefox;
in {
options.options.trivium.programs.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}";
})
]);
}