2016年8月29日 星期一

antix 16 中文設定 (我如何找到各家的 X Window 啟動檔?)

用 ps fx 指令查詢 processes 之間的親子關係 antix 既夠輕薄短小, 又夠主流 (e.g. 直接用apt-get 管理套件, 不必每次客製化之後還要重做 live CD) 所以從 2010 年它的前身 SimplyMepis 開始, 這一系列一直就是我的最愛。 可惜 antix 15 那一陣子, 我一直沒弄懂該在哪個設定檔裡面填中文相關的環境變數, 只好改用 lubuntu。 最近突想到一個好方法來追查正確的設定檔。 趁著 antix 16 登場時分享一下。 我用的是 antiX-16_386-full 。

dpkg-reconfigure locales 指令, (用空間棒) 把不需要的語言都刪掉、 只勾選 zh_TW.UTF-8, 並把它選為預設語言。 重開機之後, 中文顯示就沒問題了。 或是直接編輯 /etc/locale.gen 然後執行 locale-gen 也可以。

讓我卡關一兩年的, 是中文輸入。 不論是 gcin 還是 ibus, 都需要在啟動 X Window 時做一些全域設定, 讓後續所有的視窗/程序知道要找誰處理中文輸入。 最後終於發現: 需要改的兩個設定檔都在 ~/.desktop-session 目錄底下。 以 gcin 為例 (因為它比 ibus 輕巧多了, 配 antix 正正好), 安裝完之後, 只要加兩句、 登出再登入就 ok 了:

  1. 在 desktop-session.conf 裡面加一句 export XMODIFIERS="@im=gcin"
  2. 在可執行檔 startup (如果不存在, 就自己建一個) 這個 shell script 裡面加一句 gcin &

我是怎麼找到的呢? 最關鍵的問題是: XMODIFIERS 的值要在哪裡設定, 其他後續打開的視窗才看得見? (不相關, 但類似地, eval $(ssh-agent) 也需要如此。) 答案是: ps fx 這個指令可以查詢程序之間的親子關係。 在輸出裡面找到 icewm, 發現 /usr/bin/icewm-session 的父親是 /bin/bash /usr/local/bin/desktop-session , 而 /usr/local/bin/desktop-session 只是一個 shell script, 研讀這個檔案就知道系統啟動時到底參考了哪些設定檔。 學會這招, 就再也不必煩惱 「Gnome/KDE/Xorg 底下的個人啟始命令稿: 到底是 .xinitrc .xsession 還是 .xprofile?」 這樣的問題了!

順便一提, antix 16 的 initrd 有一個小 bug: 它不認得 lvm。 照著 這個問答, 在 /usr/share/initramfs-tools/scripts/local-top/lvm2 設定檔裡正確的位置加上 lvm vgchange -ayactivate_vg "$ROOT" 這一句, 然後 update-initramfs -u 並且把重建過的 initrd 拷貝到開機相關目錄取代原生版, 下次重開它就認得 lvm 了。 我已 在論壇留言, 希望下一版就會更正。

我的 2004 年古董筆電又可以拿出來安裝 2016 年的 OS 了!

12 則留言:

  1. 貴兄您好,請問您的gcin安裝後,右下角的小圖示有出現嗎?
    我安裝後沒有出現,導致雖然可以輸入中文,但是不知道現在輸入法的狀況,有點困擾。

    回覆刪除
  2. 我用 antix 沒問題啊。 你用的是 antix 嗎? 還是 ubuntu 哪一版? 搜尋 「gcin 圖示」 會看到很多篇在談 ubuntu unity 所造成的系統匣圖示消失問題。

    如果是 antix 卻有這問題, 請說明你安裝 gcin 的步驟囉。

    回覆刪除
    回覆
    1. 謝謝您的回覆,我是用antix 16。我在gcin外觀設定中"面板狀態"選擇"GTK雙圖示",就出現圖示了。不知道什麼原因,不過能解決問題就好了。

      接下來是解決沒有聲音的問題了,努力搜尋去...

      刪除
  3. 我安裝的是antix,用的是apt的安裝方式,不知為什麼會這樣,不過我在設定中將面板狀態改為GTK雙圖示就正常了,不知是什麼原因,不過能用就好了。

    接下來就是解決沒有聲音的問題了,努力搜尋...

    回覆刪除
  4. 老師您好~請問如何讓IceWM 的 keyboard and touchpad only work 筆電的話常常會滑到
    現在都用關閉touchpad的方式來暫時解決? 謝謝

    回覆刪除
    回覆
    1. 看不懂耶。 你就是不想用 touchpad 對嗎? 那就關掉就好囉? 有搜尋到其他人類似的需求嗎?

      刪除
    2. 很抱嫌表達的不好~就只是( 打字時停用觸控板) 這意思而已!! gnome與xfce 都有GUI可以操作! 我好像找到了
      https://wiki.archlinux.org/index.php/Touchpad_Synaptics_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#.E5.9C.A8.E6.89.93.E5.AD.97.E6.97.B6.E7.A6.81.E7.94.A8.E8.A7.A6.E6.91.B8.E6.9D.BF
      再來試看看那一個方法可以!!

      刪除
  5. 後來我用syndaemon -i 0.5 d 我的touchpad好像不支援PalmDetect!YA~我的USB也順利升級上去了!

    回覆刪除
  6. 網誌管理員已經移除這則留言。

    回覆刪除
    回覆
    1. 啊啊啊~~~抱歉! 不小心按錯鍵刪錯了~~ 重貼一次:

      「貴兄好,問個有點笨的問題,因為我對linux還不算熟,頂多開livec cd玩一玩而已。那我假如安裝antix在usb上,那我在上面做的更動會保存嗎?還是下次開機又回到一開始安裝的狀態? 」

      是的, 資料會保存, 因為 antix 是完整版。 不過後來我發現 eeepc 上面無法進入圖形介面。 所以最後我的隨身碟還是灌 lubuntu 16.04。 還有, 如果灌在隨身碟上, 一定要設定 psd: https://newtoypia.blogspot.tw/2016/05/psd.html [psd 不讓瀏覽器折磨開機隨身碟 ]

      刪除
  7. 老師我一直想把windows帶這走~有時還是需要windows連回公司!後來灌了antix 16在隨身碟上 想上在上灌VM又灌windows真的是需要一直好的隨身碟!後來買了m2介面SSD跟m2轉USB3 又有支援uasp 真的是順!容量大速度又快也算不貴!

    回覆刪除
  8. 哇, 太久沒買硬體, 什麼 m2 uasp 都是第一次聽到。 謝謝丫良分享, 下次
    來研究...

    回覆刪除