forked from Lainports/freebsd-ports
Hard coding Xserver args forces people to invoke xdm through init by placing an entry in /etc/ttys when Xserver args different from those hardcoded in rc.d/xdm are desired. Instead glean arguments from $LOCALBASE/etc/xdm/Xservers, defaulting to the hardcoded entry if none are found for :0. Reviewed by: manu Differential Revision: https://reviews.freebsd.org/D42097
48 lines
1.1 KiB
Bash
48 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: xdm
|
|
# REQUIRE: LOGIN
|
|
# KEYWORD: nojail shutdown
|
|
#
|
|
# Add the following line to /etc/rc.conf to enable xdm:
|
|
# xdm_enable="YES"
|
|
#
|
|
# Optionally, you can set the vty that it appears on
|
|
# (only useful in the unlikely event that you already have
|
|
# them allocated in /etc/ttys)
|
|
# xdm_tty=ttyv8
|
|
#
|
|
# Alternatively, edit /etc/ttys and change the line below
|
|
# ttyv8 "%%PREFIX%%/bin/xdm -nodaemon" xterm off secure
|
|
# to this:
|
|
# ttyv8 "%%PREFIX%%/bin/xdm -nodaemon" xterm on secure
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="xdm"
|
|
rcvar=xdm_enable
|
|
desc="X.org X display manager"
|
|
|
|
load_rc_config $name
|
|
|
|
: ${xdm_enable:=NO}
|
|
: ${xdm_tty:=default}
|
|
|
|
command=%%PREFIX%%/bin/$name
|
|
pidfile=/var/run/$name.pid
|
|
if [ "${xdm_tty%%[0-9]*}" = "ttyv" ]; then
|
|
start_precmd=xdm_set_vty
|
|
fi
|
|
|
|
xdm_set_vty()
|
|
{
|
|
# X views vt as starting at 01, not ttyv0
|
|
vtarg=`printf vt%02d $((${xdm_tty#ttyv} + 1))`
|
|
xserver_args=$(grep '^:0' %%LOCALBASE%%/etc/X11/xdm/Xservers)
|
|
if [ $? -ne 0 ]; then
|
|
xserver_args=":0 local %%LOCALBASE%%/bin/X :0"
|
|
fi
|
|
command_args="-server \"$xserver_args $vtarg\""
|
|
}
|
|
|
|
run_rc_command $1
|