Contents
  1. 1. X window Manager, Display Manager
  2. 2. xinit - X Window system initializer
    1. 2.1. 功能
    2. 2.2. 用法
  3. 3. 修改
    1. 3.1. 以Console登入ubuntu
  4. 4. Reference

自從開始用urxvt後,覺得自己對x window system及它的設定檔們(.xinitrc, .Xresources, .xdefault, .xprofile)還是一知半解,剛好最近重灌ubuntu後urxvt掛掉,趁此機會邊修復邊紀錄。

X window Manager, Display Manager

X window manager是特殊的x clinet,操縱frame(window)的外觀和行為,並管理其他GUI application如瀏覽器,skype,檔案管理員等等, Display manager(login manager)則是一個圖形登入界面,讓使用者選擇要載入的x window manager及相關資料。

xinit - X Window system initializer

啟動X window system有兩種發法,一種是上面提到的Display manager如gdm(GNOME display manager), xdm, kdm等等,另一種是利用在文字界面下xinit指令,而較為常用的startx其實只是shell script,最終執行的指令會是xinit "$client" $clientargs -- "$server" $display $serverargs

功能

xinit主要功能是啟動X window server和第一個x window client,當此client結束時,xinit會結束x server並結束。

用法

1
xiit [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
  • client:用來指定基於x的應用程式,後面的option是要餵給client的參數,例如 firefox -g
  • server:用來指定啟動哪個x server,較常見的為/usr/bin/X/usr/bin/Xorg,display用來指定display number,若為0則表示是第一個display,option是餵給server的參數。

若不指定client,xinit會搜尋$HOME/.xinitrc,若存在則把它當shell script執行,否則預設為 xterm -geometry +1+1 -n login -display :0
若不指定server,xinit會搜尋$HOME/.xserverrc,存在則當shell script執行,否則預設為X :0

修改

以Console登入ubuntu

利用Display manager登入雖然方便,但操控的自由度和速度都比以console登入來得差,可以透過修改/etc/default/grub,將 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 改成 GRUB_CMDLINE_LINUX_DEFAULT=”text”,之後執行 sudo update-grub,往後開機後會直接登入tty1。

  • bashrc:加入以下修改,則如果登入的是tty1會自動執行xinit,帶起x window system。

    1
    2
    3
    if [ "$(tty)" = "/dev/tty1" ]; then
    xinit && exit
    fi
  • xinitrc:值得注意[ -f ~/.xprofile ] && source ~/.xprofile,讓xinit在執行window manager之前先讀取xprofile的設定。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #!/usr/bin/env bash

    #if [ -d /etc/X11/xinit/xinitrc.d ]; then
    # for f in /etc/X11/xinit/xinitrc.d/*; do
    # [ -x "$f" ] && . "$f"
    # done
    # unset f
    #fi
    #

    xset r rate 180 40 # Sane repeat rate
    xset -b # No bell
    xset -dpms # Keep screen on at all times
    [ -f ~/.xprofile ] && source ~/.xprofile
    [[ -f ~/.Xresources ]] && xrdb -merge "${HOME}/.Xresources"
    xrandr --output VGA1 --mode 1600x900

    # backlight
    xbacklight -set 65
    exec i3
  • xprfile:scim相關設定。

1
2
3
4
export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="scim"
scim -d

Reference

鳥哥的 Linux 私房菜 第二十三章、X Window 設定介紹
startx 及xinit 介绍
How do I boot into the console and then launch the Ubuntu desktop from it?

Contents
  1. 1. X window Manager, Display Manager
  2. 2. xinit - X Window system initializer
    1. 2.1. 功能
    2. 2.2. 用法
  3. 3. 修改
    1. 3.1. 以Console登入ubuntu
  4. 4. Reference