nix-config/home/librewolf.nix
Donovan Glover f4193012f9
librewolf: Use mobile-friendly-firefox styles
This makes LibreWolf work well on the PinePhone without having to
manually use the FriendlyFox installation script.

Note that FriendlyFox was chosen over the mobile-config-firefox script
from postmarketOS due to FriendlyFox having less issues overall, such as
not breaking when the right click menu is long and popup menus having
altered styles for mobile support.
2024-08-13 17:17:32 -04:00

86 lines
2.5 KiB
Nix

{ pkgs, ... }:
let
friendlyfox = pkgs.stdenvNoCC.mkDerivation (finalAttrs: {
pname = "mobile-friendly-firefox";
version = "2.11.1";
src = pkgs.fetchFromGitea {
domain = "codeberg.org";
owner = "user0";
repo = "Mobile-Friendly-Firefox";
rev = "v${finalAttrs.version}";
hash = "sha256-rA5lnfW5zOyfJ6pbcrsTBEhMEof5h/heGaHxST+q+AY=";
};
patches = [
# Fix for Firefox 127 and later (renamed id)
(pkgs.fetchpatch2 {
url = "https://codeberg.org/user0/Mobile-Friendly-Firefox/commit/bfb7946973bf707d0494714679df47ec66017f97.patch";
hash = "sha256-wJLXgNUUaNHVgCMi8sGnC5cx2yNwZwh2JoDaVMsVehY=";
})
];
installPhase = ''
runHook preInstall
install -Dm644 src/userContent/styles/fenix-colors/userContent.css -t $out
cat src/userChrome/fenix_one.css src/userChrome/dynamic_popups_pro.css > $out/userChrome.css
runHook postInstall
'';
});
in
{
programs.librewolf = {
enable = true;
package = pkgs.librewolf.override { cfg.speechSynthesisSupport = false; };
profiles.default = {
search = {
force = true;
default = "Mullvad";
privateDefault = "Mullvad";
engines = {
Mullvad = {
urls = [{ template = "https://leta.mullvad.net/?q={searchTerms}"; }];
icon = "${pkgs.mullvad-vpn}/share/icons/hicolor/32x32/apps/mullvad-vpn.png";
};
};
};
};
settings = {
"middlemouse.paste" = false;
"browser.download.useDownloadDir" = true;
"browser.tabs.insertAfterCurrent" = true;
"browser.tabs.warnOnClose" = true;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.quitShortcut.disabled" = true;
"browser.sessionstore.restore_pinned_tabs_on_demand" = true;
"browser.urlbar.suggest.bookmark" = false;
"browser.urlbar.suggest.engines" = false;
"browser.urlbar.suggest.history" = false;
"browser.urlbar.suggest.openpage" = false;
"browser.urlbar.suggest.topsites" = false;
"browser.urlbar.trimHttps" = true;
"sidebar.position_start" = false;
"findbar.highlightAll" = true;
"xpinstall.signatures.required" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
};
};
home.file = {
".librewolf/default/chrome/userChrome.css".source = "${friendlyfox}/userChrome.css";
".librewolf/default/chrome/userContent.css".source = "${friendlyfox}/userContent.css";
};
}