XFCE4 ignores configs in /etc/X11/xorg.conf.d

Hi, I’m trying to configure my GPU. To do that, i use file named 90-mhwd.conf in /etc/X11/xorg.conf.d.
Now I’m not using any display managers. I use startxfce4 command instead. When I logged as root, x11 correctly loads 90-mhwd.conf, but it doesn’t work for common user. In the last case, X11 just ignores /etc/X11/xorg.conf and 90-mhwd.conf. I can change display settings using xfce-display-settings, but I can’t enable triple buffering with it.

System:
  Kernel: 6.1.44-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: tsc available: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
    root=UUID=ca1f2d18-8fdc-49ee-b82d-a00d58bf21af rw quiet splash apparmor=1
    security=apparmor resume=UUID=8c5b963d-7fc6-4254-920b-5384339a4e22
    udev.log_priority=3
  Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
    v: 4.18.0 dm: xinit Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASRock model: B450 Steel Legend serial: <filter>
    UEFI: American Megatrends v: P3.40 date: 06/04/2020
Battery:
  Message: No system battery data found. Is one present?
Memory:
  System RAM: total: 16 GiB available: 15.55 GiB used: 3.23 GiB (20.8%)
  Array-1: capacity: 128 GiB slots: 4 modules: 2 EC: None
    max-module-size: 32 GiB note: est.
  Device-1: DIMM 0 type: DDR4 detail: synchronous unbuffered (unregistered)
    size: 8 GiB speed: 2133 MT/s volts: curr: 1.2 min: 1.2 max: 1.2 width (bits):
    data: 64 total: 64 manufacturer: N/A part-no: IRX2666D464L16S/8G
    serial: <filter>
  Device-2: DIMM 1 type: no module installed
  Device-3: DIMM 0 type: DDR4 detail: synchronous unbuffered (unregistered)
    size: 8 GiB speed: 2133 MT/s volts: curr: 1.2 min: 1.2 max: 1.2 width (bits):
    data: 64 total: 64 manufacturer: N/A part-no: IRX2666D464L16S/8G
    serial: <filter>
  Device-4: DIMM 1 type: no module installed
CPU:
  Info: model: AMD Ryzen 5 2600 socket: AM4 bits: 64 type: MT MCP arch: Zen+
    gen: 2 level: v3 note: check built: 2018-21 process: GF 12nm
    family: 0x17 (23) model-id: 8 stepping: 2 microcode: 0x800820D
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 576 KiB desc: d-6x32 KiB; i-6x64 KiB L2: 3 MiB desc: 6x512 KiB L3: 16 MiB
    desc: 2x8 MiB
  Speed (MHz): avg: 2579 high: 3400 min/max: 1550/3400 boost: enabled
    base/boost: 3400/3900 scaling: driver: acpi-cpufreq governor: schedutil
    volts: 1.1 V ext-clock: 100 MHz cores: 1: 2800 2: 1550 3: 1550 4: 3400
    5: 3400 6: 3400 7: 1550 8: 1550 9: 1550 10: 3400 11: 3400 12: 3400
    bogomips: 81466
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext clflush clflushopt clzero cmov cmp_legacy constant_tsc cpb
    cpuid cr8_legacy cx16 cx8 de decodeassists extapic extd_apicid f16c
    flushbyasid fma fpu fsgsbase fxsr fxsr_opt ht hw_pstate ibpb irperf
    lahf_lm lbrv lm mca mce misalignsse mmx mmxext monitor movbe msr mtrr
    mwaitx nonstop_tsc nopl npt nrip_save nx osvw overflow_recov pae pat
    pausefilter pclmulqdq pdpe1gb perfctr_core perfctr_llc perfctr_nb
    pfthreshold pge pni popcnt pse pse36 rapl rdrand rdseed rdtscp rep_good
    sep sev sev_es sha_ni skinit smap smca smep ssbd sse sse2 sse4_1 sse4_2
    sse4a ssse3 succor svm svm_lock syscall tce topoext tsc tsc_scale
    v_vmsave_vmload vgif vmcb_clean vme vmmcall wdt xgetbv1 xsave xsavec
    xsaveerptr xsaveopt
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed mitigation: untrained return thunk; SMT vulnerable
  Type: spec_rstack_overflow mitigation: safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, STIBP:
    disabled, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA TU106 [GeForce RTX 2060 SUPER] driver: nvidia v: 535.98
    alternate: nouveau,nvidia_drm non-free: 535.xx+
    status: current (as of 2023-08) arch: Turing code: TUxxx
    process: TSMC 12nm FF built: 2018-22 pcie: gen: 3 speed: 8 GT/s lanes: 16
    bus-ID: 0a:00.0 chip-ID: 10de:1f06 class-ID: 0300
  Device-2: KYE Systems (Mouse Systems) Genius Webcam
    driver: snd-usb-audio,uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1
    mode: 2.0 bus-ID: 1-3:2 chip-ID: 0458:6006 class-ID: 0102 serial: <filter>
  Display: server: X.Org v: 21.1.8 compositor: xfwm v: 4.18.0 driver: X:
    loaded: nvidia gpu: nvidia display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 3440x1440 s-dpi: 96 s-size: 910x381mm (35.83x15.00")
    s-diag: 987mm (38.84")
  Monitor-1: HDMI-0 res: 3440x1440 dpi: 110 size: 797x333mm (31.38x13.11")
    diag: 864mm (34.01") modes: N/A
  API: OpenGL v: 4.6.0 NVIDIA 535.98 renderer: NVIDIA GeForce RTX 2060
    SUPER/PCIe/SSE2 direct-render: Yes
Audio:
  Device-1: NVIDIA TU106 High Definition Audio driver: snd_hda_intel v: kernel
    pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 0a:00.1 chip-ID: 10de:10f9
    class-ID: 0403
  Device-2: AMD Family 17h HD Audio vendor: ASRock driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 0c:00.3
    chip-ID: 1022:1457 class-ID: 0403
  Device-3: KYE Systems (Mouse Systems) Genius Webcam
    driver: snd-usb-audio,uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1
    mode: 2.0 bus-ID: 1-3:2 chip-ID: 0458:6006 class-ID: 0102 serial: <filter>
  Device-4: Focusrite-Novation Focusrite Scarlett 2i2 2nd Gen
    driver: snd-usb-audio type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0
    bus-ID: 5-1:2 chip-ID: 1235:8202 class-ID: 0102
  API: ALSA v: k6.1.44-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 0.3.77 status: n/a (root, process) tools: pw-cli
  Server-3: PulseAudio v: 16.1 status: active (root, process)
    with: pulseaudio-alsa type: plugin tools: pacat,pactl,pavucontrol
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: ASRock driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
    port: d000 bus-ID: 08:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp8s0 state: up speed: 100 Mbps duplex: full mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Message: No bluetooth data found.
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 1.36 TiB used: 48.42 GiB (3.5%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 970 EVO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 2B2QEXE7 temp: 38.9 C
    scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Toshiba model: HDWD110 size: 931.51 GiB
    block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s tech: HDD
    rpm: 7200 serial: <filter> fw-rev: A8R0 scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 448.36 GiB size: 440.26 GiB (98.19%)
    used: 48.42 GiB (11.0%) fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:2 label: N/A uuid: ca1f2d18-8fdc-49ee-b82d-a00d58bf21af
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 288 KiB (0.1%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:1 label: N/A uuid: 2CDD-361F
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 17.1 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme0n1p3 maj-min: 259:3 label: swap
    uuid: 8c5b963d-7fc6-4254-920b-5384339a4e22
Unmounted:
  ID-1: /dev/sda1 maj-min: 8:1 size: 931.51 GiB fs: vfat label: N/A
    uuid: 39F9-B347
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 10 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 1-3:2 info: KYE Systems (Mouse Systems) Genius Webcam
    type: video,audio driver: snd-usb-audio,uvcvideo interfaces: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 256mA
    chip-ID: 0458:6006 class-ID: 0102 serial: <filter>
  Device-2: 1-7:3 info: Holtek Keyboard LKS02 type: keyboard,HID
    driver: hid-generic,usbhid interfaces: 2 rev: 1.1 speed: 1.5 Mb/s (183 KiB/s)
    lanes: 1 mode: 1.0 power: 100mA chip-ID: 04d9:1702 class-ID: 0300
  Device-3: 1-10:4 info: INSTANT USB GAMING MOUSE type: mouse,keyboard
    driver: hid-generic,usbhid interfaces: 2 rev: 1.1 speed: 1.5 Mb/s (183 KiB/s)
    lanes: 1 mode: 1.0 power: 100mA chip-ID: 30fa:1040 class-ID: 0300
  Hub-2: 2-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-4: 4-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-5: 5-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 5-1:2 info: Focusrite-Novation Focusrite Scarlett 2i2 2nd Gen
    type: audio driver: snd-usb-audio interfaces: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 power: 500mA
    chip-ID: 1235:8202 class-ID: 0102
  Hub-6: 6-0:1 info: super-speed hub ports: 4 rev: 3.0
    speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 51.8 C mobo: N/A gpu: nvidia temp: 54 C
  Fan Speeds (rpm): N/A gpu: nvidia fan: 44%
Info:
  Processes: 297 Uptime: 9m wakeups: 0 Init: systemd v: 253 default: graphical
  tool: systemctl Compilers: gcc: 13.2.1 clang: 15.0.7 Packages: pm: pacman
  pkgs: 1082 libs: 301 tools: gnome-software,pamac,yay pm: flatpak pkgs: 0
  Shell: Zsh (sudo) v: 5.9 running-in: xfce4-terminal inxi: 3.3.29

90-mhwd.conf:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 535.98

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung C34J79x"
    HorizSync       30.0 - 152.0
    VertRefresh     50.0 - 100.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce RTX 2060 SUPER"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "2560x1440_60 +0+0; 1920x1080_60 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

UPD: It seems that X11 also ignores /etc/X11/xorg.conf.d

1 Like

This file is generated by system tools … instead use your own.

Files are also loaded in sequential order … with the last taking precedence, so I would advise you to use something like /etc/X11/xorg.conf.d/99-myconfigs.conf

This really shouldnt ever be done.

It’s not just XFCE that ignores the files in /etc/X11/xorg.conf.d. Plasma does it too since the second-to-last update. So I’m guessing it’s an x.org thing. :thinking:

I created 99-myconfigs.conf, now it’s a file with biggest index it xorg.conf.d. I copied content from 90-mhwd.conf to it, but still doesn’t work.
Btw, /etc/X11/xorg.conf is also ignored.

But today I also figured out, that /etc/X11/xorg.conf is also ignored.

1 Like

… according to my logs it seems to be working, for example my “TearFree” setting:

~/.local/share/xorg/Xorg.0.log

[..]
[    24.314] (==) Using config directory: "/etc/X11/xorg.conf.d"
[..]
[    24.351] (**) AMDGPU(0): Option "TearFree" "true"
[..]

Well, in my case it is now completely ignoring my keyboard settings for the compose key in /etc/X11/xorg.conf.d/00-keyboard.conf, and the same is true for the keyboard repeat settings (via xset) in ~/.xinitrc — luckily I can set both via Plasma’s own settings — which leads me to believe that x.org is somehow no longer reading those files.

Maybe it’s got something to do with that whole “rootless X11” thing? :thinking:

1 Like

I executed ps -o user= -C Xorg, and figured out that xorg runs from root :face_with_monocle:

It always does unless explcitly configured otherwise:

ps -o user= -C Xorg always returns root
But it’s matter how I start a xfce: with sudo or without

You should not be starting xfce as root.
(this could have easily broken permissionis and created your problem in the first place)
Also dont get confused with the mention of ‘rootless’ … aragorn was musing that maybe such a configuration is related - which it does not seem to be because I run rootless and have no issues, whereas you have not configured that but have issues … etc.

Back to the main issue - why does your xorg not respect configurations?
Have you checked permissions/ownership of the files ?

First thing I want to say, that X11 always works with root, even if I use display manager with common user, or execute startxfce4 without sudo. As I said earlier ps -o user= -C Xorg always returns root.
Second, after many tests, I figured out, that only one user ignores config. I created new user
useradd test without changing any permissions and ownerships, rebooted and logged in sddm.
File 90-mhwd.conf was applied correctly (btw, it ignores 99-myconfigs.conf).

Ownerships:

# ls -l xorg.conf
-rw-r--r-- 1 root root 1650 august 21 11:23 xorg.conf

# ls -l xorg.conf.d
-rw-r--r-- 1 root root  232 august 16 15:37 00-keyboard.conf
-rw-r--r-- 1 root root 1669 august 21 23:38 90-mhwd.conf
-rw-r--r-- 1 root root 1689 august 21 02:38 90-mhwd.conf.backup
-rw-r--r-- 1 root root 1650 august 21 23:24 99-myconfigs.conf
-rw-r--r-- 1 root root 1669 august 21 23:22 99-myconfigs.conf.backup

Hope i wrote clearly, sorry for my english

I dont think you understand.

The display server is launched with root by default.
(which is not desirable … but still. the default)

Which is different from you signing in as user ‘username’ or ‘root’ … but you should not be signing in as root into the graphical desktop either.

This goes back to the original thought … a guess would be some configuration is wrong or corrupted which is breaking the ‘settings’.

But which configs can be corrupted? I removed every config in /etc/X11/xorg.conf.d, now there is only /etc/X11/xorg.conf. If it was corrupted, other users would not apply it. But root and test read it correctly.

After some sleuthing, I’ve discovered that the problem must have been introduced by the recent systemd update. Anything under /etc/X11/xorg.conf.d should be processed by systemd-localed.service — I don’t have an /etc/X11/xorg.conf, for that matter — and from the look of things, systemd-localed.service is now no longer reading that directory.

It seems I have solved the issue.
It’s very strange, but this problem appears only if user name equals hostname, so I created new user with a different name and still haven’t come across this issue. The same problem and solution exist in arch, so it wasn’t some issue with mhwd or manjaro configuration.

I’m gonna mark it as solution if i will not run into a problem within a week

wow, really? funky indeed.

That condition certainly does not apply on my system. My user name and my hostname are very different.

I think you’re jumping to illogical conclusions.