Problems with adding an XMonad session for gdm

Hello there!
I’m trying to be able to log into an XMonad session with gdm - or any display manager, I just want to be able to have xmonad as my window manager with all the bells and whistles of gnome (to take care of things like power management, display scaling, etc). It would also be nice to be able to transition to plane gnome when I want to.

What I tried so far, after a long googling session, is setting the contents of the following files:


[Desktop Entry]


[GNOME Session]


[Desktop Entry]
Name=Gnome with XMonad
Comment=Gnome with XMonad as window manager
Exec=gnome-session --session=XMonad

With that, I can choose Gnome with XMonad session from the login screen, but I get greeted oh no something has gone wrong with plane GNOME and a prompt to logout

Here is my system information

$ inxi -Faxxi
System:    Host: yecine-xps159560 Kernel: 5.4.72-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0 
           parameters: BOOT_IMAGE=/boot/vmlinuz-5.4-x86_64 root=UUID=fa197283-acde-4f0e-966c-e1fc4f8f94df rw 
           acpi_rev_override=1 pcie_aspm=off acpi_blacklight=none acpi_osi=! "acpi_osi=Windows 2009" apparmor=1 
           security=apparmor resume=UUID=997a0a2e-1817-4b2e-8a35-0da6cbca7efe udev.log_priority=3 
           Desktop: GNOME 3.36.6 tk: GTK 3.24.23 info: docker wm: gnome-shell dm: GDM 3.36.3 Distro: Manjaro Linux 
Machine:   Type: Laptop System: Dell product: XPS 15 9560 v: N/A serial: <superuser/root required> Chassis: type: 10 
           serial: <superuser/root required> 
           Mobo: Dell model: 05FFDN v: A00 serial: <superuser/root required> UEFI: Dell v: 1.19.2 date: 05/22/2020 
Battery:   ID-1: BAT0 charge: 67.6 Wh condition: 67.6/97.0 Wh (70%) volts: 12.7/11.4 model: SMP DELL GPM0365 type: Li-ion 
           serial: 419 status: Full 
CPU:       Topology: Quad Core model: Intel Core i7-7700HQ bits: 64 type: MT MCP arch: Kaby Lake family: 6 model-id: 9E (158) 
           stepping: 9 microcode: D6 L2 cache: 6144 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 44817 
           Speed: 900 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 900 2: 900 3: 901 4: 900 5: 900 6: 900 7: 900 8: 900 
           Vulnerabilities: Type: itlb_multihit status: KVM: Split huge pages 
           Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
           Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
           Type: meltdown mitigation: PTI 
           Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp 
           Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization 
           Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling 
           Type: srbds mitigation: Microcode 
           Type: tsx_async_abort status: Not affected 
Graphics:  Device-1: Intel HD Graphics 630 vendor: Dell driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:591b 
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Mobile] vendor: Dell driver: nvidia v: 440.100 
           alternate: nouveau,nvidia_drm bus ID: 01:00.0 chip ID: 10de:1c8d 
           Device-3: Sunplus Innovation Integrated_Webcam_HD type: USB driver: uvcvideo bus ID: 1-12:6 chip ID: 1bcf:2b95 
           Display: x11 server: 1.20.9 compositor: gnome-shell driver: modesetting alternate: fbdev,intel,vesa 
           resolution: <xdpyinfo missing> 
           OpenGL: renderer: Mesa Intel HD Graphics 630 (KBL GT2) v: 4.6 Mesa 20.1.8 direct render: Yes 
Audio:     Device-1: Intel CM238 HD Audio vendor: Dell driver: snd_hda_intel v: kernel bus ID: 00:1f.3 chip ID: 8086:a171 
           Sound Server: ALSA v: k5.4.72-1-MANJARO 
Network:   Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter vendor: Bigfoot Networks driver: ath10k_pci 
           v: kernel port: e000 bus ID: 02:00.0 chip ID: 168c:003e 
           IF: wlp2s0 state: up mac: 9c:b6:d0:f3:d6:2b 
           IP v4: type: dynamic noprefixroute scope: global broadcast: 
           IP v6: fe80::22d:5483:32ff:a374/64 type: noprefixroute scope: link 
           Device-2: Qualcomm Atheros QCA61x4 Bluetooth 4.0 type: USB driver: btusb bus ID: 1-4:4 chip ID: 0cf3:e300 
           IF-ID-1: br-1a722309b403 state: up speed: N/A duplex: N/A mac: 02:42:51:7b:d5:73 
           IP v4: scope: global broadcast: 
           IP v6: fe80::42:51ff:fe7b:d573/64 scope: link 
           IF-ID-2: docker0 state: up speed: N/A duplex: N/A mac: 02:42:bb:a4:ef:03 
           IP v4: scope: global broadcast: 
           IP v6: fe80::42:bbff:fea4:ef03/64 scope: link 
           IF-ID-3: vethc6f365c state: up speed: 10000 Mbps duplex: full mac: 56:9e:24:13:80:cd 
           IF-ID-4: vetheff34bc state: up speed: 10000 Mbps duplex: full mac: 86:77:54:42:e9:d3 
           WAN IP: 
Drives:    Local Storage: total: 953.87 GiB used: 33.70 GiB (3.5%) 
           SMART Message: Required tool smartctl not installed. Check --recommends 
           ID-1: /dev/nvme0n1 vendor: Toshiba model: KXG50ZNV1T02 NVMe 1024GB size: 953.87 GiB block size: physical: 512 B 
           logical: 512 B speed: 31.6 Gb/s lanes: 4 serial: X7ES100ETYAT rev: AADA4102 scheme: GPT 
Partition: ID-1: / raw size: 919.23 GiB size: 903.80 GiB (98.32%) used: 33.70 GiB (3.7%) fs: ext4 dev: /dev/nvme0n1p2 
Swap:      Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
           ID-1: swap-1 type: partition size: 34.34 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/nvme0n1p3 
Sensors:   System Temperatures: cpu: 54.5 C mobo: N/A 
           Fan Speeds (RPM): cpu: 2512 fan-2: 2509 
Info:      Processes: 305 Uptime: 45m Memory: 31.22 GiB used: 2.90 GiB (9.3%) Init: systemd v: 246 Compilers: gcc: 10.2.0 
           Packages: pacman: 1433 lib: 316 flatpak: 0 Shell: Zsh v: 5.8 running in: gnome-terminal inxi: 3.1.05 

If you want the convenience of gnome with xmonad, I suggest instead just putting gnome-settings-daemon to xmonad autostart and using some less complicated panel. Gnome-panel is not something you can easily separate from gnome-shell.

That’s the way I’ve done it with bspwm, and there is no reason why it would not work with xmonad.

It makes sense, but I still can’t log in into XMonad

This might help

That still causes the same problem. The files are a bit outdated

Can you launch xmonad from console like normal?

Yes, that works (not from the console - I call xmonad directly in the session without the gnome-session).

The problem with that is that I lose the things that GNOME provides (display management, power management, etc.)