
Со времен Slackware привык запускать Х-ы через startx, только тогда когда это надо. Потом купил более быстрый компьютер, Х-ы перестали напрягать машину и startx стала первой командой после логина. Поэтому когда во время очередной установки KDE установился kdm, я не стал возражать. Другое дело что время старта самого kdm достаточно ощутимое, а от него требуется не так много - авторизировать и запустить дефолтный WM :) Поэтому вспомнил про xdm - по-умолчанию он как раз и умеет авторизировать и запускать dm, да и не требует ничего кроме Х-ов, поэтому запускается (даже на относительно слабых машинах) гораздо быстрее. Правда сам xdm по-умолчанию выглядит достаточно убого, и немного "разукрасить" его не помешает. Вот что делал я:
1. Установка:
aptitude install xdm
если в системе уже установлен gdm, kdm etc. то попросят выбрать dm запускаемый по-умолчанию. Выбираем xdm.
2. По-умолчанию, xdm запускает общеситемный x-session-mananager. Выбрать в качестве альтернативы x-session-manager'а startfluxbox с помощью update-alternatives у меня не получилось, поэтому просто сменил линк:
cd /etc/alternatives
unlink x-session-manager
ln -s /usr/bin/startfluxbox /etc/alternatives/x-session-manager
Это не есть хорошая идея если системой пользуются несколько человек и они предпочитают другой WM/DE.
После этого можно перезагрузится и убедится что уже для авторизации запускается xdm.
3. Далее приступаем к украшению:
Во-первых бэкап текущих настроек. Если что-то пойдет не так, то всегда можно вернуть как было :)
sudo cp -r /etc/X11/xdm /root/
(не знаю как кто - я в подобных ситуациях копирую настройки в /root/ - надо же этот каталог хоть для чего-то использовать)
Файлы конфигурации xdm находятся в /etc/X11/xdm. Редактироваться будут: Xresources - определяет внешний вид самого; Xsetup - скрипт в котором можно запустить чего-нить при старте xdm; Xstartup - скрипт запускаемый после логина, перед стартом WM.
Xresorces:
xlogin*login.translations: #override\
Ctrl
Ctrl
xlogin*greeting: Wellcome to my Debian box:
xlogin*login.x: 780
xlogin*login.y: 598
xlogin*greetFont: snap
xlogin*font: snap
xlogin*promptFont: snap
xlogin*failFont: snap
xlogin*background: #000000
xlogin*foreground: #ffffff
xlogin*borderWidth:0
xlogin*frameWidth: 0
xlogin*innerFramesWidth:0
xlogin*shdColor: #000000
xlogin*hiColor: #000000
xlogin.Login.foreground: #ffffff
xlogin.Login.promptColor: #ffffff
xlogin*greetColor: #ffffff
xlogin*failColor: red
xlogin*borderWidth: 0
xlogin*borderColor: #000000
Xsetup:
#!/bin/sh
#
# /etc/X11/xdm/Xsetup
#
### запуск xclock
pidfile=/var/run/xclock_0.pid
if [ -f $pidfile ]; then
# Huh? Abnormally terminated?
rm $pidfile
fi
/usr/bin/X11/xclock -geometry '-0-720' -digital -bg '#000000' -fg '#ffffff' -font '-xos4-terminus-bold-r-normal-*-14-*-*-*-*-*-*-*' \
& echo $! > $pidfile &
### кнопки reboot & halt
pidfile=/var/run/xdmbutton_0.pid
if [ -f $pidfile ]; then
# Huh? Abnormally terminated?
rm $pidfile
fi
HOME=/root /usr/bin/wish -name Powerbox <
wm geometry . -50-0
tk_setPalette highlightColor blue
button .halt -background #000000 -foreground #ffffff -highlightbackground #000000 -borderwidth 0 -text shutdown \
-command {exec /sbin/shutdown -h -P now}
button .reboot -background #000000 -foreground #ffffff -highlightbackground #000000 -borderwidth 0 -text reboot \
-command {exec /sbin/shutdown -r now}
pack .halt .reboot -side left -fill both
EOF
echo $! >$pidfile
###
#установка бэкграунда:
HOME=/dev/null feh --bg-scale /usr/share/wallpapers/www_creep_ru_0681.jpg &
echo $! > /var/run/xsetbg.pid
wait `cat /var/run/xsetbg.pid`
Xstartup:
#!/bin/sh
#
# This script is run as root after the user logs in. If this script exits with
# a return code other than 0, the user's session will not be started.
PATH="$PATH:/usr/bin/X11"
pidfile="/var/run/xclock_0.pid"
if [ -f $pidfile ]; then
kill -9 `cat $pidfile`;
rm -f $pidfile;
fi
pidfile="/var/run/xdmbutton_0.pid"
if [ -f $pidfile ]; then
kill -9 `cat $pidfile`;
rm -f $pidfile;
fi
if [ -e /etc/nologin ]; then
# always display the nologin message, if possible
if [ -s /etc/nologin ] && which xmessage > /dev/null 2>&1; then
xmessage -file /etc/nologin -geometry 640x480
fi
if [ "$(id -u)" != "0" ] && \
! grep -qs '^ignore-nologin' /etc/X11/xdm/xdm.options; then
exit 1
fi
fi
# Insert a utmp entry for the session.
if grep -qs '^use-sessreg' /etc/X11/xdm/xdm.options \
&& which sessreg >/dev/null 2>&1; then
exec sessreg -a -l "$DISPLAY" -u /var/run/utmp \
-x /etc/X11/xdm/Xservers "$USER"
# NOTREACHED
fi
#remove x-clock
exit 0
Для установки картинки для бэкграунда нужно установить feh(либо другую программу которая умеет устанавливать бэкграунд), для того чтобы были кноки shutdown & reboot нужно установить tk8.4.
бэкграунд:

использованы куски темы http://themes.freshmeat.net/projects/greyxdm/
2 комментария:
по лицу видно что пендальфа за xdm били часто и больно..
slackware и aptitude, брешеш
Отправить комментарий