I’m on nix version 2.24.10, nixos channel 24.11, running Gnome Desktop Environment version 47.1 with Wayland. This is all inside a VMware VM running on a Macbook.
I’m able to enable fractional scaling showing up as an option within gnome control center with the following snippet in my configuration file:
/etc/nixos/configuration.nix
services.xserver = {
enable = true;
displayManager.gdm = {
enable = true;
wayland = true;
};
desktopManager.gnome = {
enable = true;
extraGSettingsOverridePackages = [ pkgs.mutter ];
extraGSettingsOverrides = ''
[org.gnome.mutter]
experimental-features=['scale-monitor-framebuffer']
'';
};
};
It allows me to have fractional scaling as seen in this screenshot, and it works, and the scaling persists between reboots.
I can’t figure out how to set the scale factor in nix. I can’t even figure out where this scale is actually saved. Changing it through the UI modifies the file ~/.config/monitors.xml, but changing this file doesn’t affect the scale. Attempting to manage ~/.config/monitors.xml through home manager just blows the file away when I open up gnome control center, so the source of truth for the scale must be somewhere else. Nothing comes up in dconf watch when I change the scale. And dconf dump shows no difference before and after changing the scale through the UI.
Here’s my monitors.xml file, but not sure what difference this makes as changes here don’t do anything:
~/.config/monitors.xml
<monitors version="2">
<configuration>
<layoutmode>logical</layoutmode>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>1.25</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>Virtual-1</connector>
<vendor>unknown</vendor>
<product>unknown</product>
<serial>unknown</serial>
</monitorspec>
<mode>
<width>2560</width>
<height>1600</height>
<rate>59.987</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
</monitors>