nix/home/firefox/default.nix
2024-07-20 14:33:01 +02:00

495 lines
16 KiB
Nix

{
inputs, ... }:
{
programs.firefox = {
enable = true;
profiles.joy = {
search.engines = {
"4get" = {
urls = [{
template = "https://4get.ch/web";
params = [
{ name = "s"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@4get" ];
};
};
search.force = true;
search.default = "4get";
bookmarks = [{
name = "Nix sites";
toolbar = true;
bookmarks = [
{ name = "Packages"; url = "https://search.nixos.org/packages?channel=unstable"; }
{ name = "Homemanager"; url = "https://nix-community.github.io/home-manager/options.xhtml"; }
{ name = "Stylix"; url = "https://stylix.danth.me/options/nixos.html"; }
{ name = "Socials Joy"; url = "https://joygnu.org/"; }
{ name = "Wallpapers"; url = "https://wallpapers.joygnu.org/"; }
{ name = "Server"; url = "https://avoro.eu/cp/clientarea.php?action=productdetails&id=27920"; }
{ name = "Domain"; url = "https://registrar.epik.com/domain-management/host-records"; }
{ name = "Translate"; url = "https://simplytranslate.org/"; }
{ name = "Syncthing"; url = "http://localhost:8384/"; }
{ name = "GitHub"; url = "https://github.com/"; }
{ name = "Codeberg"; url = "https://codeberg.org/"; }
{ name = "Gamepad Tester"; url = "https://gamepad-tester.com/"; }
{ name = "Zophar's Domain"; url = "https://www.zophar.net/music"; }
{ name = "Spotify Downloader"; url = "https://spotify-downloader.com/"; }
{ name = "Hyprland"; url = "https://wiki.hyprland.org/"; }
{ name = "Monkeytype"; url = "https://monkeytype.com/"; }
];
}];
extensions = with inputs.firefox-addons.packages."x86_64-linux"; [
ublock-origin
darkreader
libredirect
search-by-image
decentraleyes
];
settings = {
"dom.security.https_only_mode" = true;
"browser.download.panel.shown" = true;
"identity.fxaccounts.enabled" = false;
"signon.rememberSignons" = false;
"browser.urlbar.pocket.featureGate" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.shell.defaultBrowserCheckCount" = 1;
"browser.startup.homepage" = "moz-extension://f3ba075e-5213-4eca-b67c-470714db5333/index.html";
#MTAB_SAVE_FORMAT_JTIyJTdCJTVDJTIydXNlciU1QyUyMiUzQSU3QiU1QyUyMm5hbWUlNUMlMjIlM0ElNUMlMjJKb3klNUMlMjIlN0QlMkMlNUMlMjJ0aXRsZSU1QyUyMiUzQSU3QiU1QyUyMmRlZmF1bHRUaXRsZSU1QyUyMiUzQSU1QyUyMkpveSU1QyUyMiUyQyU1QyUyMmR5bmFtaWMlNUMlMjIlM0ElN0IlNUMlMjJlbmFibGVkJTVDJTIyJTNBdHJ1ZSU3RCU3RCUyQyU1QyUyMm1lc3NhZ2UlNUMlMjIlM0ElN0IlNUMlMjJlbmFibGVkJTVDJTIyJTNBdHJ1ZSUyQyU1QyUyMmZvbnQlNUMlMjIlM0ElNUMlMjIlNUMlNUMlNUMlMjJKZXRicmFpbnMtTW9uby1SZWd1bGFyLUZpeGVkJTVDJTVDJTVDJTIyJTVDJTIyJTJDJTVDJTIydGV4dENvbG9yJTVDJTIyJTNBJTVDJTIydW5kZWZpbmVkJTVDJTIyJTJDJTVDJTIydHlwZSU1QyUyMiUzQSU1QyUyMmFmdGVybm9vbi1tb3JuaW5nJTVDJTIyJTJDJTVDJTIyY3VzdG9tVGV4dCU1QyUyMiUzQSU1QyUyMnlvdXIlMjBjdXN0b20lMjB0ZXh0JTVDJTIyJTdEJTJDJTVDJTIyd2FsbHBhcGVyJTVDJTIyJTNBJTdCJTVDJTIydHlwZSU1QyUyMiUzQSU1QyUyMnVybCU1QyUyMiUyQyU1QyUyMmVuYWJsZWQlNUMlMjIlM0FmYWxzZSUyQyU1QyUyMnVybCU1QyUyMiUzQSU1QyUyMi4lMkZ3YWxscGFwZXJzJTJGYmctMS5wbmclNUMlMjIlN0QlMkMlNUMlMjJ1aSU1QyUyMiUzQSU3QiU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIyc29saWQlNUMlMjIlMkMlNUMlMjJmb3JlZ3JvdW5kQ29sb3IlNUMlMjIlM0ElNUMlMjIlMjMzQzM4MzYlNUMlMjIlMkMlNUMlMjJiYWNrZ3JvdW5kQ29sb3IlNUMlMjIlM0ElNUMlMjIlMjMyODI4MjglNUMlMjIlMkMlNUMlMjJoaWdobGlnaHRDb2xvciU1QyUyMiUzQSU1QyUyMiUyM2ZmZmZmZiU1QyUyMiU3RCUyQyU1QyUyMmFuaW1hdGlvbnMlNUMlMjIlM0ElN0IlNUMlMjJlbmFibGVkJTVDJTIyJTNBdHJ1ZSUyQyU1QyUyMmJvb2ttYXJrVGltaW5nJTVDJTIyJTNBJTVDJTIybGVmdCU1QyUyMiUyQyU1QyUyMnR5cGUlNUMlMjIlM0ElNUMlMjJhbmltYXRlLXVwLWJvdW5jeSU1QyUyMiU3RCUyQyU1QyUyMnNlYXJjaCU1QyUyMiUzQSU3QiU1QyUyMmVuYWJsZWQlNUMlMjIlM0FmYWxzZSUyQyU1QyUyMmZvbnQlNUMlMjIlM0ElNUMlMjIlNUMlNUMlNUMlMjJKZXRicmFpbnMtTW9uby1SZWd1bGFyLUZpeGVkJTVDJTVDJTVDJTIyJTVDJTIyJTJDJTVDJTIydGV4dENvbG9yJTVDJTIyJTNBJTVDJTIydW5kZWZpbmVkJTVDJTIyJTJDJTVDJTIycGxhY2Vob2xkZXJUZXh0JTVDJTIyJTNBJTVDJTIyc2VhcmNoLi4uJTVDJTIyJTJDJTVDJTIycGxhY2Vob2xkZXJUZXh0Q29sb3IlNUMlMjIlM0ElNUMlMjJ1bmRlZmluZWQlNUMlMjIlMkMlNUMlMjJlbmdpbmUlNUMlMjIlM0ElNUMlMjJicmF2ZSU1QyUyMiUyQyU1QyUyMmZvY3VzZWRCb3JkZXJDb2xvciU1QyUyMiUzQSU1QyUyMiUyMzBlYTVlOSU1QyUyMiU3RCUyQyU1QyUyMmhvdGtleXMlNUMlMjIlM0ElN0IlNUMlMjJlbmFibGVkJTVDJTIyJTNBdHJ1ZSUyQyU1QyUyMmFjdGl2YXRpb25LZXklNUMlMjIlM0ElNUMlMjIlMjAlNUMlMjIlMkMlNUMlMjJjbG9zZVBhZ2VLZXklNUMlMjIlM0ElNUMlMjJ4JTVDJTIyJTdEJTJDJTVDJTIyYm9va21hcmtzJTVDJTIyJTNBJTdCJTVDJTIydHlwZSU1QyUyMiUzQSU1QyUyMnVzZXItZGVmaW5lZCU1QyUyMiUyQyU1QyUyMnVzZXJEZWZpbmVkJTVDJTIyJTNBJTVCJTdCJTVDJTIybmFtZSU1QyUyMiUzQSU1QyUyMmdpdGh1YiU1QyUyMiUyQyU1QyUyMnVybCU1QyUyMiUzQSU1QyUyMmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSU1QyUyMiUyQyU1QyUyMmNvbG9yJTVDJTIyJTNBJTVDJTIyJTIzNDU4NTg4JTVDJTIyJTJDJTVDJTIyaWNvblR5cGUlNUMlMjIlM0ElNUMlMjJyaS1naXRodWItZmlsbCU1QyUyMiUyQyU1QyUyMmljb25Db2xvciU1QyUyMiUzQSU1QyUyMiUyM0Q1QzRBMSU1QyUyMiU3RCUyQyU3QiU1QyUyMm5hbWUlNUMlMjIlM0ElNUMlMjJ5b3V0dWJlJTVDJTIyJTJDJTVDJTIydXJsJTVDJTIyJTNBJTVDJTIyaHR0cHMlM0ElMkYlMkZhdm9yby5ldSUyRmNwJTJGY2xpZW50YXJlYS5waHAlM0ZhY3Rpb24lM0Rwcm9kdWN0ZGV0YWlscyUyNmlkJTNEMjc5MjAlNUMlMjIlMkMlNUMlMjJjb2xvciU1QyUyMiUzQSU1QyUyMiUyM2Y0M2Y1ZSU1QyUyMiUyQyU1QyUyMmljb25UeXBlJTVDJTIyJTNBJTVDJTIycmktc2VydmVyLWZpbGwlNUMlMjIlMkMlNUMlMjJpY29uQ29sb3IlNUMlMjIlM0ElNUMlMjIlMjNENUM0QTElNUMlMjIlN0QlMkMlN0IlNUMlMjJuYW1lJTVDJTIyJTNBJTVDJTIyc3R1ZGlvJTVDJTIyJTJDJTVDJTIydXJsJTVDJTIyJTNBJTVDJTIyaHR0cHMlM0ElMkYlMkZnaXQuam95Z251Lm9yZyUyRiU1QyUyMiUyQyU1QyUyMmNvbG9yJTVDJTIyJTNBJTVDJTIyJTIzQjE2Mjg2JTVDJTIyJTJDJTVDJTIyaWNvblR5cGUlNUMlMjIlM0ElNUMlMjJyaS1naXQtYnJhbmNoLWZpbGwlNUMlMjIlMkMlNUMlMjJpY29uQ29sb3IlNUMlMjIlM0ElNUMlMjIlMjNENUM0QTElNUMlMjIlN0QlMkMlN0IlNUMlMjJuYW1lJTVDJTIyJTNBJTVDJTIyc3luYyU1QyUyMiUyQyU1QyUyMnVybCU1QyUyMiUzQSU1QyUyMmh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4Mzg0JTVDJTIyJTJDJTVDJTIyY29sb3IlNUMlMjIlM0ElNUMlMjIlMjM5ODk3MUElNUMlMjIlMkMlNUMlMjJpY29uVHlwZSU1QyUyMiUzQSU1QyUyMnJpLWdsb2JhbC1maWxsJTVDJTIyJTJDJTVDJTIyaWNvbkNvbG9yJTVDJTIyJTNBJTVDJTIyJTIzRDVDNEExJTVDJTIyJTdEJTVEJTdEJTdEJTIy
"privacy.trackingprotection.enabled" = true;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.uiCustomization.state" =
''
{
"placements": {
"widget-overflow-fixed-list": [],
"nav-bar": [
"back-button",
"forward-button",
"stop-reload-button",
"urlbar-container",
"downloads-button",
"ublock0_raymondhill_net-browser-action",
"addon_darkreader_org-browser-action",
"_testpilot-containers-browser-action"
],
"toolbar-menubar": [
"menubar-items"
],
"TabsToolbar": [
"tabbrowser-tabs",
"new-tab-button",
"alltabs-button"
],
"PersonalToolbar": [
"personal-bookmarks"
]
},
"seen": [
"save-to-pocket-button",
"developer-button",
"ublock0_raymondhill_net-browser-action",
"addon_darkreader_org-browser-action",
"_testpilot-containers-browser-action"
],
"dirtyAreaCache": [
"nav-bar",
"PersonalToolbar",
"toolbar-menubar",
"TabsToolbar",
"widget-overflow-fixed-list"
],
"currentVersion": 18,
"newElementCount": 4
}
'';
};
userChrome = ''
/*================== Gruvbox Theme for Firefox ==================
Author: kmason
Based on the color scheme of calvinchd's Gruvbox Dark Firefox Theme - https://gitlab.com/calvinchd/gruvbox-dark-firefox-theme
*/
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
:root {
--background: #1d2021;
--secondary: #282828;
--foreground: #EBDBB2;
--orange-highlight: #fe8019;
--sound-border: #68217A;
--separator: #665e54;
--toolbar-bgcolor: var(--secondary) !important;
--tab: var(--background);
--tab-btn: var(--tab-inactive);
--tab-inactive: var(--secondary);
--tab-btn-inactive: var(--tab-inactive);
--tab-hover: #32302f;
--tab-btn-hover: #3C3836;
--toolbar-btn-hover: #49463f;
--url-bar: #3C3836;
--url-focus: #504945;
--url-bar-item-hover: #6a6257;
--sidebar: #3C3836;
--sidebar-button-hover: #5A544B;
--sidebar-highlight: #458588;
}
/*
SEARCH AND POPUPS/MENUS
*/
.panel-arrowcontainer {
background-color: var(--secondary) !important;
}
#PopupAutoComplete,
#PopupSearchAutoComplete
{
background-color: var(--url-focus) !important;
color: var(--foreground) !important;
}
panelview {
background-color: var(--sidebar) !important;
color: var(--foreground) !important;
}
panelview toolbarbutton.subviewbutton:hover {
background-color: var(--sidebar-button-hover) !important;
}
panel[type="autocomplete-richlistbox"] {
--panel-background: none !important;
border-radius: 4px !important;
color: var(--foreground) !important;
}
/*
_____ ___ ___ _ ___ _ ___
|_ _/ _ \ / _ \| | | _ ) / \ | _ \
| || (_) | (_) | |__| _ \/ = \| /
|_| \___/ \___/|____|___/_/ \_\_|\_\
*/
toolbarseparator,
menuseparator
{
border-color: var(--separator) !important;
border-image: none !important;
}
toolbar {
background-color: var(--secondary);
}
toolbar#TabsToolbar {
background-color: var(--background);
}
toolbar#TabsToolbar:-moz-window-inactive {
background-color: var(--toolbar-bgcolor) !important;
}
#titlebar,
#titlebar-spacer,
#titlebar-buttonbox-container
{
background-color: var(--background) !important;
border: none !important;
}
#navigator-toolbox {
--tabs-border-color: var(--orange-highlight) !important;
}
/* Remove border under navbar */
#navigator-toolbox::after {
border-bottom: 0px !important;
}
/* remove some borders */
#navigator-toolbox {
border: none !important;
}
/*
_ _ ___ _ ___ _ ___
| | | | _ \| | | _ ) / \ | _ \
| |_| | /| |__| _ \/ = \| /
\___/|_|\_\____|___/_/ \_\_|\_\
*/
#urlbar,
#searchbar
{
box-shadow: none !important;
border: none !important;
border-radius: 4px;
color : var(--foreground) !important;
background-color: var(--url-bar) !important;
--autocomplete-popup-separator-color: var(--separator) !important;
}
#urlbar-input,
#urlbar-input-container
{
color: var(--foreground) !important;
background-color: var(--url-bar) !important;
}
#urlbar:not([open]) #urlbar-input-container:focus-within,
#searchbar:focus-within
{
border: 2px solid var(--orange-highlight) !important;
}
#urlbar:focus-within,
#urlbar[open],
#urlbar[open] #urlbar-input-container,
#urlbar[open] #urlbar-input,
#urlbar-input-container:focus-within,
#urlbar-input:focus,
#urlbar-background,
.urlbarView,
#searchbar:focus-within,
menupop
{
background-color: var(--url-focus) !important;
}
#searchbar:focus-within {
outline: none !important;
}
:is(panel, menupopup)::part(content) {
background: none !important;
}
.urlbarView button:hover,
#searchbar button:hover,
.urlbarView-row:hover .urlbarView-row-inner,
.search-autocomplete-richlistbox-popup .autocomplete-richlistitem:hover
{
background-color: var(--url-bar-item-hover) !important;
}
.urlbarView-row[type="switchtab"] > span{
color: var(--orange-highlight) !important;
}
#PopupSearchAutoComplete .autocomplete-richlistitem[selected],
.searchbar-engine-one-off-item[selected],
.urlbarView-row[selected],
.urlbarView-row[aria-selected="true"],
.urlbarView-row:not([type="tip"], [type="dynamic"])[selected] > .urlbarView-row-inner,
.urlbarView-row-inner[selected]
{
color: var(--foreground) !important;
background-color: var(--sidebar-highlight) !important;
border-radius: 4px !important;
}
/*
BOOKMARKS BAR
*/
#PersonalToolbar {
background-color: var(--secondary) !important;
}
/*
_____ _ ___ ___
|_ _/ \ | _ ) __|
| |/ = \| _ \__ \
|_/_/ \_\___/___/
*/
.tab-background[selected="true"] {
background-color: transparent !important;
background-image: none !important;
}
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected="true"]):not([multiselected]){
background-color: transparent !important;
}
.tabbrowser-tab[soundplaying="true"] {
--lwt-tab-line-color: var(--sound-border) !important;
}
.tab-content[selected="true"] {
border-color: var(--orange-highlight) !important;
--sound-border: var(--orange-highlight) !important;
}
.tab-text {
color: var(--foreground);
}
tab,
#tabbrowser-tabs
{
background-color: var(--background) !important;
color : var(--foreground) !important;
}
tab:-moz-window-inactive,
#tabbrowser-tabs:-moz-window-inactive,
#nav-bar-customization-target
{
background-color: var(--secondary) !important;
}
.tabbrowser-tab[selected]{
opacity: 1;
}
.tab-loading-burst {
background-color: inherit;
}
.tab-content
{
border-radius: 4px;
margin: 5px 0px 5px 0px !important;
border: 1px solid transparent !important;
}
.tab-content[selected="true"]
{
background-color: var(--secondary) !important;
color : var(--foreground) !important;
border: 1px solid var(--orange-highlight) !important;
}
.tab-content:not([selected="true"]):hover {
background-color: var(--tab-hover) !important;
}
/*
___ _____ ___ _ ___
| _ )_ _| \| |/ __|
| _ \ | | | |\ | |\__ \
|___/ |_| |_| \__|/___/
*/
/*
Toolbar buttons
*/
toolbarbutton {
fill: var(--foreground) !important;
background-color: transparent !important;
}
/*
TAB BAR BUTTONS
*/
#TabsToolbar toolbarbutton {
border-radius: 4px;
border: 1px solid transparent !important;
}
#TabsToolbar toolbarbutton:-moz-window-inactive {
opacity: 0.7 !important;
}
#alltabs-button > .toolbarbutton-badge-stack,
#tabs-newtab-button > .toolbarbutton-icon {
background-image: none;
border-radius: 6px;
}
#alltabs-button:hover > .toolbarbutton-badge-stack,
#tabs-newtab-button:hover > .toolbarbutton-icon {
background-color: var(--tab-btn-hover) !important;
}
/* Firefox View button */
#TabsToolbar #firefox-view-button > .toolbarbutton-icon
{
background-image: none !important;
border-radius: 4px;
}
#TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon
{
background-color: var(--secondary) !important;
color : var(--foreground) !important;
padding: 9px !important;
border: 1px solid var(--orange-highlight) !important;
}
#TabsToolbar #firefox-view-button:not([open]):hover > .toolbarbutton-icon {
background-color: var(--tab-hover) !important;
}
/*
MIDDLE BAR (url bar) BUTTONS
*/
#nav-bar toolbarbutton > .toolbarbutton-icon,
#nav-bar toolbarbutton > .toolbarbutton-badge-stack {
border-radius: 6px;
}
#nav-bar toolbarbutton:hover > .toolbarbutton-icon,
#nav-bar toolbarbutton:hover > .toolbarbutton-badge-stack {
background-color: var(--toolbar-btn-hover) !important;
}
#back-button {
padding-right: 2px !important;
padding-left: 2px !important;
margin-left: 6px !important;
}
/* Hamburger Menu */
#PanelUI-menu-button {
background-color: var(--secondary) !important;
padding-right: 2px !important;
margin-right: 6px !important;
}
/*
BOOKMARK BUTTONS
*/
#PersonalToolbar toolbarbutton {
margin: 3px 0px 3px 3px !important;
border-radius: 4px;
}
#PersonalToolbar toolbarbutton:hover {
background-color: var(--toolbar-btn-hover) !important;
}
'';
userContent = ''
:root {
--background: #1d2021;
--secondary: #282828;
--newtab-body: #32302f;
--foreground: #EBDBB2;
}
@-moz-document url-prefix("about:"), url-prefix("about:newtab"), url-prefix("about:home") {
html, body {
color: var(--foreground) !important;
background-color: var(--newtab-body) !important;
}
}
'';
};
};
}