It’s not about the destination, it’s about the journey.
1 point
*
Try this, friend
Tap for spoiler
{ config, pkgs, ... }:
let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
{
/*
** ffextid
** Usage: `ffextid [install_url]`
** Description: simple script to find the extension id from an extension's manifest
** using the url found by right clicking the install add-on button and
** selecting "copy link"
*/
home.packages = with pkgs; [
(pkgs.writeShellScriptBin "ffextid" ''
#!/usr/bin/env bash
$(curl $1 > /tmp/ffext.xpi) 1> /dev/null
$(unzip /tmp/ffext.xpi -d /tmp/ffext) 1> /dev/null
# If ripgrep exists, use that. Otherwise default to grep
if ! command -v rg &> /dev/null;
then
rg id /tmp/ffext/manifest.json
else
grep id /tmp/ffext/manifest.json
fi
rm -rf /tmp/ffext*
'')
];
programs = {
firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableTelemetry = true;
# add policies here...
/* ---- EXTENSIONS ---- */
ExtensionSettings = {
"*".installation_mode = "blocked"; # blocks all addons except the ones specified below
/*
Format:
"[Manifest id]" = {
installation_mode = "force_installed" # will install the extension for you!
install_url = "[url]" # found by right clicking the install button on the add-on page
};
*/
# uBlock Origin:
"uBlock0@raymondhill.net" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
};
# Privacy Badger:
"jid1-MnnxcxisBPnSXQ@jetpack" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
installation_mode = "force_installed";
};
# Bitwarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4225453/bitwarden_password_manager-2024.1.1.xpi";
};
# XBrowserSync
"{019b606a-6f61-4d01-af2a-cea528f606da}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/3546070/xbs-1.5.2.xpi";
};
# Decentraleyes
"{jid1-BoFifL9Vbdl2zQ@jetpack}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4158232/decentraleyes-2.0.18.xpi";
};
# Clear URLs
"{74145f27-f039-47ce-a470-a662b129930a}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4064884/clearurls-1.26.1.xpi";
};
#Dark Reader
"addon@darkreader.org" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4223104/darkreader-4.9.76.xpi";
};
# Cookie AutoDelete
"CookieAutoDelete@kennydo.com" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4040738/cookie_autodelete-3.8.2.xpi";
};
# I don't care about cookies
"jid1-KKzOGWgsW3Ao4Q@jetpack" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4202634/i_dont_care_about_cookies-3.5.0.xpi";
};
# Youtube Sponsor Block
"sponsorBlocker@ajay.app" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/file/4229442/sponsorblock-5.5.4.xpi";
};
# add extensions here...
/*
"" = {
installation_mode = "force_installed";
install_url = "";
};
*/
};
/* ---- PREFERENCES ---- */
# Set preferences shared by all profiles.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
### BOOLEANS
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"privacy.donottrack.heater.enable" = lock-true;
"browser.compactmode.show" = lock-true;
# add global preferences here...
};
};
};
/* ---- PROFILES ---- */
# Switch profiles via about:profiles page.
# For options that are available in Home-Manager see
# https://nix-community.github.io/home-manager/options.html#opt-programs.firefox.profiles
profiles ={
sunstoned = { # choose a profile name; directory is /home/<user>/.mozilla/firefox/profile_0
id = 0; # 0 is the default profile; see also option "isDefault"
name = "sunstoned"; # name as listed in about:profiles
isDefault = true; # can be omitted; true if profile ID is 0
settings = { # specify profile-specific preferences here; check about:config for options
"browser.newtabpage.activity-stream.feeds.section.highlights" = false;
"browser.startup.homepage" = "https://nixos.org";
"browser.newtabpage.pinned" = [{
title = "NixOS";
url = "https://nixos.org";
}];
# add preferences for profile_0 here...
};
};
# add profiles here...
};
};
};
}