筆記:如何美化本地主機 x11/xdm 的登入畫面?

From: http://bbs.chinaunix.net/thread-3612960-1-1.html

筆記:如何美化本地主機 x11/xdm 的登入畫面?


本文版本 1.1
日期 2011 Oct 30

本文適用範圍:
僅限於啟動本地主機的 X server,沒有提及登入遠端 X server
僅介紹涉及 xdm 登入畫面有關設定檔案,沒有完整描述 xdm 所有的功能設定
筆記形式,僅記錄過程,不太深入解釋每一步的意義

參考資料
man xdm

基本要求:
已安裝好 Xorg

安裝所需要的 ports:
安裝 x11/xdm

  1. cd /usr/ports/x11/xdm
  2. su root
  3. make install
  4. make clean
  5. exit
复制代码
安裝 x11/xconsole
  1. cd /usr/ports/x11/xconsole
  2. su root
  3. make install
  4. make clean
  5. exit
复制代码
安裝 graphics/xli (秀 wallpaper 軟件)
  1. cd /usr/ports/graphics/xli
  2. su root
  3. make install
  4. make clean
  5. exit
复制代码
了解涉及 FreeBSD xdm 登入畫面默認配置檔案位置,讀取配置檔案的次序

1. /etc/tty -> 引渡每次開 FreeBSD 是否使用 xdm
2. /usr/local/lib/X11/xdm/xdm-config -> xdm 默認總配置檔案,這個檔案詳細分配 xdm 內每一個階段之不同配置檔案位置
3. /usr/local/lib/X11/xdm/Xsetup_0 -> 設定每次 xdm 登入本地 X Server 畫面必需執行的動作
4. /usr/local/lib/X11/xdm/Xresources -> 配設 xdm 登入畫面的客制設定

因此,想改變 xdm 登入畫面需要更改以上 4 個配置檔案

產生一個專用目錄
  1. su root
  2. mkdir -p /usr/local/custom_etc/xdm
  3. mkdir /usr/local/custom_etc/xdm/wallpapers
  4. mkdir /usr/local/custom_etc/xdm/pixmaps
  5. exit
复制代码
以上命令的目的是,產生一個專用目錄來放置客制的配置檔案,避免修改 ports 的預設值。不放置在 /usr/local/etc 內只是我個人喜好,不是強制規定。

拷貝一份默認配置檔案入專用目錄,準備修改
  1. su root
  2. cd /usr/local/custom_etc/xdm
  3. cp /usr/local/lib/X11/xdm/xdm-config .
  4. cp /usr/local/lib/X11/xdm/Xsetup_0 .
  5. cp /usr/local/lib/X11/xdm/Xresources .
  6. exit
复制代码
拷貝 FreeBSD icon 入專用目錄,以備 xdm 使用

FreeBSD logo icon (.xpm 格式) 可以從網上抓取,然後拷貝為 /usr/local/custom_etc/xdm/pixmaps/freebsd_icon.xpm

拷貝 FreeBSD wallpaper 入專用目錄,以備 xdm 使用

Wallpaper (.jpg 格式) 更換你喜歡的,然後拷貝為 /usr/local/custom_etc/xdm/wallpapers/freebsd_wallpaper.jpg

改名 xdm-config 為 custom-xdm-config
  1. su root
  2. cd /usr/local/custom_etc/xdm
  3. mv xdm-config custom-xdm-config
  4. exit
复制代码
修改 /usr/local/custom_etc/xdm/custom-xdm-config 內容

這個配置檔案內容,主要是指示 xdm 到那裡找相對應的檔案處理特定的環節,由於我更動了客制配置檔案的位置,因此修改的內容主要是改動對應的路徑,以下是這個檔案的全文:(其中以 ! 為首的行被視為註解)
  1. !
  2. DisplayManager.daemonMode:      false
  3. !
  4. DisplayManager*userPath:        /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
  5. DisplayManager.daemonMode:      false
  6. !
  7. DisplayManager*userPath:        /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
  8. !
  9. DisplayManager*systemPath:      /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
  10. !
  11. DisplayManager*systemShell:     /bin/sh
  12. !
  13. DisplayManager*failsafeClient:  /usr/local/bin/xterm
  14. !
  15. DisplayManager.authDir:         /var/lib/xdm
  16. DisplayManager.errorLogFile:    /var/log/xdm.log
  17. DisplayManager.pidFile:         /var/run/xdm.pid
  18. DisplayManager.keyFile:         /usr/local/lib/X11/xdm/xdm-keys
  19. DisplayManager.servers:         /usr/local/lib/X11/xdm/Xservers
  20. DisplayManager.accessFile:      /usr/local/lib/X11/xdm/Xaccess
  21. DisplayManager*resources:       /usr/local/custom_etc/xdm/Xresources
  22. DisplayManager.willing:         su -m nobody -c /usr/local/lib/X11/xdm/Xwilling
  23. !
  24. ! All displays should use authorization, but we cannot be sure
  25. ! X terminals may not be configured that way, so they will require
  26. ! individual resource settings.
  27. DisplayManager._0.authorize:    true
  28. DisplayManager*authorize:       false
  29. !
  30. DisplayManager*chooser:         /usr/local/lib/X11/xdm/chooser
  31. DisplayManager*startup:         /usr/local/lib/X11/xdm/Xstartup
  32. DisplayManager*session:         /usr/local/lib/X11/xdm/Xsession
  33. DisplayManager*reset:           /usr/local/lib/X11/xdm/Xreset
  34. DisplayManager*authComplain:    true
  35. !
  36. ! The following three resources set up display :0 as the console.
  37. DisplayManager._0.setup:        /usr/local/custom_etc/xdm/Xsetup_0
  38. DisplayManager._0.startup:      /usr/local/lib/X11/xdm/GiveConsole
  39. DisplayManager._0.reset:        /usr/local/lib/X11/xdm/TakeConsole
  40. !
  41. DisplayManager*loginmoveInterval:       10
  42. !
  43. ! SECURITY: do not listen for XDMCP or Chooser requests
  44. ! Comment out this line if you want to manage X terminals with xdm
  45. DisplayManager.requestPort:     0
复制代码
修改 /usr/local/custom_etc/xdm/Xsetup_0

這個檔案是指示每次 xdm 都必需要執行的動作,它是一個 sh 手稿命令檔案,如果想替 xdm 改變 wallpaper 便需要修改這個檔案內容。以下是我的 Xsetup_0 全文內容,我指示每次 xdm 都會秀一張指定 wallpaper 和 啟動 xconsole 程式。
  1. #!/bin/sh
  2. xconsole -geometry 480x100+0-0 -daemon -notify -verbose -fn fixed -exitOnFail &
  3. /usr/local/bin/xsetbg -fork '/usr/local/custom_etc/xdm/wallpapers/freebsd_wallpaper.jpg' &
复制代码
注意這個檔案權限
  1. su root
  2. cd /usr/local/custom_etc/xdm
  3. chmod 500 Xsetup_0
  4. exit
复制代码
修改 /usr/local/custom_etc/xdm/Xresources
這個檔案是一個標準 X 的資源格式檔案,每次 xdm 都會讀取此檔案,來規範 X 程式的行為。而此檔案重點是規範登入對話盒的外觀和行為。
以下是我的 Xresources 全文內容,每一項目的解釋請自行閱讀 man xdm。我的筆電解像度是 1366x768

注意:xdm 登入對話盒的資源名稱是:xlogin.Login. 為首
  1. !
  2. Xcursor.theme:                          whiteglass
  3. !
  4. xlogin.Login.width:                     600
  5. xlogin.Login.height:                    200
  6. xlogin.Login.x:                         350
  7. xlogin.Login.y:                         380
  8. !
  9. xlogin.Login.foreground:                Black
  10. xlogin.Login.background:                Lavender
  11. xlogin.Login.hiColor:                   Ghost White
  12. xlogin.Login.shdColor:                  Dim Gray
  13. xlogin.Login.greetColor:                Midnight Blue
  14. xlogin.Login.failColor:                 Red
  15. !
  16. xlogin.Login.face:                      Sans-12
  17. xlogin.Login.greetFace:                 Sans-18:bold:italic
  18. xlogin.Login.promptFace:                Sans-12:bold
  19. xlogin.Login.failFace:                  Sans:bold
  20. !
  21. xlogin.Login.greeting:                  FreeBSD 9.0-RC1 Workstation
  22. xlogin.Login.namePrompt:                Login:\040
  23. xlogin.Login.passwdPrompt:              Password:\040
  24. xlogin.Login.promptColor:               Red
  25. xlogin.Login.changePasswdMessage:       Password Change Required
  26. xlogin.Login.fail:                      Login incorrect
  27. xlogin.Login.failTimeout:               10
  28. xlogin.Login.logoFileName:              /usr/local/custom_etc/xdm/pixmaps/freebsd_icon.xpm
  29. xlogin.Login.borderWidth:               7
  30. xlogin.Login.logoPadding:               15
  31. xlogin.Login.useShape:                  true
  32. xlogin.Login.frameWidth:                3
  33. xlogin.Login.innerFramesWidth:          2
  34. xlogin.Login.sepWidth:                  0
  35. xlogin.Login.allowRootLogin:            false
  36. xlogin.Login.allowNullPasswd:           false
  37. xlogin.Login.echoPasswd:                true
  38. xlogin.Login.translations:              #override \
  39.                                         Ctrl<Key>R: abort-display()\n\
  40.                                         <Key>F1: set-session-argument(failsafe) finish-field()\n\
  41.                                         <Key>Delete: delete-character()\n\
  42.                                         <Key>Left: move-backward-character()\n\
  43.                                         <Key>Right: move-forward-character()\n\
  44.                                         <Key>Home: move-to-begining()\n\
  45.                                         <Key>End: move-to-end()\n\
  46.                                         Ctrl<Key>KP_Enter: set-session-argument(failsafe) finish-field()\n\
  47.                                         <Key>KP_Enter: set-session-argument() finish-field()\n\
  48.                                         Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\
  49.                                         <Key>Return: set-session-argument() finish-field()
  50. !
  51. XConsole.text.geometry: 480x100
  52. XConsole.verbose:       true
  53. XConsole*iconic:        true
  54. XConsole*font:          fixed
复制代码
最後,修改 /etc/tty
引渡 FreeBSD 每次開電腦時會啟動 xdm,並且指示 xdm 讀入放置在 /usr/local/custom_etc/xdm/custom-xdm-config 檔案

修改 /etc/tty 中有關 ttyv8 那一行,把這一行修改為以下:

修改前
  1. #ttyv8  "/usr/local/bin/xdm -nodaemon xterm off secure
复制代码
修改後
  1. ttyv8   "/usr/local/bin/xdm -config /usr/local/custom_etc/xdm/custom-xdm-config" xterm on secure
复制代码
大功告成
現在 FreeBSD 每次開機
1. 啟動 xdm
2. 讀取 /usr/local/custom_etc/xdm/custom-xdm-config 為總配置檔案
3. /usr/local/custom_etc/xdm/custom-xdm-config 引渡 xdm 讀取 /usr/local/custom_etc/xdm 下的 Xsetup_0 和 Xresources
4. xdm 根據 /usr/local/custom_etc/xdm 下的 Xsetup_0 和 Xresources 秀出客制登入畫面

可以和簡陋的 xdm 預設登入畫面說再見!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值