startx 是啟動 X Window System 的標準進入腳本,實際調用 xinit 啟動 X Server 並載入用戶會話。本文說明語法、參數傳遞規則、.xinitrc/.xserverrc 客製化要點。

startx [客戶端程式] [-- 伺服器選項]
| 位置 | 參數 | 說明 |
|---|---|---|
| 前 | 客戶端程式 | 要啟動的 X 客戶端 (如 gnome-session、startkde、~/.xinitrc 指定腳本) |
| 後 | -- 伺服器選項 | 直接傳遞給 X Server (如 -- :1 指定顯示器編號、-- -dpi 96) |
startx 讀取 ~/.xinitrc (不存在則用系統預設 /etc/X11/xinit/xinitrc)。xinit 客戶端程式 -- 伺服器選項。xinit 啟動 X Server (讀取 ~/.xserverrc 或預設 X :0)。
# ~/.xinitrc
#!/bin/sh
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
exec gnome-session # 或 startplasma-x11, i3, dwm 等
# ~/.xserverrc
#!/bin/sh
exec /usr/bin/X -nolisten tcp "$@"
startx # 依 .xinitrc 啟動預設桌面
startx ~/.xinitrc.i3 # 指定啟動 i3wm
startx -- :1 # 在第二個顯示器 (:1) 啟動
startx -- -depth 16 # 強制 16-bit 色深
理解 startx → xinit → X Server 的委派鏈,即可靈活控制多桌面、多顯示器、遠端桌面啟動場景。