Lifehacker上转载了Ubuntu Forum上的一个小技巧,用于在gdm登录后立即显示壁纸。
默认状况下,gdm登录后首先会显示一个单色的屏幕,等到nautilus启动后才由nautilus绘制壁纸。这篇文章就介绍了一个小技巧,用xsetbg来使登录后立即显示壁纸。
如果是Ubuntu下,首先安装xloadimage这个软件包。如果你已经安装了apturl,可以点击这里来安装。
sudo aptitude install xloadimage
然后新建一个脚本,在gdm登录后立即执行:
sudo kate /etc/gdm/PostLogin/Default
其中的内容为:
#!/bin/sh
#
# Note that output goes into the .xsession-errors file for easy debugging
#
# Extract the wallpaper filename
WALLPAPER=”`cat ~/.gconf/desktop/gnome/background/%gconf.xml | sed -n -e ‘N
s/^[ \t]*<entry name=”picture_filename”.*\n[ \t]*<stringvalue>\(.*\)<\/stringvalue>.*$/\1/ip’`”
# Check if the wallpaper file exists. If yes - draw it, if no - use primary background color
if [ -e "$WALLPAPER" ] && [ -f "$WALLPAPER" ] ; then
xsetbg -onroot “$WALLPAPER”
else
PRIMARY_COLOR=”`cat ~/.gconf/desktop/gnome/background/%gconf.xml | sed -n -e ‘N
s/^[ \t]*<entry name=”primary_color”.*\n[ \t]*<stringvalue>\(.*\)<\/stringvalue>.*$/\1/ip’`”
xsetroot -cursor_name left_ptr -solid “$PRIMARY_COLOR”
fi
exit 0
注意由于wordpress的一个“bug”,英文的双引号会被自动替换成中文引号,请注意复制的时候替换一下。
将这个脚本加上执行权限并将默认的在gdm登录前执行的脚本给删除。直接重命名备份下就行了
sudo chmod +x /etc/gdm/PostLogin/Default
sudo mv -v /etc/gdm/PreSession/Default /etc/gdm/PreSession/Default.bak
原文作者也提到了几个问题。如果你使用单色的背景而不是图片背景,并设置了颜色梯度,将只显示梯度中的主颜色。用xsetbg来提前显示壁纸,壁纸的缩放会有点小问题。最关键的是,如果你打开了窗口管理器的特效(例如使用了compiz或者metacity打开复合特性),在提前显示壁纸和nautilus绘制壁纸之间某个时间,屏幕将是黑色无壁纸状态。(最后一个问题比较郁闷……)
作者的测试环境是Ubuntu Hardy Heron,但是这个方法应该对使用gdm作登录管理器的任何发行版都有效。
如果你喜欢这篇日志的话,欢迎订阅我的RSS Feed!
本文来源于一阁Blog。版权所有,转载请确保已阅读该页面。


谢谢!