[拋磚] 個人化的 X 環境設定

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

[拋磚] 個人化的 X 環境設定

文章訪客 » 週一 3月 21, 2005 11:47 pm

有關 locale 部份請參考 [拋磚] locale 設定相關說明

如果是從 console 登入執行 xinit 或 startx 之類指令進入 X,
個人的 X 環境設定放在家目錄的
.xinitrc
.xserverrc
如果沒有這種名字的檔案, 請自行建立

.xinitrc 範例
代碼: 選擇全部
#!/bin/sh
# 其實上面那一行可有可無, 因為這個檔案會由 /bin/sh 來處理
# 設定滑鼠游標, 把預設的 X 改成好看的箭頭, 如果 WM 自己有設定那就不用了
xsetroot -cursor_name left_ptr
# 設定桌面圖案
chbg -mode center FOO.png
# locale 和輸入法最好擺前面, 這樣後面執行的程式才會套用
# 像游標和桌面這種不需要中文環境的東西當然擺哪裡都可以
export LC_CTYPE=zh_TW.UTF-8
export XMODIFIERS="@im=gcin"
gcin &
# 執行 WM, 如果 WM 有自己的其他 script or manager 就不需要
# exec icewm 有關 exec 請看底下說明
icewm &
# 用 exec 執行 magic process
# 這個程式如果關掉的話, 就會離開 X
# 現在這樣設定的好處是可以線上更換 WM
# 你可以把 icewm kill 掉, 換另一個 WM, 而不需要離開 X
# 如果  WM 是 magic process, 那 WM 被關掉時也會離開 X
exec xclock


.xserverrc 範例(可以直接 copy /etc/X11/xinit/xserverrc)
代碼: 選擇全部
#!/bin/sh
# 上面那一行一樣可有可無
# 可以設定自己喜歡的 dpi, 這樣就不用每個軟體在那邊改字體大小
exec /usr/bin/X11/X -dpi 120 -nolisten tcp

很多人都不知道有這個檔案可以用, 因為預設值就蠻好用了,
也沒什麼特別的變化

如果是從 xdm / gdm / kdm 之類登入 X,
那 .xserverrc 無效(因為已經進入 X 了, 不可能再去處理個人的設定)
.xinitrc 也要改成用 .xsession
代碼: 選擇全部
# .xsession 的寫法跟 .xinitrc 完全一樣, 請參考上面


除了這些檔案外, 還有兩個好用的東西
.Xresources 和 .Xdefaults
你可以在這兩個檔案裡設定一些 X 軟體的預設行為, 範例如下:
代碼: 選擇全部
# 設定 terminal emulator 為黑底白字
# XTerm 對 crxvt / rxvt-ml 同樣適用, 這樣設定後開出來的 crxvt 就是黑底白字
XTerm*background: black
XTerm*foreground: white
# 設定 terminal emulator 的預設字型
XTerm*font: 9x15
XTerm*font2: 10x20
XTerm*font3: 12x24
# 為什麼設定這麼多字型呢? crxvt / rxvt-ml 可以用 Shift + [ + 或 - ] 動態調整字型大小
XTerm*mfont: taipei16--
XTerm*mfont2: cmex16m
XTerm*mfont3: taipei24
# 設定暫存區大小
XTerm*saveLines: 256

crxvt / rxvt-ml 的參數請參考 man rxvt
很多 X 應用程式都有類似的參數可以放在 .Xresources 和 .Xdefaults
請自行翻閱文件

建議:
如果是用 xinit 或 startx 之類進入 X, 建議使用 .Xdefaults
如果是從 xdm / gdm / kdm 進入 X, 建議使用 .Xresources
訪客
 

文章訪客 » 週一 3月 21, 2005 11:49 pm

Anonymous 寫:為什麼設定這麼多字型呢? crxvt / rxvt-ml 可以用 Shift + [ + 或 - ] 動態調整字型大小

這個功能很好用
訪客
 

文章訪客 » 週一 3月 21, 2005 11:52 pm

補充
xinit 是 X 的 frontend
startx 是 xinit 的 frontend
如果 .xinitrc 和 .xserverrc 設定得好, 用 xinit 會比 startx 還精簡
訪客
 

文章訪客 » 週二 3月 22, 2005 12:01 am

debian 風格的 WM selection
如果你安裝了很多的 WM, 卻不知道怎麼切換? 請執行
代碼: 選擇全部
update-alternatives --config x-window-manager

然後用 startx 進入 X
(此時 .xinitrc 裡不要執行 WM)

如果想線上切換, 用這個指令也方便你知道自己到底有哪些 WM
因為一些 WM selecition 的程式常常都找不到一些較冷門的 WM
只要是 debian 官方包的 WM 套件, 用這個指令來找就絕不會 loss
訪客
 

文章訪客 » 週二 3月 22, 2005 12:42 am

Anonymous 寫:然後用 startx 進入 X
(此時 .xinitrc 裡不要執行 WM)


更正(太久沒用 startx 了, 歹勢)
.xinitrc 裡面執行 WM 的地方請改成
代碼: 選擇全部
exec /usr/bin/x-window-manager

或是
代碼: 選擇全部
/usr/bin/x-window-manager &

然後再執行 startx
訪客
 

文章d2207197 » 週二 3月 22, 2005 1:43 am

咧../usr/bin/x-window-manager &!!!
這樣 startx 後,剛啟動 X,X 也會立刻關掉吧。

exec /usr/bin/x-window-manager

/usr/bin/x-window-manager
就好了。

.xinitrc 最後一項不要 &
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

文章訪客 » 週二 3月 22, 2005 12:59 pm

d2207197 寫:咧../usr/bin/x-window-manager &!!!
這樣 startx 後,剛啟動 X,X 也會立刻關掉吧。

加上 & 的用法必需配合另一個 magic process,
就像上面範例中說的, 可以在不離開 X 的狀態下更換 WM
Anonymous 寫:
代碼: 選擇全部
# 執行 WM, 如果 WM 有自己的其他 script or manager 就不需要
# exec icewm 有關 exec 請看底下說明
icewm &
# 用 exec 執行 magic process
# 這個程式如果關掉的話, 就會離開 X
# 現在這樣設定的好處是可以線上更換 WM
# 你可以把 icewm kill 掉, 換另一個 WM, 而不需要離開 X
# 如果  WM 是 magic process, 那 WM 被關掉時也會離開 X
exec xclock

如果用 exec x-window-manager, 要更換 WM 時往往得離開 X
訪客
 

文章訪客 » 週二 3月 22, 2005 1:35 pm

整理一下:

不管你是用什麼 WM, 在 debian 底下
.xinitrc 或 .xsession 都可以用 x-window-manager, 而不要用 icewm, aewm 之類
代碼: 選擇全部
# 如果不想動態更換 WM, 建議用 exec, 可以省一個 process
exec x-window-manager

代碼: 選擇全部
# 加上 & 配合另外一個 magic process, 可以動態更換 WM
x-window-manager &
# magic process 可以用來啟動一個好用的工作列
exec fbpanel
# 或是秀出漂亮的桌面 icon, 注意: magic process 只能有一個
exec idesk

代碼: 選擇全部
# 下面這一行不建議使用, 既不能動態更換 WM, 又會讓 /bin/sh 多佔一個 process
x-window-manager


動態更換 WM 方法(注意這時 WM 不能是 magic process):
在 X 底下:
代碼: 選擇全部
killall -1 x-window-manager
update-alternatives --config x-window-manager
x-window-manager &

這樣可以在不影響所有執行中軟體的情況下更換 WM
不過, 有少數 WM 被 kill 掉時會不太穩...大部份的 WM 都可用此方法動態更換


用 xinit 不用 startx 的理由:
1. 省一個 process
2. 不會多出 .Xauthority 這個討厭的檔案


從 console 進入 X 的節省 process 密技
代碼: 選擇全部
xinit & logout

如果想連 console 底下的訊息都清掉:
代碼: 選擇全部
xinit & clear ; logout
訪客
 

文章訪客 » 週二 3月 22, 2005 1:49 pm

debian 底下預設的 rxvt 和 x-terminal-emulator 通常是
rxvt-xterm 或 krxvt, 而不是 crxvt / rxvt-ml

所以可以執行
代碼: 選擇全部
update-alternatives --config rxvt
update-alternatives --config x-terminal-emulator

這樣選單裡預設的終端就會是 crxvt, 不用再一層一層地去找 crxvt 了
訪客
 


回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron