I have a MSI MAG 275QF monitor, it is 1440p at 180hz. On Arch Linux I had no issues with setting my refresh rate using this snipped in my hyprland.conf:
monitor=DP-4,2560x1440@180,0x0,1
monitor=HDMI-A-2,1920x1080@74.97,-1920x0,1
But ever since switching to nix if I set the refresh rate above 129.8hz the monitor drops signal, requiring a reboot to fix. For the life of me I cannot figure out how to fix this. Here are a few snippets to hopefully fill you in on my whole system info.
[macaw@Helios:~]$ fastfetch --logo none
macaw@Helios
OS: NixOS 25.11 (Xantusia) x86_64
Host: G521 (Default string-CF)
Kernel: Linux 6.12.77
Uptime: 9 mins
Packages: 1605 (nix-system), 7 (nix-user), 5 (flatpak)
Shell: bash 5.3.3
Display (MSI4CE2): 2560x1440 in 27", 120 Hz [External]
Display (LF27T35): 1920x1080 in 27", 75 Hz [External]
WM: Hyprland 0.52.1 (Wayland)
Theme: Nordic [GTK2/3/4]
Icons: Papirus-Dark [GTK2/3/4]
Font: Adwaita Sans (11pt) [GTK2/3/4]
Cursor: capitaine (24px)
Terminal: alacritty 0.16.1
Terminal Font: alacritty (11.0pt)
CPU: AMD Ryzen 5 7600X3D (12) @ 4.76 GHz
GPU 1: AMD Raphael [Integrated]
GPU 2: NVIDIA GeForce RTX 4060 [Discrete]
Memory: 2.37 GiB / 30.47 GiB (8%)
Swap: 0 B / 33.51 GiB (0%)
Disk (/): 33.62 GiB / 587.71 GiB (6%) - btrfs
Local IP (enp6s0): 192.168.68.108/22
Locale: en_US.UTF-8
[macaw@Helios:~]$ cat /etc/nixos/configuration.nix
{ config, pkgs, … }:
{
############################################################
# Imports
############################################################
imports =
[
./hardware-configuration.nix
./grub.nix
./system.nix
./users.nix
./packages.nix
./programs.nix
./services.nix
];
nix.settings.experimental-features = [ “nix-command” “flakes” ];
}
[macaw@Helios:~]$ cat /etc/nixos/hardware-configuration.nix
#Do not modify this file! It was generated by ‘nixos-generate-config’
#and may be overwritten by future invocations. Please make changes
#to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, … }:
{
imports =
[ (modulesPath + “/installer/scan/not-detected.nix”)
];
boot.initrd.availableKernelModules = [ “nvme” “xhci_pci” “ahci” “usb_storage” “usbhid” “sd_mod” ];
boot.initrd.kernelModules =
;
boot.kernelModules = [ “kvm-amd” ];
boot.extraModulePackages =
;
fileSystems.“/” =
{ device = “/dev/disk/by-uuid/fcc5850c-6a9f-4377-b8ac-e9e978c0f087”;
fsType = “btrfs”;
};
fileSystems.“/boot” =
{ device = “/dev/disk/by-uuid/9150-2409”;
fsType = “vfat”;[macaw@Helios:~]$ cat /etc/nixos/
configuration.nix packages.nix system.nix
grub.nix programs.nix users.nix
hardware-configuration.nix services.nix
options = [ “fmask=0077” “dmask=0077” ];
};
swapDevices = [
{ device = “/dev/nvme0n1p3”; }
];
nixpkgs.hostPlatform = lib.mkDefault “x86_64-linux”;
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
[macaw@Helios:~]$ cat /etc/nixos/packages.nix
{ config, pkgs, … }:
let
unstable = import { };
in
{
################
#PACKAGES
################
fonts.packages = with pkgs; [
ibm-plex
nerd-fonts.blex-mono
];
nix = {
package = pkgs.nix; # ensure you’re using the nix package
extraOptions = ‘’
experimental-features = nix-command flakes
‘’;
};
environment.systemPackages = with pkgs; [
(pkgs.hyprland.overrideAttrs (old: {
postInstall = ‘’
wrapProgram $out/bin/hyprland
–prefix LD_LIBRARY_PATH : ${pkgs.mesa}/lib
‘’;
}))
git
firefox
neovim
wget
curl
htop
man
unzip
zip
gnutar
vim
gdm
unstable.hyprland
wofi
swww
nemo
prismlauncher
jdk25
python3
python3Packages.pynvim
alacritty
papirus-icon-theme
nordic
capitaine-cursors
nwg-look
rustc
cargo
gcc
fzf
ripgrep
fd
lazygit
gnumake
cmake
jq
pkg-config
pixman
libdrm
libinput
wayland
wayland-protocols
meson
fastfetch
hyprland-qtutils
luarocks
nodejs
ruby
php
ghostscript
tectonic
tree-sitter
mangohud
blueberry
bluez
pavucontrol
libxcvt
];
nixpkgs.config.allowUnfree = true;
programs.steam.enable = true;
programs.gamemode.enable = true;
}
[macaw@Helios:~]$ cat /etc/nixos/programs.nix
{ config, pkgs, … }:
{
################
#PROGRAMS
################
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
};
environment.etc.“hypr/hyprland.conf”.text = ‘’
source = /home/macaw/.config/hypr/hyprland.conf
‘’;
programs.neovim = {
enable = true;
defaultEditor = true;
};
environment.etc.“nvim”.source = builtins.fetchGit {
url = “https://github.com/LazyVim/starter”;
};
}
[macaw@Helios:~]$ cat /etc/nixos/system.nix
{ config, pkgs, … }:
{
##############
#SYSTEM
##############
networking.hostName = “Helios”;
time.timeZone = “America/Chicago”;
i18n.defaultLocale = “en_US.UTF-8”;
hardware.graphics = {
enable = true;
package = pkgs.mesa;
# Enable 32-bit support for Steam
enable32Bit = true;
package32 = pkgs.pkgsi686Linux.mesa;
};
hardware.nvidia = {
open = false; # proprietary driver
modesetting.enable = true; # DRM/KMS for Wayland
package = pkgs.linuxPackages.nvidia; # use the latest available kernel-compatible NVIDIA driver
};
system.stateVersion = “25.11”; # DONT TOUCH SAYS WIKI
}
[macaw@Helios:~]$ cat /etc/nixos/services.nix
{ config, pkgs, … }:
{
################
#SERVICES
################
networking.networkmanager.enable = true;
services.openssh.enable = true;
services.pipewire.enable = false;
services.pulseaudio.enable = true;
hardware.bluetooth.enable = true;
services.libinput.enable = true;
services.displayManager.gdm.enable = true;
services.flatpak.enable = true;
security.sudo.enable = true;
security.sudo.wheelNeedsPassword = false;
security.sudo.extraConfig = ‘’
Defaults env_keep += “XDG_CONFIG_HOME XDG_DATA_HOME XDG_STATE_HOME”
‘’;
############
#ENVS
############
I dunno a bettter place for these
environment.variables = {
GTK_THEME = “Nordic”;
XCURSOR_THEME = “Capitaine Cursors”;
XCURSOR_SIZE = “24”;
};
}
[macaw@Helios:~]$ hyprctl monitors
Monitor HDMI-A-2 (ID 0):
1920x1080@74.97300 at -1920x0
description: Samsung Electric Company LF27T35 H1AK500000
make: Samsung Electric Company
model: LF27T35
physical size (mm): 600x340
serial: H1AK500000
active workspace: 1 (1)
special workspace: 0 ()
reserved: 0 0 0 0
scale: 1.00
transform: 0
focused: no
dpmsStatus: 1
vrr: false
solitary: 0
solitaryBlockedBy: windowed mode,missing candidate
activelyTearing: false
tearingBlockedBy: next frame is not torn,user settings,missing candidate
directScanoutTo: 0
directScanoutBlockedBy: user settings,software renders/cursors,missing candidate
disabled: false
currentFormat: XRGB8888
mirrorOf: none
availableModes: 1920x1080@60.00Hz 1920x1080@74.97Hz 1920x1080@59.94Hz 1920x1080@50.00Hz 1680x1050@59.88Hz 1600x900@60.00Hz 1280x1024@75.03Hz 1280x1024@60.02Hz 1440x900@59.90Hz 1280x800@59.91Hz 1152x864@75.00Hz 1280x720@60.00Hz 1280x720@59.94Hz 1280x720@50.00Hz 1024x768@75.03Hz 1024x768@70.07Hz 1024x768@60.00Hz 832x624@74.55Hz 800x600@75.00Hz 800x600@72.19Hz 800x600@60.32Hz 800x600@56.25Hz 720x576@50.00Hz 720x480@60.00Hz 720x480@59.94Hz 640x480@75.00Hz 640x480@72.81Hz 640x480@66.67Hz 640x480@60.00Hz 640x480@59.94Hz 720x400@70.08Hz
colorManagementPreset: srgb
sdrBrightness: 1.00
sdrSaturation: 1.00
sdrMinLuminance: 0.20
sdrMaxLuminance: 80
Monitor DP-4 (ID 1):
2560x1440@119.99800 at 0x0
description: Microstep MSI MAG 275QF CE2M415900340
make: Microstep
model: MSI MAG 275QF
physical size (mm): 600x330
serial: CE2M415900340
active workspace: 2 (2)
special workspace: 0 ()
reserved: 0 0 0 0
scale: 1.00
transform: 0
focused: yes
dpmsStatus: 1
vrr: false
solitary: 0
solitaryBlockedBy: windowed mode,missing candidate
activelyTearing: false
tearingBlockedBy: next frame is not torn,user settings,missing candidate
directScanoutTo: 0
directScanoutBlockedBy: user settings,software renders/cursors,missing candidate
disabled: false
currentFormat: XRGB8888
mirrorOf: none
availableModes: 2560x1440@59.95Hz 2560x1440@120.00Hz 2560x1440@85.00Hz 1920x1080@120.00Hz 1920x1080@119.88Hz 1920x1080@60.00Hz 1920x1080@59.94Hz 1920x1080@50.00Hz 1680x1050@59.95Hz 1280x1024@75.03Hz 1280x1024@60.02Hz 1440x900@59.89Hz 1280x960@60.00Hz 1280x720@60.00Hz 1280x720@59.94Hz 1280x720@50.00Hz 1024x768@75.03Hz 1024x768@70.07Hz 1024x768@60.00Hz 800x600@75.00Hz 800x600@72.19Hz 800x600@60.32Hz 800x600@56.25Hz 720x576@50.00Hz 720x480@60.00Hz 720x480@59.94Hz 640x480@75.00Hz 640x480@72.81Hz 640x480@66.67Hz 640x480@60.00Hz 640x480@59.94Hz
colorManagementPreset: srgb
sdrBrightness: 1.00
sdrSaturation: 1.00
sdrMinLuminance: 0.20
sdrMaxLuminance: 80