486

It's not about the destination, it's about the journey.

you are viewing a single comment's thread
view the rest of the comments
[-] sunstoned@lemmus.org 1 points 7 months ago* (last edited 7 months ago)

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...
      };
    };
  };
}

this post was submitted on 07 Apr 2024
486 points (96.7% liked)

linuxmemes

21234 readers
20 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS