1

Home: Rename home/modules to home/homemodules

This commit is contained in:
2026-01-18 15:34:36 +01:00
parent 25e9128875
commit d12b247368
117 changed files with 1 additions and 1 deletions

View File

@ -0,0 +1,113 @@
let
mkBm = name: url: {
name = name;
url = url;
};
in [
{
toolbar = true;
bookmarks = [
# NixOS
{
name = "NixOS";
bookmarks = [
(mkBm "Package Search" "https://search.nixos.org/packages")
(mkBm "Option Search" "https://search.nixos.org/options?")
(mkBm "Function Search" "https://noogle.dev/")
(mkBm "HM Search" "https://mipmip.github.io/home-manager-option-search/")
(mkBm "NUR Search" "https://nur.nix-community.org/")
(mkBm "Nixpkgs Version Search" "https://lazamar.co.uk/nix-versions/")
(mkBm "Nixpkgs PR Tracker" "https://nixpk.gs/pr-tracker.html")
"separator"
(mkBm "NixOS Wiki" "https://wiki.nixos.org/wiki/NixOS_Wiki")
(mkBm "Nixpkgs Issues" "https://github.com/NixOS/nixpkgs/issues")
(mkBm "Nixpkgs Manual" "https://nixos.org/manual/nixpkgs/unstable/")
(mkBm "NixOS Manual" "https://nixos.org/manual/nixos/unstable/")
(mkBm "Nix Manual" "https://nix.dev/manual/nix/stable/")
];
}
(mkBm "Searchix" "https://searchix.ovh/")
(mkBm "Latest" "https://discourse.nixos.org/latest")
"separator"
# HomeLab
{
name = "Lab";
bookmarks = [
(mkBm "LAN Smart Switch" "http://192.168.86.2/")
(mkBm "WiFi Access Point" "http://192.168.86.3/")
(mkBm "OPNsense" "https://192.168.86.5/")
(mkBm "Synology DS223j" "https://synology.think.chriphost.de/")
(mkBm "PVE Direct" "https://192.168.86.4:8006/#v1:0:18:4:::::::")
(mkBm "PVF Direct" "https://192.168.86.13:8006/#v1:0:18:4:::::::")
(mkBm "Portainer" "https://portainer.think.chriphost.de/")
"separator"
(mkBm "Local NGINX" "https://nginx.local.chriphost.de/")
(mkBm "Think NGINX" "https://nginx.think.chriphost.de/")
(mkBm "VPS NGINX" "http://vps.chriphost.de:51810/")
(mkBm "WUD ServeNix" "https://update.local.chriphost.de/")
(mkBm "WUD ThinkNix" "https://update.think.chriphost.de/")
];
}
(mkBm "Cloud" "https://nextcloud.local.chriphost.de/apps/files/files")
(mkBm "Immich" "https://immich.local.chriphost.de/photos")
(mkBm "Jelly" "https://jellyfin.local.chriphost.de/web/#/home.html")
(mkBm "HASS" "https://hass.think.chriphost.de/lovelace")
(mkBm "Docs" "https://paperless.local.chriphost.de/documents?sort=created&reverse=1&page=1")
(mkBm "Gitea" "https://gitea.local.chriphost.de/christoph")
# (mkBm "Chat" "http://localhost:11435/") # Local WebUI
"separator"
# Coding
{
name = "Coding";
bookmarks = [
(mkBm "C++Ref" "https://en.cppreference.com/w/")
(mkBm "Rust" "https://doc.rust-lang.org/stable/book/ch03-00-common-programming-concepts.html")
(mkBm "RustOS" "https://os.phil-opp.com/")
(mkBm "Interpreters" "https://craftinginterpreters.com/contents.html")
];
}
{
name = "\"AI\"";
bookmarks = [
(mkBm "Mistral Chat" "https://chat.mistral.ai/chat")
(mkBm "DeepSeek Chat" "https://chat.deepseek.com/")
(mkBm "Claude Chat" "https://claude.ai/new")
(mkBm "ChatGPT" "https://chatgpt.com/")
(mkBm "DeepWiki" "https://deepwiki.com/")
"separator"
(mkBm "Mistral API" "https://console.mistral.ai/usage")
(mkBm "DeepSeek API" "https://platform.deepseek.com/usage")
(mkBm "Claude API" "https://console.anthropic.com/usage")
(mkBm "OpenRouter API" "https://openrouter.ai/activity")
];
}
(mkBm "GH" "https://github.com/churl")
(mkBm "GL" "https://gitlab.com/churl")
(mkBm "SO" "https://stackoverflow.com/users/saves/17337508/all")
(mkBm "RegEx" "https://regex101.com/")
(mkBm "Shell" "https://explainshell.com/")
(mkBm "CDecl" "https://cdecl.org/")
(mkBm "ECR" "https://gallery.ecr.aws/")
(mkBm "Chmod" "https://chmod-calculator.com/")
"separator"
# Stuff
(mkBm "Spiegel" "https://www.spiegel.de/")
(mkBm "Heise" "https://www.heise.de/")
(mkBm "HN" "https://news.ycombinator.com/news")
(mkBm "Reddit" "https://www.reddit.com/user/FightingMushroom/saved/")
(mkBm "F10" "https://f10.local.chriphost.de/race/Everyone")
(mkBm "F11" "https://f11.local.chriphost.de/racepicks")
(mkBm "F11PB" "https://f11pb.local.chriphost.de/_/#/collections?collection=pbc_1736455494&filter=&sort=-%40rowid")
(mkBm "ISBNDB" "https://isbndb.com/")
(mkBm "Music" "https://bandcamp.com/chriphost")
(mkBm "Albums" "https://www.albumoftheyear.org/user/chriphost/list/307966/2025/")
];
}
]

View File

@ -0,0 +1,146 @@
{
"placements": {
"widget-overflow-fixed-list": [],
"unified-extensions-area": [
"jid1-mnnxcxisbpnsxq_jetpack-browser-action",
"_74145f27-f039-47ce-a470-a662b129930a_-browser-action",
"_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action",
"cookieautodelete_kennydo_com-browser-action",
"skipredirect_sblask-browser-action",
"_ublacklist-browser-action",
"umatrix_raymondhill_net-browser-action",
"_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action",
"_287dcf75-bec6-4eec-b4f6-71948a2eea29_-browser-action",
"_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action",
"_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action",
"dontfuckwithpaste_raim_ist-browser-action",
"sponsorblocker_ajay_app-browser-action",
"mogultv_mogultv_org-browser-action",
"jid1-tsgsxbhncspbwq_jetpack-browser-action",
"sourcegraph-for-firefox_sourcegraph_com-browser-action",
"_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action",
"_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action",
"_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action",
"smart-referer_meh_paranoid_pk-browser-action",
"jid1-ckhysaadh4nl6q_jetpack-browser-action",
"_e737d9cb-82de-4f23-83c6-76f70a82229c_-browser-action",
"_a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad_-browser-action",
"github-forks-addon_musicallyut_in-browser-action",
"_36bdf805-c6f2-4f41-94d2-9b646342c1dc_-browser-action",
"_605a075b-09d9-4443-bed6-4baa743f7d79_-browser-action",
"enhancerforyoutube_maximerf_addons_mozilla_org-browser-action",
"frankerfacez_frankerfacez_com-browser-action",
"freedium-browser-extension_wywywywy_com-browser-action",
"_076d8ebb-5df6-48e0-a619-99315c395644_-browser-action",
"_9350bc42-47fb-4598-ae0f-825e3dd9ceba_-browser-action",
"_a7399979-5203-4489-9861-b168187b52e1_-browser-action",
"addon_fastforward_team-browser-action",
"firefox-extension_steamdb_info-browser-action",
"_cb31ec5d-c49a-4e5a-b240-16c767444f62_-browser-action",
"_bbb880ce-43c9-47ae-b746-c3e0096c5b76_-browser-action"
],
"nav-bar": [
"back-button",
"forward-button",
"vertical-spacer",
"downloads-button",
"urlbar-container",
"save-to-pocket-button",
"_3c078156-979c-498b-8990-85f7987dd929_-browser-action",
"fxa-toolbar-menu-button",
"treestyletab_piro_sakura_ne_jp-browser-action",
"ublock0_raymondhill_net-browser-action",
"_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action",
"display-anchors_robwu_nl-browser-action",
"tab-session-manager_sienori-browser-action",
"_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action",
"keepassxc-browser_keepassxc_org-browser-action",
"reset-pbm-toolbar-button",
"faststream_andrews-browser-action",
"_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action",
"clipper_obsidian_md-browser-action",
"zotero_chnm_gmu_edu-browser-action",
"vpn_proton_ch-browser-action",
"jid1-qofqdk4qzufgwq_jetpack-browser-action",
"unified-extensions-button"
],
"toolbar-menubar": [
"menubar-items"
],
"TabsToolbar": [
"firefox-view-button",
"tabbrowser-tabs",
"new-tab-button",
"alltabs-button"
],
"vertical-tabs": [],
"PersonalToolbar": [
"personal-bookmarks"
]
},
"seen": [
"developer-button",
"ublock0_raymondhill_net-browser-action",
"_287dcf75-bec6-4eec-b4f6-71948a2eea29_-browser-action",
"_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action",
"_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action",
"_74145f27-f039-47ce-a470-a662b129930a_-browser-action",
"_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action",
"_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action",
"_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action",
"_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action",
"_ublacklist-browser-action",
"cookieautodelete_kennydo_com-browser-action",
"dontfuckwithpaste_raim_ist-browser-action",
"jid1-mnnxcxisbpnsxq_jetpack-browser-action",
"keepassxc-browser_keepassxc_org-browser-action",
"skipredirect_sblask-browser-action",
"sponsorblocker_ajay_app-browser-action",
"tab-session-manager_sienori-browser-action",
"treestyletab_piro_sakura_ne_jp-browser-action",
"umatrix_raymondhill_net-browser-action",
"mogultv_mogultv_org-browser-action",
"jid1-tsgsxbhncspbwq_jetpack-browser-action",
"display-anchors_robwu_nl-browser-action",
"github-forks-addon_musicallyut_in-browser-action",
"_a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad_-browser-action",
"_e737d9cb-82de-4f23-83c6-76f70a82229c_-browser-action",
"jid1-ckhysaadh4nl6q_jetpack-browser-action",
"smart-referer_meh_paranoid_pk-browser-action",
"_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action",
"_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action",
"_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action",
"sourcegraph-for-firefox_sourcegraph_com-browser-action",
"_36bdf805-c6f2-4f41-94d2-9b646342c1dc_-browser-action",
"_605a075b-09d9-4443-bed6-4baa743f7d79_-browser-action",
"enhancerforyoutube_maximerf_addons_mozilla_org-browser-action",
"frankerfacez_frankerfacez_com-browser-action",
"freedium-browser-extension_wywywywy_com-browser-action",
"_076d8ebb-5df6-48e0-a619-99315c395644_-browser-action",
"_9350bc42-47fb-4598-ae0f-825e3dd9ceba_-browser-action",
"_a7399979-5203-4489-9861-b168187b52e1_-browser-action",
"vpn_proton_ch-browser-action",
"addon_fastforward_team-browser-action",
"faststream_andrews-browser-action",
"firefox-extension_steamdb_info-browser-action",
"clipper_obsidian_md-browser-action",
"zotero_chnm_gmu_edu-browser-action",
"_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action",
"_cb31ec5d-c49a-4e5a-b240-16c767444f62_-browser-action",
"screenshot-button",
"_bbb880ce-43c9-47ae-b746-c3e0096c5b76_-browser-action",
"jid1-qofqdk4qzufgwq_jetpack-browser-action",
"_3c078156-979c-498b-8990-85f7987dd929_-browser-action"
],
"dirtyAreaCache": [
"nav-bar",
"PersonalToolbar",
"toolbar-menubar",
"TabsToolbar",
"widget-overflow-fixed-list",
"unified-extensions-area",
"vertical-tabs"
],
"currentVersion": 22,
"newElementCount": 9
}

View File

@ -0,0 +1,324 @@
{
config,
lib,
mylib,
pkgs,
hostname,
...
}: let
inherit (config.modules) firefox color;
in {
options.modules.firefox = import ./options.nix {inherit lib mylib;};
config = lib.mkIf firefox.enable {
textfox = {
enable = firefox.textfox;
useLegacyExtensions = false;
profiles = ["default"];
config = {
background = {
color = color.hexS.base;
};
border = {
color = color.hexS.overlay0;
width = "2px";
transition = "1.0s ease";
radius = "3px";
};
displayWindowControls = true;
displayNavButtons = true;
displayUrlbarIcons = true;
displaySidebarTools = false;
displayTitles = false;
icons = {
toolbar.extensions.enable = true;
context.extensions.enable = true;
context.firefox.enable = true;
};
tabs = {
horizontal.enable = !firefox.disableTabBar;
vertical.enable = firefox.disableTabBar;
# vertical.margin = "1rem";
};
font = {
family = color.font;
size = "14px";
accent = color.hexS.accent;
};
};
};
home.packages = with pkgs; [vdhcoapp];
home.sessionVariables = lib.mkMerge [
{
MOZ_USE_XINPUT2 = 1;
}
(lib.optionalAttrs firefox.wayland {
MOZ_ENABLE_WAYLAND = 1;
EGL_PLATFORM = "wayland";
})
(lib.optionalAttrs firefox.vaapi {
MOZ_DISABLE_RDD_SANDBOX = 1;
})
];
# Not required with rofi -drun-show-actions
# xdg.desktopEntries.firefox-private = {
# name = "Firefox (Incognito)";
# genericName = "Private web browser";
# icon = "firefox";
# exec = "firefox --private-window %U";
# terminal = false;
# categories = ["Network" "WebBrowser"];
# };
programs.firefox = {
enable = true;
# firefox-unwrapped is the pure firefox browser, wrapFirefox adds configuration ontop
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
# About policies: https://github.com/mozilla/policy-templates#enterprisepoliciesenabled
# TODO: To separate file
extraPolicies = {
CaptivePortal = false;
DisableAppUpdate = true;
DisableFirefoxAccounts = true;
DisableFirefoxScreenshots = true;
DisableFirefoxStudies = true;
DisableSetDesktopBackground = true;
DisableTelemetry = true;
DisplayBookmarksToolbar = true;
EnableTrackingProtection = {
Value = true;
Cryptomining = true;
Fingerprinting = true;
EmailTracking = true;
};
FirefoxHome = {
Highlights = false;
Search = true;
Snippets = false;
SponsoredTopSites = false;
TopSites = false;
};
FirefoxSuggest = {
ImproveSuggest = false;
SponsoredSuggestions = false;
WebSuggestions = false;
};
HardwareAcceleration = true;
# NoDefaultBookmarks = true; # Prevents HM from applying bookmarks
OfferToSaveLogins = false;
PictureInPicture = true;
SanitizeOnShutdown = {
Cache = false;
Cookies = false;
FormData = true;
History = false;
Sessions = false;
SiteSettings = false;
};
UserMessaging = {
ExtensionRecommendations = false;
FeatureRecommendations = false;
MoreFromMozilla = false;
SkipOnboarding = true;
UrlbarInteventions = false;
};
};
};
profiles = {
default = {
id = 0; # 0 is default profile
userChrome = lib.concatStringsSep "\n" [
(lib.optionalString firefox.disableTabBar ''
#TabsToolbar { display: none; }
'')
];
# TODO: To separate file
search = {
force = true; # Always override search engines
default = "kagi";
privateDefault = "kagi";
order = [
"kagi"
"wiki"
"nixos-packages"
"nixos-functions"
"nixos-wiki"
"google"
];
engines = {
kagi = {
name = "Kagi";
urls = [{template = "https://kagi.com/search?q={searchTerms}";}];
iconMapObj."16" = "https://kagi.com/favicon.ico";
definedAliases = ["@k"];
};
wiki = {
name = "Wikipedia";
urls = [{template = "https://en.wikipedia.org/wiki/Special:Search?search={searchTerms}";}];
iconMapObj."16" = "https://en.wikipedia.org/favicon.ico";
definedAliases = ["@w"];
};
nixos-packages = {
name = "NixOS Packages";
urls = [{template = "https://searchix.ovh/?query={searchTerms}";}];
iconMapObj."16" = "https://nixos.org/favicon.ico";
definedAliases = ["@np"];
};
nixos-functions = {
name = "NixOS Functions";
urls = [{template = "https://noogle.dev/q?term={searchTerms}";}];
iconMapObj."16" = "https://nixos.org/favicon.ico";
definedAliases = ["@nf"];
};
nixos-wiki = {
name = "NixOS Wiki";
urls = [{template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";}];
iconMapObj."16" = "https://nixos.org/favicon.ico";
definedAliases = ["@nw"];
};
arch-wiki = {
name = "Arch Wiki";
urls = [{template = "https://wiki.archlinux.org/?search={searchTerms}";}];
iconMapObj."16" = "https://wiki.archlinux.org/favicon.ico";
definedAliases = ["@aw"];
};
nixpkgs-issues = {
name = "Nixpkgs Issues";
urls = [{template = "https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue%20{searchTerms}";}];
iconMapObj."16" = "https://github.com/favicon.ico";
definedAliases = ["@i"];
};
github = {
name = "GitHub";
urls = [{template = "https://github.com/search?q={searchTerms}&type=repositories";}];
iconMapObj."16" = "https://github.com/favicon.ico";
definedAliases = ["@gh"];
};
google.metaData.alias = "@g";
# Hide bullshit
bing.metaData.hidden = true;
ddg.metaData.hidden = true;
ecosia.metaData.hidden = true;
wikipedia.metaData.hidden = true;
};
};
# TODO: To separate file
extensions = {
force = true; # Always override extensions
packages = with pkgs.nur.repos.rycee.firefox-addons; [
absolute-enable-right-click # Force enable right click to copy text
amp2html
augmented-steam
betterttv
# bypass-paywalls-clean
# c-c-search-extension # Press cc in searchbar and profit
catppuccin-mocha-mauve
# catppuccin-web-file-icons
clearurls
# cookie-autodelete
dark-background-light-text
display-_anchors # Easier linking to specific website parts
don-t-fuck-with-paste
# enhancer-for-youtube # Discontinued, use tweaks-for-youtube
fastforwardteam # skip URL shorteners
# faststream # replace video players with a faster one
frankerfacez # twitch emotes
indie-wiki-buddy
keepassxc-browser
localcdn
lovely-forks # Display notable forks on GitHub repos
# move-unloaded-tabs-for-tst # move tst tabs without them becoming active
native-mathml # native MathML instead of MathJax/MediaWiki
no-pdf-download # open pdf in browser without downloading
open-in-freedium
# plasma-integration
privacy-badger
privacy-settings
protondb-for-steam
proton-vpn
purpleadblock # twitch adblocker
return-youtube-dislikes
# rust-search-extension
search-by-image
single-file
skip-redirect
smart-referer # Limit referer link information
snowflake # Help users from censored countries access the internet
# sourcegraph # Code intelligence for GitHub/GitLap for 20+ languages
sponsorblock
steam-database
# tab-session-manager
# to-deepl
transparent-standalone-image
# tree-style-tab
# tst-fade-old-tabs
tweaks-for-youtube
twitch-auto-points
ublacklist
ublock-origin
unpaywall
video-downloadhelper
view-image
web-clipper-obsidian
youtube-shorts-block
zotero-connector
];
};
bookmarks = {
# Always override bookmarks (so we don't forget to add them through here)
force = true;
settings = import ./bookmarks.nix;
};
settings = lib.mkMerge [
(import ./settings.nix)
{
# NOTE: This has to be updated when something is changed inside firefox...
"browser.uiCustomization.state" = builtins.readFile ./customizationState.json;
"toolkit.legacyUserProfileCustomizations.stylesheets" = firefox.disableTabBar;
"identity.fxaccounts.account.device.name" = hostname;
}
(lib.optionalAttrs firefox.vaapi {
# https://github.com/elFarto/nvidia-vaapi-driver/#firefox=
"media.ffmpeg.vaapi.enabled" = true;
"media.rdd-ffmpeg.enabled" = true; # Default value
"media.av1.enabled" = true;
"gfx.x11-egl.force-enabled" = true;
"widget.dmabuf.force-enabled" = true;
})
];
};
};
};
};
}

View File

@ -0,0 +1,13 @@
{
lib,
mylib,
...
}:
with lib;
with mylib.modules; {
enable = mkEnableOption "Firefox";
wayland = mkBoolOption false "Enable firefox wayland support";
vaapi = mkBoolOption false "Enable firefox vaapi support";
disableTabBar = mkBoolOption false "Disable the firefox tab bar (for TST)";
textfox = mkBoolOption false "Enable the TextFox theme";
}

View File

@ -0,0 +1,115 @@
{
"accessibility.force_disabled" = 1;
"app.normandy.enabled" = false; # https://mozilla.github.io/normandy/
"app.normandy.api_url" = "";
"app.update.auto" = false;
"app.shield.optoutstudies.enabled" = false;
"beacon.enabled" = false; # https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon
"breakpad.reportURL" = "";
"browser.aboutConfig.showWarning" = false; # Warning when opening about:config
"browser.contentblocking.category" = "standard";
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false; # don't submit backlogged reports
"browser.disableResetPrompt" = true; # "Looks like you haven't started Firefox in a while."
"browser.discovery.enabled" = false;
"browser.download.useDownloadDir" = false; # Always ask
"browser.fixup.alternate.enabled" = false; # http://www-archive.mozilla.org/docs/end-user/domain-guessing.html
"browser.formfill.enable" = false;
"browser.newtabpage.enabled" = false;
"browser.newtab.url" = "about:blank";
"browser.newtab.preload" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
"browser.newtabpage.activity-stream.enabled" = false; # https://wiki.mozilla.org/Firefox/Activity_Stream
"browser.newtabpage.activity-stream.telemetry" = false;
"browser.newtabpage.directory.ping" = "";
"browser.newtabpage.directory.source" = "data:text/plain,{}";
"browser.newtabpage.enhanced" = false;
"browser.newtabpage.introShown" = true;
"browser.onboarding.enabled" = false; # "New to Firefox? Let's get started!" tour
"browser.ping-centre.telemetry" = false;
"browser.send_pings" = false; # http://kb.mozillazine.org/Browser.send_pings
"browser.sessionstore.interval" = "1800000"; # Reduce File IO / SSD abuse by increasing write interval
"browser.shell.checkDefaultBrowser" = false;
"browser.startup.couldRestoreSession.count" = 2; # Restore last session
"browser.tabs.crashReporting.sendReport" = false;
"browser.toolbars.bookmarks.visibility" = "always";
"browser.urlbar.dnsResolveSingleWordsAfterSearch" = 0; # https://bugzilla.mozilla.org/1642623
"browser.urlbar.shortcuts.bookmarks" = false; # This is only the button to search in bookmarks, bookmark search works anyway if enabled
"browser.urlbar.shortcuts.history" = false;
"browser.urlbar.shortcuts.tabs" = false;
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"browser.urlbar.suggest.calculator" = true;
"browser.urlbar.suggest.engines" = false;
"browser.urlbar.suggest.openpage" = false;
"browser.urlbar.suggest.searches" = true;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.urlbar.unitConversion.enabled" = true;
"browser.urlbar.trimURLs" = false;
"datareporting.healthreport.uploadEnabled" = false;
"datareporting.healthreport.service.enabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"dom.battery.enabled" = false;
"dom.forms.autocomplete.formautofill" = false;
"dom.gamepad.enabled" = false; # Disable gamepad API to prevent USB device enumeration
"dom.security.https_only_mode" = true;
"experiments.enabled" = false;
"experiments.manifest.uri" = "";
"experiments.supported" = false;
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.available" = "off";
"extensions.formautofill.creditCards.available" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.formautofill.heuristics.enabled" = false;
"extensions.getAddons.showPane" = false; # uses Google Analytics
"extensions.htmlaboutaddons.discover.enabled" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"extensions.pocket.enabled" = false;
"extensions.shield-recipe-client.enabled" = false;
"general.autoScroll" = false;
"general.smoothScroll" = true;
"geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%";
"geo.provider.use_gpsd" = false;
"media.hardwaremediakeys.enabled" = false; # Do not interfere with spotify
"media.videocontrols.picture-in-picture.video-toggle.enabled" = true;
"narrate.enabled" = false;
"privacy.donottrackheader.enabled" = true;
"privacy.donottrackheader.value" = 1;
"privacy.purge_trackers.enabled" = true;
"privacy.webrtc.legacyGlobalIndicator" = false;
"privacy.webrtc.hideGlobalIndicator" = true;
"reader.parse-on-load.enabled" = false; # "reader view"
"security.family_safety.mode" = 0;
"security.pki.sha1_enforcement_level" = 1; # https://blog.mozilla.org/security/2016/10/18/phasing-out-sha-1-on-the-public-web/
"security.tls.enable_0rtt_data" = false; # https://github.com/tlswg/tls13-spec/issues/1001
"signon.autofillForms" = false;
"signon.generateion.enabled" = false;
"signon.rememberSignons" = false;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"widget.use-xdg-desktop-portal" = true;
"widget.use-xdg-desktop-portal.file-picker" = 1; # 1: always, 2: auto
"widget.use-xdg-desktop-portal.location" = 2;
"widget.use-xdg-desktop-portal.mime-handler" = 2;
"widget.use-xdg-desktop-portal.native-messaging" = 0;
"widget.use-xdg-desktop-portal.open-uri" = 2;
"widget.use-xdg-desktop-portal.settings" = 2;
}