XCIN ±`¨£°ÝÃD»P¸Ñµª: A. I18N »P XIM ¬ÛÃö°ÝÃD: ------------------------ QA.1: ¤°»ò¬O I18N? ¤°»ò¬O locale? ¤°»ò¤S¬O XIM? QA.2: ¤°»ò¼Ëªº¨t²Î¤~¨ã¦³¤¤¤å I18N ªºÀô¹Ò? Y§Úªº¨t²Î¥Ø«e¨S¦³ I18N ªºÀô ¹Ò¡A§Ún¦p¦ó«Ø¥ß¥¦©O? QA.3: §Ún¦p¦ó¬d¬Ý§Úªº¨t²Î¬O§_¤ä´© I18N ¥H¤Î¤¤¤å locale ©O¡H QA.4: ¦b FreeBSD-3.0/4.0, §Úªºµ{¦¡µLªk³]©w zh_TW.Big5 locale, ¬O¤£¬O»Ý n¥[¤J -DXLOCALE? QA.5: §Úªº¨t²Î¤¤§ä¤£¨ì /usr/X11R6/lib/X11/locale/zh_CN.GB2312/XLC_LOCALE, ½Ð°Ý³oÓÀ³¸Ó¨ì¨ºùؤU¸ü©O? B. xcin ¦w¸Ë°ÝÃD: ----------------- QB.1: §Ú¤w¸g¦w¸Ë¤F Berkeley DB2 ¤F¡A¬°¤°»ò¦b configure ®ÉÁÙ¬O¸ò§Ú»¡: You need Berkeley DB 2 to compile xcin. Please use --with-dbinc and --with-dblib to configure. QB.2: ¬°¤°»ò¦w¸Ë xcin ®É configure ¸ò§Ú»¡n libtabe ©O¡H¥H«e³£¤£»Ýn°Ú! QB.3: §Ú¨ì³B³£§ä¤£¨ì tsi.db »P yin.db, ¥H«e¤£¬O¦³ libtabe-tsi-bin.tar.gz ³oÓ®M¥ó¶Ü¡H¨ì¨ºùØ¥h¤F¡H QB.4: ¬°¤°»ò§Ú¦b°õ¦æ configure ®É¡A·|¦³³o¼Ëªº¿ù»~°T®§©O¡H You need X11R6 to compile xcin. Please use --x-includes and --x-libraries to configure. QB.5: §Ú²Ä¤@¦¸ compile xcin ®É¨S¦³¸Ë bimsphone (¦b configure ®É¥[¤F --disable-bimsphone ¿ï¶µ)¡A¦ý²{¦b·Q¦A¸Ë bimsphone, ½Ð°Ýn«ç»ò °µ¡H»Ýn¾ãÓ xcin ¨t²Î«·s compile ¶Ü¡H QB.6: §Ú¦b¦w¸Ë xcin ®É¡Aconfigure ¨S¦³°ÝÃD¡A¦ý¦w¸Ë¨ì¤@¥b«o¥X²{¥H¤Uªº¿ù»~: gcc -Wall -fsigned-char -O2 -DHAVE_CONFIG_H -I../../../src/include \ -c -o set_locale.o set_locale.c set_locale.c: In function `locale_setting': set_locale.c:68: `CODESET' undeclared (first use in this function) set_locale.c:68: (Each undeclared identifier is reported only once set_locale.c:68: for each function it appears in.) make[3]: *** [set_locale.o] Error 1 QB.7: ¬°¤°»ò§Ú°õ¦æ xcin ®É¡A·|¶]¥X¦p¤Uªº¿ù»~°T®§©O¡H xcin internal error: NULL xcin locale_sub_path QB.8: ¬°¤°»ò§Ú°õ¦æ xcin ®É¡A·|¶]¥X¦p¤Uªº¿ù»~°T®§©O¡H xcin: error: IMOpenIM() with name "xcin" transport "X/" failed. C. xcinrc ³]©w¬ÛÃö°ÝÃD: ----------------------- QC.1: ¤°»ò¬O xcinrc ÀÉ¡H¥¦©ñ¦b¨º¸Ì©O¡H QC.2: §ÚµLªk±Ò°Ê xcin, §ÚÃhºÃ¬O§Úªº fontset ³]©w¦³°ÝÃD¡A§Ú¸Ó¦p¦óÀˬd©O? QC.3: ½Ð°Ý xcinrc ¤ºªº INDEX_FONT ¬O°µ¤°»òªº°Ú? QC.4: ¨º xcinrc ¤ºªº OVERSPOT_FONTSET ¤S¬O°µ¤°»òªº¡H QC.5: ½Ð°Ý xcinrc ¤º¬°¤°»òn¤À zh_TW.Big5 »P zh_CN.GB2312 µ¥¦hÓ¤p¸`©O? ¥¦Ìªº³]©w¶µ¥Ø¤£³£¬O¤@¼Ëªº¶Ü? QC.6: §Úªº¨t²Î¤¤¤w¸g¦³ zh_TW.BIG5 locale ¤F¡A¦Ó¥B /usr/X11R6/lib/X11/locale ©³¤U¤]¤w¦³ zh_TW.BIG5/XLC_LOCALE ÀÉ¡A¬°¤°»òÁÙ¬OµLªk±Ò°Ê xcin? QC.7: ¬°¤°»ò§Ú¦b°õ¦æ xcin ®É¡A·|¶]¥X³o¼Ëªº¿ù»~°T®§¡H xcin: error: rcfile: DEFAULT_IM: value not specified. QC.8: ¦p¦ó§ïÅÜ xcin ¥Dµøµ¡ªº±Ò°Ê¤j¤p»P¦ì¸m©O¡H QC.9: ¬°¤°»ò xcin ·|¦³¨âÓ¤£¦P¤j¤pªº¥Dµøµ¡©O¡H QC.10: §ÚÁÙ¬Oı±o¨ºÓ²Ä¤G¥Dµøµ¡¤Ó¦ûªÅ¶¡¡A¥i¤£¥i¥H³s¥¦³£¤£n°Ú¡H QC.11: ¤°»ò¬O OverTheSpot ©O¡H QC.12: §Ún¦p¦ó§ïÅÜ xcin ªº¿é¤J¼Ò¦¡©O¡H D. ¿é¤Jªk¼Ò²Õ¬ÛÃö°ÝÃD: ---------------------- QD.1: xcin-2.5 ªºª`µ¿é¤Jªk¥Î°_¨Ó¦n©_©Ç¡A¸ò¤@¯ëªº¿é¤J²ßºD¤£¤Ó¤@¼Ë¡C QD.2: ¦A즳ªº xcin-2.3.X µüµ¿é¤Jªk¤¤¡A¥i¥H«ö SHIFT+, SHIFT+. ¦Ó¿é¥X ¥þ§Î¼ÐÂI¡A¦ý xcin-2.5 ªº bimsphone ¬°¤°»ò¨S¦³©O? QD.3: §Ún¦p¦ó§ïÅܪ`µ¿é¤JªkªºÁä½L¹ïÀ³©O¡H¦pʤÑÁä½L©Î³\¤óÁä½L¡H QD.4: ¹³ª`µ³oºØ¤@Ó keycode ¥i¥H¹ï¬M¨ì¦hºØ¦rªº¿é¤Jªk, cin2tab ¦ü¥G·|§â phone.cin ¸Ìªº¶¶§Ç¶Ã±¼¡C¹³ "¤Ñ" ¦b .cin ªº¶¶§Ç¬O "¤Ñ²KÐÝÌZÜ_Ôì", ¥´¥X¨Óªº¶¶§Ç«o¬O "Ôì²KÜ_ÌZÐݤÑ", ¨ä¥L¦r¤]¬O¤@¼Ë, ª©(2.3.02) ´N¨S ¦³³oºØ±¡§Î¡C³o¬O bug ÁÙ¬O feature? QD.5: ¦p¦óקï xcin ±Ò°Êªº¹w³]¿é¤Jªk©O¡H QD.6: ½Ð°Ýn¦p¦ó¼W¥[·sªº¿é¤Jªk©O¡H QD.7: §Ú¦p¦ó¦b bimsphone ¿é¤Jªk¤¤¥[¤J·sµü©O¡H QD.8: §Úµo²{ª`µ¿é¤Jªk¤¤¥i¥H³sÄò¿é¤J¨âÓ £t¡A©ÎªÌ¥i¥H¿é¤J¦p £«£x ³o¼Ëªº µ¡A³o¦ü¥G«Ü¤£¦X²z¡H E. xcin ³]p¬ÛÃö°ÝÃD: --------------------- QE.1: ½Ð°Ý§Ún¦p¦ó Debug xcin? QE.2: xcin-2.5 ¦b 64 bits ¾÷¾¹¤W (¦p DEC alpha) ·|¤£·|¦³°ÝÃD©O? QE.3: ½Ð°Ý¤°»ò¬O IC Check? ¤°»ò¬O garbage collection? ³o¨âÓªFªF¦³Ãö¶Ü¡H F. ¨ä¥Lªº°ÝÃD: -------------- QF.1: rxvt ¥i¥H¬Ý¤¤¤å¡A¤]¥i¥H¥Î xcin-2.5 ¥´¤¤¤å¡A¦ý¦n¹³¦³¦n¦h°ÝÃD¡A¨Ò¦p¤¤ ¤åÅã¥Ü¦³®ÉÔ·|²ö¦W©_§®ÅܶýX¡BÃö±¼ xcin ®É¦³®ÉÔ rxvt ¤]·|²ö¦W©_§® ¦a®ø¥¢ .... «ç»ò·|³o¼Ë©O¡H QF.2: §Ú¦b xcin+xedit ¥i¥H¥´¥X¤¤¤å¡A¤£¹L xedit ¦b¸ü¤JÀɮ׮ɦ³¨S¦³ xcin ³£·|³y¦¨ segmentation fault, ³o©M xcin-2.5 ¨S¦³Ãö«Y§a? QF.3: ¬°¤°»ò¦b netscape-4.X ùØÀY¡A¨C¦¸¥´¤J¤@Ó¤¤¤å¦r xcin ´N·|¤Á¨ì¡u^ ¼Æ¡v¿é¤J©O? QF.4: §Ú¦b CLE-0.8 ¤U¡A¨Ï¥Î xcin-2.5 + rxvt-2.6.0, ¦ý¨C¦¸¿é¤J¤@Ó¤¤¤å¦r ®É¡A´N·| core dump, «ç»ò¿ì©O? QF.5: §Ú¤w±N libtabe ¦w¸Ë¦b /usr/local ©³¤U¤F¡A¦Ó¥B§Ú¤]¦w¸Ë xcin ¦¨¥\¤F¡A ¦ý¬°¤°»ò·í§Ú±Ò°Ê xcin ¨Ã·Ç³Æ¨Ï¥Î bimsphone ¿é¤Jªk®É¡A«o¤´¨£¨ì³o¼Ëªº ¿ù»~°T®§¡H QF.6: ·í§Ú¨Ï¥Î xcin-2.5 ªº bimsphone ¦b netscape ¤U¿é¤J¤¤¤å®É¡A¬°¤°»ò¦b «ö¤U¤è¦VÁä¡B©Î¥Î·Æ¹«ÂI¿ï netscape ¤Wªº´å¼Ð®É¡A쥻¦s¦b xcin µøµ¡¤¤ ªº¤¤¤å¦r´N®ø¥¢¤F¡H QF.7: ¬°¤°»ò·í§Ú¤Á´«µêÀÀ®à±®É¡A xcin µLªk¸òµÛ¸õ¹L¨Ó©O¡H QF.8: ¬°¤°»ò¦b¨Ï¥Î OverTheSpot ®É¡A·í§Ú§â·Æ¹«´å¼Ð²¾¨ì OverTheSpot ªºµø µ¡¤W®É¡A¸Óµøµ¡·|¤@ª½°{°Ê¡A¦ý¥un´å¼Ð²¾¶}«á´N¥¿±`¤F¡H QF.9: ¬°¤°»ò§Ú±`±`¦bÃö±¼ xcin ¤§«á¡A¥Ø«e¤u§@¤¤ªº rxvt ¤]¸òµÛ±¾±¼¤F¡H QF.10: ¨Ï¥Î KDE ®É¡A¨C¦¸¤Á´«¿é¤Jªk xcin µøµ¡³£·|Åܦ¨«e´ºµøµ¡¡A¨C¦¸§Ú³£n¥Î ·Æ¹«ÂI¤@¤U rxvt ¤~¯àÄ~Äò¿é¤J¡A«ç»ò¿ì©O¡H ============================================================================== A. I18N »P XIM ¬ÛÃö°ÝÃD: ------------------------ QA.1: ¤°»ò¬O I18N? ¤°»ò¬O locale? ¤°»ò¤S¬O XIM? I18N ¬O InternationalizatioN ªºÁY¼g¡A¥¦¬O¤@Óµ{¦¡°ê»Ú¤Æªº¸Ñ¨M¤è®×¡A¥Ø¼Ð¬O §Æ±æ°µ¨ì¥un¼g¦n¤@¥÷µ{¦¡½X¡A´N¯à±Nµ{¦¡¥Î¦b¤£¦Pªº»y¨t¤W¡A¦Ó¤£»Ýn¨C¦¸´«¤@ Ó»y¨¥©Î¤º½X¨t²Î´Nn§ï¼gµ{¦¡¥»¨¡C ¦b UNIX (¥]¬A GNU/Linux, FreeBSD ....) ªº I18N ¬[ºc¤¤¡A¨ä¤ä´©¬O±q©³¼hªº¨t ²Î¨ç¦¡®w libc °µ°_ªº¡A¥¦´£¨Ñ¤@¨Ç¼Ð·Çªº¨ç¦¡©I¥s¡AÅýµ{¦¡¯à°÷¦b¤£¦Pªº»y¨tÀô ¹Ò¤U¡A±o¥H³B²z¸Ó»y¤åªº¤å¦r¡B¨Ï¥Î¸Ó»y¤å°µ°T®§¿é¥X .... µ¥µ¥¡C ¦Ó locale «üªº¬O¡u°Ï°ì¤Æ°T®§¸ê®Æ®w¡v¡A¨ä¤º®e¬°³B²z¦U»y¤å©Ò»Ýªº¸ê®Æ¡C¤@Ó I18N ªºµ{¦¡¥²¶·³z¹L libc ¤Î¨ä¥L¨ç¦¡®wªº©I¥s¤¶±¨Ó¨Ï¥Î locale ªº¸ê®Æ¡A¥H¹F ¨ì³B²z¸Ó»y¤åªº¤u§@¡C¦]¦¹¡A¦bµ{¦¡±Ò°Ê«e¡A§ÚÌ¥²¶·¥ý³]¦n locale¡A¬D¿ï§ÚÌ©Ò »Ýªº»y¨t¡A«h©¹«á I18N ¦b¦¹Àô¹Ò¤U°õ¦æ®É¡A´N·|¥H¸Ó»y¨t¨Ó¹B§@¡C XIM ¬O X Input Method ªºÁY¼g¡A¬O X Window Àô¹Ò¤Uªº¼Ð·Ç¿é¤Jªk¨ó©w¡A¤ä´©¦¹ ¨ó©wªºÀ³¥Îµ{¦¡ (§Y XIM client) ¥i±µ¨ü¤ä´©¦¹¨ó©wªº¿é¤Jªkµ{¦¡ (§Y XIM server) ªº¿é¤J¡A¦p¦¹§Y¥i¹F¨ì«D^»y¨t (¨Ò¦p¤¤¤å¡B¤é¤å¡BÁú¤å .... µ¥) ªº¤å¦r¿é¤J¡C ¥Ñ©ó XIM ¬O¥H¨t²Î©³¼hªº I18N ¬°°ò¦¡A¬G¦b¨Ï¥Î XIM ¤§«e¡A±z¥²¶·³]¦n locale, ¨Ã¥B³]¦n¾A·íªº XIM Àô¹ÒÅܼơC ¦³Ãö locale »P XIM µ¥Àô¹ÒÅܼƪº³]©w¤è¦¡¡A½Ð¨£ UserGuide ¤@¤åªº»¡©ú¡C ------------------------ QA.2: ¤°»ò¼Ëªº¨t²Î¤~¨ã¦³¤¤¤å I18N ªºÀô¹Ò? Y§Úªº¨t²Î¥Ø«e¨S¦³ I18N ªºÀô ¹Ò¡A§Ún¦p¦ó«Ø¥ß¥¦©O? Y±z¬O¨Ï¥Î GNU/Linux ¨t²Î¡A±zªº¨t²Î¥²¶·n¦³ libc6 (glibc-2.1.X) ¥H¤Wªºª© ¥»¡A¥H¤Î XFree86-3.3.6¡A¤~¯à¨ã³Æ I18N ªºÀô¹Ò (ÁöµM¦bµyªº glibc-2.0.7 ¥H ¤Î©Ò¦³ªº XFree86-3.3.X ¨t²Î¤¤¡A§ÚÌ¥i¥H¸g¥Ñ¤@¨Ç¯S®íªº³B²z¡A¦ÓÅý¨t²Î¥i¥H¨ã ³Æ I18N ªºÀô¹Ò¡A¦ý³o·|¾É¦Ü³\¦h¼ç¦bªº°ÝÃD¡A¬G¦b¦¹§Ṳ́£«Øij³o»ò°µ)¡C °£¦¹¤§¥~¡A±zªº¨t²ÎÁÙ¥²¶·¦w¸Ë¤¤¤å locale ¤~¦æ¡A¨Ò¦p¥xÆW¦a°Ï¨Ï¥Îªº zh_TW.Big5 locale¡A©ÎªÌ¤j³°¦a°Ï©Ò¨Ï¥Îªº zh_CN.GB2312 locale µ¥¡C¤@¯ë»¡¨Ó¡A¥Ø«e¤j³¡¤À ªº GNU/Linux ¦w¸Ë®M¥óªº I18N Àô¹Ò¤w¨S¦³°ÝÃD¡A¦ý¥¦Ì¤£¨£±o¤º§t¤¤¤å locale¡C Y±zµo²{±zªº¨t²Î¤¤¨S¦³¥¿½T¦w¸Ë±z»Ýnªº¤¤¤å locale¡A±z¥i¥H°Ñ¦Ò ftp://xcin.linux.org.tw/pub/xcin/i18n/i18n_tool.tar.gz ®M¥óªº README ¤å¥óªº»¡©ú¡A±N¥¦«Ø¥ß°_¨Ó¡C Y±z¬O¨Ï¥Î FreeBSD ¨t²Î¡A±z¤j·§n¨Ï¥Î 3.0 ¥H¤Wªº release ¤~¦æ¡A¦Ó¥B³Ì¦n¬O ¦³ ELF ªº¤ä´©¡C ------------------------ QA.3: §Ún¦p¦ó¬d¬Ý§Úªº¨t²Î¬O§_¤ä´© I18N ¥H¤Î¤¤¤å locale ©O¡H 1. Y±z¬O¨Ï¥Î GNU/Linux¡Aº¥ý±znÀˬd±zªº glibc ª©¥» (¥²¶· 2.1.X ¥H¤W)¡A±z ¥i¥H¥Î³oÓ«ü¥O¨Ó¬d¬Ý: ls /lib/libc-* 2. Y±z¬O¨Ï¥Î XFree86 ªº X Window ¨t²Î (¨Ò¦p GNU/Linux, FreeBSD µ¥)¡A±zn Àˬd XFree86 ªºª©¥» (¥²¶· 3.3.6 ¥H¤W)¡C¦pªG±z¦³¦w¸Ë xterm ³oÓµ{¦¡ªº¸Ü¡A ±z¥i¥H¥Î³oÓ«ü¥O¨ÓÀˬd: xterm -v 3. ±µ¤U¨Ó±znÀˬd±zªº¨t²Î¤¤¬O§_¦w¸Ë¤F¤¤¤å locale¡H¥H¥xÆW¦a°Ï¨Ï¥Îªº zh_TW.Big5 ¬°¨Ò (½Ðª`·N¡A¦b GNU/Linux »P FreeBSD ¤¤¬O zh_TW.Big5, ¦ý¦b¨ä¥Lªº UNIX ¤¤ ¥i¯à¬O zh_TW.big5 ©Î zh_TW.BIG5, ¦³¤j¤p¼gªº®t§O)¡A±z¥i¥H¸Õ¸Õ°õ¦æ locale -a ªº«ü¥O¡A¬Ý¬Ý¦L¥Xªº¤º®e¤¤¬O§_¥]¬A zh_TW.Big5¡H¦³ªº¸Ü´Nªí¥Ü±zªº¨t²Î¦³¦w¸Ë¡A §_«h´N¨S¦³¡C 4. µM«á±znÀˬd±zªº X Window ¨t²Î¬O§_¦³¦w¸Ë¤¤¤å locale ªº¸ê®Æ¡H¦b XFree86 ªº¨t²Î¤¤¡A¥i¥H¨Ï¥Î: ls /usr/X11R6/lib/X11/locale ¬Ý¬Ý¦³¨S¦³ zh_TW.Big5 ªº¥Ø¿ý¡H¦Ó¥BùØÀY¬O¤£¬O¦³ XLC_LOCALE ªºÀɮסH½Ðª` ·N¦b¨ä¥Lªº UNIX ¨t²Î¤¤¡A¨ä¸ô®|¥i¯à¤£¤@¼Ë¡A±zn°Ñ¦Ò¸Ó¨t²Îªº¤â¥U©Î»¡©ú¤å ¥ó¨Ó´M§ä¡C 5. ³Ì«á¡A±zªº¨t²Î¥²¶·¦w¸Ë zh_TW.Big5 locale ©Ò»Ýªº¦r«¬¡C¸Ó locale »Ýn¤¤¤å ¤Î^¤å¦r«¬¡C^¤å¦r«¬¬O¼Ð·Çªº¡A¨S¦³°ÝÃD¡C¦Ü©ó¤¤¤å¦r«¬ªº³¡¤À¡A½Ð°Ñ¦Ò©³¤U QC.1: fontset ³]©wªº»¡©ú¡C ©³¤U§ÚÌ´£¨Ñ¤@Ó¤pµ{¦¡¡A¥i¥H¥Î¨Ó´ú¸Õ±zªº locale Àô¹Ò¬O¤£¬O¥¿±`ªº¡Cµ{¦¡ªº ì©l½X¦p¤U: ================================================================= #define USE_XOPEN_SOURCE #include <stdio.h> #include <locale.h> #ifdef USE_XOPEN_SOURCE # include <langinfo.h> #endif #include <X11/Xlib.h> #include <X11/Xlocale.h> main() { printf("LC_CTYPE = %s\n", setlocale(LC_CTYPE, "")); #ifdef USE_XOPEN_SOURCE printf("encoding = %s\n", nl_langinfo(CODESET)); #endif if (XSupportsLocale() == True) printf("X Locale = OK\n"); } ================================================================= ±z¥i¥H±N³o¤@¬qµ{¦¡½X¦s¦¨ localetest.c ÀÉ¡AµM«á¥Î³oÓ«ü¥O¨Ó½sĶ: (°²³]±zªº¨t²Î¨Ï¥Îªº XFree86 ¨t²Î¡AY¬O¨ä¥Lªº UNIX ¨t²Î¡A±z¥i¯à»Ýn§ïÅÜ -I »P -L ¤§«áªº¸ô®|¦WºÙ¡C½Ð¨£±zªº¨t²Îªº¤å¥ó»¡©ú) gcc localetest.c -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 ¦pªG¦b½sĶ¹Lµ{¤¤¦³¥ô¦ó¿ù»~ªº¸Ü¡A½Ð±N #define USE_XOPEN_SOURCE ³o¤@¦æ§R°£¡AµM«á¦A«·s½sĶ¤@¦¸¡C§¹¦¨«á¡A´N·|²£¥Í¤@Ó¦W¬° a.out ªºÀɮסA±µµÛ ±z´N¥i¥H°µ¦p¤Uªº´ú¸Õ: LC_ALL=zh_TW.Big5 ./a.out ¦pªG¦L¥X¦p¤Uªºµ²ªG: LC_CTYPE = zh_TW.Big5 encoding = BIG5 X Locale = OK ªí¥Ü±zªº I18N »P locale Àô¹Ò¤w¨S¦³°ÝÃD¤F (½Ðª`·N¡A¦pªG±z±N #define USE_XOPEN_SOURCE ®³±¼«á¦A½sĶªº¸Ü¡A«h¤£·|¦³ encoding = .... ¨º¤@¦æ)¡C ¦P²z¡A¹ï©ó zh_CN.GB2312 ´ú¸Õµ²ªGÀ³¦p¤U: «ü¥O: LC_ALL=zh_CN.GB2312 ./a.out LC_CTYPE = zh_CN.GB2312 encoding = GB2312 X Locale = OK ¦pªG±z°õ¦æ«á¦L¥X¤£¤@¼Ëªºµ²ªG¡A«Ü¥i¯à±zªº¨t²Îªº locale Àô¹Ò¤´¦³°ÝÃD¡C³o®É«Ø ij±z¥i¥H¸ÔŪ ftp://xcin.linux.org.tw/pub/xcin/i18n/i18n_tool.tar.gz ªº»¡©ú¤å¥ó¡A¨Ó¤@¨B¨BÀˬd±zªº¨t²Î¡C ------------------------ QA.4: ¦b FreeBSD-3.0/4.0, §Úªºµ{¦¡µLªk³]©w zh_TW.Big5 locale, ¬O¤£¬O»Ý n¥[¤J -DXLOCALE? ¨º¬O¦]¬°±z¦b½sĶ±zªºµ{¦¡®É¨S¦³¥[¤W -lxpg4 ªº½t¬G¡C¦b FreeBSD ¤¤¡A¦b libc »P libxpg4 ¦U¦³¤@Ó setlocale() ¨ç¦¡¡A¦ý libc ªº¨º¤@Ó¥u¯à¦¨³]¬° POSIX ©Î C locale, Yn³]¦¨¨ä¥Lªº locale (¦p zh_TW.Big5), «h±z¥²¶·¨Ï¥Î libxpg4 ªº ¨º¤@Ó¡C ¥t¥~¡A -DXLOCALE ¥u¦³¦b±z¨t²Îªº libc ¹ï©ó I18N ¤ä´©¤£¦n¡A¦Ó±z»Ýn½sĶ X Window ªº I18N µ{¦¡®É¤~n¥[¤J¡A¥¦¨ä¹ê¬O¥Î Xlib ¤ºªº I18N ³B²z¨ç¦¡¨Ó¨ú¥N libc ùØÀYªº¼Ð·Ç¨ç¦¡¡C¤@¯ë»¡¨Ó¡A¦pªG±zªº libc ¹ï I18N ªº¤ä´©«Ü¦nªº¸Ü (¦p glibc-2.X, FreeBSD-3.0 ¥H¤W) ¡A±z¤£n¥[¤J¦¹¤@¿ï¶µ¡A¦]¬°¨º¼Ë¥i¯à·|³y¦¨¨ä ¥Lªº°ÝÃD¡C ------------------------ QA.5: §Úªº¨t²Î¤¤§ä¤£¨ì /usr/X11R6/lib/X11/locale/zh_CN.GB2312/XLC_LOCALE, ½Ð°Ý³oÓÀ³¸Ó¨ì¨ºùؤU¸ü©O? ¦b XFree86 ªº¨t²Î¤¤¡Azh_CN.GB2312 ªº XLC_LOCALE ¨ä¹ê¦´N¦b±zªº¨t²Î¤¤¤F¡A¥¦ ¬O©ñ¦b: /usr/X11R6/lib/X11/locale/zh/XLC_LOCALE ¦Ü©ó¬°¤°»ò·|©ñ¦b³o? §Ú·Q¤j·§¬O¾ú¥v¦]¯À§a? ¦pªG±z§Æ±æ±zªº¨t²Î¥i¥H¤ä´© zh_CN.GB2312 locale, ½Ð°Ñ¦Ò ftp://xcin.linux.org.tw/pub/xcin/i18n/i18n_tool.tar.gz ªº»¡©ú¡A¦P®É®Ú¾Ú XLC_LOCALE ªº¤º®e¡A±zÁÙ»Ýn¦w¸Ë¦r«¬¦W¥½§À¬° GB2312.1980-0 ªº GB ¦r«¬¡A³oÓ¤]¥i¥H¦b XFree86 ªº®M¥ó¤¤§ä¨ì¡C B. xcin ¦w¸Ë°ÝÃD: ------------------------ QB.1: §Ú¤w¸g¦w¸Ë¤F Berkeley DB2 ¤F¡A¬°¤°»ò¦b configure ®ÉÁÙ¬O¸ò§Ú»¡: You need Berkeley DB 2 to compile xcin. Please use --with-dbinc and --with-dblib to configure. ¦p¦P¤WÀYªº´£¥Ü¡A±z¥²¶·«ü©w Berkeley DB2 ©Ò¦bªº¸ô®|¡A¦p¦¹ configure ®É¤~§ä±o ¨ì¡CÁ|¨Ò¨Ó»¡¡A±z·íªì¦w¸Ë Berkeley DB2 ®É¬O¸Ë¦b /usr/local ©³¤U¡A½Ð±z§ä¤@¤U ±zªº /usr/local/lib ¤¤¬O¤£¬O¦³ libdb.so, ©ÎªÌ¬O libdb2.so¡H¦pªG¨S¦³ªº¸Ü½Ð§ä ¥X¥¦Ì¦s¦bªº¥Ø¿ý¡A³o´N¬O <dblib_path>¡CÁÙ¦³¡A¦b±zªº /usr/local/include ¤U¬O §_¦³ db.h ÀÉ¡H¨S¦³ªº¸Ü½Ð±N¥¦§ä¥X¨Ó¡A¦Ó³o´N¬O <dbinc_path>¡CµM«á¡A·í±z¦b xcin-2.5 ©³¤U°õ¦æ configure «ü¥O®É¡A½Ð³o¼Ë°õ¦æ: configure --with-dbinc=<dbinc_path> --with-dblib=<dblib_path> <¨ä¥¦°Ñ¼Æ> °£¤F Berkeley DB2 ¥H¥~¡A¦w¸Ë xcin-2.5 ÁÙ»Ýn¨ä¥Lªº¨ç¦¡®w¡A¾Þ§@¤è¦¡¦P¤W¡A¸Ô ¨£ SETUP ¤@¤åªº»¡©ú¡C ------------------------ QB.2: ¬°¤°»ò¦w¸Ë xcin ®É configure ¸ò§Ú»¡n libtabe ©O¡H¥H«e³£¤£»Ýn°Ú! ¦Û xcin-2.5.1 ¶}©l¡A libtabe ±N¤£¦A¤º§t©ó xcin ®M¥ó¤¤¡A¦Ó±N¿W¥ßµo®i¡A¬G±zY ¦w¸Ë xcin-2.5.1 ¤Î©¹«áªºª©¥»¡A±zÁÙn¥ý¦w¸Ë libtabe ®M¥ó¡A¸Ô¨£ SETUP ¤@¤åªº »¡©ú¡C ------------------------ QB.3: §Ú¨ì³B³£§ä¤£¨ì tsi.db »P yin.db, ¥H«e¤£¬O¦³ libtabe-tsi-bin.tar.gz ³oÓ®M¥ó¶Ü¡H¨ì¨ºùØ¥h¤F¡H ¦Û xcin-2.5.1 ¶}©l¡A libtabe ±N¤£¦A¤º§t©ó xcin ®M¥ó¤¤¡A¦Ó±N¿W¥ßµo®i¡A¦Ó¤W zªº¨º¨âÓ db ÀÉ«hÄÝ©ó libtabe ®M¥óªº¤@³¡¤À¡A¥un±z¦w¸Ë¤F libtabe ¤§«á¡A ´N·|¦Û°Ê±N¥¦Ì¸Ë°_¨Ó¡C¥Ø«e libtabe ®M¥óªºÀɮצWºÙÀ³¬° libtabe-<version>.tar.gz, ¨Ò¦p libtabe-0.1.X.tar.gz, ±z¥i¥H¦b ftp://xcin.linux.org.tw/pub/xcin/libtabe/ ©³¤U§ä¨ì¥¦¡C¸Ô¨£ SETUP ¤@¤åªº»¡©ú¡C ------------------------ QB.4: ¬°¤°»ò§Ú¦b°õ¦æ configure ®É¡A·|¦³³o¼Ëªº¿ù»~°T®§©O¡H You need X11R6 to compile xcin. Please use --x-includes and --x-libraries to configure. ¨º¦h¥b¬O¦]¬°±zªº¨t²Î¤¤¨S¦³¦w¸Ë X Window development package, ùØÀY¥]¬A compile X Window µ{¦¡®É©Ò»Ýªº include ÀÉ (¦b /usr/X11R6/include/ ¤U) ¥H¤Î¤@¨Ç link lib (¦b /usr/X11R6/lib/ ¤U)¡C±z¥²¶·¦w¸Ë¥¦¤~¯à compile xcin ¡CY±z¬O RedHat ªº¨t²Î «h¸Ó package ¦W¦h¥b¬° XFree86-devel-<version>.rpm, Y±z¬O Debian ªº¨t²Î¡A«h¸Ó package ¦W¦h¥b¬° xlib6g-dev-<version>.deb ¡CY±z¬O¨ä¥Lªº¨t²Î¡A½Ð¬d¸ß¤@¤U¸Ó¨t ²Îªº¬ÛÃö¤å¥ó¡C ·í±z±N©Ò»Ýªº package ¸Ë¦n«á¡A¦b«·s¶] configure µ{¦¡¤§«e¡A½Ðª`·N¦b xcin-2.5 ¥Ø¿ý¤U¬O§_¤w¦s¦b¤F config.status, config.cache, config.h, config.log µ¥³o¨Ç ÀɮסH¦pªG¬Oªº¸Ü½Ð¥ý±N¥¦Ì²¾°£¤§«á¡A¦A«·s¶] configure µ{¦¡¡C ------------------------ QB.5: §Ú²Ä¤@¦¸ compile xcin ®É¨S¦³¸Ë bimsphone (¦b configure ®É¥[¤F --disable-bimsphone ¿ï¶µ)¡A¦ý²{¦b·Q¦A¸Ë bimsphone, ½Ð°Ýn«ç»ò °µ¡H»Ýn¾ãÓ xcin ¨t²Î«·s compile ¶Ü¡H ¤£»Ýn¡A±z¥un¨ì xcin-2.5 ªº source ·í¤¤¡A«ö·Ó±zì¥ý°õ¦æ configure ªº¤è¦¡ ¦A¶]¤@¦¸ configure¡A¦ý³o¦¹¤£n¥[ --disable-bimsphone ¿ï¶µ¡A¨Ã¥Bª`·N±zªº¨t ²Î³o®É¥²¶·¤w¦w¸Ë¤F Berkeley DB2 »P libtabe¡A¥²n®Én±N³o¨âÓ®M¥óªº¦ì¸m§i ¶D configure (¸Ô¨£ SETUP ¤@¤åªº»¡©ú)¡C·í configure §¹¦¨«á¡A½Ð¨ì xcin-2.5/src/Cinput/bimsphone/ ¥Ø¿ý¤U¡Aª½±µ°õ¦æ make install §Y¥i¡C ------------------------ QB.6: §Ú¦b¦w¸Ë xcin ®É¡Aconfigure ¨S¦³°ÝÃD¡A¦ý¦w¸Ë¨ì¤@¥b«o¥X²{¥H¤Uªº¿ù»~: gcc -Wall -fsigned-char -O2 -DHAVE_CONFIG_H -I../../../src/include \ -c -o set_locale.o set_locale.c set_locale.c: In function `locale_setting': set_locale.c:68: `CODESET' undeclared (first use in this function) set_locale.c:68: (Each undeclared identifier is reported only once set_locale.c:68: for each function it appears in.) make[3]: *** [set_locale.o] Error 1 ¦³¤@ºØ¥i¯à±¡ªp¬O±z¸Õ¹Ï¦b¸ûªº GNU/Linux ¨t²Î¤W¦w¸Ë xcin-2.5.2.1¡A¨Ò¦p¨Ï¥Î glibc-2.1.2 ¤Î¥H«eªº¨t²Î¡C¦]¬°³o¤@ª©ªº xcin ¨Ï¥Î¤F nl_langinfo() ªº¨ç¦¡ ©I¥s¡A¦Ó¦b¸û¦Ñªº glibc ¨t²Î¤W³oӨ禡ªº¹ê§@¨Ã¨S¦³§¹¥þ¡C¸Ñ¨Mªº¤è¦¡¬°× §ï xcin-2.5/config.h ÀÉ¡A±N³o¤@¦æ #define HAVE_NL_LANGINFO 1 §R°£¡AµM«á«·s make §Y¥i (¤£n«·s configure, §_«hªº¸Ü±z¥²¶·¦A§ï¤@¦¸ config.h ±N¤WÀY¨º¦æ§R°£)¡C ------------------------ QB.7: ¬°¤°»ò§Ú°õ¦æ xcin ®É¡A·|¶]¥X¦p¤Uªº¿ù»~°T®§©O¡H xcin internal error: NULL xcin locale_sub_path ¦³¨âºØ¥i¯à©Ê: ¤@ºØ¬O±z¥i¯à§Ñ¤F¦b°õ¦æ xcin ¤§«e³]¦n locale µ¥Àô¹ÒÅܼơC ½Ð±z°Ñ¦Ò UserGuide ¤å¥óªº»¡©ú¡A±N©Ò»Ýªº locale ¬ÛÃöÀô¹ÒÅܼƳ]¦n¡C ¥t¤@ºØ¥i¯à©Ê¬O±zªº¨t²Îªº locale Àô¹Ò¨Ã¨S¦³¦w¸Ë¦n¡A½Ð±z°Ñ¦Ò¥»¤å QA.2 »P QA.3 ªº»¡©úÀˬd¤@¹M¡C ------------------------ QB.8: ¬°¤°»ò§Ú°õ¦æ xcin ®É¡A·|¶]¥X¦p¤Uªº¿ù»~°T®§©O¡H xcin: error: IMOpenIM() with name "xcin" transport "X/" failed. ¦h¥bªº±¡ªp¬O±zªº¨t²Î¤¤ì¥»¤w¶]¤F¤@Ó xcin ¤F¡A¦ý±z¤S¥Î¬Û¦Pªº XIM server ¦W¸Õ¹Ï¦A¶]¤@Ó¤~·|¦p¦¹¡C¸Ñ¨Mªº¤è¦¡¬°: °±±¼±zì¨Ó¤w¦b¶]ªº xcin: ps ax | grep xcin | grep -v grep (§ä¥XI´º¤¤°õ¦æªº xcin) kill <I´º¤¤°õ¦æªº xcin ªº pid> µM«á¦A¶]·sªº xcin §Y¥i¡C©ÎªÌ¡A¨Ï¥Î§Oªº XIM server ¦W¨Ó¶]·sªº xcin: xcin -x <XIM server ¦W> & ½Ðª`·N¡AY¨Ï¥Î¤£¦Pªº XIM server ¦W¨Ó¶]ªº¸Ü¡A¨ä¥Lªº XIM client ¤]¥² ¶·¨Ï¥Î¦¹ XIM server ¦W¡A¦p¦¹¤~¯à»P¸Ó xcin ³s½u¡C¸Ô¨£ UserGuide ªº »¡©ú¡C C. xcinrc ³]©w¬ÛÃö°ÝÃD: ------------------------ QC.1: ¤°»ò¬O xcinrc ÀÉ¡H¥¦©ñ¦b¨º¸Ì©O¡H xcinrc ÀɬO xcin ªº³]©wÀÉ¡Axcin ªº¤@¥B¥\¯à»Pªí²{¤è¦¡³£¥i¥H¸g¥Ñ³o¸Ìªº³]©w ¨Ó¥[¥H±±¨î¡C¥Ñ©ó xcin-2.5 ªº³]©w»P¥i½Õ¿ï¶µ¤ñ°_ xcin-2.3 »P§óª©ªº xcin n½ÆÂø«Ü¦h¡A¬G¨º®Éµ´¤j³¡¤Àªº©R¥O¦C¿ï¶µ³£²¾¨ì¤F xcinrc Àɤ¤¡C xcinrc Àɪº¦ì¸m¨Ì±z¦w¸Ë xcin ªº¦ì¸m¦Ó²§¡C¦pªG±z¬O¸Ë¦b /usr/local ©³¤U¡A«h ¥¦´N·|¥X²{¦b /usr/local/etc ¤U¡F¦pªG±z¸Ë¦b /usr ©³¤U¡A«h¥¦¥i¯à¥X²{¦b /etc ©Î /usr/etc ¤U¡CY±z¬O¨Ï¥Î CLE ªº¨t²Î¡A«h¥¦¦h¥b¬O¦b /etc/chinese ©³¤U¡C °£¦¹¤§¥~¡A±z¤]¥i¥H±N¨t²Îªº xcinrc Àɽƻs¤@¥÷¨ì±zªº $HOME/.xcin/xcinrc ©Î $HOME/.xcinrc¡A¦p¦¹±zªº¤@¨ÇÓ¤H¤Æ³]©w´N¥i¥Hª½±µ§ï¦b¸ÌÀY¡Axcin ¦bŪ¨ú xcinrc Àɮɷ|¥H±zªºÓ¤H¤Æ³]©wÀu¥ýŪ¨ú¡C¥t¤@¤è±¡A¦b±z§ó·s xcin ª©¥»®É¡AÁöµM¨t²Îªº xcinrc Àɤ]³Q§ó·s¤F¡A¦ý±zªºÓ¤H¤Æ³]©w¤´µM·|¦s¦b¡A¤£·|¦]¬°¨t²Îªº xcinrc §ó ·s¦Ó³QÂл\±¼¡C ------------------------ QC.2: §ÚµLªk±Ò°Ê xcin, §ÚÃhºÃ¬O§Úªº fontset ³]©w¦³°ÝÃD¡A§Ú¸Ó¦p¦óÀˬd©O? ¥H¤U´N¥H zh_TW.Big5 locale ¬°¨Ò¨Ó°µ»¡©ú¡C½Ð±zÀˬd¥H¤Uªº¶µ¥Ø: 1. /usr/X11R6/lib/X11/locale/zh_TW.Big5/XLC_LOCALE ¤¤¡ABig5 ªº¦r«¬¬O¤° »ò? ¥H¤@¯ë±`¨£ªº¬°¨Ò¡A¬O: ====================================================================== fs1 { charset { name BIG5-0:GLGR } font { primary BIG5-0:GLGR } } ====================================================================== ª`·N! ¦r«¬¦Wªº¥½§À¬O BIG5-0 ¡C 2. ¬d¤@¤U©Ò»Ýªº¤¤¤å¦r«¬¦W¬O§_¦s¦b±zªº¨t²Î¤¤? ¥un¬O¦r«¬¦W¥½§À¬O big5-0 (¤j¤p¼g¤£©ë) ³£¥i¥H¡A¤]´N¬On²Å¦X«e± XLC_LOCALE ¤¤ªº³]©wÈ¡C¥H§Úªº ¨t²Î¬°¨Ò¡A·í§Ú°õ¦æ xlsfonts | grep big5-0 ®É¡A¦C¥Xµ²ªG¦p¤U: -twmoe-kai-medium-r-normal-fs-14-140-75-75-c-140-big5-0 -twmoe-kai-medium-r-normal-fs-15-150-75-75-c-150-big5-0 -twmoe-kai-medium-r-normal-fs-16-160-75-75-c-160-big5-0 -twmoe-kai-medium-r-normal-fs-18-180-75-75-c-180-big5-0 -twmoe-kai-medium-r-normal-fs-20-200-75-75-c-200-big5-0 -twmoe-kai-medium-r-normal-fs-24-240-75-75-c-240-big5-0 ¬G¥H¤W³o¨Ç¦r§Î§Ú³£¥i¥H¥Î¡C 3. Àˬd±zªº xcinrc ªº FONTSET ³]©w¡C¥Ñ©ó§Ú̳oÃän³]©wªº¬O zh_TW.Big5 locale ªº FONTSET¡A¬G½Ð±z§ä¨ì (define zh_TW.Big5 ¤p¸`¡AùØÀY´N·|¦³¤@Ó FONTSET ªº¶µ¥Ø (¦Û 2.5.2 ª©°_ÁÙ·|¦³ OVERSPOT_FONTSET ªº¶µ¥Ø¡A¤GªÌªº°Ï§O½Ð¨£ Usage ¤@¤åªº»¡©ú)¡C¥H§Ú³oÃ䬰¨Ò¡A°²³]§Ú·Q¥Î 24 ÂI ªº¦r«¬¡A«h§Ú¥un³o¼Ë³]§Y¥i: (define FONTSET "-sony-*-24-*-iso8859-1,-*-24-240-*-big5-0") ¨ä¤¤²Ä¤@¦æ¬O^¤å¦r«¬¦W¡A²Ä¤G¦æ¬O¤¤¤å¦r«¬¦W¡C¦]¬°§Úªº¨t²Î¤¤½T¹ê¦³ 24 ÂIªº big5-0 ¦r«¬ (§Y -twmoe-kai-medium-r-normal-fs-24-240-75-75-c-240-big5-0), ¬G§Ú³o¼Ë³]©w¤§«á xcin ´N·|¦Û°Ê¨Ï¥Î¡C ½Ðª`·N¡A±z¦b xcinrc ¤¤¥i¯à·|¨£¨ì¨âÓ©Î¥H¤Wªº FONTSET ³]©w¡A¤@Ó¬O¦b zh_TW.Big5 ¸`¡A¤@Ó¥i¯à¬O¦b zh_CN.GB2312¡C¥Ñ©ó¥H¤Wªº×§ï¬O°w¹ï big5-0 ªº¦r«¬¡A¬G¥²¶·³]©w¦b zh_TW.Big5 ¸`¡C¦P²z¡A¦pªG±z§Æ±æ³]©w GB ¦r«¬ªº¸Ü¡A ±z¥²¶·³]©w¦b zh_CN.GB2312 ¸`¡C ½Ðª`·N¡A³oùؤ£n³]Ãþ¦ü taipei24, kai24, .... µ¥¡u²¦W¡v¡A¤@©wn³]Ãþ¦ü¤Wz ®æ¦¡ªº¦W¦r¡A§_«hµLªk¦¨¥\¡CY©Ò»Ýªº big5-0 ¦r«¬¤£¦s¦bªº¸Ü¡A±z¥i¥H¦Û¦æ¦w¸Ë ¥¦Ì¡A©Î®³²{¦³ªº¤¤¤å¦r«¬ alias ¦¨ big5-0 ¦r«¬¡C ¥t¥~¡A¦pªG±z¦b°õ¦æ xlsfonts | grep big5-0 ®É±o¨ìÃþ¦ü¦p¤Uªºµ²ªG: -twmoe-kai-medium-r-normal-fs-24-240-0-0-c-240-big5-0 -twmoe-kai-medium-r-normal-fs-24-240-75-75-c-240-big5-0 ½Ðª`·N²Ä¤@¦æ»P²Ä¤G¦æªº®t§O: ²Ä¤G¦æ -75-75- ³B¦b²Ä¤@¦æ«o¬O -0-0-, ³o®É¡A¦p ªG±z¦b FONTSET ªº³]©w¬O "-*-24-*-big5-0" ªº¸Ü¡A«h xcin ·|ª½±µ¬D²Ä¤@Ó¥i¥Î ªº¦r«¬¦W¨Ó¥Î¡C¦ý³o¼Ë¤@¨Ó xcin ¥i¯à·|¶]¤£°_¨Ó¡Aì¦]¬O -0-0- ³o¼Ëªº¦r«¬¦Wªº °ÝÃD¡C¹ï©ó³oºØ±¡ªp¡A±z¥i¥H±N FONTSET ªº³]©w§ï¦¨¡u©ú½T«ü©w¡v¤@Ó¥i¥Îªº¤¤¤å ¦r«¬¦W¡A¥ç§Y: (define FONTSET '("-sony-*-24-*-iso8859-1" "-twmoe-kai-medium-r-normal-fs-24-240-75-75-c-240-big5-0")) ------------------------ QC.3: ½Ð°Ý xcinrc ¤ºªº INDEX_FONT ¬O°µ¤°»òªº°Ú? ³o¬O¥Î¨Ó¦b xcin µøµ¡ªº¥k¤U¨¤Åã¥Ü¥Ø«e¿é¤Jªkªº^¤å¦WºÙ¥Îªº¡A¥i¥H³]¦¨¤@Ó¤p ¤@ÂIªº^¤å¦r«¬ (ª`·N! ¥²¶·¬O¤@Ó^¤å¦r«¬)¡C ------------------------ QC.4: ¨º xcinrc ¤ºªº OVERSPOT_FONTSET ¤S¬O°µ¤°»òªº¡H ³o¬O¥Î¨Ó³]©w xcin OverTheSpot µøµ¡ªº¦r«¬¥Îªº¡C½Ðª`·N¦Û xcin-2.5.2 ¶}©l¡A ¦b¨CÓ locale ³]©w¤¤¡A±z·|¨£¨ì¨âÓ fontset ªº³]©w¡A¤@¬° FONTSET¡A¥t¤@¬° OVERSPOT_FONTSET¡A¦Ó«áªÌ¬O¥Î©ó³]©w xcin ¥Dµøµ¡ªº¦r«¬¡A¦]¬°¥Dµøµ¡©Ò¥Îªº¦r «¬³q±`¤ñ OverTheSpot µøµ¡ªº¦r«¬¨Ó±o¤j¡C µM¦Ó¡AOVERSPOT_FONTSET ©Ò³]©wªº¦r«¬¤£¨£±o·|°¨¤W°_§@¥Î¡Aì¦]¬O¹w³]±¡ªp¤U xcin ·|¨Ï¥Î XIM client ©Ò´£¨Ñªº¦r«¬¨ÓÅã¥Ü¡C¦pªG±z§Æ±æ¥¦°¨¤W°_§@¥Î¡AÁÙ¥² ¶·¦P®É¥´¶} OVERSPOT_USE_USRFONTSET ªº¿ï¶µ¡C¸Ô¨£ Usage ¤@¤å¤¤¹ï³o¨Ç¿ï¶µ ªº»¡©ú¡C ------------------------ QC.5: ½Ð°Ý xcinrc ¤º¬°¤°»òn¤À zh_TW.Big5 »P zh_CN.GB2312 µ¥¦hÓ¤p¸`©O? ¥¦Ìªº³]©w¶µ¥Ø¤£³£¬O¤@¼Ëªº¶Ü? ³o¨Ç¬OÄÝ©ó locale ¬ÛÃöªº²Ó³¡³]©w¡A¨Ì locale Àô¹Òªº¤£¦P¦Ó¦³¤£¦P¡C²{¦b xcin ¤w¥i¥H¦b¤£¦Pªº locale ¤U¤À§O¦P®É±Ò°Ê¤F¡A¦ý¦]¬°¤£¦Pªº locale »Ýn¤£¦Pªº³] ©w¡A¬°¤F¤è«K°_¨£¡A§Ú±N³oÃþªº³]©w¨Ì¤£¦Pªº locale ¤À¶}¡A¦p¦¹¤@¨Ó±z´N¤£»Ýn ¨C¦¸´« locale ®É´N¥²¶·×§ï¤@¦¸ xcinrc ¤F :-)) ------------------------ QC.6: §Úªº¨t²Î¤¤¤w¸g¦³ zh_TW.BIG5 locale ¤F¡A¦Ó¥B /usr/X11R6/lib/X11/locale ©³¤U¤]¤w¦³ zh_TW.BIG5/XLC_LOCALE ÀÉ¡A¬°¤°»òÁÙ¬OµLªk±Ò°Ê xcin? ±z¥²¶·°µ¥H¤Uªº³]©wÅý xcin ª¾¹D±z¦³ zh_TW.BIG5 locale: 1. §ï xcinrc, ±NùØÀYªº zh_TW.Big5 ¦r²´¥þ³¡´«¦¨ zh_TW.BIG5¡C (¤]´N¬O¡A±z¦b xcinrc ¤¤n¦³¤@Ó©w¸q zh_TW.BIG5 locale ªº section) 2. ¨ì ..../xcin/tab/ ©³¤U¡A°µ¤@Ó symbolic link: ln -s zh_TW.Big5 zh_TW.BIG5 (¤]´N¬O¡A±z¥²¶·¬° zh_TW.BIG5 locale ·Ç³Æ¤@Ó sys.tab) (ª`: ¦pªG±z¬O¨Ï¥Î xcin-2.5.2 ¥H¤Wªºª©¥»¡A±z¤£»Ýn°µ³o¤@¨B¡A¦]¬°©Ò¦³ªº¿é ¤Jªkªí®æÀɤw§ï©ñ¦b¥H¤º½X¬°¦Wªº¥Ø¿ý (¦p big5/, gb2312/ µ¥) ¤¤¡A¦Ó¤£ ¦A©ñ¤J¥H locale ¬°¦Wªº¥Ø¿ý¤¤¤F) 3. °õ¦æ xcin ®É¡A½Ð¥Î¥H¤U«ü¥O: export LC_CTYPE=zh_TW.BIG5 xcin & 4. n¦b XIM client ¿é¤J®É¡Aª`·N³o®É xcin ªº IM name ¥i¯à¤wÅܦ¨: xcin-zh_TW.BIG5 ¤F¡A¬G¦b±Ò°Ê XIM client ®Én°µ¬Û¹ïªº³]©w¡C©ÎªÌ¡A¦pªG±zÁÙ¬O§Æ ±æ xcin ªº IM name ÁÙ¬O "xcin" ªº¸Ü¡A¥Î³oÓ«ü¥O: export LC_CTYPE=zh_TW.BIG5 xcin -x "xcin" & ¬ÛÃö²Ó¸`½Ð¨£ xcin-2.5/doc/Usage ¤@¤åªº»¡©ú¡C ------------------------ QC.7: ¬°¤°»ò§Ú¦b°õ¦æ xcin ®É¡A·|¶]¥X³o¼Ëªº¿ù»~°T®§¡H xcin: error: rcfile: DEFAULT_IM: value not specified. ¦³¤@ºØ¥i¯à±¡ªp¬O¡A xcin ®Ú¾Ú±z¥Ø«eªº locale ±Ò°Ê¡A¦ý¥¦«o¦b¥¦ªº³]©wÀÉ xcinrc ¤¤§ä¤£¨ì¸Ó locale ªº¸ê°T¡C¨Ò¦p¡A±z¥Ø«eªº locale ¹w³]¬O C, ¦ý xcinrc ¤¤¹w³]ªº locale ¦³ zh_TW.Big5 »P zh_CN.GB2312, «o¨S¦³ C, ¦]¦¹´N·|¦L¥X¦p¤Wªº°T®§¡C ¸Ñ¨M¿ìªk¬O: ¥ý½T©w±zªº¨t²Î¤¤©Ò¤ä´©ªº¤¤¤å Big5 ªº locale ¬°¦ó¡HY¬O zh_TW.BIG5 «h½Ð°Ñ¦Ò QC.3 ªº»¡©ú°µ¥²nªº½Õ¾ã¡AµM«á¡A¦b±Ò°Ê xcin ¤§«e¡A¥ý°õ¦æ (for bash) LC_CTYPE=<locale_name>; export LC_CTYPE ±z¤]¥i¥H±N¥¦¼g¤J $HOME/.profile ¤¤¡A¥H¤è«K¨C¦¸ login ®É³£¦Û°Ê°õ¦æ¡C¦Ü©ó¦³Ãö xcinrc ªº³]p²Ó¸`¡A±¡°Ñ¦Ò xcin-2.5/doc/Usage ¤@¤åªº»¡©ú¡C ½Ðª`·N¡AY±zªº¨t²Î¤¤¤w³]©w¤F LC_ALL Àô¹ÒÅܼƪº¸Ü (¦p RedHat-6.1), «h±z¦b³] ©w LC_CTYPE ®É·|¥¢®Ä¡A³o®É±z¥²¶·¥ý¨ú®ø LC_ALL ªº³]©w¡AµM«á¦A³] LC_CTYPE: unset LC_ALL LC_CTYPE=<locale_name>; export LC_CTYPE ©ÎªÌª½±µ±N LC_ALL ³]¦¨±zªº locale_name ¥ç¥i: LC_ALL=<locale_name>; export LC_ALL ------------------------ QC.8: ¦p¦ó§ïÅÜ xcin ¥Dµøµ¡ªº±Ò°Ê¤j¤p»P¦ì¸m©O¡H ±z¥i¥Hקï xcinrc ÀÉ¡A¦b³o¸Ì¦³¨âÓ³]©w xcin µøµ¡±Ò°Ê¦ì¸mªº¦a¤è: 1. X_GEOMETRY: ¥Î¨Ó³]©w xcin ²Ä¤@¥Dµøµ¡ (§Y¸û¤jªº xcin µøµ¡) ªº¦ì¸m¡C 2. MAINWIN2_GEOMETRY: ¥Î¨Ó³]©w xcin ²Ä¤G¥Dµøµ¡ (§Y¸û¤pªº xcin µøµ¡) ªº¦ì¸m¡C ¥¦Ìªº³]©w®æ¦¡¦p¤U: <width>x<height>[x][y] ¨ä¤¤ <width> »P <height> ¤À§O¥Nªíµøµ¡ªº¼e«×»P°ª«×¡A¥H¤@Ó^¤å¦rªº¼e«×»P°ª«× §@³æ¦ì¡C½Ðª`·N±zµLªk§ïÅܵøµ¡ªº°ª«×¡A¥u¯à§ïÅܼe«×¡Aì¦]¬O xcin µøµ¡ªº°ª«×¬O ¥Ã»·©T©wªº: ²Ä¤@¥Dµøµ¡¬O¨â¦æ¡A¦Ó²Ä¤G¥Dµøµ¡¬O¤@¦æ¡C «á±ªº [x] »P [y] ´N¬O³]©wµøµ¡ªº±Ò°Ê¤ô¥»P««ª½¦ì¸m¡A¬O¥H¿Ã¹õªº¹³¯ÀÂIӼƬ° ³æ¦ì¡C¥H [x] ¦Ó¨¥¡A¦pªG¬O¥¿¼Æ¡A«h¥Nªí±q¿Ã¹õªº³Ì¥ªÃäºâ°_¦h¤Ö¹³¯ÀÂI¡Aª½¨ìµø µ¡ªº¥ªÃä¬É¬°¤î¡FY¬Ot¼Æ¡A«h¥Nªí±q¿Ã¹õªº³Ì¥kÃäºâ°_¦h¤Ö¹³¯ÀÂI¡Aª½¨ìµøµ¡ªº¥k Ãä¬É¬°¤î¡C¦P¼Ëªº¡A¥H [y] ¦Ó¨¥¡A¦pªG¬O¥¿¼Æ¡A«h¥Nªí±q¿Ã¹õªº³Ì¤WÃäºâ°_¦h¤Ö¹³ ¯ÀÂI¡Aª½¨ìµøµ¡ªº¤WÃä¬É¬°¤î¡FY¬Ot¼Æ¡A«h¥Nªí±q¿Ã¹õªº³Ì¤UÃäºâ°_¦h¤Ö¹³¯ÀÂI¡A ª½¨ìµøµ¡ªº¤UÃä¬É¬°¤î¡C Á|¨âÓ¨Ò¤l: 45x2+100+10 ´N¥Nªí¼e 45, °ª 2 ªºµøµ¡¡A¨ä¦ì¸m¬Oµøµ¡ªº¥ª¤W¨¤¦ì©ó (100,10) ªºÂI¤W¡CY¬O 18x1+200-15 ´N¥Nªí¼e 18, °ª 1 ªºµøµ¡¡A¨ä¦ì¸m¬Oµøµ¡ªº ¥ª¤U¨¤¦ì©ó (200,-15) ªº¦ì¸m¤W¡A¨ä¤¤ -15 §Y±q¿Ã¹õªº³Ì¤UÃ䩹¤Wºâ 15 ªº¦ì¸m¡C ------------------------ QC.9: ¬°¤°»ò xcin ·|¦³¨âÓ¤£¦P¤j¤pªº¥Dµøµ¡©O¡H ¦Û xcin-2.5.2 ¶}©l¡Axcin ¶}©l¤ä´© OverTheSpot ªº¿é¤J¼Ò¦¡¡C¦b¦¹¼Ò¦¡¤U¤j³¡¤À ªº¿é¤Jªk²Õ¦r¸ê°T³£·|²¾¨ì OverTheSpot ªºµøµ¡¡A¨º¬O¥X²{¦b±zªº¿é¤J´å¼Ðªþªñªº ¤pµøµ¡¡C¦]¦¹ì¨Óªº¥Dµøµ¡©Ò»ÝnÅã¥Üªº¸ê°T´N¤Ö¤F¡A¦ÓÅã±o¤Ó¦ûªÅ¶¡¡A¬G¤~¦³¸û¤p ªº¥Dµøµ¡ (§Y²Ä¤G¥Dµøµ¡) ªº³]p¡C ±z¥²¶·±N xcinrc ¤¤ªº MAINWIN2_GEOMETRY ¿ï¶µ¥´¶}«á¡A¤~·|±Ò°Ê²Ä¤G¥Dµøµ¡¡C¦Ó ¦b¦¹¼Ò¦¡¤U¡A°£«D¹J¨ì¨Ï¥Î Root ¿é¤J¼Ò¦¡ªº XIM client¡Axcin ¤~·|¤Á´«¨ì²Ä¤@¥D µøµ¡¨ÓÅã¥Ü¡A§_«hªº¸Ü¤@«ß¥Î²Ä¤G¥Dµøµ¡¨ÓÅã¥Ü¡C ------------------------ QC.10: §ÚÁÙ¬Oı±o¨ºÓ²Ä¤G¥Dµøµ¡¤Ó¦ûªÅ¶¡¡A¥i¤£¥i¥H³s¥¦³£¤£n°Ú¡H ±z¦³¨âºØ¤è¦¡¥i¥H¿ï¾Ü (קï xcinrc ÀÉ): 1. ¥´¶} XCIN_HIDE ªº¿ï¶µ¡A«h¦b^¼Æª¬ºA¤U xcin µøµ¡¬OÁôÂ꺡A¥u¦³¦b¤¤¤å¿é¤J ®É¥¦¤~·|¥X²{¡C 2. ¥´¶} OVERSPOT_WINDOW_ONLY ªº¿ï¶µ¡A«h¦b¨Ï¥Î OverTheSpot ¿é¤J¼Ò¦¡ªº XIM client ¤U¡A§¹¥þ¤£·|¦³ xcin ¥Dµøµ¡¥X²{¡A¥u¦³ OverTheSpot µøµ¡·|¬¡°Ê¡C¦ý ¦]¬° OverTheSpot µøµ¡¤ñ¸û¤p¡A¬GµLªk¥]§tì¨Ó¥Dµøµ¡¤¤©Ò¦³ªº¸ê°T¡C ------------------------ QC.11: ¤°»ò¬O OverTheSpot ©O¡H OverTheSpot ¬O xcin ªº¤@ºØ¿é¤J¼Ò¦¡¡A¦Û xcin-2.5.2 °_¶}©l¤ä´©¡C ¦b XIM ªº¨ó©w¤¤¡A¦³¤@ÓºÙ¤§¬°¡u¿é¤Jªk¼Ò¦¡¡v(input style) ªº¡u¨ó©w¡v¡A²³æ Á¿´N¬O XIM server »P XIM client ¤§¶¡n¥H«ç»ò¼Ëªº¨Ï¥ÎªÌ¤¶±®i²{µ¹¨Ï¥ÎªÌ¡C XIM ¤ä´©ªº input style ¦³«Ü¦hºØ¡A¦ý¤jÅé¤W¥i¥H¤À¦¨ pre_edit area (²Õ¦r°Ï) »P status area (¿é¤Jªkª¬ºA°Ï) ¨Ó½Í: ³o¨âÓ°Ï°ì¥i¥H¤À§O (©Î¦P®É) ¦b¿é¤Jªk µøµ¡¤W¡B©Î¥X²{¦b±z¥Ø«eªº´å¼Ðªþªñ¡B©Î XIM client¦Û¤v·Ç³Æ¤@¶ô°Ï°ì¨ÓÅã¥Ü .... µ¥µ¥¡C¦Ü©ón¥Î¨º¤@ºØ style? ³q±`³£¬O·í XIM client »P server ·f¤W½u®É¡A¥¦ ¥ý¦V server ¸ß°Ý¦³¨º¨Ç style¥i¥Î¡AµM«á¦A±q¤¤¬D¿ï¤@ºØ¡A§i¶D server »¡«ü©w n¨Ï¥Î¡A¤GªÌ¹F¦¨¨óij«á§Y¥i¤W¸ô¡C ¦b xcin-2.5.1 ¤§«e¡Axcin ¥u¤ä´©¤@ºØ input style¡A¶Ç²Î¤WºÙ¤§¬° Root¡A·N«ä¬O pre_edit area »P status area ³£¦b xcin µøµ¡¤¤¡G«eªÌ§Y¬°µøµ¡²Ä¤G¦æ¨º¶ô¬õ´Ä ¦âªº°Ï°ì (±z©ÒºV¤Jªº¦rÁä½X·|¨ÌÄò¥X²{¡Aµ¥¨ìºV§¹¤§«á¤~·|¶]¥X¤@Ó§¹¾ãªº¦r¡A³o ¹Lµ{´N¬O¡u²Õ¦r¡v) ¡AY¹J¨ì¦h«¦r¿ï¾Ü®ÉÁÙ·|¥]¬Aµøµ¡ªº²Ä¤@¦æ¡F¦Ó«áªÌ«h¬°µøµ¡ ²Ä¤G¦æªº¥ª¥k¨â¶ô°Ï°ì¡A¥¦ÌÅã¥Ü¤F¥Ø«e xcin ©Ò³Bªºª¬ºA (¦p^¼Æ¡B¥þ«¬¥b«¬µ¥)¡C ¦Ó¦Û 2.5.2 °_¡A§ÚÌ´À xcin ¥[¤J¥t¤@ºØ input style¡A¶Ç²Î¤WºÙ¤§¬° OverTheSpot, ¥¦ªº·N«ä¬O pre-edit area ·|¥X²{¦b±z¥Ø«e¥´¦rªº´å¼Ðªþªñ¡A¦Ó¥B¬O¥Ñ XIM server (§Y xcin) ¥t¥~¦b¨º´å¼Ðªþªñ¶}¤@Ó¤p¤pµøµ¡¡A¦Ó±N pre_edit area ¤¤ªº¸ê®ÆÅã¥Ü¦b ¨º¡C¦¹ input style ³Ì¤jªº¦n³B´N¬O pre_edit area ¬O¸òµÛ´å¼Ð¶]ªº¡A¦p¦¹·í±z¦b¥´ ¦r®É¡A±z´N¤£¥Î²´·ú¤@ª½²¾¤W²¾¤U¬Ý´å¼Ð¥H¤Î xcin µøµ¡¤F¡C ------------------------ QC.12: §Ún¦p¦ó§ïÅÜ xcin ªº¿é¤J¼Ò¦¡©O¡H ¦pªG³o¸Ì«üªº¬O xcin ¦b±Ò°Ê®É´N¶}±Ò¬Y¨Ç¿é¤J¼Ò¦¡ (input style) ªº¤ä´©ªº¸Ü¡A±z קï xcinrc ÀÉ¡A¦b INPUT_STYLE ¿ï¶µ¤¤¦C¥X±z§Æ±æ¶}±Òªº¿é¤J¼Ò¦¡§Y¥i¡C¨Ò¦p: (define INPUT_STYLE '(Root OverTheSpot)) ªí¥Ü¦P®É¶}±Ò Root »P OverTheSpot ¨âÓ¼Ò¦¡¡C¦p¦¹·í±z¦b«·s±Ò°Ê xcin ®É¡A±z·| ¨£¨ì¦p¤Uªº°T®§: XCIN (Chinese XIM server) version xcin 2.5.2-pre1. (module ver: 20000110, syscin ver: 20000210). (use "-h" option for help) xcin: XIM server "xcin" locale "zh_TW.Big5" transport "X/" xcin: inp_styles: Root OverTheSpot ^^^^^^^^^^^^^^^^ ³o¼Ë´Nªí¥Ü¦¨¥\±Ò°Ê¤F¡C µM¦Ó¡A¬O§_±µ¤U¨Ó´N¨Ï¥Î¬YÓ¯S©wªº¿é¤J¼Ò¦¡¨Ó¿é¤J¡AÁÙ±o¥Ñ XIM client ¨Ó¨M©w (¥Ø «e xcin ¤£¥D°Ê¬° client ¨M©w)¡C¥Ñ©ó OverTheSpot ¬O¸û¦nªº¤@Ó style¡A¦]¦¹¥Ø«e µ´¤j³¡¤Àªº XIM client ¦b¹ï©ó¨Ï¥ÎÀu¥ý¶¶§Ç¤W³£¬O OverTheSpot ¤j©ó Root (³q±` Root ³£¬O±Æ¦b³Ì«áªº)¡C¦]¦¹¡A¦pªG XIM client ¦b»P XIM server ¥æ½Í¹L«á¡Aµo²{¦³ OverTheSpot ³oÓ¿é¤J¼Ò¦¡¥i¥Î®É¡A¤@¯ë±¡ªp¤U³£·|«ü©w¨Ï¥Î¥¦¡C D. ¿é¤Jªk¼Ò²Õ¬ÛÃö°ÝÃD: ------------------------ QD.1: xcin-2.5 ªºª`µ¿é¤Jªk¥Î°_¨Ó¦n©_©Ç¡A¸ò¤@¯ëªº¿é¤J²ßºD¤£¤Ó¤@¼Ë¡C ³on¤À¦¨¨âÂI¨Ó¦^µª: 1. Ãö©óª`µ¿é¤Jªkªº¤W¦r²ßºD: ±z¥i¯à¬O¨Ï¥Î¨ì¤F gen_inp + phone ªºª`µ ¿é¤Jªk¤F :-)) xcin-2.5 ´£¨Ñ¨âºØª`µ¿é¤J¡A¤@¬°³q¥Î©Ê¿é¤Jªk¼Ò²Õ¦A±¾ ¤W phone.tab (§Y gen_inp + phone), ³o¥u¬Oӫܶ§¬Kªºª`µ¿é¤Jªk¡A¨S ¤°»ò¥\¯à¡A¥t¤@Ó¬O bimsphone ¼Ò²Õ¡A¦¹¬°¡u±M·~¡vªºª`µ¿é¤Jªk¡C¥¦¾Ö ¦³³\¦h¤j®a¥i¯à³£»Ýnªº¥\¯à¡A¨Ò¦p¦Û°Ê¿ï¦r¡A¤ä´©³\¤ó»PʤÑÁä½Lµ¥¡C ¦b§Ú̪º xcinrc ¤¤¡A¤w¹w³]¦n¤F ctrl+alt+3 ±Ò°Ê gen_inp + phone, ¦Ó ctrl+alt+6 «h±Ò°Ê bimsphone, §Æ±æ¤j®a¦b¥ÎºD¤F xcin-2.3.X ®É¡A¯à°÷ ¹ï¦¹·P¨ì¼ô±x¡C·íµM¡A¦pªG±z¤£³ßÅw³o¼Ë¡A¤]¥i¥H¦Û¦æקï xcinrc ¥[¥H§ó´«¡C 2. ¥Ø«e gen_inp.so ¤w¯à±µ¨ü¤@¦r¦h½X¡B¦h¦r¦P½Xªº .cin ÀÉ¡C·í¹J¨ì¤@¦r¦h ½X¡B©Î¦h¦r¤@½X®É¡A gen_inp.so ªº¤º©w±Æ¦C¶¶§Ç¬O¨Ì .cin ì¨Óªº±Æ¦C¶¶ §Ç¦Ó©wªº¡CY±zµo²{¦³±Æ¦C¶¶§Ç¤£¹ïªº±¡ªp¡A¥i¥H¸ÕµÛקï¤@¤U .cin Àɤ¤ ªº¶¶§Ç¡AµM«á¦A¥Î cin2tab «·s½sĶ¤@¦¸¡A¦A«¶] xcin ¡A¬Ý¬O§_¦³§ïµ½¡C °£¦¹¤§¥~¡A¦b³B²z¤@¦r¦h½X®É¡A±z¥i¥H¦b¨ä¤¤¬D¤@Ó°µ¬°¦¹¦rªº¡u¥Nªí½X¡v¡A «h gen_inp.so ¦bÅã¥Ü¦¹¦rªº¦r½X®É¡A«K·|¥H¦¹¡u¥Nªí½X¡v¨ÓÅã¥Ü¡C¸Ô¨£ doc/Cin ¤@¤åªº»¡©ú¡C ------------------------ QD.2: ¦A즳ªº xcin-2.3.X µüµ¿é¤Jªk¤¤¡A¥i¥H«ö SHIFT+, SHIFT+. ¦Ó¿é¥X ¥þ§Î¼ÐÂI¡A¦ý xcin-2.5 ªº bimsphone ¬°¤°»ò¨S¦³©O? ±z¥i¥Hקï $XCIN_DEFAULT_DIR/tab/zh_TW.Big5/default.phr, ¨ì %shift ¨º¤@ ¸`¡A¦Û¦æ³]©w±z§Æ±æ«ö¤U shift+¬YÁä«áªº¿é¥X¦r¦ê¡A¨ä¤¤¸ÓÀɪº®æ¦¡¬O¥ª¥bÃ䪺 ¥b§Î¦r¬O shift+©Ò«ö¤UªºÁä¡A¦Ó¥k¥bÃ䪺¥þ§Î¦r´N¬O xcin ªº¿é¥Xµ²ªG¡C¦pªG±z ¨S¦³ root Åv¡AµLªkª½±µ×§ï¨ä¤º®e®É¡A±z¥i¥H±N¥¦½Æ»s¨ì $HOME/.xcin/tab/ ¦A¨Óקï¡C¦P®É±z¤]nקï xcinrc ªº¤º®e¡A±N bimsphone ¨º¤@¸`ªº QPHRASE_MODE ³]¦¨: (QPHRASE_MODE 1) ¥H±Ò°Ê¦¹¥\¯à¡C½Ðª`·N¡A¦b default.phr Á`¦@¤À¦¨¤¸`¡A¤À§O¬O %trigger, %shift, %alt, %ctrl ¥H¤Î %fallback, ¨ä¤¤¤¤¶¡¤TªÌ¤À§O¥Nªí«ö shift, alt, ctrl ¦A¥[¨ä ¥LÁ䪺¿é¥X¡A¦Ó %fallback ¥NªíY±z©Ò«öªº¦rÁ䤣¬O¸Ó¿é¤Jªk¤¤¦³·N¸qªº¦rÁä®É¡A´N ¥H¦¹¤p¸`ªº¤ù»y¿é¥X¡CY±z·Q±Ò°Ê³o¨Ç¥\¯à¡A±z¥²¶·¾A·í³]©w QPHRASE_MODE ªºÈ¡C ¸Ô¨£ doc/modules/im_comm ªº»¡©ú¡C ------------------------ QD.3: §Ún¦p¦ó§ïÅܪ`µ¿é¤JªkªºÁä½L¹ïÀ³©O¡H¦pʤÑÁä½L©Î³\¤óÁä½L¡H XCIN ¦³¨âºØ¤£¤@¼Ëªºª`µ¿é¤Jªk¡A¤@¬° gen_inp ¼Ò²Õ·f°t phone.cin¡A¥t¤@Ó¬° bimsphone ¼Ò²Õ©Ò´£¨Ñªºª`µ¿é¤Jªk¡A¦Ó¥u¦³«áªÌ¤~¯à§ïÅÜÁä½L¹ïÀ³¡C§ïÅܪº¤è¦¡¬° קï xcinrc ÀÉ¡A§ä¨ì (define bimsphone ©Î (define bimsphone_default ¤p¸`¡A¸ÌÀY·|¦³ KEYMAP ªº³]©w¡Aק復ªºÈ§Y¥i¡C±z¥i¥H¨£¨ì¦¹³]©w«áÀYªºª`¸Ñ¡A ¨Ò¦p³]¬° 1 ¥Nªí¹s³üÁä½L¡A2 ¥NªíʤÑÁä½L¡A3 ¥NªíÊ¤Ñ 26 Áä½L¡A¦Ó 4 ¥Nªí³\¤ó Áä½L .... µ¥¡C ------------------------ QD.4: ¹³ª`µ³oºØ¤@Ó keycode ¥i¥H¹ï¬M¨ì¦hºØ¦rªº¿é¤Jªk, cin2tab ¦ü¥G·|§â phone.cin ¸Ìªº¶¶§Ç¶Ã±¼¡C¹³ "¤Ñ" ¦b .cin ªº¶¶§Ç¬O "¤Ñ²KÐÝÌZÜ_Ôì", ¥´¥X¨Óªº¶¶§Ç«o¬O "Ôì²KÜ_ÌZÐݤÑ", ¨ä¥L¦r¤]¬O¤@¼Ë, ª©(2.3.02) ´N¨S ¦³³oºØ±¡§Î¡C³o¬O bug ÁÙ¬O feature? ³o¬O Bug, »P©Ò¨Ï¥Îªº±Æ§Ç¨ç¦¡¦³Ãö¡C²z½×¤W¡A¥Ø«e xcin ¤w±Ä¥Î¦Û¤vªº±Æ§Ç¨ç¦¡¡A ¦Ó¤£¦A¨Ì¿à¨t²Î´£¨Ñªº±Æ§Ç¨ç¦¡¡A¬G¤Wz°ÝÃDÀ³¸Ó¤£·|µo¥Í¤F¡C ------------------------ QD.5: ¦p¦óקï xcin ±Ò°Êªº¹w³]¿é¤Jªk©O¡H ¹ï©ó¤£¦Pªº locale¡A¨ä¦b xcinrc ªº¸Ó locale ¤p¸`¤¤³£¦³¹w³]¿é¤Jªkªº³]©w¶µ¡C¨Ò ¦p zh_TW.Big5 locale¡A½Ð±z§ä¨ì: (define zh_TW.Big5 ¤p¸`¡Aקï DEFAULT_IM «áÀYªºÈ¡A±N¥¦§ï¦¨±z§Æ±æªº¿é¤Jªk¦W§Y¥i¡C½Ðª`·N³oÓ¿é ¤Jªk¦W¤]¥²¶·¦P®É¥X²{¦b¦P¤@¤p¸`¤¤©³¤Uªº CINPUT «áÀY©Ò¦Cªº¿é¤Jªk¤¤¡C ------------------------ QD.6: ½Ð°Ýn¦p¦ó¼W¥[·sªº¿é¤Jªk©O¡H n¼W¥[·sªº¿é¤Jªk±z¥²¶·¥ý½T©w¨â¥ó¨Æ: 1. ±zªº¿é¤Jªk¬O¨Ï¥Î¨ººØ¤º½X¡HY¬O Big5 ªº¸Ü«hÄÝ©ó zh_TW.Big5 locale, Y¬O GB ªº¸Ü«hÄÝ©ó zh_CN.GB2312 locale¡C 2. ±zªº¿é¤Jªk¬O¨Ï¥Î gen_inp ¼Ò²Õ¡HÁÙ¬O¥¦¥t¥~´£¨Ñ¤@Ó·sªº¼Ò²Õ¡H ¥H¤U§Ú¥ý´N³Ì¤@¯ëªº±¡ªp¡A§Y±z·Q·s¼Wªº¿é¤Jªk xyz ¬O¨Ï¥Î Big5 ½X¡A¥B¨Ï¥Î gen_inp ¼Ò²ÕÅX°Ê¡A¨Ó§@»¡©ú¡C¤Z¬O¨Ï¥Î gen_inp ¼Ò²Õ¨ÓÅX°Êªº¿é¤Jªk¡A¥¦¥²¶·n¦³¤@Ó .cin ÀÉ¡A§Ú·Q¨Ï¥Î¹Lª© xcin ¨t²ÎªºªB¤ÍÀ³¸Ó¬Û·í¼ô±x¡C¦³¤F .cin ÀÉ¡A±z¥²¶·¥ý¥Î cin2tab ³oÓµ{¦¡±N¥¦Âন .tab ÀÉ: cin2tab -l big5 xyz.cin ¦b³oùØ "-l big5" ¿ï¶µ¬O«ü©w±Ò°Êªº¤º½X¦W¡A¦]¬° xyz.cin ¬O¨Ï¥Î Big5 ½X¡A¬G³o ùتºÈ¬O big5¡C·íµM¡A¦pªG±zªºÀô¹Ò¤¤¤w¹w³]¤F LC_CTYPE=zh_TW.Big5 Àô¹ÒÅܼƪº¸Ü¡A±z¥i¥H¬Ù²¤³oÓ -l ªº¿ï¶µ¡C½Ðª`·N¡A xcin-2.5 ªº cin2tab ©Ò±µ¨ü ªº .cin Àɮ榡»Pª©ªº¤£¦P¡C·sªº®æ¦¡©w¸q¥i¥H¦b Cin ¤@¤åªº²Ä¤G¸`¤¤§ä¨ì¡C §¹¦¨«á¡A±z·|¦³¤@Ó xyz.tab, ³o®É±z¥i¥H±N¥¦©ñ¤J¹w³]ªº xcin ¥Ø¿ý¤¤¡A¦p /usr/local/lib/xcin/tab/big5/ ©ÎªÌ±z¦b¦Û¤vªº $HOME ¥Ø¿ý¤U«Ø¤@Ó .xcin ¥Ø¿ý¡A§â¥¦©ñ¶i¥h¥ç¥i¡C ±µµÛ¡A±zn§ï xcinrc ÀÉ¡An§ï¨âÓ¦a¤è: 1. locale section ªº³¡¤À: ¥Ñ©ó xyz.tab ÄÝ©ó zh_TW.Big5 locale, ¬G³o®É½Ð§ä¨ì zh_TW.Big5 ¨º¤@¸`: (define zh_TW.Big5 ............................ ¦b³o¤@¸`¤¤¦³¤@Ó CINPUT ªº¶µ¥Ø¡A¥¦¬O«ü©w¥Ø«e xcin ¥i¸ü¤Jªº¿é¤Jªk¡A¦p (CINPUT (cj phone bimsphone zh_hex) ±z¥un±N xyz ¿é¤Jªk¥[¶i¥h§Y¥i¡A¦p (CINPUT (cj phone bimsphone zh_hex xyz) ¸Ô¨£ Usage ¤@¤åªº»¡©ú¡C 2. ¥[¤J xyz ¿é¤Jªk¸Ô²Ó©w¸q: ¥Ñ©ó xyz ¿é¤Jªk¬O¥Ñ gen_inp ¼Ò²Õ¨ÓÅX°Êªº¡A¬G ±z¥i¥Hª½±µ°Ñ¦Òì xcinrc ¤¤ cj ¿é¤Jªk¨º¤@¸`ªº¼gªk¡A¼g¤@¥÷ xyz ¿é¤Jªk¸`, ª½±µ¥[¤J xcinrc ÀÉùØÀY¡A¨Ò¦p: (define xyz '((SETKEY 9) (AUTO_COMPOSE YES) (AUTO_UPCHAR YES) (AUTO_FULLUP NO) (SPACE_AUTOUP NO) .......................... ¨ä¤¤¨C¤@Ó²Ó³¡¶µ¥Øªº·N¸q½Ð°Ñ¦Ò modules/gen_inp ¤@¤åªº»¡©ú¡Cn¯S§Oª`·Nªº ¬O SETKEY ¥Nªí¤F¹w³]±¡ªp¤U¤Á´«¨ì¦¹¿é¤JªkªºÁä¡A¦p¤W¨Ò¬° ctrl+alt+9, ¥¦¦b ¦P¤@ locale ©Ò¦³¿é¤Jªk¤¤¥²¶·¬O¿W¤@µL¤G¡A¤£¯à¦³«½Æªº (¦ý¦b¤£¦P locale ¤¤ ¥i¥H«½Æ)¡A¦]¦¹¦b³]©w³o¤@¶µ®Énª`·N¡C ³]©w§¹¦¨«á¡A«¶] xcin §Y¥i¡C ¦pªG±zn·s¼Wªº¿é¤Jªk¤£¨Ï¥Î gen_inp ¼Ò²Õ¡A¦Ó¬O¨Ï¥Î¨ä¥L¼Ò²Õªº¸Ü¡Aº¥ý±z¥²¶· ½T©w±z¤â¤Wªº¨ºÓ¼Ò²Õ (xyz-module) ªºª©¥»²Å¦X±z¥Ø«e¨Ï¥Îªº xcin ª©¥»¡C±z¥Ø «e¨Ï¥Îªº xcin ¼Ò²Õª©¥»¥i¥H¦b xcin ±Ò°Ê®É¨£¨ì¡A¨Ò¦p: XCIN (Chinese XIM server) version xcin 2.5-19991128. (module ver: 19991107, syscin ver: 19990521). (use "-h" option for help) ¨ä¤¤ module ver §Y¬° xcin ªº¼Ò²Õª©¥»¡C¦pªG xyz-module ªº¼Ò²Õª©¥»»P xcin ªº ¤£¦Xªº¸Ü¡A xcin ·|©Úµ´¨Ï¥Î¥¦¡A³o®É±z°ß¤@Ó¿ìªk´N¬O«·s½sĶ¤@¦¸ xyz-module, Åý¥¦¦b±zªº xcin ªº source ¤U½sĶ¡A¸Ô²Ó¨BÆJ½Ð°Ñ¾\¸Ó¼Ò²Õªº»¡©ú¤å¥ó¡C Y¨S¦³°ÝÃDªº¸Ü¡A±z¥i¥H±N xyz-module.so ©ñ¨ì xcin ¹w³]¥Ø¿ý¤U¡A¦p /usr/local/lib/xcin/ ©ÎªÌ©ñ¨ì±zªº $HOME/.xcin/ ©³¤U§Y¥i¡A¦P®É±z¤]n¸Ë¦n¸Ó¼Ò²Õªºªþ±a¸ê®ÆÀÉ¥H¤Î library (½Ð°Ñ¾\¸Ó¼Ò²Õªº»¡©ú¤å¥ó)¡C±µµÛ´N¬Oקï xcinrc, §ïªk»P«ez§¹¥þ¬Û¦P: °²³]±zªº xyz ¿é¤Jªk¨Ï¥Î xyz-module.so ¼Ò²Õªº¸Ü¡A«h locale ¸`¤¤ (CINPUT (cj phone bimsphone zh_hex xyz) ¦Ó¦b xyz ¸`¤¤ (define xyz '((SETKEY 9) (MODULE "xyz-module") ................................... n¯S§Oª`·N³oùØ¥²¶·n¦³¤@Ó MODULE ¶µ¡A¥Î¨Ó«ü©ú¦¹¿é¤Jªk©Ò¨Ï¥Îªº¼Ò²Õ¡C¦Ü©ó ¨ä¥Lªº³]©w¿ï¶µ½Ð¦Û¦æ°Ñ¦Ò¸Ó¼Ò²Õªº»¡©ú¤å¥ó¡C ------------------------ QD.7: §Ú¦p¦ó¦b bimsphone ¿é¤Jªk¤¤¥[¤J·sµü©O¡H bimsphone ªºµü®w¬OÄÝ©ó libtabe ®M¥óªº¤@³¡¤À¡A¦pªG±zn¥[¤J·sµüªº¸Ü¡Aº¥ý ±z¥²¶·¥ý¨ú¦^ libtabe ®M¥óªºì©l½X¡A±z¥i¥H±q³o¸Ì¤U¸ü: ftp://xcin.linux.org.tw/pub/xcin/xcin/ ftp://xcin.linux.org.tw/pub/xcin/libtabe/ ±Nì©l½X®M¥ó¸Ñ¶}«á¡A¨äµü®wÀÉì©l½X´N©ñ¦b libtabe/src/tsi-src/tsi.src ±z¥i¥H«ö·Ó¨ä®æ¦¡¥[¤J·sµü¡C¨ä®æ¦¡«Ü²³æ¡A¨C¤@Óµü¤@¦æ¡A¦@¤TÓÄæ¦ì¡A¦p¤U: <µü±ø> <µüÀW> <µü±øªºª`µ½X> ¨ä¤¤ <µü±ø> ¬O«üµüªº¥»¨¡A<µüÀW> ±z¥u»Ý¶ñ¤J 0 §Y¥i¡A¦Ó <µü±øªºª`µ½X> ±z ¥i¶ñ¥i¤£¶ñ¡AY¤£¶ñªº¸Üµ¥¤@·|µ{¦¡¦b½sĶµü®w®É·|¦Û°Ê¸É¤W¡C¦ýì«h¤W§ÚÌÁÙ¬O «Øij±z¶ñ¤J¤ñ¸û¦n¡C §¹¦¨«á¡A½Ð«ö·Ó¥H¤U¨BÆJ½sĶ: sort tsi.src > tsi.src.new tsiadd -d tsi.db -f tsi.src.new -y -r tsiyindump -d tsi.db -y yin.db ¨ä¤¤²Ä¤@Ó«ü¥O±N¾ãÓµü®wÀɱƧǡA¦s¦¨¤@Ó·sÀÉ: tsi.src.new¡A²Ä¤GÓ«ü¥OŪ ¤J tsi.src.new ²£¥Í tsi.db ÀÉ¡A³Ì«á¤@Ó«ü¥OŪ¤J tsi.db Àɲ£¥Í yin.db ÀÉ¡A ¦Ó tsi.db »P yin.db ´N¬O½sĶ§¹¦¨ªºµü®wÀÉ¡C±µ¤U¨Ó¡A±z´N¥i¥H±N³o¨âÓµü®wÀÉ ¦w¸Ë¨ì¨t²Î¥Ø¿ý¥h: cp tsi.db yin.db $(prefix)/share/tabe/tsiyin/ ¨ä¤¤ $(prefix) ¬O±z·íªì¦w¸Ë libtabe ªº¦ì¸m¡A¥i¯à¬O /usr ©ÎªÌ /usr/local¡C ¦³Ãö tsi.src ¸Ô²Óªº®æ¦¡»¡©ú¡A½Ð¨£: http://xcin.linux.org.tw/libtabe/tsi.src.html ------------------------ QD.8: §Úµo²{ª`µ¿é¤Jªk¤¤¥i¥H³sÄò¿é¤J¨âÓ £t¡A©ÎªÌ¥i¥H¿é¤J¦p £«£x ³o¼Ëªº µ¡A³o¦ü¥G«Ü¤£¦X²z¡H ·|¦³³oºØ°ÝÃDªº¬O¨Ï¥Î gen_inp ¼Ò²Õªºª`µ¿é¤Jªk¡A¨ä¿é¤Jªkªí®æ¦W¬° phone.cin¡C ¥Ñ©ó gen_inp ¼Ò²Õ¬O©w¦ì¬°¤@¯ë³q¥Î«¬ªº¿é¤Jªk¼Ò²Õ¡A¥¦ªº¤u§@¥u¦³±N§A©Ò¿é¤Jªº¦r Áä¬dªí¡A§ä¥X¹ï¬Mªº¦rµM«á°e¥X¡C¦]¦¹¡A¹ï©ó¥ô¦ó¿é¤Jªkªí®æ (§Y .cin ªí®æ)¡A¥¦ªº ³B²z¤è¦¡³£¬O¤@µø¦P¤¯¡A¤£·|¦]¬°¿é¤Jªkªº¤£¦P¦Ó¦³¯S§O¤£¦Pªº³B²z¤è¦¡¡C¦]¦¹±z¤~ ·|¨£¨ì¦b¦¹ª`µ¿é¤J¤¤¡A¿ù»~ªºª`µ½X¶¶§Ç¤´¥i±µ¨ü¡A¦]¬°¦¹¼Ò²Õ¤¤¨Ã¨S¦³¯S§O¤º«Ø ª`µ½Xªº¶¶§Çªí¡C ¦pªG±z«Ü¤£³ßÅw³oӯʪº¸Ü¡A«Øij±z¥i¥H§ï¥Î bimsphone ¿é¤Jªk¼Ò²Õ¡C¦¹¼Ò²Õ¬O±M ªù°w¹ïª`µ¿é¤J¦Ó³]pªº¡A¤£¶È¤º«Ø¤F¥¿½Tªºª`µ½X¦¸§Ç¡A¬G¤£·|¦³¤Wzªº°ÝÃD¡A¦P ®É¥¦ÁÙ¤º«Ø¦hºØª`µ½XÁä½L¹ï¬M¡A¥H¤Î¦Û°Ê¿ï¦r¥\¯à .... µ¥µ¥¡C¦pªG±z¤£³ßÅw¥¦ªº ¦Û°Ê¿ï¦r¥\¯à¡A±z¤]¥i¥H±N¥¦Ãö±¼¡A¥unקï xcinrc ÀÉ¡A§ä¨ì bimsphone_default ©ÎªÌ bimsphone ªº³]©w¤p¸`¡A±N¦¹¿ï¶µ³]¦¨ NO: (AUTO_SELECTION NO) µM«á«·s±Ò°Ê xcin §Y¥i¡A¦p¦¹¥¦´N¬O¤@ӯºتºª`µ¿é¤Jªk¤F¡C E. xcin ³]p¬ÛÃö°ÝÃD: ------------------------ QE.1: ½Ð°Ý§Ún¦p¦ó Debug xcin? ±z¥i¥H¸Õ¸Õ compile xcin ®É¡A±N xcin ªº DEBUG ¿ï¶µ¥´¶}: configure --enable-debug «h«·s½sĶ¹L«áªº xcin ´N·|¦h¥X¤@Ó -v ªº°Ñ¼Æ (§Y verbose)¡A¥i¥Î¨Ó³]©w°£¿ù °T®§Åã¥Ü¼h¯Å¡C¨Ï¥Î¤è¦¡¬°: xcin -v n <¨ä¥L¿ï¶µ> ¨ä¤¤ n ¬°¼Æ¦r¡A¼Æ¦r¶V¤jªí¥ÜÅã¥Üªº°£¿ù°T®§¶V¦h¡C¤Uªí¬°¸Ó¼Æ¦rÈ»P±NÅã¥Üªº°£ ¿ù°T®§¹ïÀ³: 1: °T¸¹ (signal) ÄdºIÅã¥Ü¡A¥]¬A SIGQUIT, SIGTERM, SIGINT¡C 2: fontset ºÞ²z¾÷¨î°T®§Åã¥Ü¡C ¤W¼h XIM ¹B§@°T®§Åã¥Ü¡C 3: À³¥Îµ{¦¡ IC Àˬd¾÷¨î°T®§Åã¥Ü¡C ©³¼h (IMdkit) XIM ¹B§@°T®§Åã¥Ü¡C Ãö©ó XIM ªº¹B§@¹Lµ{¡A³q±`¦b±Ò°Ê xcin «á¡A¦A±Ò°Ê client, «h°T®§¬yµ{¦p¤U: 1. XIM_OPEN: Client »P XIM server (§Y xcin) ³s¤W¡C 2. XIM_CREATE_IC: Client ¶}±Ò¤F¤@Óµøµ¡¡A¥B¸Óµøµ¡¥i¥H±µ¨ü XIM server ªº¿é¤J¡C³o¼Ëªºª« ¥óºÙ¤§¬°¤@Ó IC (Input Context)¡C 3. XIM_SET_IC_FOCUS: Client ©Ò¶}ªº³oÓµøµ¡³]¬° XIM ¤u§@«e´ºµøµ¡¡A¦¹µøµ¡ª½±µ»P XIM server ·¾³q¡C 4. XIM_UNSET_IC_FOCUS: ¦pªG¦¹®É±zªº·Æ¹«ÂI§Oªºµøµ¡¡A«hì¨Ó XIM_SET_IC_FOCUS ªºµøµ¡¬°Åܦ¨I ´ºµøµ¡¡C 5. XIM_TRIGGER_NOTIFY: ¦b±z©|¥¼«ö¤U trigger key ¤§«e (¦p ctrl+space)¡A xcin ÁÙ¤£·|¥hÄd client ªº key event, ¦ý¦b±z«ö¤F trigger key ¥H«á¡C³o®É¨C«ö¤U¥ô¦ó«ö Áä¡A³£·|¥æ¥Ñ xcin ³B²z¡C 6. XIM_FORWARD_EVENT: ³o¬O¦b±z«ö¤F trigger key ¥H«á¡A³o®É¨C«ö¤U¥ô¦ó«öÁä¡A³£·|¦L¥X³oÓ°T ®§¡A¥Nªí xcin ·|³B²z±zªº«öÁä¿é¤J¡C 7. XIM_GET_IC_VALUES: ¦b¬Y¨Ç³]pºë¨}ªº XIM client (¦p rxvt-2.6) ¨C¦¸¦b³B²z X event ®É¡A ³£·|¦V XIM server ¸ß°Ý¨ä IC ªºª¬ºAÈ¡C¦Ó¨C·í client °µ³o¼Ëªº¸ß°Ý ®É¡A xcin ³£·|¦L¥X³o¼Ëªº°T®§¡C 8. XIM_SET_IC_VALUES: ¦b¬Y¨Ç±¡ªp¤U¡A XIM client ·|n¨D XIM server ±N¨ä IC ³]©wª¬ºAÈ¡C ¦Ó¨C·í client °µ³o¼Ëªºn¨D®É¡A xcin ³£·|¦L¥X³o¼Ëªº°T®§¡C 9. XIM_DESTROY_IC: ²z½×¤W¡A·í XIM client ªº¬YÓ¦³¶}±Ò IC ª«¥óªºµøµ¡nÃö³¬®É¡A¥¦¥²»Ý °e³oÓ°T¸¹µ¹ XIM server, ¦nÅý XIM server °µ¤@¨Ç¿¯«áªº°Ê§@¡A¦ý¥i ±¤ªº¬O³o¼Ëªº client ¤£¦h¡C 10. XIM_CLOSE: ²z½×¤W¡A·í XIM client µ²§ô®É¡A¥¦¥²»Ý°e³oÓ°T¸¹µ¹ XIM server, ¦nÅý XIM server °µ¤@¨Ç¿¯«áªº°Ê§@¡A¦ý¥i±¤ªº¬O³o¼Ëªº client ¤£¦h¡C ½Ðª`·N¡A·í±zn¶i¦æ Debug ªº¤u§@®É¡A *½Ð¤£n* ¦b XIM client ¤Wª½±µ±Ò°Ê xcin (¨Ò¦p¡A¤£n¦b rxvt ¤W±Ò°Ê xcin), ¥¿½Tªº°µªk®É¶}¥t¤@Ó«D XIM client ªº terminal (¦p xterm), ¦b¤WÀY±Ò°Ê xcin ©Î¶] gdb, µM«á¤~¨Ó¶i¦æ debug ªº¤u§@¡C ------------------------ QE.2: xcin-2.5 ¦b 64 bits ¾÷¾¹¤W (¦p DEC alpha) ·|¤£·|¦³°ÝÃD©O? ¥Ø«e xcin ªº¥Dµ{¦¡§Ú¤wºÉ¶q°µ¨ì¥i¥H¦b long int ¬° 64 bits ¥i¥H¬Û®e¤F¡A§ÚÌ ¤]¦b Linux Alpha »P Linux PPC ¤W´ú¹L¡A¤jÅé¤W¨S¤°»ò¤j°ÝÃD¡C¦³¿³½ìªºªB¤Í¤]¥i ¥H¸Õ¸Õ¡A·íµM¡A¥i¯àªº¸Ü¤]½Ð±z°µ°ÝÃD¦^³ø :-)) ------------------------ QE.3: ½Ð°Ý¤°»ò¬O IC Check? ¤°»ò¬O garbage collection? ³o¨âÓªFªF¦³Ãö¶Ü¡H ¦b xcin-2.5 ¤¤¡A³o¨âÓ¬O¦P¤@ÓªFªF¡A¥¦¬O¥Î¨ÓÀˬd XIM client ¬O§_ÁÙ¦s¦b¥Îªº¡C ³o¨Ç¬O°w¹ï¤@¨Ç³]p¤W¤£°÷§¹¾ãªº XIM client ¦Ó³]pªº¡C«ö·Ó¼Ð·Ç¡A·í¤@Ó XIM client ¤W¥ô¦óµøµ¡nµ²§ô®É¡A¥¦À³¸Ó©I¥s XCloseIM() ¨Ó³qª¾ XIM server (§Y xcin), ¦p¦¹ xcin ¤~¯à¦^¦¬¤£n¥Îªº¨t²Î¸ê·½ (§Y Input Context, IC), ÄÀ©ñ¤£»Ýnªº°O ¾ÐÅé¡CµM¦Ó¡A¨Ã«D©Ò¦³ªº XIM client ³£«ö·Ó³o¼Ëªº¼Ð·Ç¡C¬°¤F§JªA³oÓ°ÝÃD¡A§ÚÌ ¤~¯S§O¬° xcin ³]p¤F IC Check ¾÷¨î¡AÅý¥¦©w®ÉÀˬd©Ò¦³ªº XIM client ªº Window ¬O§_ÁÙ¦s¦b¡HY¤£¦s¦b«h¦^¦¬µL¥Îªº IC ¡C µM¦Ó¡A³oÓ IC Check ¦b¬Y¨Ç±¡ªp¤U¥i¯à·|³y¦¨°ÝÃD¡A³o¤@ÂI§ÚÌÁÙµLªk½T©w¡A¬G¬° ¤F¦w¥þ°_¨£¡A§ÚÁÙ¬O¦b xcinrc ¤¤¥[¤F ICCHECK_DISABLE ¿ï¶µ¡A¸U¤@±zµo²{¦¹¾÷¨î¦³ Y¤z·v²«¡A±z¥i¥H³]¦¹¿ï¶µ¬° YES ±N¦¹¾÷¨îÃö³¬¡C·íµM¡AY±z¯uªºµo²{¦³°ÝÃD®É¡A§Ú ̫ܧƱæ±z¯à¦V§Ú̦^³ø¡C F. ¨ä¥Lªº°ÝÃD: ------------------------ QF.1: rxvt ¥i¥H¬Ý¤¤¤å¡A¤]¥i¥H¥Î xcin-2.5 ¥´¤¤¤å¡A¦ý¦n¹³¦³¦n¦h°ÝÃD¡A¨Ò¦p¤¤ ¤åÅã¥Ü¦³®ÉÔ·|²ö¦W©_§®ÅܶýX¡BÃö±¼ xcin ®É¦³®ÉÔ rxvt ¤]·|²ö¦W©_§® ¦a®ø¥¢ .... «ç»ò·|³o¼Ë©O¡H ¬Oªº¡A rxvt-2.6.x/2.7.x ¥Ø«eÁÙ¤£°÷§¹¬ü¡A¦h¤Ö·|¦³¨Ç°ÝÃD¡A¦ý¨º¨Ç¦h¥b¬O rxvt ¥»¨ªº°ÝÃD¡A¦³¨Ç¤w¸g¦³×¥¿¡C¦³¿³½ìªºªB¤Í¥i¥H¨ì http://xcin.linux.org.tw/rxvt/index.html ftp://ftp.rxvt.org/pub/rxvt ©³¤U«õ«õ¬Ý¡A¬Ý¬O§_¦³·sª©ªº rxvt ©Î patch ¥i¥H¥Î :-)) Y±z¦³°ÝÃD·Q¦^³ø¡A«Ø ij±z mail ¨ì: rxvt-bugs@rxvt.org rxvt-workers@rxvt.org ¸Ô¨£ http://www.rxvt.org ªº»¡©ú¡C ------------------------ QF.2: §Ú¦b xcin+xedit ¥i¥H¥´¥X¤¤¤å¡A¤£¹L xedit ¦b¸ü¤JÀɮ׮ɦ³¨S¦³ xcin ³£·|³y¦¨ segmentation fault, ³o©M xcin-2.5 ¨S¦³Ãö«Y§a? Yes, xedit ªº°ÝÃD¦h¦h (¤×¨ä¬O¦b $HOME/.Xresources ±N xedit*international enable ®É) ¥BÀ³¸Ó»P xcin ¥»¨µLÃö¡C§Ú¦b doc/Bugs ¤å¥ó¤¤¦³´£¨ì¥Ø«e¤w¹J¨ìªº ©Ò¦³°ÝÃD¡A§Ú«Øij¤j®a¦h¦h¨Ï¥Î rxvt :-)) ------------------------ QF.3: ¬°¤°»ò¦b netscape-4.X ùØÀY¡A¨C¦¸¥´¤J¤@Ó¤¤¤å¦r xcin ´N·|¤Á¨ì¡u^ ¼Æ¡v¿é¤J©O? ³o¬O netscape ¦b XIM ¤Wªº³]p¯SÂI¡A¤]¬O¥O§Ṳ́j·PÀYµhªº¦a¤è :-)) ¥ý»¡¤@¯ëªº XIM client ªº³]p¤è¦¡¡C³q±`·í XIM client ±Ò°Ê«á¡A´N·|¬°¨C¤@Ó »Ýn±µ¨ü xcin ¿é¤Jªºµøµ¡¶}¤@Ó IC, ¦ÓÅý³o¨Ç IC «ùÄòµ¥«Ý¨Ã±µ¨ü xcin ªº¿é¤J¡A ª½¨ì¸Óµøµ¡µ²§ô¬°¤î¡C ¦ý netscape ¤£µM¡A·í¥¦ªº¤@Óµøµ¡¶}±Ò«á¡A¥¦¦ÛµM¤]·|²£¥Í¤@Ó IC, ¦ý·í¸Ó IC ±µ¨ü¤@Ó¨Ó¦Û xcin ªº¿é¤J (¤£½×¬O¤¤¤å©Î^¤å) ¡A«h¥¦·|°¨¤W±N¸Ó IC °µ±¼ (Destroy IC)¡A¥t¥~¦A¶}¤@Ó·sªº IC ¨Ó±µ¨ü¿é¤J¡C¦]¦¹¡A¥¦¤£¹³¤@¯ëªº client, ¦P¤@Ó IC ±qÀY¨Ï¥Î¨ì§À¡A¦Ó¬O¨C¦¬¨ì³æ¤@ªº¦r¡A´N´«¤@Ó IC ¡C ³o¦b xcin ¤U·|²£¥Í«Ü¤jªº¼vÅT¡C xcin ªº³]p¬O¡A·í¤@Ó·sªº IC ²£¥Í®É¡A¹w³] ¬Oª½±µ¶i¤J^¼Æ¿é¤J¡A°£«D±z«ö¤U trigger key (¦p ctrl+space) ¤~·|¶i¤J¤¤¤å¿é ¤J¡C¦]¦¹¡A³o´N·|³y¦¨¦b netscape ¤U¡A¨C¿é¤J¤@Ó¤¤¤å¦r¡A¥¦´N´«¤@Ó IC, ¦Ó¦¹ ·s´«ªº IC ¤S¬O¹w³]¥H^¤å¿é¤J¡A¦]¦¹¡A±z¥²¶·¨C¿é¤J¤@Ó¤¤¤å¦r¡A´Nn«ö¤@¦¸ ctrl+space ¤Á¦^¤¤¤å¿é¤J¡C ¬°¤F¸Ñ¨M¦¹§xÂZ¡A¬G xcin-2.5.0-pre2-3 ¤¤§Ú¥[¤J¤F¡u¿é¤JªkÂê©w¡vªº¥\¯à¡C·í±z ¦b netscape ©³¤U¡A²Ä¤@¦¸¤Á¨ì¤¤¤å¿é¤J¼Ò¦¡®É¡A¥i¥H«ö ctrl+alt+f ±N¦¹¿é¤Jªk Âê©w¡A«h±z´N¥i¥H«ùÄò¶i¦æ¤¤¤å¿é¤J¡A¤£»Ýn¤@ª½«ö ctrl+space ¡C¦p¦¹«K¥i¸Ñ¨M ¦¹¤@´o¤Hªº°ÝÃD¡C Yn¸Ñ°£Âê©w¡A¥i¥H¦b¤¤¤å¿é¤J¼Ò¦¡¤Uª½±µ¦A«ö¤@¦¸ ctrl+alt+f §Y¥i¡C ½Ðª`·N¡A¥H¤Wªº²{¶H¥u·|µo¥Í¦b Netscape »P xcin ¤§¶¡¨Ï¥Î Root ¿é¤J¼Ò¦¡³s½u®É¡C ¥Ñ©ó xcin ¦Û 2.5.2 ª©¥H«á¤w¤ä´© OverTheSpot ¼Ò¦¡¡A¬G¦b¦¹«Øij±z¥i¥H§ï¥Î¦¹¼Ò ¦¡¨Ó¹ï Netscape ¿é¤J¤¤¤å¡A¦b¦¹¼Ò¦¡¤U Netscape ¤£·|µo¥Í¦p¤Wzªº°ÝÃD¡A¬G±z¤] ¤£»Ýn¡u¿é¤JªkÂê©w¡vªº¥\¯à¤F¡C ------------------------ QF.4: §Ú¦b CLE-0.8 ¤U¡A¨Ï¥Î xcin-2.5 + rxvt-2.6.0, ¦ý¨C¦¸¿é¤J¤@Ó¤¤¤å¦r ®É¡A´N·| core dump, «ç»ò¿ì©O? ³o¬O¦]¬° CLE-0.8 ¤¤¹w³] LD_PRELOAD xa+cv ªºì¬G¡C xa+cv ¨ä¹ê¬O¨âÓ³¡¤À¡A xa ªº³¡¤ÀºÙ¤§¬° "Xcin Anywhere", ¥¦¬O¥Î¨ÓÀ°§UÅý©Ò¦³ªº X-Window ³nÅé¥i¥H ±µ¨ü¨Ó¦Û¶Ç²Îªº xcin-2.3 ©Î§ó¦ª©¥»ªº xcin ªº¿é¤J¡C¥t¤@³¡¤À¬O cv, ¥¦¥i¥H À°§UµLªkÅã¥Ü¤¤¤å (Åã¥Ü¥X¶Ã½X) ªº X-Window ³nÅé¥i¥H¥¿½TÅã¥Ü¤¤¤å¡C °ÝÃDªºÃöÁä¦b©ó xa+cv ªº xa ³¡¤À»P xcin-2.5 ¤£¬Û®e¡A¦]¦¹¡A·í±zªºÀô¹Ò¤¤¤w LD_PRELOAD xa+cv ¥B xa ³¡¤À¬O enable ªº¸Ü¡A±zµLªk¨Ï¥Î xcin-2.5 ¹ï XIM client ¿é¤J¤¤¤å (·| core dump), ¥u¯à¥Îª©ªº xcin («D XIM server)¨Ó°µ¿é ¤J¡C¸Ñ¨Mªº¿ìªk¦³¨âÓ¡A¤@¬O¤£n LD_PRELOAD xa+cv, ¦A±Ò°Ê xcin »P XIM client: for bash: unset LD_PRELOAD export LC_CTYPE=zh_TW.Big5 xcin & rxvt -im xcin -pt Root -fm <chinese font name> for tcsh: unsetenv LD_PRELOAD setenv LC_CTYPE zh_TW.Big5 xcin & rxvt -im xcin -pt Root -fm <chinese font name> ¥t¤@Ó¿ìªk¬Oקï /etc/chinese/xa+cv/config ¡A§â©Ò¦³ XIM client µ{¦¡ªº xa ³¡ ¤À³£ disable, ¤]´N¬O±N mode ³£§ï¦¨ ":0:b", ¦p¡G gedit:0:b gnomecal:0:b (ÁÂÁ Platin ¥Sªº´£¨Ñ) ------------------------ QF.5: §Ú¤w±N libtabe ¦w¸Ë¦b /usr/local ©³¤U¤F¡A¦Ó¥B§Ú¤]¦w¸Ë xcin ¦¨¥\¤F¡A ¦ý¬°¤°»ò·í§Ú±Ò°Ê xcin ¨Ã·Ç³Æ¨Ï¥Î bimsphone ¿é¤Jªk®É¡A«o¤´¨£¨ì³o¼Ëªº ¿ù»~°T®§¡H xcin internal: warning: dlerror: libbims.so.0.1: cannot open shared object file: No such file or directory xcin: warning: module "bimsphone.so" not found, ignore. xcin: warning: cannot load IM: bimsphone, ignore. ¨º¬O¦]¬°±z±N libtabe ªº lib ¸Ë¦b /usr/local/lib ¤U¡A¦ý¥¦«o¨S¦³¦b±zªº lib ·j ´M¥Ø¿ýªº½t¬G¡C¸Ñ¨Mªº¤è¦¡¦p¤U: 1. ¦pªG±z¦³ root Åvªº¸Ü¡A½Ð±zקï /etc/ld.so.conf ªº¤º®e¡A¥[¤J¤@¦æ /usr/local/lib, µM«á¦A¶]¤@¤U ldconfig µ{¦¡§Y¥i¡C 2. ¦pªG±z¨S¦³ root ªºÅvªº¸Ü¡A¦b±z°õ¦æ xcin ¤§«e¡A½Ð¥ý°õ¦æ: (for bash): LD_LIBRARY_PATH=/usr/local/lib; export LD_LIBRARY_PATH (for tcsh): setenv LD_LIBRARY_PATH /usr/local/lib µM«á¦A°õ¦æ xcin ¡C±z¥i¥H±N¦¹«ü¥O¥[¤J±zªº $HOME/.profile ©Î $HOME/.cshrc ¤¤¥H«K¨C¦¸ login ¤§«á¥i¥H¦Û°Ê°õ¦æ¡C ------------------------ QF.6: ·í§Ú¨Ï¥Î xcin-2.5 ªº bimsphone ¦b netscape ¤U¿é¤J¤¤¤å®É¡A¬°¤°»ò¦b «ö¤U¤è¦VÁä¡B©Î¥Î·Æ¹«ÂI¿ï netscape ¤Wªº´å¼Ð®É¡A쥻¦s¦b xcin µøµ¡¤¤ ªº¤¤¤å¦r´N®ø¥¢¤F¡H ³o¬O netscape ³]p¤Wªº°ÝÃD¡C«e± (QF.3) ¤w´£¹L¡Anetscape ªº³]p¯S¦â¬O¨C±µ ¦¬¤@Ó¦r¡A¥¦´N·| create ¤@Ó IC, ±µ¨ì¦r«á°¨¤W±N¸Ó IC destroy, µM«á¦A¶}¤@Ó ·sªº IC ¡C¦Ó²{¦b§Ú̵o²{·í§Ṳ́£¥´¥ô¦ó¦r¡A¥ú¬O«ö¤è¦VÁä©Î¥Î·Æ¹«²¾°Ê´å¼Ð®É¡A netscape ¤]·|°µ destroy IC ¤Î create IC ªº°Ê§@¡C´«¥y¸Ü»¡¡A netscape µøµ¡¤¤ ¥ô¦ó´å¼Ð²¾°Êªº°Ê§@´N·|§ó´« IC, ¬Û·í³ß·s¹½Â¡C ¦ý³o¼Ë¤@¨Ó¦b bimsphone ùØÀY·|¦³«Ü¤jªº³Â·Ð¡Aì¦]¬O·í§Ú̲{¦b¶}©l¿é¤J®É¡A©Ò¦³ ªº¿é¤J³£¼È¦s¦b xcin µøµ¡¤¤¡A¦Ó³o®É xcin ªºµJÂI¬O¹ï·Ç¥Ø«e netscape ¤¤´å¼Ð©Ò ¦bªº IC (½Ð°O±o¡A netscape ´å¼Ð¤@°Ê´N·|´« IC), «h·í§Ú«ö¤U space Áä¡A§â xcin µøµ¡¤¤©Ò¦³ªº¦r¥þ³¡©¹¨ºÓ IC °e¹L¥h¡A©ó¬O³o¨Ç¦r¥þ³¡¥X²{¦b netscape µøµ¡¤W¡C ³o¤@ÂI¤£¦¨°ÝÃD¡CµM¦Ó¡A¦pªG±z¤S¥Î xcin ¥´¤@°ï¦r¡A¦s¦b xcin µøµ¡¤¤¡A¦ý¤£¤p¤ß «ö¤F¤è¦VÁä¥h²¾°Ê´å¼Ð¡A«h netscape °¨¤W±N¥Ø«e xcin ©Ò¹ï·Çªº IC ·F±¼¡A«h®Ú¾Ú xcin ªº©w¸q¡A¤@¥¹¥¦¹ï·Çªº IC ³Q·F±¼¤F¡A¥¦´N¨S¦³²z¥Ñn¬°¸Ó IC «O¦s¸ê®Æ¡A¦]¦¹ èè±z¨¯W¥´ªº¦r´N¥þ³¡¤£¨£¤F :-(( §Ú´¿¸Õ¹L§ï¤@¨Ç source, ´N¬O·í xcin µo²{¥¦¹ï·Çªº IC ³Q·F±¼¤F¡A¦ý xcin buffer ¤¤YÁÙ¦³¦rÁÙ¨S°e¡A´N°¨¤W±N¦r¥þ³¡°e¥X¥h¡C¦ýÁÙ¬O¨S¦³¥Î :-(( ¤@¥¹ IC ³Q·F±¼¤F¡A °e¥hªº¦r´N¹³¦×¥]¤l¥´ª¯¡AµL¼vµLÂÜ¡C ¬°¤F¸Ñ¨M¦¹°ÝÃD¡A§ÚÌ«á¨Ó¦b xcin-2.5.1-2 ª©¤¤×§ï¤F bimsphone ªº³¡¤À¡AÅý¥¦¥u ¦³¦b buffer catch (§Y xcin µøµ¡) ¤¤¤£§t¤¤¤å¦r®É¡A¤~±N¨Ï¥ÎªÌ©Ò«öªº¤è¦VÁ䪽±µ ¶Ç¦^µ¹ XIM client, ¦ýY buffer catch ùØÀY¦³ªF¦è®É¡A±z©Ò«ö¤U¥ô¦ó¤è¦VÁä±N¤£·| ª½±µ¶Çµ¹ XIM client, ¤]´N¬O»¡¦b¦¹±¡ªp¤U±zµLªkÂǥѤè¦VÁ䪽±µ²¾°Ê XIM client ¤¤ªº´å¼Ð¦ì¸m¡C§Ú·Q³o¼Ëªº§ïÅܬO¦X²zªº¡Aì¦]¬O¦¹®É±zªº¿é¤J¬O°w¹ï¥Ø«eªº´å¼ÐÂI¶i ¦æªº¡AÁöµM©Ò¿é¤Jªº¦r¤´¼È¦s¦b xcin µøµ¡¤¤¡F¥B³o®ÉÔ±z¨S¦³²z¥Ñn¦b³o¨Ç¦r°e¹F XIM client ¤§«e°µ´å¼Ð²¾°Ê¡CYn²¾°Ê´å¼Ð¡A±z¥²¶·¥ý«ö¤U space Áä±N¦r¥þ³¡°e¥X¡A ©Î«ö backspace Áä±N xcin µøµ¡¤¤ªº¦r¥þ³¡²MªÅ¤~¦æ¡C ³o¼Ëªº§ïÅÜ¡A´N¬YºØµ{«×¦Ó¨¥¤wÁקK¤F¤Wz netscape ªº°ÝÃD¡A¦ý¤´¬Oªv¼Ð¤£ªv¥»¡C¦p ªG±z¦b¥´¦r¤¤³~¨Ï¥Î·Æ¹«²¾°Ê´å¼Ð®É¡A xcin µøµ¡¤¤ªº¦rÁÙ¬O·|¤£¨£¡CYn®Úªv¦¹°ÝÃD¡A °ß¦³§Æ±æ¥¼¨Óªº netscape ¥i¥H§ïÅܨä IC ªº³]p¡C Y±z¦b¨Ï¥Î xcin-2.5 ¹ï netscape ¿é¤J®É¹J¨ì¤Wz°ÝÃD¡A«Øij±z´«¨ì xcin-2.5.1-2 ¤Î¨ä¥H«áªºª©¥»¡A±N¦³§U©ó¡u´î»´¡v¦¹°ÝÃDªºÄY«©Ê¡C ------------------------ QF.7: ¬°¤°»ò·í§Ú¤Á´«µêÀÀ®à±®É¡A xcin µLªk¸òµÛ¸õ¹L¨Ó©O¡H xcin ¥»¨¦³¤@Ó²³æªº¾÷¨î¥i¥HÀHµÛµêÀÀ®à±ªº¤Á´«¦Ó¸òµÛ¡u¸õ¡v¹L¨Ó¡A±z¥u»Ýn ±N xcinrc ¤¤ SINGLE_IM_CONTEXT ³]¬° YES §Y¥i¡C¦ý¦b¬Y¨Ç±¡ªp¤U¡A´Nºâ±z±Ò°Ê ¥¦¡A¤]¤£¤@©w¦³®Ä¡A³o»P±z©Ò¨Ï¥Îªº Window Manager ¦³Ãö¡C¨äì¦]¦p¤U: ¥H fvwm95 ¬°¨Ò¡A·í¤Á´«µêÀÀ®à±®É¡A WM ·| send ConfigureNotify event µ¹ xcin ¡C¦ý«Ü¦h±¡ªp¤U xcin ³£·|±µ¨ì ConfigureNotify event, ¦]¦¹¥²¶· §PÂ_¤°»ò¼Ëªº ConfigureNotify ¥Nªí¤w¤Á´«¤FµêÀÀ®à±¡C©ó¬O¡A¦b fvwm95 ©³¤U¦³¤@ӫܦnªº§PÂ_¤è¦¡: °²³]²{¦b¦³¨âÓµêÀÀ®à±: +-----------------+--------------------+ | | | | A | B | | | | | (x,y) | | | | | +-----------------+--------------------+ ¦Ó¨Ï¥ÎªÌ¥¿¦b¥Î®à± A, xcin ¤]¦b®à± A ªº (x,y) §¤¼Ð¤W¡A¨ä¤¤ x>0, y>0¡C ¦pªG¨Ï¥ÎªÌ¥Î·Æ¹«ÂI¿ï®à± B (¥ý¤£¦Ò¼{·Æ¹«²¾°Ê¶W¹L®à± A ¶]¨ì B ªº±¡ªp) ¦Ó´«¨ì®à± B ®É¡A·|Åܳo¼Ë: +-----------------+--------------------+ | | | | A | B | | | | | (-|x|,-|y|) | | | | | +-----------------+--------------------+ «h xcin ÁÙ¬O¦b®à± A, ¦ý¥¦ªº§¤¼Ð·|ÅÜtªº¡A¤]´N¬O¶W¥X¤F B ªº§¤¼Ð½d³ò¡A ¦P®É xcin ¤]·|¦¬¨ì ConfigureNotify event¡C©ó¬OÂǥѧPÂ_¥Ø«eªº§¤¼ÐÈ¡A ´Nª¾¹D¥Ø«e xcin ¨ì©³¦b¨ºÓ®à±¡A¦pªG¤£¦b¥Ø«eªº®à±¡A´N¸õ¹L¨Ó¡C µM¦Ó¡A³oÓ¾÷¨îÁöµM²³æ¡A¦ý¦³¤@ӰƧ@¥Î: Y±N xcin µøµ¡©ì¶W¥X®à±Ãä¬É¡A ¥¦·|°¨¤W¶]¦^ì¦ì¡C¦]¦¹¡A¦pªG WM ¤£¯àÂǥѷƹ«¶W¥XÃä¬É¦Ó´«®à±¡A«h¦¹°Æ §@¥Î¤£·|³y¦¨¤Ó¤j¼vÅT¡F¤Ï¤§¡A¦pªG WM ¥i¥HÂǥѷƹ«¶W¥XÃä¬É¦Ó´«®à±¡A«h ·í§Ú̥ηƹ«©ìµÛ xcin ¶W¥X®à±Ãä¬É®É¡A§ÚÌ¥i¯à·|±Á{ race condition: n¬O®à±´«±o°÷§Öªº¸Ü¡A«h xcin ÁÙ¨S¨Ó±o¤Îª¾¹D¥¦ªº§¤¼Ð¶W¥X¿Ã¹õÃä¬É¤§«e¡A ®à±´N´«¦n¤F¡A§¤¼ÐȤ]¥¿±`¤F¡A¤@¤Á OK¡C¦ý¬O¡A¸U¤@ xcin ·m¥ýª¾¹Dªº¸Ü¡A ¨º¥i¯à³y¦¨ xcin µøµ¡¥Ã»·´«¤£¹L¥h¡A¤]´N¬O»¡¡A xcin ·|¤@ª½·Qn²¾¦^ì¦ì¡A ¦]¬°¥¦µo²{¥¦ªº§¤¼Ð¶W¥XÃä¬É¤F¡C ¦]¦¹¡A¦b¦¹¤@±¡ªp¤U¡A¨Ï¥Î¦¹¿ï¶µ±N±a¨Ó¨ä¥Lªº°ÝÃD¡C°£¦¹¤§¥~¡A°²Y¦b¬Y¨Ç WM ¤U¡A´«¤FµêÀÀ®à±«á¡A xcin ªº§¤¼Ð®Ú¥»¨SÅÜ¡A©ÎªÌ¨S¦³¶W¥X¿Ã¹õªºÃä¬É¡A «h xcin «KµL±q±oª¾®à±¤w´«¡A©Ò¥H¸õ¤£¹L¨Ó¡C¬G´Nºâ³]¤F³oӿﶵ¡A¤]¨S¦³¥Î¡C ¦]¦¹¡A¬O§_n³]¦¹¿ï¶µ¡A¥H¤Î³]¤F¥¦¤§«á¦³¨S¦³¥Î¡A¨ú¨M©ó±z©Ò¥Îªº WM¡C¥Ñ©ó ¥Ø«e«Ü¦h WM ¥i¥H³]©wÅý¬Y¨Çµøµ¡¥Ã»·¥X²{¦b¥Ø«eªºµêÀÀ®à±¤W¡A¤Á´«µêÀÀ®à ±®É¥i¥HÅýµøµ¡¤@°_¸ò¹L¥h¡A«h¦b³oÃþªº WM ¤U¡A«Øij±z¤£n¨Ï¥Î¦¹¿ï¶µ¡Aª½ ±µ¥Î±zªº WM ¨Ó±±¨î xcin µøµ¡¡A¤ñ¸û¤£·|¦³°ÝÃD¡C¦ý¦pªG±z¨Ï¥Îªº WM ¨S¦³ ³oÓ¥\¯à®É¡A±z¥i¥H¸ÕµÛ¥´¶}¦¹¿ï¶µ¡A©Î³\¥i¥H¥¿±`¹B§@¡C¦ý¸U¤@µo²{¤´µM¤£ ¥¿±`ªº¸Ü¡A«Øij±zÁÙ¬O¤£n¨Ï¥Î¦¹¿ï¶µ¡C ------------------------ QF.8: ¬°¤°»ò¦b¨Ï¥Î OverTheSpot ®É¡A·í§Ú§â·Æ¹«´å¼Ð²¾¨ì OverTheSpot ªºµø µ¡¤W®É¡A¸Óµøµ¡·|¤@ª½°{°Ê¡A¦ý¥un´å¼Ð²¾¶}«á´N¥¿±`¤F¡H ³oºØ²{¹³³q±`¬Oµo¥Í¦b MouseFocus ªº Window Manager ¤W¡A¤]´N¬O¥un±N·Æ¹«´å¼Ð ²¾¨ì¬YÓµøµ¡¤W¡A¤£»Ýn¦A«ö¥ô¦ó·Æ¹«¤Wªº«öÁä¡A¸Óµøµ¡´N·|Åܦ¨«e´ºµøµ¡¡A¥i¥H±µ ¨üÁä½Lªº¿é¤J¡C¦Óµo¥Í¦¹²{¶Hªºì¦]¡A¬O¥Ñ©ó xcin ¨ã³ÆÀH«e´ºµøµ¡ªº¤Á´«¦Ó§Y®ÉÅÜ ´«¨ä¿é¤Jªkª¬ºAÅã¥Üªº¯S¦â¡C ·í§Ú̦b¬YÓ XIM client ¤W¥´¤¤¤å®É¡A¦pªG³o®É§Ú̧ïÅÜ¿é¤Jªº focus (§Y´«Ó¿é ¤Jµøµ¡)¡A«h©Ò¦³ xcin µøµ¡ªº¤º®e·|¥þ³¡¸òµÛÅÜ´«¡A¥]¬A OverTheSpot ªºµøµ¡¡C¨Ò ¦p¡A¦pªG§ÚÌ¥¿¦bµøµ¡ A ¥´¤¤¤å¡A¥B OverTheSpot µøµ¡¤]¥X²{®É¡A¦pªG§Ú̱N focus ´«¨ì¨ä¥L«D XIM client ªºµøµ¡¤W¡A©ÎªÌ¨ä¥L³B©ó¡u^¼Æ¡v¿é¤J¼Ò¦¡ªº XIM client µøµ¡¤W®É¡A«h xcin ¥Dµøµ¡´N·|Åܦ¨¡u^¼Æ¡v¼Ò¦¡¡A¦Ó¥B OverTheSpot µøµ¡¤]¤£¨£ ¤F¡C¦pªG¦A±N focus ´«¦^¨Ó¡A«h©Ò¦³ªº¿é¤Jªkª¬ºA´N·|«ì´_쪬¡C ¥¿¬O³o¼Ëªº¯S¦â³y¦¨³oÓ²{¶H¡C¥Ñ©ó OverTheSpot µøµ¡¬O³]p¦¨¡u§¹¥þ²æÂ÷ Window Manager ±±¨î¡vªºµøµ¡¡A¦]¦¹¡AOverTheSpot µøµ¡©Ò¥X²{ªº¦ì¸m¡A¦b Window Manager ¬Ý¨Ó´N¦n¹³¨º¤@¶ô¬O Root µøµ¡ (§Y©³¼h®à¥¬) ¤@¼Ë¡C´Nºâ OverTheSpot µøµ¡Å|¦b rxvt µøµ¡¤W¡A¥un·í±z±N´å¼Ð²¾¹L¥h¡A´N·|µo²{쥻 I ¦r«¬ªº´å¼ÐÅܦ¨ X ¦r«¬¤F¡C ²{¦b¡A¦pªG±zªº Window Manager ¥un±N´å¼Ð²¾¨ìµøµ¡¥ô¦ó³¡¤À¡A§Y¥i§ïÅÜ focus¡A ¦ÓµL»Ý¦A«ö·Æ¹«Áä¡C³o®É¡A¦pªG±z±N´å¼Ð²¾¨ì OverTheSpot µøµ¡¤W¡A¥Ñ©ó Window Manager ·|»{¬°²{¦b´å¼Ð¤w¨ì¤F Root µøµ¡°Ï°ì¡A¦Ó±N¦¹°T¸¹°eµ¹ xcin¡C©ó¬O xcin ·|µo²{²{¦bªº focus ¦b Root µøµ¡°Ï¡A¤£¬O XIM client, ¬G¥¦«K±N¥¦©Ò¦³ªº¿é¤Jªk ª¬ºA³£¤Á¦^^¼Æ¼Ò¦¡¡A¨Ã¥B±N OverTheSpot µøµ¡Âð_¨Ó¡C´N¦b¨º¤@«b¨º¡A©³¤Uªº rxvt µøµ¡´N¯B¤W¨Ó¤F¡A¦Ó±zªº´å¼Ð´NÅܦ¨¦b rxvt µøµ¡¤W¡Afocus ¤SÅܤF¡A©ó¬O Window Manager ¤S°e°T¸¹µ¹ xcin¡Axcin µo²{³o¦^ focus ¬O rxvt¡A°¨¤W¤S±N¥¦ªºª¬ºA¥þ³¡ ¤Á¦^¤¤¤å¿é¤J¡A¨Ã±N OverTheSpot µøµ¡¥s¥X¨Ó¡CµM¦Ó¡A³o¤U´å¼Ð¤SÅܦ¨¦b OverTheSpot µøµ¡¤W¡Afocus ¤SÅܤF¡AµM«á .... ¦p¦¹¶g¦Ó´_©l¡A³y¦¨¤F OverTheSpot §Ö³t¦a°{°Ê¡A¤]´N¬O³o¸Ì©Ò¨£¨ìªº²{¶H¡C ------------------------ QF.9: ¬°¤°»ò§Ú±`±`¦bÃö±¼ xcin ¤§«á¡A¥Ø«e¤u§@¤¤ªº rxvt ¤]¸òµÛ±¾±¼¤F¡H ³o¬O¥Ø«e¤wª¾³ÌÄY«ªº¤@Ó bug¡A«Ü©êºp¥Ø«e§Ú̧ô¤âµLµ¦¡A¬G¦b¦¹¥u¯à´£¿ô¤j®aÁ× ¶}³oÓ°ÝÃD¡C°ÝÃD¬O³o¼Ë¡A¦pªGÃö³¬ xcin ¡A«Ü¥i¯à·|³y¦¨¥Ø«e¬°«e´ºµøµ¡ªº rxvt ¤@°_±¾±¼¡A¥¦¥i¯à¦b¥H¤Uªº±¡ªpµo¥Í: a. ¥Ø«e rxvt ¬O«e´ºµøµ¡¡A¦Ó±z¥Î·Æ¹«¬O«ö xcin µøµ¡ªº title bar ªº«ö¶s¡A±N xcin Ãö±¼¡A«h¨ºÓ«e´ºµøµ¡ªº rxvt ¦³¥i¯à·|·í±¼¡A©ÎÃö³¬¡C b. ¥Ø«e±z¥¿¦b¾Þ§@ rxvt, ¥Î ps -ax §ä¥X xcin ªº PID µM«á kill ±¼¥¦¡A«h³oÓ rxvt ¦³¥i¯à¸òµÛ±¾±¼¡C c. ¥Ø«e X Window ¤¤¦³ rxvt »P xcin ¥¿¹B§@µÛ¡A¦pªG³o®ÉÂ÷¶} X Window, «h rxvt ¦³¥i¯à·|·í±¼¡A¦ý¤´µM¼ÈµÛ¨t²Î¸ê·½¡A«ùÄò¦Y°O¾ÐÅé¡A¦pªG±z¨S¦³§Y®Éµoı¡A¤@Ó ±ß¤W¤U¨Ó«Ü¥i¯à±zªº°O¾ÐÅé·|³Q¦Y¥ú¡AµM«á¶}©l¤j¶q¨Ï¥ÎµwºÐªº swap¡A°£«D¥Î kill -9 ±N³o¨Ç·í±¼ªº rxvt process ³£±þ±¼¡C Á׶}ªº¤è¦¡: ´N a. ¦Ó¨¥¡A¥Ø«e¤wª¾µo¥Íªº¾÷²v·¥¤p¡A°£«D¬O¦bºC³tªº¹q¸£¡A©ÎªÌ¨t²Î load °ª ®É¡A¤~¥i¯àµo¥Í¡C¦ý¤£½× a. ©Î b., Á׶}ªº¤è¦¡³£¬O¤£n¦b rxvt ¬°«e´ºµøµ¡®ÉÃö ³¬ xcin¡C¨Ò¦p¡A±z¥i¥H¦A¶}¤@Ó xterm ¨Ó kill ±¼ xcin¡C ´N c. ¦Ó¨¥¡A³Ì¦w¥þªº¤è¦¡¬OÂ÷¶} X Window «e¡A¥ý±N©Ò¦³ªº rxvt ¥H¤Î¨ä¥Lªº XIM client ²Î²ÎÃö³¬¡AµM«á¦AÂ÷¶} X Window¡C©ÎªÌ¡A¦pªG±zªº¾÷¾¹±q¥¼µo¥Í¹L a. ªº±¡ ªp¡A«h±z¤]¥i¥H¥ýÃö±¼ xcin, ¦AÂ÷¶} X Window, ¦Ó¤£»Ýn¥ýÃö rxvt¡C ÁöµM¡A¦³¤H´¿¦^³ø»¡¡A¥L̥Πgnome, icewm .... µ¥ Window Manager ±q¥¼µo¥Í¹L c. ªº±¡ªp¡A¦ý§Ú̼Ȯɫù«O¯dºA«×¡A¦]¬°¥Ø«e¤´µMµLªkµý©ú¨Ï¥Î³o¨Ç Window Manager µ´ ¹ï¤£·|µo¥Í³oÓ±¡ªp¡AµM¦Ó¡A¨Ï¥Î fvwm ¨t¦C (¦p fvwm, fvwm2, fvwm95) «h *¥i¯à* ·|µo¥Í³o±¡ªp¡A¦]¬°§Ú¹J¹L«Ü¦h¦¸¤F¡A¤]¦³±µ¨ì¨Ï¥ÎªÌ¦^³ø¤F¡C¬G¦b¦¹n´£¿ô¤@¤U¤j ®a¡A½Ðµy·L¯d¤ßª`·N¡C ------------------------ QF.10: ¨Ï¥Î KDE ®É¡A¨C¦¸¤Á´«¿é¤Jªk xcin µøµ¡³£·|Åܦ¨«e´ºµøµ¡¡A¨C¦¸§Ú³£n¥Î ·Æ¹«ÂI¤@¤U rxvt ¤~¯àÄ~Äò¿é¤J¡A«ç»ò¿ì©O¡H ÁöµM xcin ¤w«ö·Ó X Window ªº¼Ð·Ç¨Ó¼g¡A²z½×¤W¬O¥Ã»·³£¤£À³¸Ó¦¨¬°«e´ºµøµ¡ªº¡C ¦ý¬O¦b¤£¦Pªº Window Manager ¤U¡A¨äªí²{¥X¨Óªº¤è¦¡¥i¯à¤£¤@¼Ë¡Cì¦]¬O Window Manager ´x±±¤F¥¦©³¤U©Ò¦³À³¥Îµ{¦¡ªºµøµ¡¹B§@¡A¦Ó»P X Window ¼Ð·Ç¹MÂ÷ªº Window Manager ¥i¯à¦]¦Ó¤zÂZ¨ì xcin ªº¥¿±`¹B§@¡C ¦b³oºØ±¡ªp¤U¡A¤@Ó¥i¦æªº¸Ñ¨M¤èªk¬O: ±N xcin §¹¥þ©ìÂ÷ Window Manager ªº±±¨î¡C ³o®É±z¥unקï xcinrc ÀÉ¡A±N DISABLE_WM_CTRL ªº¿ï¶µ¥´¶}§Y¥i¡CµM¦Ó¡A³o¼Ë¤]¥i ¯à³y¦¨Y¤z¤£¤è«K¤§³B¡A¨Ò¦p xcin ´N¨S¦³µøµ¡ªº title bar ¤F¡A¤]µLªk¸g¥Ñ·Æ¹«ÂI ¿ï title bar ¤Wªº«ö§á©Î¿ï³æ±N xcin µøµ¡Ãö³¬¡B³Ì¤p¤Æ .... µ¥¡A©ÎªÌ¥Î·Æ¹«©ì¦² ªº¤è¦¡¨ÓÁY©ñ xcin µøµ¡ªº¤j¤p©Î§ïÅܨä¦ì¸m¡A¦]¬°³o¨Ç³£¬O¸g¥Ñ Window Manager ªº ±±¨î¨Ó¹F¦¨ªº¡C T.H.Hsieh