A problem about XCIN (so than I use English!!)

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

A problem about XCIN (so than I use English!!)

文章frankchi » 週四 10月 14, 2004 11:40 pm

XCIN (Chinese XIM server) version 2.5.3-pre2.
(module ver: 20010918, syscin ver: 20000210).
(use "-h" option for help)

xcin: locale "zh_TW" encoding "big5"
xcin: 錯誤: IMOpenIM() with name "xcin-zh_TW" transport "X/" failed.
frankchi
可愛的小學生
可愛的小學生
 
文章: 20
註冊時間: 週四 10月 14, 2004 11:38 pm

re:A problem about XCIN (so than I use English!!)

文章訪客 » 週五 10月 15, 2004 10:48 am

看起來好像是locale設定錯誤

in ~/.xsession

export LC_ALL=zh_TW.Big5
export LANG=zh_TW.Big5
export XMODIFIERS=@im=xcin
訪客
 

又一新問題

文章frankchi » 週五 10月 15, 2004 5:19 pm

好了,但是現在要如何讓它自動背景啟動,就是說我進xwin不需要在自己開一個xtern來執行xcin呢?我只有一個root帳號,沒有一般帳號,不知道是不是這個原因沒有.xsession和.xinitrc,所以我自行產生放在/root下,內容皆為:
export LC_ALL=zh_TW.Big5
export LANG=zh_TW.Big5
export XMODIFIERS="@im=xcin"
exec xcin &

可是沒效,到底要改那個檔呢?或是怎麼辦?

另外我在選單裡看到scim,這是輸入法嗎?該如何啟動呢?
最後由 frankchi 於 週六 10月 16, 2004 5:53 pm 編輯,總共編輯了 1 次。
frankchi
可愛的小學生
可愛的小學生
 
文章: 20
註冊時間: 週四 10月 14, 2004 11:38 pm

re:A problem about XCIN (so than I use English!!)

文章eliu » 週五 10月 15, 2004 5:29 pm

頭像
eliu
可愛的小學生
可愛的小學生
 
文章: 44
註冊時間: 週六 8月 28, 2004 1:33 pm
來自: 新竹

re:A problem about XCIN (so than I use English!!)

文章d2207197 » 週五 10月 15, 2004 5:41 pm

您進入 X window 的方式為何? 是 startx 嗎?
不同的啟動方式,所讀取的檔案不同
像是 startx 是去讀取 .xinitrc。

沒有 xcim 這個套件,只有 xsim,這是一個簡體中文的輸入法
不知道套件是幹嘛用的,可以用 apt-cache show 來查詢
Debian Administrator 對 apt-cache , apt-get 的功能清楚瞭解是最基本的。

本來就不會有 .xsession 和 .xinitrc,都是要自己建立的

建議建立一個一般使用者,作為你平日使用的帳號
以 root 進入 X,或作為平日使用帳號並不是聰明的作法。
最好是在不得以的情況下再 su 到 root
用 adduser 來建立一個一般 user 吧
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

re:A problem about XCIN (so than I use English!!)

文章frankchi » 週五 10月 15, 2004 10:12 pm

我是用gdm進入xwin。

抱歉是我筆誤,是scim,好吧那我在自己找官方網站看看。

因為只是家用電腦,網路甚至沒有實體ip所以我想這麼做給自己方便。
所以請問各位大大這樣難到是要改gdm的設定?
frankchi
可愛的小學生
可愛的小學生
 
文章: 20
註冊時間: 週四 10月 14, 2004 11:38 pm

re:A problem about XCIN (so than I use English!!)

文章d2207197 » 週五 10月 15, 2004 10:40 pm

scim 很不錯喔!!只是還沒有可以自動選字的注音輸入法,所以我沒用

就算沒有實體 IP,也最好不要用 root 來當一般 user
事實上也不會太方便,也是有許多程式限制使用 root 開啟,還必需切到一般 user 才可以啟動
因為使用 root 太不安全了,就算不被入侵,也容易把系統搞爛。

gdm 喔,如果你是使用 gnome 的話,可以參考這篇文章
http://wiki.debian.org.tw/index.php/gdm
我以前在 Debian 使用 gdm 登入 gnome 就是用這種方式

或是可以把要啟動的 GUI program 通通寫到 .xsession,然後在 gdm 中選擇 Xsession 來啟動。
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

頭脹起來了 >.<

文章frankchi » 週五 10月 15, 2004 10:55 pm

困惑,到底這些有啥差異呀?
.bashrc
.Xsession
.xinitrc
/etc/environment
.gnomerc
和locale,它的設定檔是那個?

這些到底有什麼不同啦?怎麼都是加入一樣的東西。不會互相衝突嗎?有什麼從屬關係或階級關係呢?
frankchi
可愛的小學生
可愛的小學生
 
文章: 20
註冊時間: 週四 10月 14, 2004 11:38 pm

re:A problem about XCIN (so than I use English!!)

文章yenjinc » 週五 10月 15, 2004 11:02 pm

平常使用一般使用者
然後裝上sudo
改一下/etc/sudoers
逼不得已需要特權時
yenjinc@S200n $ sudo xxx 就行囉
還挺方便的,感覺也比較安全
yenjinc
懵懂的國中生
懵懂的國中生
 
文章: 190
註冊時間: 週三 7月 14, 2004 12:29 am

re:A problem about XCIN (so than I use English!!)

文章chihchun » 週六 10月 16, 2004 6:10 am

frankchi 寫:我是用gdm進入xwin。

抱歉是我筆誤,是scim,好吧那我在自己找官方網站看看。

因為只是家用電腦,網路甚至沒有實體ip所以我想這麼做給自己方便。
所以請問各位大大這樣難到是要改gdm的設定?


單一使用者的做法是填在 .gnomerc 中
代碼: 選擇全部
XMODIFIERS="@im=SCIM"
export XMODIFIERS
GTK_IM_MODULE="scim"
export GTK_IM_MODULE
scim -f socket -d
scim -d


如果你想同時用 GTK2 IMModule 與 X Input Method,那麼就必需跑兩次 scim (如上範例)。
頭像
chihchun
摩托學園!學園長們
摩托學園!學園長們
 
文章: 185
註冊時間: 週三 11月 27, 2002 10:17 am
來自: KaLUG

Re: 頭脹起來了 >.<

文章chihchun » 週六 10月 16, 2004 8:00 am

frankchi 寫:困惑,到底這些有啥差異呀?
.bashrc
.Xsession
.xinitrc
/etc/environment
.gnomerc
和locale,它的設定檔是那個?

這些到底有什麼不同啦?怎麼都是加入一樣的東西。不會互相衝突嗎?有什麼從屬關係或階級關係呢?


簡易敘述如下

locale 語系環境設定,在 Debian/GNU Linux 平台上慣稱指示 GNU C Library 所提供的 National Language Support,這軟體包含了語系資料與支援的函式庫等,這個功能提供了不同語系的字元分類, 大小寫樣式, 排序辦法, 時間與日期格式, 數字與貨幣格式, 翻譯訊息, 字元翻頁尺寸, 姓名, 地址, 電話, 度量單位等等,任何應用程式需要使用各國的語言習慣時便需要正確的語系環境設定。

在 Debian/GNU Linux 下,您可以使用 "locale -a" 來查閱系統上已經設定妥當的語系檔案。
代碼: 選擇全部
$ locale -a
C
POSIX
zh_CN
zh_CN.gb2312
zh_TW
zh_TW.big5
zh_TW.utf8


或者使用 validlocale 指令,例如系統中含有 zh_TW.Big5 的支援,而缺少 EUC-TW 編碼的支援
代碼: 選擇全部
$ validlocale zh_TW.BIG5
locale 'zh_TW.BIG5' valid and available
validlocale zh_TW.EUC-TW
$ locale 'zh_TW.EUC-TW' not available
zh_TW.EUC-TW EUC-TW


當你需要使用繁體中文環境時,通常得選擇使用 Big5 或 UTF8 的編碼格式。在 Debian 系統,可以使用 dpkg-reconfigure 重新設定您需要的語系環境。
代碼: 選擇全部
# dpkg-reconfigure locales


加入新的語系後,可用 validlocale 重複確認。這些步驟是將您需要的語系編譯成系統需要的檔案,由於 GNU C Library 支援大量的語系,您並不需要將所有的語系編譯成程式必要的檔案,那將造成額外的磁碟空間浪費。設定好您需要的語系後,仍然需要透過特定的環境變數讓應用程式知道您偏好的語系類別。這些 LC_* 開頭的環境變數,可以依照不同的需求(例如您希望使用美式日期與時間,便會更動 LC_TIME 的配置) 設定成不同的語系。您可以設定 LANG/LC_ALL(若 LANG 不為空,那麼便採用該數值,其次 LC_ALL,其次其他 LC_* 變數)。以此為例,如果不確定現行的語系配置,請於終端機中下達 locale 指令查閱
代碼: 選擇全部
$ locale
LANG=zh_TW.Big5
LC_CTYPE="zh_TW.Big5"
LC_NUMERIC="zh_TW.Big5"
LC_TIME="zh_TW.Big5"
LC_COLLATE="zh_TW.Big5"
LC_MONETARY="zh_TW.Big5"
LC_MESSAGES="zh_TW.Big5"
LC_PAPER="zh_TW.Big5"
LC_NAME="zh_TW.Big5"
LC_ADDRESS="zh_TW.Big5"
LC_TELEPHONE="zh_TW.Big5"
LC_MEASUREMENT="zh_TW.Big5"
LC_IDENTIFICATION="zh_TW.Big5"
LC_ALL=


另外兩個環境變數是用於設定輸入介面的優先輸入伺服器。分別是 XMODIFIERS 與 GTK_IM_MODULE。XMODIFIERS 用來設定 X Input Method 的伺服器,GTK_IM_MODULE 當然就是 GTK+ IMMODULE。scim 自己尚有幾個變數可以設定本身的輸入法優先值,這裡略過不說明。想查看自己的環境變數請使用指令 "printenv" 。

以上所有環境變數,都必須寫在系統設定檔中,以便執行 X 視窗時可以載入。寫在那一個設定檔案,端視個人喜好與需求。主要的差別在於全域系統配置(會套用到所有的用戶身上)與單一用戶配置。

"/etc/environment" 是全域系統配置,許多程式執行前會先載入此檔的設定。這個檔案只能擺設定檔,格式為 "NAME=VALUE",切勿加入 export 等指令。

".bashrc" 這個檔案是用在每次登入後使用 bash 時載入的配置檔案,請參考 bash(1) INVOCATION 一節。當你每次開啟一個模擬終端機或是從 Console 登入,或是使用 remote shell 會自動執行一次。您可以把環境變數設定在此,然後以 export 或 declare -x 指令宣告為延續到下個指令的環境變數。您可以在這個檔案放入每次登入需要執行的指令,但是這個檔案不適宜擺放 xcin/scim/gcin 等輸入法的執行程式,因為如此一來會在每次開啟虛擬終端機之後才執行輸入法伺服軟體。

至於剩下的 .Xsession .gnomerc 是所謂 X Session 設定檔,而 .xinitrc 則是 X Window System initializer 設定檔。這些檔案都是 sh 為直譯器的命令稿,用途是執行啟動 X 視窗系統時的指令。因此您可以在這些檔案中寫入想設定的環境變數(以 export 宣告)以預備執行的指令,這些檔案很適合擺只需要啟動一次的輸入法伺服軟體。您必須注意的是,這些檔案執行的時機與寫法。

.xinitrc 只有在手動執行 "startx" 的時候才會執行,不適合配合使用 gdm/xdm 的使用者。這個檔案會作為您啟動 X 視窗的整個命令稿。因此千萬不可只在其中寫 xcin 而已,必須將欲執行的 Window Manager 與相關的應用程式也寫入。例如
代碼: 選擇全部
$ cat > ~/.xinitrc
LANG=zh_TW.Big5
XMODIFIERS="@im=SCIM"
export XMODIFIERS
GTK_IM_MODULE="scim"
export GTK_IM_MODULE
scim -f socket -d &
scim -d &
exec gnome-session


.xsession 或 .Xsession (X 大小寫皆可)的功能有點類似 .xinitrc,.xsession 可以被用在 gdm/xdm/startx 等,權限必須為可執行。同樣必須執行必要的 Window Manager。如果您在這個檔案中寫了命令,那麼會更改 gdm/xdm/startx 的預設執行程式。範例請參照 .xinitrc。

.gnomerc 也是 X Session 設定檔的一部份,不同的是它只會在執行 gnome-session 套用,使用 startx/gdm/xdm 時都會執行。您可以在這檔案中寫入要執行的程式與設定,登入時自動載入。如
代碼: 選擇全部
XMODIFIERS="@im=SCIM"
export XMODIFIERS
GTK_IM_MODULE="scim"
export GTK_IM_MODULE
scim -f socket -d
scim -d


以上說明以 sarge/sid 環境為範例。首稿結構不明確(大量略過 X 啟動細節)及尚未復審,如有錯誤請見諒。

參考手冊:
locale(1), locale-gen(8), locale(5), locale(7), validlocale(8), printenv(1), bash(1), Xsession(5), xinit(1x)
-Rex, geek by nature linux by choice
http://people.debian.org.tw/~chihchun
頭像
chihchun
摩托學園!學園長們
摩托學園!學園長們
 
文章: 185
註冊時間: 週三 11月 27, 2002 10:17 am
來自: KaLUG

re:A problem about XCIN (so than I use English!!)

文章chihchun » 週六 10月 16, 2004 8:03 am

d2207197 寫:scim 很不錯喔!!只是還沒有可以自動選字的注音輸入法,所以我沒用


希望有朋友可以協助將酷音或拼音輸入法整合進 SCIM。或 修復現有的注音輸入問題。(歡迎與我聯絡討論) :-)
-Rex, geek by nature linux by choice
http://people.debian.org.tw/~chihchun
頭像
chihchun
摩托學園!學園長們
摩托學園!學園長們
 
文章: 185
註冊時間: 週三 11月 27, 2002 10:17 am
來自: KaLUG

re:A problem about XCIN (so than I use English!!)

文章d2207197 » 週六 10月 16, 2004 10:56 am

樓上 chihchun 大所說有一點點小錯誤
.bashrc 並非登入時所會載入的配置當,而是當您再命令列上直接執行 bash 時才會載入的配置當。

為什麼平常登入也會載入 .bashrc 呢? 那是因為大部分的 distribution 預設都會在 .bash_profile (或 .bash_login 或 .profile) 裡面加入 source .bashrc。
其實登入時真正會載入的是 .bash_profile (或 .bash_login 或 .profile)。

.bash_profile 有另外兩個同義檔案,就是 .bash_login 和 .profile。當 .bash_profile 不存在時,shell 會改去讀 .bash_login,如果 bash_login 也不存在,那再改去讀 .profile。
有 .bash_login,那是否也有 .bash_logout,答對了!!
不過 /etc/skel/ 中通常沒有 .bash_logout,所以你家目錄也通常沒有。有需要就自己寫囉。

另外,再補充一些東西:
gdm, kdm, xdm 裡面的 Session 選項內容是在 /usr/share/xsessions 裡面。
查看裡面的 gnome.desktop 檔案,可以知道當你在 gdm 中 Session 選擇,他真正會去執行的程式是那個。

而 gdm 中 Session 選 Xsession,其實他就是去執行 /etc/X11/Xsession。
/etc/X11/Xsession 是個 shell script ,直接閱讀並無太大障礙。

至於 startx 會去執行的命令稿,可以直接瀏覽 /usr/X11R6/bin/startx 內容。
他也是個 shell script。看完後你對 startx 的執行流程就能完全了解。

由於每個 Distribution 的 startx, Xsession 版本不一定一樣,所以 .gnomerc, .xsession, .xinitrc 也可能有不同的執行時機。
雖然大致上相同( 小弟只看過 .gnomerc 有變動 ),但最好還是直接看 /etc/X11/Xsession, /usr/X11R6/bin/startx 等等你真的直接執行的程式的內容來了解,不要光靠猜想測試。



而 gdm 中 Session 選 Xsession,其實他就是去執行 /etc/X11/Xsession
頭像
d2207197
鑽研的研究生
鑽研的研究生
 
文章: 1763
註冊時間: 週二 5月 27, 2003 9:57 pm
來自: 火星

re:A problem about XCIN (so than I use English!!)

文章frankchi » 週六 10月 16, 2004 6:41 pm

感謝各位大叔的回覆,待小弟有空會整理到wiki,各位大大的好心不會白費。
不過小弟最初的問題,就是如何一進xwin就可以用xcin的問題,在我把所有設定檔都加入了應該要有的敘述之後還是沒辦法。

最後我自己試出了解決之道,原來是一個非常無聊的語法問題。
在我的.gnomerc裡面其中一行:
正確:exec xcin &
正確:xcin &
錯誤:xcin
錯誤:xcin&
錯誤:exec xcin
錯誤:exec xcin&
frankchi
可愛的小學生
可愛的小學生
 
文章: 20
註冊時間: 週四 10月 14, 2004 11:38 pm

re:A problem about XCIN (so than I use English!!)

文章chihchun » 週日 10月 17, 2004 8:26 pm

d2207197 寫:樓上 chihchun 大所說有一點點小錯誤
.bashrc 並非登入時所會載入的配置當,而是當您再命令列上直接執行 bash 時才會載入的配置當。

為什麼平常登入也會載入 .bashrc 呢? 那是因為大部分的 distribution 預設都會在 .bash_profile (或 .bash_login 或 .profile) 裡面加入 source .bashrc。
其實登入時真正會載入的是 .bash_profile (或 .bash_login 或 .profile)。


相信是用字誤解了。敬請查閱 bash(1) FILES 章節。
代碼: 選擇全部
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file

在 X Window System 每次開啟一個虛擬終端視窗(xterm, gnome-terminal)時,如果用戶使用 bash 作為預設 shell,那麼便會自動執行 ".bashrc"。(此時是不會執行 .bash_profile 的,唯有登入時才會執行 .bash_profile)。

其實無論 startx/gdm/xdm/kdm 在 Debian 系統預設都是執行 /etc/X11/Xsession。我相信介紹 Steup by Debian Rules,會比指示如何 hack scripts 來得重要且較有效益。基本上,如果使用者連執行的指令都不知道位在那裡,那麼要求使用者分析執行過程未免太強人所難。更別說讀到指令稿中關於 x-session-manager/x-window-manager/x-terminal-emulator 以及載入設定的機制等等的未全部文件化的 Debian Policy. ;-)
-Rex, geek by nature linux by choice
http://people.debian.org.tw/~chihchun
頭像
chihchun
摩托學園!學園長們
摩托學園!學園長們
 
文章: 185
註冊時間: 週三 11月 27, 2002 10:17 am
來自: KaLUG

下一頁

回到 debian desktop

誰在線上

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