Compare commits

...

2 commits

2 changed files with 145 additions and 61 deletions

View file

@ -34,8 +34,12 @@
extensions.packages = with firefox-addons; extensions.packages = with firefox-addons;
[ [
bitwarden bitwarden
darkreader
dearrow
enhancer-for-youtube
multi-account-containers multi-account-containers
old-reddit-redirect old-reddit-redirect
sponsorblock
ublock-origin ublock-origin
user-agent-string-switcher user-agent-string-switcher
zotero-connector zotero-connector
@ -176,11 +180,50 @@
# - Google Scholar # - Google Scholar
}; };
}; };
settings = { settings = let
isUuid = str:
(builtins.match
"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
str) != null;
prefix = addon: if isUuid addon then "_" else "";
button = addon:
"${prefix addon}${addon}${prefix addon}-browser-action";
always-in-container = "a1e9543e-5f73-4763-b376-04e53fd12cbd";
bitwarden = "446900e4-71c2-419f-a6a7-df9c091e268b";
dark-reader = "addon_darkreader_org";
dearrow = "dearrow_ajay_app";
enhancer-for-youtube =
"enhancerforyoutube_maximerf_addons_mozilla_org";
old-reddit-redirect = "9063c2e9-e07c-4c2c-9646-cfe7ca8d0498";
open-with = "openwith_darktrojan_net";
plasma = "plasma-browser-integration";
sponsorblock = "sponsorblocker_ajay_app";
ublock-origin = "ublock0_raymondhill_net";
user-agent-switcher = "a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7";
zotero = "zotero_chnm_gmu_edu";
containers = "_testpilot-containers";
in {
"app.normandy.first_run" = false; "app.normandy.first_run" = false;
"app.shield.optoutstudies.enabled" = false; "app.shield.optoutstudies.enabled" = false;
"browser.ai.control.default" = "blocked";
"browser.ai.control.linkPreviewKeyPoints" = "blocked";
"browser.ai.control.pdfjsAltText" = "blocked";
"browser.ai.control.sidebarChatbot" = "blocked";
"browser.ai.control.smartTabGroups" = "blocked";
"browser.ai.control.translations" = "blocked";
"browser.contentblocking.category" = "strict"; "browser.contentblocking.category" = "strict";
"browser.formfill.enable" = false; "browser.formfill.enable" = false;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.menu" = false;
"browser.ml.chat.page" = false;
"browser.ml.chat.page.footerBadge" = false;
"browser.ml.chat.page.menuBadge" = false;
"browser.ml.chat.shortcuts" = false;
"browser.ml.chat.sidebar" = false;
"browser.ml.enable" = false;
"browser.ml.linkPreview.enabled" = false;
"browser.ml.pageAssist.enabled" = false;
"browser.ml.smartAssist.enabled" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" =
false; false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" =
@ -231,25 +274,18 @@
baseDomain = "ksu.one45.com"; baseDomain = "ksu.one45.com";
} }
]; ];
"browser.search.visualSearch.featureGate" = false;
"browser.shopping.experience2023.active" = false; "browser.shopping.experience2023.active" = false;
"browser.startup.homepage_override.mstone" = "ignore"; "browser.startup.homepage_override.mstone" = "ignore";
"browser.tabs.closeWindowWithLastTab" = false; "browser.tabs.closeWindowWithLastTab" = false;
"browser.tabs.groups.smart.enabled" = false;
"browser.tabs.groups.smart.userEnabled" = false;
"browser.tabs.inTitlebar" = 0; "browser.tabs.inTitlebar" = 0;
"browser.theme.content-theme" = 0; "browser.theme.content-theme" = 0;
"browser.theme.toolbar-theme" = 0; "browser.theme.toolbar-theme" = 0;
"browser.toolbars.bookmarks.visibility" = "never"; "browser.toolbars.bookmarks.visibility" = "never";
"browser.uiCustomization.state" = { "browser.uiCustomization.navBarWhenVerticalTabs" = [
placements = { "sidebar-button"
"widget-overflow-fixed-list" = [ ];
"unified-extensions-area" = [
"floccus_handmadeideas_org-browser-action"
"7esoorv3_alefvanoon_anonaddy_me-browser-action"
"plasma-browser-integration_kde_org-browser-action"
"_d07ccf11-c0cd-4938-a265-2a4d6ad01189_-browser-action" # Web Archives
"openwith_darktrojan_net-browser-action"
"zotero_chnm_gmu_edu-browser-action"
];
"nav-bar" = [
"back-button" "back-button"
"forward-button" "forward-button"
"customizableui-special-spring1" "customizableui-special-spring1"
@ -258,52 +294,90 @@
"stop-reload-button" "stop-reload-button"
"customizableui-special-spring2" "customizableui-special-spring2"
"downloads-button" "downloads-button"
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" # Bitwarden (button bitwarden)
"ublock0_raymondhill_net-browser-action" (button ublock-origin)
"unified-extensions-button" "unified-extensions-button"
"_testpilot-containers-browser-action" (button containers)
]; ];
"TabsToolbar" = [ "browser.uiCustomization.state" = {
"firefox-view-button" placements = {
"tabbrowser-tabs" unified-extensions-area = map button [
"new-tab-button" dark-reader
"alltabs-button" open-with
zotero
user-agent-switcher
enhancer-for-youtube
sponsorblock
dearrow
always-in-container
old-reddit-redirect
plasma
]; ];
"vertical-tabs" = [ ]; nav-bar = [
"PersonalToolbar" = [ "import-button" "personal-bookmarks" ]; "back-button"
"forward-button"
"customizableui-special-spring1"
"vertical-spacer"
"urlbar-container"
"stop-reload-button"
"customizableui-special-spring2"
"downloads-button"
(button bitwarden)
(button ublock-origin)
"unified-extensions-button"
(button containers)
];
vertical-tabs = [ "tabbrowser-tabs" ];
PersonalToolbar = [ "import-button" "personal-bookmarks" ];
TabsToolbar = [ ];
widget-overflow-fixed-list = [ ];
}; };
seen = [ seen =
"save-to-pocket-button" [ "save-to-pocket-button" "developer-button" "screenshot-button" ]
"developer-button" ++ (map button [
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" always-in-container
"_testpilot-containers-browser-action" bitwarden
"floccus_handmadeideas_org-browser-action" dark-reader
"7esoorv3_alefvanoon_anonaddy_me-browser-action" dearrow
"plasma-browser-integration_kde_org-browser-action" enhancer-for-youtube
"ublock0_raymondhill_net-browser-action" old-reddit-redirect
"_d07ccf11-c0cd-4938-a265-2a4d6ad01189_-browser-action" open-with
"zotero_chnm_gmu_edu-browser-action" plasma
"openwith_darktrojan_net-browser-action" sponsorblock
]; ublock-origin
user-agent-switcher
zotero
containers
]);
dirtyAreaCache = [ dirtyAreaCache = [
"nav-bar" "nav-bar"
"vertical-tabs" "vertical-tabs"
"PersonalToolbar" "PersonalToolbar"
"unified-extensions-area" "unified-extensions-area"
"TabsToolbar"
]; ];
currentVersion = 21; currentVersion = 23;
newElementCount = 3; newElementCount = 0;
}; };
"browser.urlbar.suggest.showSearchSuggestionsFirst" = false; "browser.uitour.enabled" = false;
"browser.urlbar.quicksuggest.mlEnabled" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false; "browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false; "browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.urlbar.suggest.quicksuggest.trending" = false; "browser.urlbar.suggest.quicksuggest.trending" = false;
"browser.urlbar.suggest.showSearchSuggestionsFirst" = false;
"browser.warnOnQuitShortcut" = false; "browser.warnOnQuitShortcut" = false;
"datareporting.healthreport.uploadEnabled" = false; "datareporting.healthreport.uploadEnabled" = false;
"datareporting.usage.uploadEnabled" = false; "datareporting.usage.uploadEnabled" = false;
"extensions.autoDisableScopes" = 0;
"extensions.formautofill.addresses.enabled" = false; "extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false; "extensions.formautofill.creditCards.enabled" = false;
"extensions.autoDisableScopes" = 0; "extensions.ml.enabled" = false;
"extensions.update.autoUpdateDefault" = false;
"extensions.update.enabled" = false;
"pdfjs.enableAltText" = false;
"pdfjs.enableAltTextModelDownload" = false;
"pdfjs.enableGuessAltText" = false;
"places.semanticHistory.featureGate" = false;
"privacy.bounceTrackingProtection.mode" = 1; "privacy.bounceTrackingProtection.mode" = 1;
"privacy.clearOnShutdown_v2.browsingHistoryAndDownloads" = false; "privacy.clearOnShutdown_v2.browsingHistoryAndDownloads" = false;
"privacy.clearOnShutdown_v2.cache" = true; "privacy.clearOnShutdown_v2.cache" = true;
@ -317,6 +391,14 @@
"privacy.trackingprotection.emailtracking.enabled" = true; "privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true; "privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true; "privacy.trackingprotection.socialtracking.enabled" = true;
"sidebar.installed.extensions" = "{${bitwarden}}";
"sidebar.main.tools" = "syncedtabs,history,{${bitwarden}},bookmarks";
"sidebar.new-sidebar.has-used" = true;
"sidebar.revamp" = true;
"sidebar.verticalTabs" = true;
"sidebar.verticalTabs.dragToPinPromo.dismissed" = true;
"sidebar.visibility" = "expand-on-hover";
"signon.rememberSignons" = false;
"widget.use-xdg-desktop-portal.file-picker" = 1; "widget.use-xdg-desktop-portal.file-picker" = 1;
}; };
}; };

View file

@ -55,20 +55,6 @@ in {
}; };
}; };
# This is a hack - I'm deliberately hijacking the systemd service that is
# set up by `services.caddy` in order to sync the `let` variables with the
# external Caddyfile via environment variables
# This is safe for NixOS 25.11 - see
# <https://github.com/NixOS/nixpkgs/blob/nixos-25.11/nixos/modules/services/web-servers/caddy/default.nix#L412>
systemd.services.caddy.environment = {
MILLIRONX_PEERTUBE_PORT = port;
MILLIRONX_PEERTUBE_ASSETS_DIR = peertubeAssetsDir;
MILLIRONX_PEERTUBE_DATA_DIR = "${stateDirectory}/data";
};
# Another hack - allows the Caddy user to be able to read files that
# PeerTube writes into its dist/ folders
users.users.${config.services.caddy.user}.extraGroups = [ user ];
# Forward RTMP (privileged) port to container-accessible (non-privileged) port # Forward RTMP (privileged) port to container-accessible (non-privileged) port
systemd = { systemd = {
sockets."peertube-rtmp" = { sockets."peertube-rtmp" = {
@ -81,7 +67,8 @@ in {
}; };
}; };
services."peertube-rtmp-forward" = { services = {
"peertube-rtmp-forward" = {
description = "PeerTube RTMP Port Forwarder"; description = "PeerTube RTMP Port Forwarder";
requires = [ "peertube-rtmp.socket" ]; requires = [ "peertube-rtmp.socket" ];
after = [ "network.target" ]; after = [ "network.target" ];
@ -92,6 +79,18 @@ in {
PrivateTmp = true; PrivateTmp = true;
}; };
}; };
# This is a hack - I'm deliberately hijacking the systemd service that is
# set up by `services.caddy` in order to sync the `let` variables with the
# external Caddyfile via environment variables
# This is safe for NixOS 25.11 - see
# <https://github.com/NixOS/nixpkgs/blob/nixos-25.11/nixos/modules/services/web-servers/caddy/default.nix#L412>
caddy.environment = {
MILLIRONX_PEERTUBE_PORT = port;
MILLIRONX_PEERTUBE_ASSETS_DIR = peertubeAssetsDir;
MILLIRONX_PEERTUBE_DATA_DIR = "${stateDirectory}/data";
};
};
}; };
networking.firewall.allowedTCPPorts = [ 1935 ]; networking.firewall.allowedTCPPorts = [ 1935 ];
@ -104,6 +103,9 @@ in {
autoSubUidGidRange = true; autoSubUidGidRange = true;
}; };
users.groups.${user} = { }; users.groups.${user} = { };
# Another hack - allows the Caddy user to be able to read files that
# PeerTube writes into its dist/ folders
users.users.${config.services.caddy.user}.extraGroups = [ user ];
home-manager.users.${user} = { config, osConfig, ... }: { home-manager.users.${user} = { config, osConfig, ... }: {
imports = [ home-manager-quadlet-nix ]; imports = [ home-manager-quadlet-nix ];