nixos-configs/homeManagerModules/firefox/default.nix

251 lines
8.3 KiB
Nix
Raw Normal View History

self: {
config,
lib,
pkgs,
...
}: let
inherit (self.scopedPackages.${pkgs.system}) firefoxAddons;
2025-01-06 14:41:55 -05:00
inherit (lib) attrValues mkIf mkOption types;
cfg = config.programs.firefox;
rounding = (config.wayland.windowManager.hyprland.settings.decoration.rounding or 2) - 2;
firefox-gx = pkgs.callPackage ./firefox-gx {inherit self;};
custom-css = pkgs.callPackage ./custom-css {inherit rounding firefox-gx;};
in {
options.programs.firefox.enableCustomConf = mkOption {
type = types.bool;
default = false;
};
config = mkIf cfg.enableCustomConf {
home.file = {
".mozilla/firefox/matt/chrome/userContent.css".source = "${firefox-gx}/chrome/userContent.css";
".mozilla/firefox/matt/chrome/components".source = "${firefox-gx}/chrome/components";
".mozilla/firefox/matt/chrome/images".source = "${firefox-gx}/chrome/images";
".mozilla/firefox/matt/chrome/icons".source = "${firefox-gx}/chrome/icons";
};
programs.firefox = {
enable = true;
profiles.matt = {
isDefault = true;
id = 0;
userChrome = ''
@import url("file://${firefox-gx}/chrome/userChrome.css");
@import url("file://${custom-css}");
'';
settings = {
# Theme
"firefoxgx.tab-shapes" = true;
"firefoxgx.left-sidebar" = true;
"userChrome.tab.bottom_rounded_corner" = true;
"userChrome.tab.bottom_rounded_corner.wave" = false;
"userChrome.tab.bottom_rounded_corner.australis" = true;
2025-02-04 12:06:57 -05:00
chore: update sources Flake Inputs: • Updated input 'astal': 'github:Aylur/astal' (2025-02-01) rev: 32348e7c5b2246c6ddc82499cfb08244313ead44 → 'github:Aylur/astal' (2025-02-06) rev: c0eaca24dc7bc9f0091def5a37b14173e5bfd29e • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-01-28) rev: 31ca53540a5b17795b3489cb1dae07e54bc41bee → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-02-06) rev: 4ac5da0c1c56e157df5e8d0cf138c923787a35e2 • Updated input 'gtk-theme-src': 'github:dracula/gtk' (2025-01-27) rev: 7c5c5c8179292fbdf5b3aaf5a11ab61fac980b71 → 'github:dracula/gtk' (2025-02-05) rev: c2210b503b6acf7948218ea99c6b472744b345b5 • Updated input 'home-manager': 'github:nix-community/home-manager' (2025-02-05) rev: f20b7a8ab527a2482f13754dc00b2deaddc34599 → 'github:nix-community/home-manager' (2025-02-06) rev: f99c704fe3a4cf8d72b2d568ec80bc38be1a9407 • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-02-05) rev: 8a6778f0a087cdfc4bc1d3751b0be2c2bf3322aa → 'github:hyprwm/Hyprland' (2025-02-06) rev: acbcf0cf115d55ef80a75ded3223a9e098f77541 • Updated input 'nixcord': 'github:kaylorben/nixcord' (2025-02-04) rev: adf7f6f821f80ac67b482fb374255b210d885bf8 → 'github:kaylorben/nixcord' (2025-02-05) rev: df5dd38118c45d54755e53b1f97b51341ac8ac2e • Updated input 'nixpkgs-wayland': 'github:nix-community/nixpkgs-wayland' (2025-02-05) rev: 3f6573793c0cfc3b01cf683460e95f3167276830 → 'github:nix-community/nixpkgs-wayland' (2025-02-06) rev: 38f111837a193cc42256e90eea213c3041c7c37f • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2025-02-05) rev: abc955d9264d13faf0a5fb5dbfaba05a91f58619 → 'github:make-all/tuya-local' (2025-02-06) rev: 252fce83c823c2dad7e0835785746f8b5d44ed20 • Updated input 'vimplugin-roslyn-nvim-src': 'github:seblj/roslyn.nvim' (2025-01-27) rev: 490fd2d0f76249032ef6ce503e43ccdaeed9616e → 'github:seblj/roslyn.nvim' (2025-02-05) rev: 4c55dedb5e47ba551c8c1ef9acd4896cdc29158c Docker Images: • onlyoffice/documentserver latest: sha256:3489a54c581414055dd9bfa3890435e5e6fc8c4ce0ffdd65cf3c7869f680cf81 → sha256:7bf6a672e1743d62002aa518ea880f486f642c238ee93aa6d572f899a05da486 • nginx latest: sha256:bc2f6a7c8ddbccf55bdb19659ce3b0a92ca6559e86d42677a5a02ef6bda2fcef → sha256:91734281c0ebfc6f1aea979cffeed5079cfe786228a71cc6f1f46a228cde6e34 Firefox Addons: stylus: 1.5.51 -> 2.3.10
2025-02-06 12:45:44 -05:00
# Use the normal file picker
2025-02-04 12:06:57 -05:00
"widget.use-xdg-desktop-portal.file-picker" = 0;
# Firefox-gx user.js
/*
Default rules
*/
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"svg.context-properties.content.enabled" = true;
"layout.css.color-mix.enabled" = true;
"browser.tabs.delayHidingAudioPlayingIconMS" = 0;
"layout.css.backdrop-filter.enabled" = true;
"browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar" = false;
"browser.newtabpage.activity-stream.newtabWallpapers.enabled" = true;
/*
To active container tabs without any extension
*/
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true;
"privacy.userContext.longPressBehavior" = 2;
# Open previous windows and tabs
"browser.startup.page" = 3;
# Prefs
2024-09-06 10:23:05 -04:00
"apz.overscroll.enabled" = false;
"layout.css.devPixelsPerPx" = 1.12;
"browser.search.widget.inNavBar" = true;
"browser.toolbars.bookmarks.visibility" = "always";
"browser.toolbars.bookmarks.showInPrivateBrowsing" = true;
"ui.key.menuAccessKey" = 0;
# remove telemetry
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"datareporting.healthreport.infoURL" = "";
"dom.security.https_only_mode" = true;
# remove first run and warning stuff
"datareporting.policy.firstRunURL" = "";
"browser.aboutwelcome.enabled" = false;
"browser.aboutConfig.showWarning" = false;
# Disable firefox autofill
"signon.rememberSignons" = false;
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false;
# remove new tab stuff
"extensions.pocket.enabled" = false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.feeds.system.topstories" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
};
search = {
2025-01-15 22:14:49 -05:00
default = "SearXNG";
force = true;
engines = {
2025-01-15 22:14:49 -05:00
"SearXNG" = {
urls = [
{
template = "https://search.nelim.org/search?q={searchTerms}";
}
];
iconUpdateURL = "https://search.nelim.org/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@s"];
};
"Nixpkgs" = {
urls = [
{
template = "https://github.com/search?q=repo%3ANixOS%2Fnixpkgs%20{searchTerms}&type=code";
}
];
iconUpdateURL = "https://github.githubassets.com/favicons/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@pkgs"];
};
"NixOS Wiki" = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
}
];
iconUpdateURL = "https://wiki.nixos.org/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@nw"];
};
"MyNixos" = {
urls = [
{
template = "https://mynixos.com/search?q={searchTerms}";
}
];
iconUpdateURL = "https://mynixos.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@mn"];
};
"Noogle" = {
urls = [
{
template = "https://noogle.dev/q?term={searchTerms}";
}
];
iconUpdateURL = "https://noogle.dev/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@ng"];
};
"Firefox Add-ons" = {
urls = [
{
template = "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}";
}
];
iconUpdateURL = "https://addons.mozilla.org/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@fa"];
};
"ProtonDB" = {
urls = [
{
template = "https://www.protondb.com/search?q={searchTerms}";
}
];
iconUpdateURL = "https://www.protondb.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@pdb"];
};
"YouTube" = {
urls = [
{
template = "https://www.youtube.com/results?search_query={searchTerms}";
}
];
iconUpdateURL = "https://www.youtube.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = ["@yt" "@youtube"];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"eBay".metaData.hidden = true;
};
order = [
"SearXNG"
"DuckDuckGo"
"MyNixos"
"NixOS Wiki"
"Nixpkgs"
"Noogle"
"Wikipedia (en)"
"YouTube"
"Firefox Add-ons"
"ProtonDB"
"Amazon.ca"
];
};
2025-01-06 14:41:55 -05:00
extensions = attrValues {
inherit
(firefoxAddons)
auto-refresh-page
bitwarden
checkmarks-web-ext
darkreader
floccus
google-container
image-search-options
istilldontcareaboutcookies
opera-gx-witchcraft-purple
return-youtube-dislikes
seventv
sponsorblock
sound-volume
stylus
ttv-lol-pro
ublock-origin
undoclosetabbutton
;
};
};
};
};
# For accurate stack trace
_file = ./default.nix;
}