179 lines
7.0 KiB
Nix
179 lines
7.0 KiB
Nix
{
|
|
pkgs,
|
|
myConfig,
|
|
id,
|
|
name,
|
|
url,
|
|
...
|
|
}: {
|
|
inherit id name;
|
|
# Note: This profile relies on the global tridactylrc logic in default.nix
|
|
# to dynamically set 'newtab' via the TRIDACTYL_NEWTAB environment variable.
|
|
search.force = true;
|
|
search.default = "ddg";
|
|
extensions.force = true;
|
|
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
|
ublock-origin
|
|
bitwarden
|
|
tridactyl
|
|
new-tab-override
|
|
pywalfox
|
|
];
|
|
|
|
settings = {
|
|
# --- New Tab Override ---
|
|
"extensions.newtaboverride@agenedia.com.url" = url;
|
|
"extensions.newtaboverride@agenedia.com.type" = 1; # URL mode
|
|
|
|
# --- Privacy & Hardening ---
|
|
"browser.contentblocking.category" = "strict";
|
|
"privacy.trackingprotection.enabled" = true;
|
|
"privacy.resistFingerprinting" = true; # Note: Spoofs timezone and caps FPS to 60
|
|
"geo.enabled" = false;
|
|
"media.peerconnection.enabled" = false; # Prevents WebRTC IP leaks
|
|
"network.dns.disablePrefetch" = true;
|
|
"network.prefetch-next" = false;
|
|
|
|
# --- NixOS / Hyprland Integration ---
|
|
"widget.use-xdg-desktop-portal.file-picker" = 1; # Use native file picker
|
|
|
|
# --- UI & Behavior ---
|
|
"browser.toolbars.bookmarks.visibility" = "never";
|
|
"browser.compactmode.show" = true;
|
|
"browser.tabs.closeWindowWithLastTab" = false;
|
|
"extensions.pocket.enabled" = false;
|
|
"extensions.screenshots.disabled" = true;
|
|
"browser.topsites.contile.enabled" = false;
|
|
"browser.formfill.enable" = false;
|
|
"browser.search.suggest.enabled" = false;
|
|
"browser.search.suggest.enabled.private" = false;
|
|
"browser.urlbar.suggest.searches" = false;
|
|
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
|
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
|
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
|
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
|
|
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
|
|
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
|
|
"browser.newtabpage.activity-stream.showSponsored" = false;
|
|
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
|
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
|
"extensions.autoDisableScopes" = 0; # Enable extensions by default
|
|
|
|
# --- Homepage & Navigation ---
|
|
"browser.startup.page" = 1; # Always open the homepage
|
|
"browser.startup.homepage" = url;
|
|
"browser.newtab.url" = url; # Try to set newtab to homepage
|
|
"browser.sessionstore.resume_from_crash" = false; # Always start fresh
|
|
"browser.sessionstore.max_tabs_undo" = 0; # Disable undo close tab
|
|
|
|
# --- DNS over HTTPS (Quad9) ---
|
|
"network.trr.mode" = 2; # Use DoH with system fallback
|
|
"network.trr.uri" = "https://dns.quad9.net/dns-query";
|
|
};
|
|
#
|
|
# userChrome = ''
|
|
# /* --- Autohide Entire Toolbox (Tabs + Address Bar) --- */
|
|
# /* Adapted from MrOtherGuy's autohide_main_toolbar.css */
|
|
#
|
|
# :root{
|
|
# /* Height of Tabs + Nav Bar approx 80px */
|
|
# --uc-navbar-transform: -85px;
|
|
# --uc-autohide-toolbar-delay: 0.1s;
|
|
# --uc-autohide-toolbar-duration: 200ms;
|
|
# }
|
|
# :root[uidensity="compact"]{ --uc-navbar-transform: -70px }
|
|
#
|
|
# #navigator-toolbox > div{ display: contents; }
|
|
#
|
|
# /* Apply transform to TabsToolbar AND Nav-bar */
|
|
# :root[sessionrestored] :where(#nav-bar,#PersonalToolbar,#TabsToolbar,#tab-notification-deck,.global-notificationbox,#notifications-toolbar){
|
|
# transform: translateY(var(--uc-navbar-transform))
|
|
# }
|
|
#
|
|
# :root:is([customizing],[chromehidden*="toolbar"]) :where(#nav-bar,#PersonalToolbar,#TabsToolbar,#tab-notification-deck,.global-notificationbox,#notifications-toolbar){
|
|
# transform: none !important;
|
|
# opacity: 1 !important;
|
|
# }
|
|
#
|
|
# /* Hide styles for Nav-Bar AND TabsToolbar */
|
|
# :where(#nav-bar,#TabsToolbar):not([customizing]){
|
|
# opacity: 0;
|
|
# transition: transform var(--uc-autohide-toolbar-duration) ease var(--uc-autohide-toolbar-delay), opacity var(--uc-autohide-toolbar-duration) ease var(--uc-autohide-toolbar-delay) !important;
|
|
# position: relative;
|
|
# z-index: 2;
|
|
# background-color: #1c1b22 !important; /* Solid background */
|
|
# }
|
|
#
|
|
# #navigator-toolbox,
|
|
# #sidebar-box,
|
|
# #sidebar-main,
|
|
# #sidebar-splitter,
|
|
# #tabbrowser-tabbox{
|
|
# z-index: auto !important;
|
|
# }
|
|
#
|
|
# /* Show when toolbox is focused or hovered */
|
|
# #navigator-toolbox:focus-within > .browser-toolbar,
|
|
# .browser-titlebar:hover ~ :is(#nav-bar,#PersonalToolbar,#TabsToolbar),
|
|
# #nav-bar:hover,
|
|
# #TabsToolbar:hover,
|
|
# #nav-bar:hover + #PersonalToolbar{
|
|
# transform: translateY(0);
|
|
# opacity: 1;
|
|
# transition-duration: var(--uc-autohide-toolbar-duration), var(--uc-autohide-toolbar-duration) !important;
|
|
# transition-delay: 0s !important;
|
|
# }
|
|
#
|
|
# /* Ensure popups still work (URL bar) */
|
|
# :root[sessionrestored] #urlbar[popover]{
|
|
# opacity: 0;
|
|
# pointer-events: none;
|
|
# transition: transform var(--uc-autohide-toolbar-duration) ease var(--uc-autohide-toolbar-delay), opacity var(--uc-autohide-toolbar-duration) ease var(--uc-autohide-toolbar-delay);
|
|
# transform: translateY(var(--uc-navbar-transform));
|
|
# }
|
|
# #mainPopupSet:has(> [panelopen]:not(#ask-chat-shortcuts,#selection-shortcut-action-panel,#chat-shortcuts-options-panel,#tab-preview-panel)) ~ toolbox #urlbar[popover],
|
|
# .browser-titlebar:is(:hover,:focus-within) ~ #nav-bar #urlbar[popover],
|
|
# #nav-bar:is(:hover,:focus-within) #urlbar[popover],
|
|
# #urlbar-container > #urlbar[popover]:is([focused],[open]){
|
|
# opacity: 1;
|
|
# pointer-events: auto;
|
|
# transition-delay: 0ms;
|
|
# transform: translateY(0);
|
|
# }
|
|
# :where(:root[sessionrestored]) #urlbar-container > #urlbar[popover]:is([focused],[open]){
|
|
# transition-duration: 100ms;
|
|
# }
|
|
#
|
|
# /* --- CRITICAL FIX: Trigger Zone --- */
|
|
# /* Since we hide EVERYTHING, we need a hitbox at the top of the screen */
|
|
# #navigator-toolbox::after {
|
|
# content: "";
|
|
# position: fixed;
|
|
# top: 0;
|
|
# left: 0;
|
|
# width: 100%;
|
|
# height: 20px; /* Generous hit target */
|
|
# z-index: 10000;
|
|
# pointer-events: auto;
|
|
# }
|
|
#
|
|
# /* When hitbox is hovered, reveal bars */
|
|
# #navigator-toolbox:hover :where(#nav-bar,#PersonalToolbar,#TabsToolbar) {
|
|
# transform: translateY(0) !important;
|
|
# opacity: 1 !important;
|
|
# transition-delay: 0s !important;
|
|
# }
|
|
#
|
|
# /* Move up the content view to fill the gap */
|
|
# :root[sessionrestored]:not([chromehidden~="toolbar"]) > body > #browser{
|
|
# margin-top: var(--uc-navbar-transform);
|
|
# }
|
|
#
|
|
# /* Fix Titlebar and Bookmarks */
|
|
# #titlebar { appearance: none !important; }
|
|
# #PersonalToolbar { visibility: collapse !important; }
|
|
# '';
|
|
}
|