aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-09-19 17:31:35 -0500
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-09-19 17:31:35 -0500
commitc9ec61f01a26cff66ef779f0b94694684a16d7da (patch)
tree5c85649824fb783a63dc11b9df970b371f13e31f
parent5d0d346f838a7711fa79eb6edab828107b95a499 (diff)
firefox configs
-rw-r--r--flake.lock59
-rw-r--r--flake.nix5
-rw-r--r--modules/desktop/hjem/programs/firefox.nix48
-rw-r--r--modules/desktop/nixos/programs/firefox.nix59
4 files changed, 136 insertions, 35 deletions
diff --git a/flake.lock b/flake.lock
index ba4e3da..e6be991 100644
--- a/flake.lock
+++ b/flake.lock
@@ -22,11 +22,11 @@
]
},
"locked": {
- "lastModified": 1753140376,
- "narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
+ "lastModified": 1757508292,
+ "narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=",
"owner": "nix-community",
"repo": "disko",
- "rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
+ "rev": "146f45bee02b8bd88812cfce6ffc0f933788875a",
"type": "github"
},
"original": {
@@ -35,6 +35,22 @@
"type": "github"
}
},
+ "firefox-csshacks": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1757991741,
+ "narHash": "sha256-O9SXRWmXdzJXu/BgmunVUV15EriheCkAb7VEdwTjemM=",
+ "owner": "MrOtherGuy",
+ "repo": "firefox-csshacks",
+ "rev": "41e003708fb3cbd8fc9985447d267381ce8c6a26",
+ "type": "github"
+ },
+ "original": {
+ "owner": "MrOtherGuy",
+ "repo": "firefox-csshacks",
+ "type": "github"
+ }
+ },
"flake-compat": {
"flake": false,
"locked": {
@@ -102,11 +118,11 @@
"smfh": "smfh"
},
"locked": {
- "lastModified": 1754244549,
- "narHash": "sha256-ByZ81/QttgSS1mQYttnaoMw2WnqMvQ6HCxBPOioKrOA=",
+ "lastModified": 1757733237,
+ "narHash": "sha256-q57LxLzOQuW0ROtoBMMPbG8neBYa6LizRH9FVOQkkLQ=",
"owner": "feel-co",
"repo": "hjem",
- "rev": "ee5c671eeba5cddd94f2c7de3c36f019fae5854e",
+ "rev": "627b34efad55fd42d6dd52c19c796604d2b8e8bd",
"type": "github"
},
"original": {
@@ -127,11 +143,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1754297745,
- "narHash": "sha256-aD6/scLN3L4ZszmNbhhd3JQ9Pzv1ScYFphz14wHinfs=",
+ "lastModified": 1756744479,
+ "narHash": "sha256-EyZXusK/wRD3V9vDh00W2Re3Eg8UQ+LjVBQrrH9dq1U=",
"owner": "nix-community",
"repo": "lanzaboote",
- "rev": "892cbdca865d6b42f9c0d222fe309f7720259855",
+ "rev": "747b7912f49e2885090c83364d88cf853a020ac1",
"type": "github"
},
"original": {
@@ -142,11 +158,11 @@
},
"nixos-facter-modules": {
"locked": {
- "lastModified": 1750412875,
- "narHash": "sha256-uP9Xxw5XcFwjX9lNoYRpybOnIIe1BHfZu5vJnnPg3Jc=",
+ "lastModified": 1756491981,
+ "narHash": "sha256-lXyDAWPw/UngVtQfgQ8/nrubs2r+waGEYIba5UX62+k=",
"owner": "numtide",
"repo": "nixos-facter-modules",
- "rev": "14df13c84552a7d1f33c1cd18336128fbc43f920",
+ "rev": "c1b29520945d3e148cd96618c8a0d1f850965d8c",
"type": "github"
},
"original": {
@@ -157,11 +173,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1754214453,
- "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
+ "lastModified": 1757745802,
+ "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
+ "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github"
},
"original": {
@@ -200,6 +216,7 @@
"root": {
"inputs": {
"disko": "disko",
+ "firefox-csshacks": "firefox-csshacks",
"hjem": "hjem",
"lanzaboote": "lanzaboote",
"nixos-facter-modules": "nixos-facter-modules",
@@ -216,11 +233,11 @@
]
},
"locked": {
- "lastModified": 1747622321,
- "narHash": "sha256-W0dYIWgsUu6rvOJRtKLhKskkv0VhQhJYGNIq+gGUc8g=",
+ "lastModified": 1755225702,
+ "narHash": "sha256-i7Rgs943NqX0RgQW0/l1coi8eWBj3XhxVggMpjjzTsk=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "bd030fd9983f7fddf87be1c64aa3064c8afa24c4",
+ "rev": "4abaeba6b176979be0da0195b9e4ce86bc501ae4",
"type": "github"
},
"original": {
@@ -260,11 +277,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1749906619,
- "narHash": "sha256-/9Ww10kYopxfCNNnNDwENTubs7Wzqlw+O6PJAHNOYQw=",
+ "lastModified": 1755350122,
+ "narHash": "sha256-fTmAdnSPmEZlwAMTm/NEl4VibUAo+cerUuby1AYbKMM=",
"owner": "feel-co",
"repo": "smfh",
- "rev": "39f5c06153f63100376bc607b1465850b6df77fd",
+ "rev": "5de4e315d61a7378f37ebdd39d42b6cf09a1b8cc",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 747c47a..6467578 100644
--- a/flake.nix
+++ b/flake.nix
@@ -24,6 +24,11 @@
url = "github:feel-co/hjem";
inputs.nixpkgs.follows = "nixpkgs";
};
+
+ firefox-csshacks = {
+ url = "github:MrOtherGuy/firefox-csshacks";
+ flake = false;
+ };
};
outputs = inputs: let
diff --git a/modules/desktop/hjem/programs/firefox.nix b/modules/desktop/hjem/programs/firefox.nix
index 73040d2..cb0794f 100644
--- a/modules/desktop/hjem/programs/firefox.nix
+++ b/modules/desktop/hjem/programs/firefox.nix
@@ -2,25 +2,49 @@
pkgs,
lib,
config,
+ inputs,
...
}: let
cfg = config.collinux.desktop.programs.firefox;
+
+ mkCssHacks = hacks: hacks |> map (f: ''@import "${inputs.firefox-csshacks}/chrome/${f}.css";'') |> lib.concatStringsSep "\n";
in
lib.mkIf cfg.enable {
- files.".mozilla/firefox/profiles.ini" = {
- generator = lib.generators.toINI {};
- value = {
- Profile0 = {
- Name = "collin";
- IsRelative = 1;
- Path = "collin";
- Default = 1;
- };
- General = {
- StartWithLastProfile = 1;
- Version = 2;
+ files = {
+ ".mozilla/firefox/profiles.ini" = {
+ generator = lib.generators.toINI {};
+ value = {
+ Profile0 = {
+ Name = "collin";
+ IsRelative = 1;
+ Path = "collin";
+ Default = 1;
+ };
+ General = {
+ StartWithLastProfile = 1;
+ Version = 2;
+ };
};
};
+
+ ".mozilla/firefox/collin/chrome/userChrome.css".text = mkCssHacks [
+ # Tabs
+ "hide_tabs_with_one_tab"
+ "tabs_on_bottom_v2"
+ "tab_close_button_always_on_hover"
+ "tabs_fill_available_width"
+
+ # Icons!
+ "iconized_main_menu"
+ "iconized_menubar_items"
+ "iconized_places_context_menu"
+ "iconized_tabs_context_menu"
+ "icon_only_context_menu_text_controls"
+
+ # Other
+ "compact_extensions_panel"
+ ];
};
+
packages = [pkgs.firefox];
}
diff --git a/modules/desktop/nixos/programs/firefox.nix b/modules/desktop/nixos/programs/firefox.nix
index f2daf43..be5c2cf 100644
--- a/modules/desktop/nixos/programs/firefox.nix
+++ b/modules/desktop/nixos/programs/firefox.nix
@@ -1,5 +1,4 @@
{
- pkgs,
lib,
config,
...
@@ -13,10 +12,11 @@ in
PasswordManagerEnabled = false; # use bitwarden instead
DisableAccounts = true;
DisablePocket = true;
- DisplayBookmarksToolbar = "always";
+ NoDefaultBookmarks = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
+ Homepage = "";
NewTabPage = false;
@@ -31,14 +31,69 @@ in
"browser.tabs.hoverPreview.enabled" = opt 0;
"browser.tabs.loadBookmarksInTabs" = opt true;
+ "browser.toolbars.bookmarks.visibility" = opt "never";
+ "browser.uiCustomization.state" = opt (lib.replaceStrings ["\n" " "] ["" ""] ''
+ {
+ "placements": {
+ "widget-overflow-fixed-list": [],
+ "unified-extensions-area": [
+ "zotero_chnm_gmu_edu-browser-action",
+ "addon_darkreader_org-browser-action",
+ "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
+ ],
+ "nav-bar": [
+ "personal-bookmarks",
+ "customizableui-special-spring1",
+ "back-button",
+ "forward-button",
+ "stop-reload-button",
+ "urlbar-container",
+ "downloads-button",
+ "unified-extensions-button",
+ "ublock0_raymondhill_net-browser-action",
+ "customizableui-special-spring2"
+ ],
+ "toolbar-menubar": [
+ "menubar-items"
+ ],
+ "TabsToolbar": [
+ "tabbrowser-tabs",
+ "new-tab-button"
+ ],
+ "vertical-tabs": [],
+ "PersonalToolbar": []
+ },
+ "seen": [
+ "developer-button",
+ "zotero_chnm_gmu_edu-browser-action",
+ "addon_darkreader_org-browser-action",
+ "ublock0_raymondhill_net-browser-action",
+ "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action",
+ "screenshot-button"
+ ],
+ "dirtyAreaCache": [],
+ "currentVersion": 23,
+ "newElementCount": 2
+ }
+ '');
"accessibility.force_disabled" = opt 1;
+ "browser.aboutConfig.showWarning" = opt false;
+
+ "startup.homepage_welcome_url" = opt "";
+ "trailhead.firstrun.didSeeAboutWelcome" = opt true;
+ "datareporting.policy.dataSubmissionPolicyBypassNotification" = opt true;
+ "browser.startup.homepage" = opt "about:blank";
"browser.compactmode.show" = opt true;
"browser.uidensity" = opt 1;
"media.webspeech.synth.enabled" = opt false; # im not disabled
"media.webspeech.synth.dont_notify_on_error" = opt true;
+
+ # get that AI out of my browser
+ "browser.ml.chat.enabled" = opt false;
+ "browser.ml.enable" = opt false;
};
ExtensionSettings = let