Hyprland stopped working

Hello

I wanted to use hyprland on my nixos system. It ran perfectly. But than I did an Update and now hyprland won’t start anymore.
I am on unstable with:
NixOS 24.11.20240821.c374d94 (Vicuna) x86_64
Kernel: Linux 6.10.6

This is the crashreport i get everytime i try to lauch hyprland form the tty:

--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
Vaxry is going to be upset.

Hyprland received signal 6(ABRT)
Version: 9a09eac79b85c846e3a865a9078a3f8ff65a9259
Tag: v0.42.0
Date: 2024-08-07
Flags:

System info:
	System name: Linux
	Node name: nixos
	Release: 6.10.6
	Version: #1-NixOS SMP PREEMPT_DYNAMIC Mon Aug 19 04:05:40 UTC 2024

GPU:
	01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti 16GB] [10de:2805] (rev a1) (prog-if 00 [VGA controller])


os-release:
	ANSI_COLOR="1;34"
	BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
	BUILD_ID="24.11.20240821.c374d94"
	DOCUMENTATION_URL="https://nixos.org/learn.html"
	HOME_URL="https://nixos.org/"
	ID=nixos
	IMAGE_ID=""
	IMAGE_VERSION=""
	LOGO="nix-snowflake"
	NAME=NixOS
	PRETTY_NAME="NixOS 24.11 (Vicuna)"
	SUPPORT_URL="https://nixos.org/community.html"
	VERSION="24.11 (Vicuna)"
	VERSION_CODENAME=vicuna
	VERSION_ID="24.11"
Backtrace:
	# | /etc/profiles/per-user/matt/bin/hyprland(_Z12getBacktracev+0x48) [0x72ee38]
		getBacktrace()
		??:?
	#1 | /etc/profiles/per-user/matt/bin/hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x845) [0x685ff5]
		CrashReporter::createAndSaveCrash(int)
		??:?
	#2 | /etc/profiles/per-user/matt/bin/hyprland(_Z25handleUnrecoverableSignali+0x5f) [0x5f5edf]
		handleUnrecoverableSignal(int)
		??:?
	#3 | /nix/store/5adwdl39g3k9a2j0qadvirnliv4r7pwd-glibc-2.39-52/lib/libc.so.6(+0x405c0) [0x7f7ebd0495c0]
		??
		??:0
	#4 | /nix/store/5adwdl39g3k9a2j0qadvirnliv4r7pwd-glibc-2.39-52/lib/libc.so.6(+0x927dc) [0x7f7ebd09b7dc]
		??
		??:0
	#5 | /nix/store/5adwdl39g3k9a2j0qadvirnliv4r7pwd-glibc-2.39-52/lib/libc.so.6(gsignal+0x16) [0x7f7ebd049516]
		??
		??:0
	#6 | /nix/store/5adwdl39g3k9a2j0qadvirnliv4r7pwd-glibc-2.39-52/lib/libc.so.6(abort+0xd7) [0x7f7ebd031935]
		??
		??:0
	#7 | /nix/store/jfilhsiqdgm4nks2z6labx3iq9qd077a-gcc-13.3.0-lib/lib/libstdc++.so.6(+0xacc2b) [0x7f7ebd2acc2b]
		??
		??:0
	#8 | /nix/store/jfilhsiqdgm4nks2z6labx3iq9qd077a-gcc-13.3.0-lib/lib/libstdc++.so.6(+0xbc20a) [0x7f7ebd2bc20a]
		??
		??:0
	#9 | /nix/store/jfilhsiqdgm4nks2z6labx3iq9qd077a-gcc-13.3.0-lib/lib/libstdc++.so.6(+0xbc275) [0x7f7ebd2bc275]
		??
		??:0
	#1 | /nix/store/jfilhsiqdgm4nks2z6labx3iq9qd077a-gcc-13.3.0-lib/lib/libstdc++.so.6(+0xbc4c7) [0x7f7ebd2bc4c7]
		??
		??:0
	#11 | /nix/store/jfilhsiqdgm4nks2z6labx3iq9qd077a-gcc-13.3.0-lib/lib/libstdc++.so.6(+0xaf525) [0x7f7ebd2af525]
		??
		??:0
	#12 | /nix/store/3fh42b14455968r7471i14yckgqaar4s-aquamarine-0.3.3/lib/libaquamarine.so.2(_ZN10Aquamarine14CWaylandOutput9setCursorEN9Hyprutils6Memory14CSharedPointerINS_7IBufferEEERKNS1_4Math8Vector2DE+0xa8b) [0x7f7ebde9d55b]
		??
		??:0
	#13 | /etc/profiles/per-user/matt/bin/hyprland(_ZN15CPointerManager17setHWCursorBufferEN9Hyprutils6Memory14CSharedPointerINS_20SMonitorPointerStateEEENS2_IN10Aquamarine7IBufferEEE+0x17b) [0x7c633b]
		CPointerManager::setHWCursorBuffer(Hyprutils::Memory::CSharedPointer<CPointerManager::SMonitorPointerState>, Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>)
		??:?
	#14 | /etc/profiles/per-user/matt/bin/hyprland(_ZN15CPointerManager21attemptHardwareCursorEN9Hyprutils6Memory14CSharedPointerINS_20SMonitorPointerStateEEE+0x3c5) [0x7c7ce5]
		CPointerManager::attemptHardwareCursor(Hyprutils::Memory::CSharedPointer<CPointerManager::SMonitorPointerState>)
		??:?
	#15 | /etc/profiles/per-user/matt/bin/hyprland(_ZN15CPointerManager19updateCursorBackendEv+0x3d4) [0x7c81c4]
		CPointerManager::updateCursorBackend()
		??:?
	#16 | /etc/profiles/per-user/matt/bin/hyprland(_ZN15CPointerManager15setCursorBufferEN9Hyprutils6Memory14CSharedPointerIN10Aquamarine7IBufferEEERKNS0_4Math8Vector2DERKf+0xab) [0x7c892b]
		CPointerManager::setCursorBuffer(Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>, Hyprutils::Math::Vector2D const&, float const&)
		??:?
	#17 | /etc/profiles/per-user/matt/bin/hyprland(_ZN14CCursorManager15setCursorBufferEN9Hyprutils6Memory14CSharedPointerI13CCursorBufferEERKNS0_4Math8Vector2DERKf+0x7d) [0x789c0d]
		CCursorManager::setCursorBuffer(Hyprutils::Memory::CSharedPointer<CCursorBuffer>, Hyprutils::Math::Vector2D const&, float const&)
		??:?
	#18 | /etc/profiles/per-user/matt/bin/hyprland(_ZN14CCursorManager17setCursorFromNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x18c) [0x78a2cc]
		CCursorManager::setCursorFromName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
		??:?
	#19 | /etc/profiles/per-user/matt/bin/hyprland(_ZN14CCursorManager11updateThemeEv+0x139) [0x78ad19]
		CCursorManager::updateTheme()
		??:?
	#2 | /etc/profiles/per-user/matt/bin/hyprland() [0x78aeca]
		std::_Function_handler<void (void*, SCallbackInfo&, std::any), CCursorManager::CCursorManager()::{lambda(void*, SCallbackInfo&, std::any)#1}>::_M_invoke(std::_Any_data const&, void*&&, SCallbackInfo&, std::any&&)
		??:?
	#21 | /etc/profiles/per-user/matt/bin/hyprland(_ZN18CHookSystemManager4emitEPSt6vectorI14SCallbackFNPtrSaIS1_EER13SCallbackInfoSt3any+0x894) [0x7953f4]
		CHookSystemManager::emit(std::vector<SCallbackFNPtr, std::allocator<SCallbackFNPtr> >*, SCallbackInfo&, std::any)
		??:?
	#22 | /etc/profiles/per-user/matt/bin/hyprland(_ZN13CHyprRenderer16applyMonitorRuleEP8CMonitorP12SMonitorRuleb+0xada) [0x98896a]
		CHyprRenderer::applyMonitorRule(CMonitor*, SMonitorRule*, bool)
		??:?
	#23 | /etc/profiles/per-user/matt/bin/hyprland(_ZN8CMonitor9onConnectEb+0xd2e) [0x7427ae]
		CMonitor::onConnect(bool)
		??:?
	#24 | /etc/profiles/per-user/matt/bin/hyprland(_ZN11CCompositor12onNewMonitorEN9Hyprutils6Memory14CSharedPointerIN10Aquamarine7IOutputEEE+0x2c9) [0x60ea69]
		CCompositor::onNewMonitor(Hyprutils::Memory::CSharedPointer<Aquamarine::IOutput>)
		??:?
	#25 | /etc/profiles/per-user/matt/bin/hyprland() [0x60f3de]
		std::_Function_handler<void (void*, std::any), CCompositor::initAllSignals()::{lambda(void*, std::any)#1}>::_M_invoke(std::_Any_data const&, void*&&, std::any&&)
		??:?
	#26 | /nix/store/3pdk90c7p76gaspfjman0gh94aphghyl-hyprutils-0.2.1/lib/libhyprutils.so.1(_ZN9Hyprutils6Signal21CStaticSignalListener4emitESt3any+0x63) [0x7f7ebd607a43]
		??
		??:0
	#27 | /nix/store/3pdk90c7p76gaspfjman0gh94aphghyl-hyprutils-0.2.1/lib/libhyprutils.so.1(_ZN9Hyprutils6Signal7CSignal4emitESt3any+0x3e0) [0x7f7ebd6080b0]
		??
		??:0
	#28 | /nix/store/3fh42b14455968r7471i14yckgqaar4s-aquamarine-0.3.3/lib/libaquamarine.so.2(+0xb3b13) [0x7f7ebde95b13]
		??
		??:0
	#29 | /nix/store/3fh42b14455968r7471i14yckgqaar4s-aquamarine-0.3.3/lib/libaquamarine.so.2(_ZN10Aquamarine15CWaylandBackend14dispatchEventsEv+0xa1) [0x7f7ebde95c01]
		??
		??:0
	#3 | /etc/profiles/per-user/matt/bin/hyprland(_ZN17CEventLoopManager9enterLoopEv+0x1f3) [0x7f19a3]
		CEventLoopManager::enterLoop()
		??:?
	#31 | /etc/profiles/per-user/matt/bin/hyprland(main+0xcf2) [0x5b32d2]
		main
		??:?
	#32 | /nix/store/5adwdl39g3k9a2j0qadvirnliv4r7pwd-glibc-2.39-52/lib/libc.so.6(+0x2a14e) [0x7f7ebd03314e]
		??
		??:0
	#33 | /nix/store/5adwdl39g3k9a2j0qadvirnliv4r7pwd-glibc-2.39-52/lib/libc.so.6(__libc_start_main+0x89) [0x7f7ebd033209]
		??
		??:0
	#34 | /etc/profiles/per-user/matt/bin/hyprland(_start+0x25) [0x5f5b95]
		_start
		??:?


Log tail:
[LOG] [08:54:04.051153330] New aquamarine keyboard with name wl_keyboard
[LOG] [08:54:04.051178549] ApplyConfigToKeyboard for "wl_keyboard", hasconfig: 0
[LOG] [08:54:04.051201982] Attempting to create a keymap for layout de with variant  (rules: , model: , options: )
[LOG] [08:54:04.052683672] Updating keyboard 29a4bdb0's translation state from a provided keymap
[LOG] [08:54:04.052698233] xkb: LED index 0 (name Num Lock) got index 1
[LOG] [08:54:04.052706708] xkb: LED index 1 (name Caps Lock) got index 0
[LOG] [08:54:04.052711089] xkb: LED index 2 (name Scroll Lock) got index 2
[LOG] [08:54:04.052715319] xkb: Mod index 0 (name Shift) got index 0
[LOG] [08:54:04.052719526] xkb: Mod index 1 (name Lock) got index 1
[LOG] [08:54:04.052723712] xkb: Mod index 2 (name Control) got index 2
[LOG] [08:54:04.052727768] xkb: Mod index 3 (name Mod1) got index 3
[LOG] [08:54:04.052731832] xkb: Mod index 4 (name Mod2) got index 4
[LOG] [08:54:04.052735823] xkb: Mod index 5 (name Mod3) got index 5
[LOG] [08:54:04.052739830] xkb: Mod index 6 (name Mod4) got index 6
[LOG] [08:54:04.052743817] xkb: Mod index 7 (name Mod5) got index 7
[LOG] [08:54:04.052747888] Updating keymap fd for keyboard wl_keyboard
[LOG] [08:54:04.053105176] Updated keymap fd to 76
[LOG] [08:54:04.053113625] [hookSystem] New hook event registered: activeLayout
[LOG] [08:54:04.053119660] Set the keyboard layout to de and variant to  for keyboard "wl_keyboard"
[LOG] [08:54:04.053131546] New keyboard created, pointers Hypr: 29a4bdb0 and AQ: 29aabe70
[LOG] [08:54:04.053139546] New aquamarine output with name WAYLAND-1
[LOG] [08:54:04.053144819] New output with name WAYLAND-1
[ERR] rbo: glCheckFramebufferStatus failed
[WARN] [08:54:04.053314403] No rule found for WAYLAND-1, trying to use the first.
[WARN] No rules configured. Using the default hardcoded one.
[LOG] [08:54:04.053324415] Applying monitor rule for WAYLAND-1
[ERR] [08:54:04.053329472] Monitor WAYLAND-1 has NO PREFERRED MODE
[WARN] updateSwapchain: No mode?
[LOG] CMonitorState::ensureBufferPresent: no buffer, attaching one from the swapchain for modeset being possible
[LOG] [08:54:04.053341071] output WAYLAND-1 succeeded basic test on format DRM_FORMAT_XRGB8888
[WARN] updateSwapchain: No mode?
[LOG] CMonitorState::ensureBufferPresent: no buffer, attaching one from the swapchain for modeset being possible
[ERR] [08:54:04.053354547] [AQ] Output WAYLAND-1: pending state rejected: invalid mode
[ERR] [08:54:04.053359230] Couldn't commit output named WAYLAND-1
[LOG] [08:54:04.053363908] arrangeMonitors: 2 to arrange
[LOG] [08:54:04.053368227] arrangeMonitors: DP-1 explicit [0, 0]
[LOG] [08:54:04.053374582] arrangeMonitors: WAYLAND-1 auto [-1, -1]
[LOG] [08:54:04.053384082] arrangeMonitors: DP-1 xwayland [0, 0]
[LOG] [08:54:04.053388403] arrangeMonitors: WAYLAND-1 xwayland [2560, 0]
[LOG] [08:54:04.053394649] Monitor WAYLAND-1 data dump: res 0x0@60.00Hz, scale 1.00, transform 0, pos 2560x0, 10b 0
[ERR] [08:54:04.053416819] [GLES] Error in call at 142@Texture.cpp: 0x502
[ERR] rbo: glCheckFramebufferStatus failed
[LOG] [08:54:04.053551326] [AQ] GBM: Automatically selected format AR24 for new GBM buffer
[LOG] [08:54:04.053557980] [AQ] GBM: Buffer is marked as multigpu, forcing linear
[ERR] [08:54:04.053563969] [AQ] GBM: Allocating with modifiers and flags failed, falling back to modifiers without flags
[LOG] [08:54:04.053595997] [AQ] GBM: Allocated a new buffer with size [Vector2D: x: 24, y: 24] and format AR24 with modifier 0 aka LINEAR
[LOG] [08:54:04.053606660] [AQ] GBM: Automatically selected format AR24 for new GBM buffer
[LOG] [08:54:04.053611719] [AQ] GBM: Buffer is marked as multigpu, forcing linear
[ERR] [08:54:04.053616071] [AQ] GBM: Allocating with modifiers and flags failed, falling back to modifiers without flags
[LOG] [08:54:04.053631555] [AQ] GBM: Allocated a new buffer with size [Vector2D: x: 24, y: 24] and format AR24 with modifier 0 aka LINEAR
[LOG] [08:54:04.053638363] [AQ] Swapchain: Reconfigured a swapchain to [Vector2D: x: 24, y: 24] AR24 of length 2
[ERR] rbo: glCheckFramebufferStatus failed

Do you have any ideas

Try with in your hyprland.conf

env=WLR_NO_HARDWARE_CURSORS,1

Last week wih the master branch of Hyprland, I needed to add also

render {
  explicit_sync=0
  explicit_sync_kms=0
}

to avoid firefox crashes.

So i tried the env as following in my hyprland.nix

  wayland.windowManager.hyprland = {                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                            
    enable = true;                                                                                                                                                                                                                                          
    xwayland.enable = true;                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                            
    extraConfig = "                                                                                                                                                                                                                                         
      env = WLR_NO_HARDWARE_CUSOSRS,1                                                                                                                                                                                                                       
    ";                                                                                                                                                                                                                                                      
    plugins = [                                                                                                                                                                                                                                             
    ];                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                            
    #render = {                                                                                                                                                                                                                                             
      #explicit_sync=0;                                                                                                                                                                                                                                     
      #explicit_sync_kms=0;                                                                                                                                                                                                                                 
    #};                                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                            
    settings = {                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                            
      # settings                                                                                                                                                                                                                                            
      "$mod" = "SUPER";                                                                                                                                                                                                                                     
      "$terminal" = "kitty";                                                                                                                                                                                                                                
      "$browser" = "firefox";                                                                                                                                                                                                                               
      "$fileManager" = "nautilus";                                                                                                                                                                                                                          
      "$menu" = "rofi -show drun -show-icons";                                                                                                                                                                                                              
                                                                                                                                                                                                                                                            
      debug.disable_logs = false;                                                                                                                                                                                                                           
      debug.disable_time = false;                                                                                                                                                                                                                           
      debug.enable_stdout_logs = true;                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                            
      env = [                                                                                                                                                                                                                                               
        "WLR_NO_HARDWARE_CURSORS,1"                                                                                                                                                                                                                         
      ];   

for the render part, I don’t really know how to put it in there.
But however unfortunatly hyprland still crashes with the same errors.

WLR_NO_HARDWARE_CURSORS stopped working at some point in Hyprland, so now it is

cursor {
  no_hardware_cursors = true;
}

see Cursor/Tablet: move to a hyprland impl by vaxerski · Pull Request #5902 · hyprwm/Hyprland · GitHub

1 Like

Really thank you

It works now