Wrap firefox

This commit is contained in:
SebastianStork 2024-05-30 21:07:48 +02:00
parent f3c934467f
commit f34f95efeb
5 changed files with 129 additions and 1 deletions

58
flake.lock generated
View file

@ -1,5 +1,21 @@
{
"nodes": {
"betterfox": {
"flake": false,
"locked": {
"lastModified": 1716574980,
"narHash": "sha256-i6fxW6hOOUWjWJ7lhX5qjEh9tyE2JyD6vwPEsfov7fY=",
"owner": "yokoffing",
"repo": "Betterfox",
"rev": "9756922ee951f9c0dd09f1e7037b93089a661963",
"type": "github"
},
"original": {
"owner": "yokoffing",
"repo": "Betterfox",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
@ -20,6 +36,29 @@
"type": "github"
}
},
"firefox-addons": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1717098199,
"narHash": "sha256-yYUDGNSjB9F2Nz6/sU7J10Ts5fGXPmRLJam54WbMVsM=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "968544b6ed405daaf1469de42fd00e4f53ab255e",
"type": "gitlab"
},
"original": {
"dir": "pkgs/firefox-addons",
"owner": "rycee",
"repo": "nur-expressions",
"type": "gitlab"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -37,6 +76,21 @@
}
},
"flake-utils": {
"locked": {
"lastModified": 1629284811,
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems"
},
@ -97,7 +151,7 @@
"nix-vscode-extensions": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
@ -150,7 +204,9 @@
},
"root": {
"inputs": {
"betterfox": "betterfox",
"disko": "disko",
"firefox-addons": "firefox-addons",
"home-manager": "home-manager",
"nix-index-database": "nix-index-database",
"nix-vscode-extensions": "nix-vscode-extensions",

View file

@ -31,6 +31,16 @@
url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
betterfox = {
url = "github:yokoffing/Betterfox";
flake = false;
};
};
outputs =

View file

@ -0,0 +1,10 @@
{ assembleWrapper, moduleArgs, ... }:
let
inherit (moduleArgs) pkgs;
in
assembleWrapper {
basePackage = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies.ExtensionSettings = import ./extensions.nix { inherit moduleArgs; };
extraPrefs = import ./preferences.nix { inherit moduleArgs; };
};
}

View file

@ -0,0 +1,26 @@
{ moduleArgs, ... }:
let
inherit (moduleArgs) lib inputs;
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "file:///${
inputs.firefox-addons.packages.x86_64-linux.${shortId}
}/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/${uuid}.xpi";
installation_mode = "force_installed";
default_area = "menupanel";
};
};
in
{
"*".installation_mode = "blocked";
}
// lib.listToAttrs [
(extension "dictionary-german" "de-DE@dictionaries.addons.mozilla.org")
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "return-youtube-dislikes" "{762f9885-5a13-4abd-9c77-433dcd38b8fd}")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
]

View file

@ -0,0 +1,26 @@
{ moduleArgs, ... }:
let
inherit (moduleArgs) lib inputs;
escapedUiState =
builtins.replaceStrings [ ''"'' ] [ ''\"'' ]
''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","sponsorblocker_ajay_app-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","ublock0_raymondhill_net-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","urlbar-container","customizableui-special-spring2","save-to-pocket-button","downloads-button","fxa-toolbar-menu-button","unified-extensions-button","sidebar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","sponsorblocker_ajay_app-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","ublock0_raymondhill_net-browser-action"],"dirtyAreaCache":["nav-bar","unified-extensions-area","PersonalToolbar","toolbar-menubar","TabsToolbar"],"currentVersion":20,"newElementCount":4}'';
in
lib.concatLines [
(builtins.replaceStrings [ "user_pref" ] [ "pref" ] (
builtins.readFile "${inputs.betterfox}/user.js"
))
''
pref("intl.accept_languages", "en-us,en,de-de,de");
pref("browser.uiCustomization.state", "${escapedUiState}")
pref("sidebar.position_start", false);
pref("browser.toolbars.bookmarks.visibility", "always");
pref("browser.bookmarks.restore_default_bookmarks", false);
pref("browser.bookmarks.file", "");
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false);
pref("general.autoScroll", true);
pref("middlemouse.paste", false);
pref("signon.rememberSignons", false);
pref("extensions.formautofill.creditCards.enabled", false);
''
]