Add Firefox as a single-purpose desktop Module configured entirely through home-manager's programs.firefox, and fan it out from the desktop aggregator so any Host with the desktop enabled brings the browser up. Ship stock mainline Firefox, hardened and de-monetized through locked enterprise policies (telemetry, studies, Pocket, offer-to-save-logins, the default-browser check, Firefox accounts and sync, and the sponsored new-tab surfaces all off). Force-install three extensions by policy, keyed by their verified add-on ids: uBlock Origin, Proton Pass, and SponsorBlock. Default search to DuckDuckGo over a lean list: the general-purpose commercial engines are hidden with metaData.hidden so Firefox does not reconcile them back in, leaving DuckDuckGo and Wikipedia. Theme the browser Nord from the shared Stylix scheme against the one profile, and register it as the default handler for the web-link schemes and HTML. Record the stock-Firefox-plus-policy-extensions decision as ADR 0005.
30 lines
1.3 KiB
Nix
30 lines
1.3 KiB
Nix
{ config, lib, ... }:
|
|
# The desktop aggregator: one flag brings up the whole graphical session.
|
|
let
|
|
cfg = config.modules.desktop;
|
|
in
|
|
{
|
|
options.modules.desktop.enable = lib.mkEnableOption "the keyboard-driven Hyprland desktop";
|
|
|
|
# Each piece is turned on at default priority, so a host can still override
|
|
# any one of them while the single flag above enables the whole desktop.
|
|
config = lib.mkIf cfg.enable {
|
|
modules.desktop.clipboard.enable = lib.mkDefault true;
|
|
modules.desktop.firefox.enable = lib.mkDefault true;
|
|
modules.desktop.hyprland.enable = lib.mkDefault true;
|
|
modules.desktop.hyprland.hyprlock.enable = lib.mkDefault true;
|
|
modules.desktop.hyprland.hypridle.enable = lib.mkDefault true;
|
|
modules.desktop.login.enable = lib.mkDefault true;
|
|
modules.desktop.mako.enable = lib.mkDefault true;
|
|
modules.desktop.portals.enable = lib.mkDefault true;
|
|
modules.desktop.recording.enable = lib.mkDefault true;
|
|
modules.desktop.rofi.enable = lib.mkDefault true;
|
|
modules.desktop.screenshot.enable = lib.mkDefault true;
|
|
modules.desktop.terminal.enable = lib.mkDefault true;
|
|
modules.desktop.userdirs.enable = lib.mkDefault true;
|
|
modules.desktop.theming.enable = lib.mkDefault true;
|
|
modules.desktop.waybar.enable = lib.mkDefault true;
|
|
modules.desktop.audio.enable = lib.mkDefault true;
|
|
};
|
|
}
|