switch back to firefox and use searxng

This commit is contained in:
Sean Kovacs 2026-02-09 09:47:58 -05:00
commit 2c18755ee7
Signed by: sckova
GPG key ID: 00F325187C68651A
13 changed files with 643 additions and 104 deletions

View file

@ -208,6 +208,7 @@
}; };
} }
./system ./system
./system/searxng
./system/widevine ./system/widevine
./system/shell/fish.nix ./system/shell/fish.nix
./system/tailscale ./system/tailscale

View file

@ -1,7 +1,7 @@
{ {
imports = [ imports = [
./discord.nix ./discord.nix
./librewolf.nix ./firefox.nix
./mpv.nix ./mpv.nix
# ./vscode.nix # ./vscode.nix
]; ];

View file

@ -6,13 +6,13 @@
... ...
}: }:
{ {
home.file.".librewolf/default/chrome/" = { home.file.".mozilla/firefox/default/chrome/" = {
source = ./librewolf_css; source = ./firefox_css;
force = true; force = true;
recursive = true; recursive = true;
}; };
home.file.".librewolf/default/chrome/colors.css" = with config.scheme.withHashtag; { home.file.".mozilla/firefox/default/chrome/colors.css" = with config.scheme.withHashtag; {
text = '' text = ''
* { * {
--accent: ${config.scheme.withHashtag.${config.colors.accent}}; --accent: ${config.scheme.withHashtag.${config.colors.accent}};
@ -86,9 +86,9 @@
}; };
}; };
}; };
librewolf = { firefox = {
enable = true; enable = true;
package = pkgs.librewolf.override { package = pkgs.firefox.override {
nativeMessagingHosts = with pkgs; [ nativeMessagingHosts = with pkgs; [
firefoxpwa firefoxpwa
]; ];
@ -113,7 +113,6 @@
"{446900e4-71c2-419f-a6a7-df9c091e268b}".installation_mode = "allowed"; "{446900e4-71c2-419f-a6a7-df9c091e268b}".installation_mode = "allowed";
"CanvasBlocker@kkapsner.de".installation_mode = "allowed"; "CanvasBlocker@kkapsner.de".installation_mode = "allowed";
"shinigamieyes@shinigamieyes".installation_mode = "allowed"; "shinigamieyes@shinigamieyes".installation_mode = "allowed";
# "".installation_mode = "allowed";
}; };
DisableTelemetry = true; DisableTelemetry = true;
DisableFirefoxStudies = true; DisableFirefoxStudies = true;
@ -124,8 +123,8 @@
Fingerprinting = true; Fingerprinting = true;
}; };
DisablePocket = true; DisablePocket = true;
DisableFirefoxAccounts = false; DisableFirefoxAccounts = true;
DisableAccounts = false; DisableAccounts = true;
DisableFirefoxScreenshots = true; DisableFirefoxScreenshots = true;
OverrideFirstRunPage = ""; OverrideFirstRunPage = "";
OverridePostUpdatePage = ""; OverridePostUpdatePage = "";
@ -169,8 +168,8 @@
"xpinstall.signatures.required" = false; "xpinstall.signatures.required" = false;
"extensions.update.autoUpdateDefault" = false; "extensions.update.autoUpdateDefault" = false;
"extensions.update.enabled" = false; "extensions.update.enabled" = false;
"browser.search.defaultenginename" = "google"; "browser.search.defaultenginename" = "searxng";
"browser.search.order.1" = "google"; "browser.search.order.1" = "searxng";
"browser.toolbars.bookmarks.visibility" = "newtab"; "browser.toolbars.bookmarks.visibility" = "newtab";
"signon.rememberSignons" = false; "signon.rememberSignons" = false;
@ -207,6 +206,8 @@
"browser.newtabpage.activity-stream.system.showSponsored" = false; "browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.showWeather" = false; "browser.newtabpage.activity-stream.showWeather" = false;
"browser.download.autoHideButton" = false;
"browser.startup.homepage" = "http://localhost:8080/";
# Disable Firefox's machine learning (AI) features # Disable Firefox's machine learning (AI) features
"browser.ml.enable" = false; "browser.ml.enable" = false;
@ -218,16 +219,61 @@
# Vertical tabs # Vertical tabs
"sidebar.verticalTabs" = true; "sidebar.verticalTabs" = true;
"sidebar.verticalTabs.dragToPinPromo.dismissed" = true; "sidebar.verticalTabs.dragToPinPromo.dismissed" = true;
"browser.uiCustomization.navBarWhenVerticalTabs" = [ "browser.uiCustomization.state" = {
"back-button" placements = {
"forward-button" widget-overflow-fixed-list = [ ];
"stop-reload-button" unified-extensions-area = [
"reload-button" "sponsorblocker_ajay_app-browser-action"
"urlbar-container" "ublock0_raymondhill_net-browser-action"
"downloads-button" "jid1-mnnxcxisbpnsxq_jetpack-browser-action"
"unified-extensions-button" "gdpr_cavi_au_dk-browser-action"
"fxa-toolbar-menu-button" "firefoxpwa_filips_si-browser-action"
]; "plasma-browser-integration_kde_org-browser-action"
"canvasblocker_kkapsner_de-browser-action"
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
];
nav-bar = [
# "sidebar-button"
"back-button"
"forward-button"
"stop-reload-button"
"urlbar-container"
"unified-extensions-button"
"downloads-button"
];
toolbar-menubar = [ "menubar-items" ];
TabsToolbar = [ ];
vertical-tabs = [ "tabbrowser-tabs" ];
PersonalToolbar = [ "personal-bookmarks" ];
};
seen = [
"gdpr_cavi_au_dk-browser-action"
"firefoxpwa_filips_si-browser-action"
"plasma-browser-integration_kde_org-browser-action"
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
"canvasblocker_kkapsner_de-browser-action"
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
"ublock0_raymondhill_net-browser-action"
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
"sponsorblocker_ajay_app-browser-action"
"developer-button"
];
dirtyAreaCache = [
"unified-extensions-area"
"nav-bar"
"TabsToolbar"
"vertical-tabs"
"PersonalToolbar"
"toolbar-menubar"
];
currentVersion = 23;
newElementCount = 1;
};
"privacy.resistFingerprinting" = false; "privacy.resistFingerprinting" = false;
"privacy.clearOnShutdown.history" = false; "privacy.clearOnShutdown.history" = false;
@ -257,13 +303,13 @@
search = search =
let let
nixIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/nix-snowflake.svg"; nixIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/nix-snowflake.svg";
googleIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/google.svg"; searchIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid-Dark/places/symbolic/folder-saved-search-symbolic.svg";
in in
{ {
force = true; force = true;
default = "google"; default = "searxng";
order = [ order = [
"google" "searxng"
]; ];
engines = { engines = {
nix-packages = { nix-packages = {
@ -317,10 +363,10 @@
definedAliases = [ "@nw" ]; definedAliases = [ "@nw" ];
}; };
google = { searxng = {
name = "Google"; name = "SearXNG";
urls = [ { template = "https://google.com/search?q={searchTerms}"; } ]; urls = [ { template = "http://localhost:8080/search?q={searchTerms}"; } ];
icon = googleIcon; icon = searchIcon;
definedAliases = [ "@go" ]; definedAliases = [ "@go" ];
}; };

View file

@ -0,0 +1,37 @@
#tracking-protection-icon-container {
display: none;
}
.bookmark-item[container] {
list-style-image: url("chrome://global/skin/dirListing/folder.png") !important;
}
#toolbar-menubar {
display: none !important;
}
#menubar-items {
visibility: hidden !important;
}
.browserSidebarContainer {
border: 0px solid var(--surface0) !important;
border-radius: 4px !important;
background-color: var(--mantle) !important;
overflow: hidden !important;
}
.browserContainer {
border: 0px !important;
margin-top: 8px !important;
margin-left: 8px !important;
margin-right: 8px !important;
margin-bottom: 8px !important;
background-color: var(--mantle) !important;
border-radius: 2px !important;
}
.browserStack {
border-radius: 2px !important;
background-color: var(--base) !important;
}

View file

@ -0,0 +1,392 @@
@import "../colors.css";
/* ========================================================================
global variables
======================================================================== */
:root {
/* arrow panels */
--arrowpanel-background: var(--surface0) !important;
--arrowpanel-border-color: var(--surface1) !important;
--arrowpanel-color: var(--text) !important;
--arrowpanel-dimmed-even-further: var(--overlay0) !important;
--arrowpanel-dimmed-further: var(--subtext1) !important;
--arrowpanel-dimmed: var(--subtext0) !important;
--default-arrowpanel-background: var(--surface0) !important;
--default-arrowpanel-border-color: var(--surface1) !important;
--default-arrowpanel-color: var(--text) !important;
/* autocomplete & popups */
--autocomplete-popup-background: var(--mantle) !important;
--autocomplete-popup-color: var(--text) !important;
--autocomplete-popup-highlight-background: var(--surface1) !important;
--autocomplete-popup-highlight-color: var(--text) !important;
--urlbar-popup-action-color: var(--accent) !important;
--urlbar-popup-url-color: var(--blue) !important;
--urlbar-separator-color: var(--surface0) !important;
/* buttons (global) */
--backbutton-active-background: var(--surface1) !important;
--backbutton-background: transparent !important;
--backbutton-border-color: transparent !important;
--backbutton-hover-background: var(--surface0) !important;
--cfr-active-color: var(--accent) !important;
--cfr-button-addons-icon: var(--text) !important;
--cfr-button-features-icon: var(--text) !important;
/* color palette (blue) */
--blue-40-a10: color-mix(in srgb, var(--blue), transparent 90%) !important;
--blue-40: var(--blue) !important;
--blue-50-a30: color-mix(in srgb, var(--blue), transparent 70%) !important;
--blue-50: var(--blue) !important;
--blue-60: var(--sapphire) !important;
--blue-70: var(--sky) !important;
--blue-80: var(--teal) !important;
/* color palette (green) */
--green-50: var(--green) !important;
--green-60: var(--green) !important;
--green-70: var(--teal) !important;
--green-80: var(--teal) !important;
--green-90: var(--teal) !important;
/* color palette (grey/overlay) */
--grey-20: var(--subtext1) !important;
--grey-30: var(--subtext0) !important;
--grey-40: var(--overlay2) !important;
--grey-60: var(--overlay0) !important;
--grey-70: var(--overlay2) !important;
--grey-80: var(--overlay2) !important;
--grey-90-a10: color-mix(
in srgb,
var(--surface1),
transparent 90%
) !important;
--grey-90-a20: color-mix(
in srgb,
var(--surface1),
transparent 80%
) !important;
--grey-90-a30: color-mix(
in srgb,
var(--surface1),
transparent 70%
) !important;
--grey-90-a50: color-mix(
in srgb,
var(--surface1),
transparent 50%
) !important;
--grey-90-a60: color-mix(
in srgb,
var(--surface1),
transparent 40%
) !important;
--grey-90: var(--surface1) !important;
/* color palette (misc) */
--orange-50: var(--peach) !important;
--purple-70: var(--mauve) !important;
/* color palette (red) */
--red-50-a30: color-mix(in srgb, var(--red), transparent 70%) !important;
--red-50: var(--red) !important;
--red-60: var(--maroon) !important;
--red-70: var(--maroon) !important;
--red-80: var(--maroon) !important;
--red-90: var(--maroon) !important;
/* color palette (yellow) */
--yellow-10: var(--yellow) !important;
--yellow-50: var(--yellow) !important;
--yellow-60-a30: color-mix(
in srgb,
var(--yellow),
transparent 70%
) !important;
--yellow-60: var(--yellow) !important;
--yellow-70: var(--peach) !important;
--yellow-80: var(--peach) !important;
--yellow-90: var(--peach) !important;
/* context menus */
--menu-background-color: var(--base) !important;
--menu-border-color: var(--surface1) !important;
--menu-color: var(--text) !important;
--menu-disabled-color: var(--overlay0) !important;
--menu-icon-opacity: 1 !important;
--menuitem-disabled-hover-background-color: transparent !important;
--menuitem-hover-background-color: var(--surface1) !important;
--panel-disabled-color: var(--overlay0) !important;
--panel-separator-color: var(--surface0) !important;
/* in-content ui (cards & boxes) */
--card-outline-color: var(--surface1) !important;
--card-shadow-focus: 0 0 0 2px var(--accent) !important;
--card-shadow-hover: 0 4px 8px
color-mix(in srgb, var(--crust), transparent 80%) !important;
--card-shadow: 0 1px 4px color-mix(in srgb, var(--crust), transparent 90%) !important;
--in-content-box-background-active: var(--surface1) !important;
--in-content-box-background-hover: var(--surface1) !important;
--in-content-box-background-odd: var(--mantle) !important;
--in-content-box-background: var(--surface0) !important;
--in-content-box-border-color: var(--surface1) !important;
--in-content-box-info-background: var(--surface0) !important;
/* in-content ui (colors & text) */
--in-content-deemphasized-text: var(--subtext0) !important;
--in-content-link-color-active: var(--sky) !important;
--in-content-link-color-hover: var(--sapphire) !important;
--in-content-link-color-visited: var(--lavender) !important;
--in-content-link-color: var(--blue) !important;
--in-content-page-background: var(--base) !important;
--in-content-page-color: var(--text) !important;
--in-content-selected-text: var(--surface2) !important;
--in-content-text-color: var(--text) !important;
/* in-content ui (forms & buttons) */
--in-content-border-active-shadow: 0 0 0 2px var(--accent) !important;
--in-content-border-active: var(--accent) !important;
--in-content-border-color: var(--surface1) !important;
--in-content-border-focus: var(--accent) !important;
--in-content-border-highlight: var(--blue) !important;
--in-content-border-hover: var(--surface2) !important;
--in-content-border-invalid-shadow: 0 0 0 2px var(--red) !important;
--in-content-border-invalid: var(--red) !important;
--in-content-button-background-active: var(--surface1) !important;
--in-content-button-background-hover: var(--surface2) !important;
--in-content-button-background: var(--surface0) !important;
--in-content-category-background-active: var(--surface1) !important;
--in-content-category-background-hover: var(--surface0) !important;
--in-content-category-background-selected-active: var(--surface2) !important;
--in-content-category-background-selected-hover: var(--surface1) !important;
--in-content-category-outline-focus: var(--accent) !important;
--in-content-category-text-selected-active: var(--accent) !important;
--in-content-category-text-selected: var(--accent) !important;
--in-content-item-hover: var(--surface0) !important;
--in-content-item-selected: var(--surface1) !important;
--in-content-primary-button-background-active: var(--maroon) !important;
--in-content-primary-button-background-hover: var(--peach) !important;
--in-content-primary-button-background: var(--accent) !important;
/* in-content ui (misc) */
--chrome-content-separator-color: var(--surface0) !important;
--in-content-dialog-header-background: var(--mantle) !important;
--in-content-tab-color: var(--subtext0) !important;
--in-content-table-background: var(--mantle) !important;
--in-content-table-border-dark-color: var(--surface1) !important;
--in-content-table-header-background: var(--surface0) !important;
--in-content-warning-container: var(--red) !important;
--shadow-10: 0 1px 2px color-mix(in srgb, var(--crust), transparent 90%) !important;
--shadow-30: 0 4px 8px color-mix(in srgb, var(--crust), transparent 80%) !important;
/* lightweight theme (lwt) */
--lwt-accent-color: var(--accent) !important;
--lwt-sidebar-background-color: var(--mantle) !important;
--lwt-sidebar-text-color: var(--text) !important;
--lwt-text-color: var(--text) !important;
--lwt-toolbar-field-background-color: var(--crust) !important;
--lwt-toolbar-field-border-color: var(--surface0) !important;
--lwt-toolbar-field-color: var(--text) !important;
--lwt-toolbar-field-focus-color: var(--text) !important;
--lwt-toolbar-field-focus: var(--accent) !important;
--lwt-toolbarbutton-icon-fill: var(--text) !important;
/* navigator tabs */
--tab-line-color: var(--accent) !important;
--tab-loading-fill: var(--accent) !important;
--tabs-border-color: var(--surface0) !important;
/* new tab page */
--newtab-background-color: var(--base) !important;
--newtab-border-primary-color: var(--surface1) !important;
--newtab-border-secondary-color: var(--surface0) !important;
--newtab-button-primary-color: var(--accent) !important;
--newtab-button-secondary-color: var(--surface0) !important;
--newtab-card-active-outline-color: var(--accent) !important;
--newtab-card-background-color: var(--surface0) !important;
--newtab-card-hairline-color: var(--surface1) !important;
--newtab-card-placeholder-color: var(--surface1) !important;
--newtab-card-shadow: 0 1px 4px
color-mix(in srgb, var(--crust), transparent 80%) !important;
--newtab-contextmenu-background-color: var(--surface0) !important;
--newtab-contextmenu-button-color: var(--text) !important;
--newtab-element-active-color: var(--surface1) !important;
--newtab-element-hover-color: var(--surface0) !important;
--newtab-feed-button-background-faded: var(--surface1) !important;
--newtab-feed-button-background: var(--surface0) !important;
--newtab-feed-button-spinner: var(--text) !important;
--newtab-feed-button-text-faded: var(--subtext0) !important;
--newtab-feed-button-text: var(--text) !important;
--newtab-icon-primary-color: var(--text) !important;
--newtab-icon-secondary-color: var(--subtext0) !important;
--newtab-icon-tertiary-color: var(--overlay0) !important;
--newtab-inner-box-shadow-color: color-mix(
in srgb,
var(--crust),
transparent 80%
) !important;
--newtab-link-primary-color: var(--blue) !important;
--newtab-link-secondary-color: var(--sapphire) !important;
--newtab-modal-color: var(--base) !important;
--newtab-overlay-color: color-mix(
in srgb,
var(--crust),
transparent 40%
) !important;
--newtab-search-border-color: var(--surface0) !important;
--newtab-search-dropdown-color: var(--mantle) !important;
--newtab-search-dropdown-header-color: var(--subtext1) !important;
--newtab-search-header-background-color: var(--base) !important;
--newtab-search-icon-color: var(--text) !important;
--newtab-search-icon: var(--text) !important;
--newtab-search-wordmark-color: var(--text) !important;
--newtab-section-active-contextmenu-color: var(--text) !important;
--newtab-section-header-text-color: var(--text) !important;
--newtab-section-navigation-text-color: var(--subtext0) !important;
--newtab-snippets-background-color: var(--surface0) !important;
--newtab-snippets-hairline-color: var(--surface1) !important;
--newtab-text-conditional-color: var(--red) !important;
--newtab-text-primary-color: var(--text) !important;
--newtab-text-secondary-color: var(--subtext0) !important;
--newtab-textbox-background-color: var(--crust) !important;
--newtab-textbox-border: var(--surface0) !important;
--newtab-textbox-focus-boxshadow: 0 0 0 2px var(--accent) !important;
--newtab-textbox-focus-color: var(--accent) !important;
--newtab-topsites-background-color: var(--base) !important;
--newtab-topsites-icon-shadow: none !important;
--newtab-topsites-label-color: var(--text) !important;
--trailhead-card-button-background-active-color: var(--accent) !important;
--trailhead-card-button-background-color: var(--surface1) !important;
--trailhead-card-button-background-hover-color: var(--surface2) !important;
--trailhead-cards-background-color: var(--surface0) !important;
--trailhead-header-text-color: var(--text) !important;
/* notifications */
--short-notification-background: var(--surface0) !important;
--short-notification-gradient: linear-gradient(
var(--surface0),
var(--surface0)
) !important;
/* sidebar */
--sidebar-background-color: var(--mantle) !important;
--sidebar-border-color: var(--surface0) !important;
--sidebar-text-color: var(--text) !important;
/* toolbar & urlbar */
--toolbar-bgcolor: var(--mantle) !important;
--toolbar-color: var(--text) !important;
--toolbar-field-focus-border-color: var(--accent) !important;
--toolbar-non-lwt-bgcolor: var(--mantle) !important;
--toolbar-non-lwt-textcolor: var(--text) !important;
--toolbarbutton-active-background: var(--surface1) !important;
--toolbarbutton-focus-outline: var(--accent) !important;
--toolbarbutton-hover-background: var(--surface0) !important;
--toolbarbutton-icon-fill-attention: var(--blue) !important;
}
/* ========================================================================
global component styles
======================================================================== */
#sidebar-main > *[expanded] {
background-color: var(--mantle) !important;
}
*,
:root {
accent-color: var(--accent) !important;
}
#TabsToolbar {
background-color: var(--mantle) !important;
}
#sidebar-launcher-splitter:hover {
background-color: var(--accent) !important;
}
[_moz-menuactive="true"] {
background-color: var(--accent) !important;
color: var(--mantle) !important;
}
menupopup {
--panel-background: var(--base) !important;
--panel-border-color: var(--surface1) !important;
--panel-text: var(--text) !important;
}
menuseparator {
border-color: var(--surface1) !important;
}
/* ========================================================================
overrides & media queries
======================================================================== */
@media {
#PersonalToolbar,
#nav-bar {
background-color: var(--mantle) !important;
}
:root {
/* browser tabs */
.tab-background[multiselected] {
--focus-outline-color: var(--surface0);
}
.tab-background[selected]:not([multiselected]) {
outline: 1px solid var(--surface0);
outline-offset: -1px;
}
.tabbrowser-tab[selected="true"] .tab-background {
border: 1px solid var(--surface0) !important;
}
#tabbrowser-tabs {
--tab-loading-fill: var(--text) !important;
}
/* general variable overrides */
--arrowpanel-background: var(--surface0) !important;
--arrowpanel-border-color: var(--surface0) !important;
--arrowpanel-color: var(--text) !important;
--chrome-content-separator-color: var(--surface0) !important;
--input-bgcolor: var(--crust) !important;
--input-border-color: var(--mantle) !important;
--input-color: var(--text) !important;
--tab-selected-bgcolor: var(--base) !important;
--tab-selected-textcolor: var(--text) !important;
--toolbar-bgcolor: var(--mantle) !important;
--toolbar-field-background-color: var(--input-bgcolor) !important;
--toolbar-field-border-color: var(--input-border-color) !important;
--toolbar-field-color: var(--input-color) !important;
--toolbar-field-focus-background-color: var(--base) !important;
--toolbar-field-focus-border-color: var(--surface0) !important;
--toolbarseparator-color: var(--text) !important;
--toolbox-non-lwt-bgcolor: var(--crust) !important;
--toolbox-non-lwt-textcolor: var(--text) !important;
/* inputs & selection */
#urlbar-input:focus::selection,
.searchbar-textbox:focus::selection {
background-color: var(--text);
color: var(--surface0);
}
/* toolbar buttons */
--toolbarbutton-active-background: var(--overlay0) !important;
--toolbarbutton-icon-fill: var(--text) !important;
--toolbarbutton-icon-fill-attention: var(--text) !important;
/* urlbar */
--urlbarView-highlight-background: var(--overlay0) !important;
--urlbarView-highlight-color: var(--text) !important;
&:where([tabsintitlebar]) {
--toolbox-non-lwt-bgcolor-inactive: var(--crust) !important;
}
}
}

View file

@ -1,15 +0,0 @@
#tracking-protection-icon-container {
display: none;
}
.bookmark-item[container] {
list-style-image: url("chrome://global/skin/dirListing/folder.png") !important;
}
#toolbar-menubar {
display: none !important;
}
#menubar-items {
visibility: hidden !important;
}

View file

@ -1,56 +0,0 @@
@import "../colors.css";
@media {
#nav-bar,
#PersonalToolbar {
background-color: var(--mantle) !important;
}
:root {
.tabbrowser-tab[selected="true"] .tab-background {
border: 1px solid var(--surface0) !important;
}
--toolbar-bgcolor: var(--mantle) !important;
--toolbox-non-lwt-bgcolor: var(--crust) !important;
--toolbox-non-lwt-textcolor: var(--text) !important;
--input-bgcolor: var(--crust) !important;
--toolbar-field-background-color: var(--input-bgcolor) !important;
--input-color: var(--text) !important;
--toolbar-field-color: var(--input-color) !important;
.tab-background[selected]:not([multiselected]) {
outline: 1px solid var(--surface0);
outline-offset: -1px;
}
.tab-background[multiselected] {
--focus-outline-color: var(--surface0);
}
--arrowpanel-background: var(--surface0) !important;
--arrowpanel-color: var(--text) !important;
--toolbarbutton-active-background: var(--overlay0) !important;
&:where([tabsintitlebar]) {
--toolbox-non-lwt-bgcolor-inactive: var(--crust) !important;
}
--toolbarbutton-icon-fill-attention: var(--text) !important;
--toolbarbutton-icon-fill: var(--text) !important;
--arrowpanel-border-color: var(--surface0) !important;
--urlbarView-highlight-color: var(--text) !important;
--urlbarView-highlight-background: var(--overlay0) !important;
#tabbrowser-tabs {
--tab-loading-fill: var(--text) !important;
}
--tab-selected-bgcolor: var(--base) !important;
--tab-selected-textcolor: var(--text) !important;
--chrome-content-separator-color: var(--surface0) !important;
--toolbar-field-focus-border-color: var(--surface0) !important;
--input-border-color: var(--mantle) !important;
--toolbar-field-border-color: var(--input-border-color) !important;
--toolbar-field-focus-background-color: var(--base) !important;
#urlbar-input:focus::selection,
.searchbar-textbox:focus::selection {
color: var(--surface0);
}
#urlbar-input:focus::selection,
.searchbar-textbox:focus::selection {
background-color: var(--text);
}
--toolbarseparator-color: var(--text) !important;
}
}

View file

@ -11,7 +11,7 @@
}; };
}; };
programs.librewolf.profiles.default.search.engines.uesp = { programs.firefox.profiles.default.search.engines.uesp = {
name = "Unofficial Elder Scrolls Pages"; name = "Unofficial Elder Scrolls Pages";
urls = [ urls = [
{ {

View file

@ -270,7 +270,7 @@
{ {
iconTasks = { iconTasks = {
launchers = [ launchers = [
"applications:librewolf.desktop" "applications:firefox.desktop"
"applications:org.kde.dolphin.desktop" "applications:org.kde.dolphin.desktop"
"applications:vesktop.desktop" "applications:vesktop.desktop"
"applications:kitty.desktop" "applications:kitty.desktop"

View file

@ -143,7 +143,7 @@
{ {
matches = [ matches = [
{ {
app-id = "librewolf$"; app-id = "firefox$";
title = "^Picture-in-Picture$"; title = "^Picture-in-Picture$";
} }
]; ];

134
system/searxng/default.nix Normal file
View file

@ -0,0 +1,134 @@
{
lib,
pkgs,
config,
...
}:
{
services.searx = {
enable = true;
redisCreateLocally = true;
settings = {
server = {
secret_key = lib.removeSuffix "\n" (
builtins.readFile (
pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out"
)
);
port = 8080;
bind_address = "127.0.0.1";
};
general = {
debug = false;
instance_name = "searxng: ${config.system.name}";
donation_url = false;
contact_url = false;
privacypolicy_url = false;
enable_metrics = false;
};
ui = {
static_use_hash = true;
default_locale = "en";
query_in_title = true;
infinite_scroll = false;
center_alignment = true;
default_theme = "simple";
theme_args.simple_style = "auto";
search_on_category_select = false;
hotkeys = "vim";
};
search = {
safe_search = 2;
autocomplete_min = 2;
autocomplete = "duckduckgo";
ban_time_on_fail = 5;
max_ban_time_on_fail = 120;
formats = [
"html"
"json"
"rss"
];
};
engines = lib.mapAttrsToList (name: value: { inherit name; } // value) {
"duckduckgo".disabled = true;
"brave".disabled = true;
"bing".disabled = false;
"google".disabled = false;
"mojeek".disabled = true;
"mwmbl".disabled = false;
"mwmbl".weight = 0.4;
"qwant".disabled = true;
"crowdview".disabled = false;
"crowdview".weight = 0.5;
"curlie".disabled = true;
"ddg definitions".disabled = false;
"ddg definitions".weight = 2;
"wikibooks".disabled = false;
"wikidata".disabled = true;
"wikiquote".disabled = true;
"wikisource".disabled = true;
"wikispecies".disabled = false;
"wikispecies".weight = 0.5;
"wikiversity".disabled = false;
"wikiversity".weight = 0.5;
"wikivoyage".disabled = false;
"wikivoyage".weight = 0.5;
"currency".disabled = true;
"dictzone".disabled = true;
"lingva".disabled = true;
"bing images".disabled = false;
"brave.images".disabled = true;
"duckduckgo images".disabled = true;
"google images".disabled = false;
"qwant images".disabled = true;
"1x".disabled = true;
"artic".disabled = false;
"deviantart".disabled = false;
"flickr".disabled = true;
"imgur".disabled = false;
"library of congress".disabled = false;
"material icons".disabled = true;
"material icons".weight = 0.2;
"openverse".disabled = false;
"pinterest".disabled = true;
"svgrepo".disabled = false;
"unsplash".disabled = false;
"wallhaven".disabled = false;
"wikicommons.images".disabled = false;
"yacy images".disabled = true;
"bing videos".disabled = false;
"brave.videos".disabled = true;
"duckduckgo videos".disabled = true;
"google videos".disabled = false;
"qwant videos".disabled = false;
"dailymotion".disabled = true;
"google play movies".disabled = true;
"invidious".disabled = true;
"odysee".disabled = true;
"peertube".disabled = false;
"piped".disabled = true;
"rumble".disabled = false;
"sepiasearch".disabled = false;
"vimeo".disabled = true;
"youtube".disabled = false;
"brave.news".disabled = true;
"google news".disabled = true;
};
enabled_plugins = [
"Basic Calculator"
"Hash plugin"
"Tor check plugin"
"Open Access DOI rewrite"
"Hostnames plugin"
"Unit converter plugin"
"Tracker URL remover"
];
};
};
}

View file

@ -8,7 +8,7 @@
{ {
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [ nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
(final: prev: { (final: prev: {
wrapLibrewolf = wrapFirefox =
browser: opts: browser: opts:
let let
extraPrefs = (opts.extraPrefs or "") + '' extraPrefs = (opts.extraPrefs or "") + ''
@ -22,7 +22,7 @@
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm"; widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
widevineOutDir = "$out/gmp-widevinecdm/system-installed"; widevineOutDir = "$out/gmp-widevinecdm/system-installed";
in in
(prev.wrapLibrewolf browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: { (prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: {
buildCommand = previousAttrs.buildCommand + '' buildCommand = previousAttrs.buildCommand + ''
mkdir -p "${widevineOutDir}" mkdir -p "${widevineOutDir}"
ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so" ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"