All my system configs and packages in one repo
1{
2 lib,
3 pkgs,
4 ...
5}:
6let
7 json = pkgs.formats.json { };
8 wrappedFirefox = pkgs.firefox.override {
9 extraPoliciesFiles = [ (json.generate "firefox-policies.json" policies) ];
10 };
11
12 addons = [
13 # Styling
14 "addon@darkreader.org" # Dark Reader
15 "{85860b32-02a8-431a-b2b1-40fbd64c9c69}" # File Icons for Git{Hub,Lab}
16 "FirefoxColor@mozilla.com" # Firefox Color
17 "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" # Stylus
18 "{a4c4eda4-fb84-4a84-b4a1-f7c1cbf2a1ad}" # Refined GitHub
19 "{72742915-c83b-4485-9023-b55dc5a1e730}" # Wide GitHub
20
21 # Privacy
22 "gdpr@cavi.au.dk" # Consent-O-Matic
23 "addon@fastforward.team" # FastForward
24 "{6d96bb5e-1175-4ebf-8ab5-5f56f1c79f65}" # Google Analytics Opt-out
25 "{6d85dea2-0fb4-4de3-9f8c-264bce9a2296}" # Link Cleaner
26 "uBlock0@raymondhill.net" # uBlock Origin
27
28 # "Stop Websites from Doing Stupid Things I Don't Want"
29 "{278b0ae0-da9d-4cc6-be81-5aa7f3202672}" # Allow Right Click
30 "DontFuckWithPaste@raim.ist" # Don't Fuck With Paste
31
32 # YouTube
33 "{9a41dee2-b924-4161-a971-7fb35c053a4a}" # enhanced-h264ify
34 "sponsorBlocker@ajay.app" # SponsorBlock for YouTube
35 "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" # YouTube NonStop
36
37 # Utilities
38 "{d634138d-c276-4fc8-924b-40a0ea21d284}" # 1Password
39 "{c2c003ee-bd69-42a2-b0e9-6f34222cb046}" # Auto Tab Discard
40 "{cb31ec5d-c49a-4e5a-b240-16c767444f62}" # Indie Wiki Buddy
41 "octolinker@stefanbuck.com" # OctoLinker
42 "firefox-addon@pronoundb.org" # PronounDB
43 "wayback_machine@mozilla.org" # Wayback Machine
44 ];
45
46 policies = {
47 ExtensionSettings = lib.listToAttrs (
48 map (
49 id:
50 lib.nameValuePair id {
51 installation_mode = "normal_installed";
52 install_url = "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi";
53 }
54 ) addons
55 );
56 };
57
58 # TODO: Specifying custom search engines is *very* cursed.
59 # I've seen how HM does it, and I don't think it's worth it at all...
60in
61{
62 hjem.users.leah.packages = [
63 wrappedFirefox
64 (pkgs.makeAutostartItem {
65 name = "firefox";
66 package = wrappedFirefox;
67 })
68 ];
69}