1{
2 lib,
3 config,
4 pkgs,
5 self,
6 ...
7}: {
8 options.myHome.programs.firefox = {
9 enable = lib.mkEnableOption "firefox web browser";
10 mode = lib.mkOption {
11 type = lib.types.enum ["onebar" "sidebar" "default"];
12 default = "onebar";
13 description = "Firefox UI mode";
14 };
15 };
16
17 config.programs.firefox = lib.mkMerge [
18 (
19 lib.mkIf
20 config.myHome.programs.firefox.enable
21 config.mySnippets.firefox-based.userConfig
22 )
23
24 (lib.mkIf
25 (config.myHome.programs.firefox.mode == "onebar")
26 {
27 profiles.default = {
28 settings = {
29 "onebar.collapse-URLbar" = true;
30 "onebar.conditional-navigation-buttons" = false;
31 "onebar.hide-all-URLbar-icons" = true;
32 };
33
34 userChrome = builtins.readFile self.inputs.firefox-onebar;
35
36 extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
37 adaptive-tab-bar-colour
38 ];
39 };
40 })
41
42 (
43 if (config.myHome.programs.firefox.mode == "sidebar")
44 then {
45 profiles.default = {
46 settings = {
47 "sidebar.revamp" = true;
48 "sidebar.verticalTabs" = true;
49 "sidebar.animation.expand-on-hover.duration-ms" = 50;
50 "sidebar.expandOnHover" = false;
51 "sidebar.visibility" = "always-show";
52 "browser.toolbars.bookmarks.visibility" = "never";
53 "browser.uidensity" = 0;
54 };
55
56 userChrome = ''
57 .tab-icon-overlay{ display: none !important; }
58 '';
59 };
60 }
61 else {
62 profiles.default = {
63 settings = {
64 "sidebar.revamp" = false;
65 "sidebar.verticalTabs" = false;
66 "browser.toolbars.bookmarks.visibility" = "newtab";
67 "browser.uidensity" = 1;
68 };
69 };
70 }
71 )
72 ];
73}