From 375d8591abfef23d09f8d96069139d6821e48dbd Mon Sep 17 00:00:00 2001 From: Andre Date: Tue, 24 Sep 2024 12:07:59 -0500 Subject: [PATCH] Gnome: replace fractional scaling method and re-enable for Shura --- hosts/Khanda/default.nix | 2 +- hosts/Shura/default.nix | 2 +- modules/ui/desktops/gnome.nix | 22 +++++++++++++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/hosts/Khanda/default.nix b/hosts/Khanda/default.nix index 2931f93..e090267 100644 --- a/hosts/Khanda/default.nix +++ b/hosts/Khanda/default.nix @@ -55,7 +55,7 @@ in ui = { desktops.gnome = { enable = true; - experimentalFeatures.enable = true; + experimental.tripleBuffering.enable = true; }; flatpak = { # Enable Flatpak support. diff --git a/hosts/Shura/default.nix b/hosts/Shura/default.nix index a4e380d..4b206a4 100644 --- a/hosts/Shura/default.nix +++ b/hosts/Shura/default.nix @@ -108,7 +108,7 @@ in }; desktops.gnome = { enable = true; - experimentalFeatures.enable = true; + experimental.fractionalScaling.enable = true; }; }; users = { diff --git a/modules/ui/desktops/gnome.nix b/modules/ui/desktops/gnome.nix index 145aee5..473766c 100644 --- a/modules/ui/desktops/gnome.nix +++ b/modules/ui/desktops/gnome.nix @@ -15,7 +15,10 @@ in options = { aux.system.ui.desktops.gnome = { enable = lib.mkEnableOption "Enables the Gnome Desktop Environment."; - experimentalFeatures.enable = lib.mkEnableOption "Enables dynamic triple buffering and fractional scaling for xwayland applications."; + experimental = { + fractionalScaling.enable = lib.mkEnableOption "Enables fractional scaling."; + tripleBuffering.enable = lib.mkEnableOption "Enables dynamic triple buffering for xwayland applications."; + }; }; }; @@ -29,7 +32,18 @@ in excludePackages = [ pkgs.xterm ]; # Enable Gnome - desktopManager.gnome.enable = true; + desktopManager.gnome = { + enable = true; + + # Enable fractional scaling + extraGSettingsOverrides = lib.mkIf cfg.experimental.fractionalScaling.enable '' + [org.gnome.mutter] + experimental-features=['scale-monitor-framebuffer'] + ''; + extraGSettingsOverridePackages = lib.mkIf cfg.experimental.fractionalScaling.enable [ + pkgs.gnome.mutter + ]; + }; displayManager.gdm.enable = true; }; @@ -103,15 +117,13 @@ in style = "adwaita-dark"; }; - nixpkgs.overlays = lib.mkIf cfg.experimentalFeatures.enable [ + nixpkgs.overlays = lib.mkIf cfg.experimental.tripleBuffering.enable [ (final: prev: { gnome = prev.gnome.overrideScope ( gnomeFinal: gnomePrev: { mutter = gnomePrev.mutter.overrideAttrs (old: { # Triple buffering src = inputs.gnome-triplebuffering; - # Scaling patch sourced from https://aur.archlinux.org/packages/mutter-xwayland-scaling - patches = [ ./patches/gnome-mutter-xwayland-scaling.patch ]; }); } );