From 1f49f1d63e64214176a324c3abe941558f1c3aba Mon Sep 17 00:00:00 2001 From: alexion Date: Sat, 5 Sep 2026 07:35:30 -0400 Subject: [PATCH] fix(nixos): make Firefox scale host-specific --- configs/nixos/hosts/neogaia/default.nix | 1 + configs/nixos/modules/desktop/apps/firefox.nix | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/configs/nixos/hosts/neogaia/default.nix b/configs/nixos/hosts/neogaia/default.nix index 0e8e8a9..0bdf539 100644 --- a/configs/nixos/hosts/neogaia/default.nix +++ b/configs/nixos/hosts/neogaia/default.nix @@ -46,6 +46,7 @@ modules.shell.pi.enable = true; modules.desktop.enable = true; + modules.desktop.apps.firefox.uiScale = "1.25"; modules.desktop.apps.obsidian.enable = true; modules.desktop.apps.steam.enable = true; diff --git a/configs/nixos/modules/desktop/apps/firefox.nix b/configs/nixos/modules/desktop/apps/firefox.nix index 801ecbc..d47e3bd 100644 --- a/configs/nixos/modules/desktop/apps/firefox.nix +++ b/configs/nixos/modules/desktop/apps/firefox.nix @@ -12,7 +12,19 @@ let firefoxAddons = inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; in { - options.modules.desktop.apps.firefox.enable = lib.mkEnableOption "Firefox as the desktop browser"; + options.modules.desktop.apps.firefox = { + enable = lib.mkEnableOption "Firefox as the desktop browser"; + + uiScale = lib.mkOption { + type = lib.types.str; + default = "1.0"; + description = '' + Firefox UI and page scale, passed to `layout.css.devPixelsPerPx`. + Override it on hosts that need a larger browser scale, such as small + high-DPI laptop panels. + ''; + }; + }; config = lib.mkIf cfg.enable { home-manager.users.${user} = hm: { @@ -70,7 +82,7 @@ in # whole chrome while point-sized apps stay put. # A shade under that brings it into line without dropping to true # 1:1, which reads too small at this DPI. - "layout.css.devPixelsPerPx" = "1.25"; + "layout.css.devPixelsPerPx" = cfg.uiScale; # Auto-enable the sideloaded Firefox Color add-on carrying the Nord # chrome theme, which Firefox otherwise leaves disabled.