Skip to content

Multiple startx XFCE sessions cause window manager conflicts and broken GUI

tags: multi-session, xfwm4, display-manager

Description:

When User C starts XFCE using startx (in tty1 or tty3), user C's session works correctly. When User MC attempts to start XFCE using startx (in tty3 or tty1) while User C's session is active, user MC's session works fine. Nevertherless, when User C is not running their XFCE/GUI session, user MC's session has severe issues (in tty1, tty2, or tty3 - I tried them all individually):

  • Window decorations missing (no minimize/maximize/close buttons)
  • Workspace manager/workspace switcher not functional
  • Alt+Tab doesn´t change windows (miltuple windows are placed one on top of the other)
  • Mouse configuration incorrect or behaves unusually
  • Windows lack proper GUI controls (appear as borderless boxes)
  • Programs run but cannot be managed as proper windows

This only occurs when user MC runs startx and User C has not started to ran startx (GUI/XFCE). Single-user startx sessions used to work correctly recently.

Steps Reproduced:

  1. User C switches to tty1 (Ctrl+Alt+F1), logs in, runs startx
  2. User C's XFCE session starts and works normally
  3. User MC switches to tty3 (Ctrl+Alt+F3), logs in, runs startx
  4. User MC's XFCE session works fine
  5. Both users log out, and User MC logs alone
  6. User MC switches to tty3 (Ctrl+Alt+F3), logs in, runs startx
  7. User MC's XFCE session starts with broken window manager functionality

Expected Behavior:

Multiple users should be able to run independent startx XFCE sessions simultaneously without interference.

Actual Behavior:

Secondary startx sessions have broken window management, suggesting XFCE session/display conflicts.

Some System Information:

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" Linux ygara 6.1.0-41-amd64 #1 (closed) SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64 GNU/Linux

=== startx Multi-Session Diagnostic ===

User: mc TTY: /dev/pts/0 Time: Tue Jan 6 12:25:24 PM EST 2026

=== Before startx ===

Active X processes: c 6100 0.0 0.0 6168 2604 tty1 S+ 12:06 0:00

xinit /home/c/.xinitrc -- /etc/X11/xinit/xserverrc :0 vt1 -keeptty -auth /tmp/serverauth.DKx0QHMhJG c 6101 0.1 0.6 1020228 98564 tty1 Sl 12:06 0:01

/usr/lib/xorg/Xorg -nolisten tcp :0 vt1 -keeptty -auth /tmp/serverauth.DKx0QHMhJG mc 6538 0.0 0.0 6168 2648 tty3 S+ 12:07 0:00

xinit /home/mc/.xinitrc -- /etc/X11/xinit/xserverrc :1 vt3 -keeptty -auth /tmp/serverauth.qUuQALxQE1 mc 6539 4.3 0.7 1118192 111160 tty3 Sl 12:07 0:47

/usr/lib/xorg/Xorg -nolisten tcp :1 vt3 -keeptty -auth /tmp/serverauth.qUuQALxQE1

X sockets: total 8

drwxrwxrwt 2 root root 4096 Jan 6 12:07 .

drwxrwxrwt 16 root root 4096 Jan 6 12:18 ..

srwxrwxrwx 1 c c 0 Jan 6 12:06 X0

srwxrwxrwx 1 mc mc 0 Jan 6 12:07 X1

=== Your ~/.xinitrc ===

exec startxfce4

=== XFCE versions ===

/usr/bin/xfce4-session

(process:8693): xfce4-session-CRITICAL **: 12:25:24.537: dbus-launch not found, the desktop will not work properly! xfce4-session 4.18.1 (Xfce 4.18)

Copyright (c) 2003-2023 The Xfce development team. All rights reserved.

Please report bugs to https://bugzilla.xfce.org/. /usr/bin/xfwm4

This is xfwm4 version 4.18.0 (revision 7e7473c5b) for Xfce 4.18
Released under the terms of the GNU General Public License.
Compiled against GTK+-3.24.35, using GTK+-3.24.38.

Build configuration and supported features:
- Startup notification support:                 Yes
- XSync support:                                Yes
- Render support:                               Yes
- Xrandr support:                               Yes
- Xpresent support:                             Yes
- X Input 2 support:                            No
- Embedded compositor:                          Yes
- Epoxy support:                                Yes

cat /var/log/Xorg.0.log | tail -100

Check if multiple logs exist

ls -la /var/log/Xorg*.log [ 51.389] (II) This device may have been added with another device file. [ 51.391] (II) config/udev: Adding input device HDA Intel PCH Headphone (/dev/input/event12) [ 51.391] (II) No input driver specified, ignoring this device. [ 51.391] (II) This device may have been added with another device file. [ 51.393] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=3 (/dev/input/event13) [ 51.393] (II) No input driver specified, ignoring this device. [ 51.393] (II) This device may have been added with another device file. [ 51.394] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=7 (/dev/input/event14) [ 51.394] (II) No input driver specified, ignoring this device. [ 51.394] (II) This device may have been added with another device file. [ 51.396] (II) config/udev: Adding input device HDA Intel PCH HDMI/DP,pcm=8 (/dev/input/event15) [ 51.396] (II) No input driver specified, ignoring this device. [ 51.396] (II) This device may have been added with another device file. [ 51.398] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event0) [ 51.398] () AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall" [ 51.398] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard' [ 51.398] () AT Translated Set 2 keyboard: always reports core events [ 51.398] () Option "Device" "/dev/input/event0" [ 51.401] (II) event0 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard [ 51.402] (II) event0 - AT Translated Set 2 keyboard: device is a keyboard [ 51.404] (II) event0 - AT Translated Set 2 keyboard: device removed [ 51.440] () Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input0/event0" [ 51.440] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 10) [ 51.440] () Option "xkb_model" "pc105" [ 51.440] () Option "xkb_layout" "us" [ 51.444] (II) event0 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard [ 51.444] (II) event0 - AT Translated Set 2 keyboard: device is a keyboard [ 51.448] (II) config/udev: Adding input device AlpsPS/2 ALPS DualPoint TouchPad (/dev/input/event6) [ 51.448] () AlpsPS/2 ALPS DualPoint TouchPad: Applying InputClass "libinput touchpad catchall" [ 51.449] (II) Using input driver 'libinput' for 'AlpsPS/2 ALPS DualPoint TouchPad' [ 51.449] () AlpsPS/2 ALPS DualPoint TouchPad: always reports core events [ 51.449] () Option "Device" "/dev/input/event6" [ 51.452] (II) event6 - AlpsPS/2 ALPS DualPoint TouchPad: is tagged by udev as: Touchpad [ 51.456] (II) event6 - AlpsPS/2 ALPS DualPoint TouchPad: device is a touchpad [ 51.457] (II) event6 - AlpsPS/2 ALPS DualPoint TouchPad: device removed [ 51.513] () Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input5/event6" [ 51.513] (II) XINPUT: Adding extended input device "AlpsPS/2 ALPS DualPoint TouchPad" (type: TOUCHPAD, id 11) [ 51.519] () Option "AccelerationScheme" "none" [ 51.519] () AlpsPS/2 ALPS DualPoint TouchPad: (accel) selected scheme none/0 [ 51.519] () AlpsPS/2 ALPS DualPoint TouchPad: (accel) acceleration factor: 2.000 [ 51.519] () AlpsPS/2 ALPS DualPoint TouchPad: (accel) acceleration threshold: 4 [ 51.522] (II) event6 - AlpsPS/2 ALPS DualPoint TouchPad: is tagged by udev as: Touchpad [ 51.527] (II) event6 - AlpsPS/2 ALPS DualPoint TouchPad: device is a touchpad [ 51.530] (II) config/udev: Adding input device AlpsPS/2 ALPS DualPoint TouchPad (/dev/input/mouse1) [ 51.530] (II) No input driver specified, ignoring this device. [ 51.530] (II) This device may have been added with another device file. [ 51.532] (II) config/udev: Adding input device AlpsPS/2 ALPS DualPoint Stick (/dev/input/event5) [ 51.532] () AlpsPS/2 ALPS DualPoint Stick: Applying InputClass "libinput pointer catchall" [ 51.532] (II) Using input driver 'libinput' for 'AlpsPS/2 ALPS DualPoint Stick' [ 51.532] () AlpsPS/2 ALPS DualPoint Stick: always reports core events [ 51.532] () Option "Device" "/dev/input/event5" [ 51.535] (II) event5 - AlpsPS/2 ALPS DualPoint Stick: is tagged by udev as: Mouse Pointingstick [ 51.536] (II) event5 - AlpsPS/2 ALPS DualPoint Stick: device is a pointer [ 51.538] (II) event5 - AlpsPS/2 ALPS DualPoint Stick: device removed [ 51.580] () Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input7/event5" [ 51.580] (II) XINPUT: Adding extended input device "AlpsPS/2 ALPS DualPoint Stick" (type: MOUSE, id 12) [ 51.580] () Option "AccelerationScheme" "none" [ 51.580] () AlpsPS/2 ALPS DualPoint Stick: (accel) selected scheme none/0 [ 51.580] () AlpsPS/2 ALPS DualPoint Stick: (accel) acceleration factor: 2.000 [ 51.580] () AlpsPS/2 ALPS DualPoint Stick: (accel) acceleration threshold: 4 [ 51.584] (II) event5 - AlpsPS/2 ALPS DualPoint Stick: is tagged by udev as: Mouse Pointingstick [ 51.585] (II) event5 - AlpsPS/2 ALPS DualPoint Stick: device is a pointer [ 51.589] (II) config/udev: Adding input device AlpsPS/2 ALPS DualPoint Stick (/dev/input/mouse0) [ 51.589] (II) No input driver specified, ignoring this device. [ 51.589] (II) This device may have been added with another device file. [ 51.591] (II) config/udev: Adding input device PC Speaker (/dev/input/event7) [ 51.591] (II) No input driver specified, ignoring this device. [ 51.591] (II) This device may have been added with another device file. [ 51.594] (II) config/udev: Adding input device ThinkPad Extra Buttons (/dev/input/event8) [ 51.594] () ThinkPad Extra Buttons: Applying InputClass "libinput keyboard catchall" [ 51.594] (II) Using input driver 'libinput' for 'ThinkPad Extra Buttons' [ 51.594] () ThinkPad Extra Buttons: always reports core events [ 51.594] () Option "Device" "/dev/input/event8" [ 51.597] (II) event8 - ThinkPad Extra Buttons: is tagged by udev as: Keyboard Switch [ 51.598] (II) event8 - ThinkPad Extra Buttons: device is a keyboard [ 51.599] (II) event8 - ThinkPad Extra Buttons: device removed [ 51.620] () Option "config_info" "udev:/sys/devices/platform/thinkpad_acpi/input/input9/event8" [ 51.620] (II) XINPUT: Adding extended input device "ThinkPad Extra Buttons" (type: KEYBOARD, id 13) [ 51.620] () Option "xkb_model" "pc105" [ 51.620] () Option "xkb_layout" "us" [ 51.623] (II) event8 - ThinkPad Extra Buttons: is tagged by udev as: Keyboard Switch [ 51.624] (II) event8 - ThinkPad Extra Buttons: device is a keyboard [ 63.050] (II) event3 - Power Button: device removed [ 63.064] (II) event4 - Video Bus: device removed [ 63.096] (II) event2 - Sleep Button: device removed [ 63.112] (II) event9 - Integrated Camera: Integrated C: device removed [ 63.148] (II) event0 - AT Translated Set 2 keyboard: device removed [ 63.164] (II) event6 - AlpsPS/2 ALPS DualPoint TouchPad: device removed [ 63.196] (II) event5 - AlpsPS/2 ALPS DualPoint Stick: device removed [ 63.228] (II) event8 - ThinkPad Extra Buttons: device removed [ 63.244] (II) AIGLX: Suspending AIGLX clients for VT switch [ 3342.860] (II) UnloadModule: "libinput" [ 3342.860] (II) UnloadModule: "libinput" [ 3342.860] (II) UnloadModule: "libinput" [ 3342.860] (II) UnloadModule: "libinput" [ 3342.860] (II) UnloadModule: "libinput" [ 3342.860] (II) UnloadModule: "libinput" [ 3342.860] (II) UnloadModule: "libinput" [ 3342.861] (II) UnloadModule: "libinput" [ 3342.863] (II) Server terminated successfully (0). Closing log file. -rw-r--r-- 1 root root 32193 Feb 22 2025 /var/log/Xorg.0.log -rw-r--r-- 1 root root 34904 Jan 4 14:23 /var/log/Xorg.1.log

Edited by MorenoCastilho