TTYs on external screens


New Member

Messages: 7

Hi, I use FreeBSD 12.2-RELEASE on a ThinkPad T530. Most of the time, I run it connected to 2 external screens:
- one via miniDP -> HDMI (1920x1080)
- the other one via VGA -> VGA (1440x900)
- the built-in laptop screen is turned off (LVDS - 1366x768)
Here are the relevant lines of my xrandr in a normal use case:
Screen 0: minimum 320 x 200, current 3360 x 1080, maximum 8192 x 8192
LVDS-1 connected (normal left inverted right x axis y axis)
   1366x768      60.00 +
VGA-1 connected 1440x900+1920+0 (normal left inverted right x axis y axis) 408mm x 255mm
   1440x900      59.89*+  74.98
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
   1920x1080     60.00*+  50.00    59.94

My problem is that I can't access any TTY with Ctrl + Alt + F[number] when LVDS-1 is off. Instead my X display just freezes until I get back to Ctrl + Alt + F9 which I guess is my Xorg TTY. This is a problem when occasionally my WM is stuck because this forces a full reboot instead of simply being able to kill the Xorg server from the shell.
However when the laptop is running on LVDS-1 only I can access TTYs just fine as it should be. I use x11/slim as a login manager.
Here is my /etc/ttys:
ttyv0   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv1   "/usr/libexec/getty Pc"         xterm   on secure
ttyv2   "/usr/libexec/getty Pc"         xterm   on secure
ttyv3   "/usr/libexec/getty Pc"         xterm   on secure
ttyv4   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv5   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv6   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv7   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure
ttyu0   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
ttyu1   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
ttyu2   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
ttyu3   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
dcons   "/usr/libexec/getty std.9600"   vt100   off secure

And here is my /usr/local/etc/slim.conf:
default_path        /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin
default_xserver     /usr/local/bin/X
xserver_arguments   -nolisten tcp vt09
halt_cmd            /sbin/shutdown -p now
reboot_cmd          /sbin/shutdown -r now
console_cmd         /usr/local/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/motd; exec /usr/bin/login"
suspend_cmd        /usr/sbin/acpiconf -s 3
xauth_path         /usr/local/bin/xauth
authfile           /var/run/slim.auth
login_cmd           exec /bin/sh - /usr/home/jozan/.config/x11/xinitrc %session
screenshot_cmd      import -window root /slim.png
welcome_msg         Welcome to %host
shutdown_msg       The system is powering down...
reboot_msg         The system is rebooting...
default_user        jozan
focus_password      yes
current_theme       fbsd
lockfile            /var/run/
logfile             /var/log/slim.log