2009年12月20日 星期日

kimpanel for ibus and scim

參考文件:

kimpanel 已進入到 kdeplasma-addons 中,即將有正式的版本和大家見面
原始碼存放位置已改在
要取得最新的原始碼,請
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeplasma-addons/applets/kimpanel/
因為已進入 addons 中,若要單獨編譯 kimpanel 需要將下面程式碼放回到
CMakeLists.txt 的最前面
project(kimpanel)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package(X11 REQUIRED)
if (NOT X11_Xrender_FOUND)
message(FATAL "Xrender library not found")
endif (NOT X11_Xrender_FOUND)

find_package(KDE4 REQUIRED)

include(KDE4Defaults)
您可以從 home:swyear:ibus 套件庫中安裝
plasma-addons-kimpanel (主程式)
plasma-addons-ibus (搭配 ibus)
plasma-addons-scim (搭配 scim)
例如:(以 ibus 為例)
# zypper ar http://download.opensuse.org/repositories/home:/swyear:/ibus/openSUSE_11.2 ibus
zypper in plasma-addons-ibus
套件會利用新版的 /etc/X11/xim.d/ibus (記得要用新版的 ibus)
來啟動,理論上這樣應該就可以用,但不知道為什麼不行...
所以暫時使用 ~/.kde4/Autostart/kimpanel-ibus 來啟動
這些會自動在安裝 rpm 後完成

如果是 scim 的話,需手動將
/usr/lib(64)/scim-1.0/kimpanel-scim 加到 ~/.kde4/Autostart/ 中
然後新增元件->輸入法面板
然後重新登入就可以使用
若覺得不適用要刪除,別忘記手動移除 ~/.kde4/Autostart/kimpanel-scim

2009年12月17日 星期四

幾個套件管理小技巧

1. 由指定的套件庫安裝套件:
zypper in --from [套件庫] [套件1] [套件2] ...


2. 您可以同時安裝與移除套件,例如:
zypper in oxim -scim
正在載入套件庫資料...
讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列新的套件:
oxim oxim-filters oxim-setup

下列套件將會被移除:
mlterm-scim scim scim-bridge scim-bridge-gtk scim-bridge-qt scim-chewing
scim-input-pad scim-m17n scim-pinyin scim-qtimm scim-tables scim-tables-zh

3 新套件將被安裝, 12 將移除.
全部下載大小: 2.3 MiB。 完成操作後,將釋出 17.7 MiB。
要繼續嗎? [y/n/p/?] (y):


3. 鎖定套件(已安裝者維持該版本,未安裝者維持不安裝),例如:
zypper al scim


4. 套件庫自動重新整理頻率
如果每次執行 zypper 都要重新整理(因為您某些套件庫設了'自動重新整理')
(注意預設用 1 Click Install 安裝的都會自動重新整理)
您可以設定
/etc/zypp/zypp.conf
repo.refresh.delay = 1440

(請將前面的 ## 去掉)
單位為分鐘(min),這裡設定最短一天重新整理一次
若您常進行套件搜尋(zypper se)時很有用

5. YaST 套件管理模組 (sw_single) 完成提示
在 11.2,當您完成套件安裝或移除時,套件管理員會自動關閉
如果您希望像以前一樣,會問您要不要再安裝或移除些什麼
請修改
/etc/sysconfig/yast2
PKGMGR_ACTION_AT_EXIT="summary"

這樣一來,當您安裝或移除軟體後,會出現摘要視窗
若要再安裝移除些什麼就按'上一步',或按'完成'來退出
寄件者 openSUSE 11.2


6. 如果您常心中掛記著更新
您乾脆:
停用 update applet,
停用所有套件庫的自動重新整理
zypper mr -R --all

隨時想檢查更新就手動執行
zypper ref; zypper up


7. 調整或禁用 vendor(不建議使用)
11.2 的 zypper 新增了檢查 Vendor (供應商)的功能
您可以用
rpm -qi [已安裝套件名稱] | grep Vendor

rpm -pqi [rpm 檔] | grep Vendor

來檢查 Vendor
預設 zypper up 是不會去變更 Vendor
所以以前(11.1 或更早版本)先加入 Packman 套件庫,然後 zypper up 會將套件升級為 Packman 的套件
現在則不會
現在有 zypper dup 這個命令
這個命令會儘量升級到最新版而不管 Vendor
而且將不屬於任何套件庫的套件都移除
通常用在整個系統升級(例如 11.1 -> 11.2,或升級 KDE)
我會儘量避免使用
但,相反的也是有些好處,例如要升級到 KDE 4 的最新版本若失敗了
只要移除該套件庫,再進行 zypper dup
又會'升級'回原來的版本
檢查 Vendor 可以增進系統的穩定,尤其當您的套件庫眾多,裏面又有重複套件時
這功能是很重要的
若您真的要更改
設定檔在 /etc/zypp/zypp.conf
solver.allowVendorChange = true

或新增一個 /etc/zypp/vendors.d 目錄
裏面放置文字檔(自行取名?)
[main]

vendors = nvidia,suse,opensuse

這會將裏面的 vendor 都視為同一個,那自然不會有變更 vendor 的問題
聲明:本人皆未測試(也不想試)

8. 最後安裝的套件
移除孤兒套件(無用的套件),是下一版 zypper 的目標
目前您可以用下面 rpm 指令來查詢最後安裝的(10個)套件
rpm -qa --last | head -n10

例如我裝了 betaradio 後不合用
zypper in betaradio
將會安裝下列新的套件:
betaradio gstreamer-0_10-ffmpeg gstreamer-0_10-plugins-ugly libsidplay1

但移除時
zypper rm betaradio
下列套件將會被移除:
betaradio

卻只移除一個
您可以用這指令來察看最後安裝的套件資訊及時間
rpm -qa --last | head -n10
betaradio-0.1.2-13.1 西元2009年12月17日 (週四) 23時11分04秒
gstreamer-0_10-plugins-ugly-0.10.12-2.4 西元2009年12月17日 (週四) 23時11分02秒
gstreamer-0_10-ffmpeg-0.10.9-999.pm.1000.1 西元2009年12月17日 (週四) 23時10分52秒
libsidplay1-1.36.59-137.2 西元2009年12月17日 (週四) 23時10分21秒
chromium-4.0.273.0-1.1 西元2009年12月17日 (週四) 22時40分02秒
v8-2.0.4.0-1.1 西元2009年12月17日 (週四) 22時39分03秒
pyxml-0.8.4-199.3.1 西元2009年12月17日 (週四) 22時37分24秒
k3b-codecs-1.69.0-40.pm.43.13 西元2009年12月17日 (週四) 21時28分21秒
readline-doc-6.0-18.4.1 西元2009年12月17日 (週四) 21時28分19秒
bash-doc-4.0-18.4.1 西元2009年12月17日 (週四) 21時28分14秒

來決定要移除哪些套件,就決定是你了...
 rpm -e betaradio gstreamer-0_10-plugins-ugly gstreamer-0_10-ffmpeg libsidplay1


9. 有關 zypper 的用法,您可以
man zypper

(英文版),或
zypper --help

(有中文翻譯)

10. 如果您覺得 zypper --help 的翻譯不完整
可以由 trunk 中取得較完整的翻譯
mkdir po
cd po
svn checkout https://svn.berlios.de/svnroot/repos/opensuse-i18n/trunk/lcn/zh_TW/po .
msgfmt zypper.zh_TW.po -o zypper.mo
sudo cp zypper.mo /usr/share/locale/zh_TW/LC_MESSAGES/

2009年12月15日 星期二

betaradio 和 hinedo

這兩個 hinet 網路收音機介面都很久沒更新了
在 11.2 中一直都無法編譯成功
兩個都有類似的錯誤訊息
cc -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -pthread
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
-DEGG_COMPILATION -DDATADIR=\"/usr/share\" -g -O2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lcurl -pthread
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -o betaradio betaradio.o eggtrayicon.o channel.o gstplay.o
betaradio.o: In function `onEggTrayEvent':
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:123: undefined reference to `gtk_menu_get_type'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:123: undefined reference to `g_type_check_instance_cast'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:123: undefined reference to `gtk_menu_popup'
betaradio.o: In function `appendMenu':
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:103: undefined reference to `gtk_menu_item_new_with_label'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:104: undefined reference to `gtk_menu_shell_get_type'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:104: undefined reference to `g_type_check_instance_cast'

這只是部份而已
後面一長串都是類似錯誤
後來改了一下 Makefile
hinedo
-    cc -o hinedo $(GTK2_LIBS) $(OBJS)
+ cc -o hinedo $(OBJS) $(GTK2_LIBS)

betaradio
-    $(LINK) $(betaradio_OBJECTS) $(betaradio_LDADD) $(LIBS)
+ $(LINK) $(betaradio_OBJECTS) $(AM_LDFLAGS) $(LDFLAGS) $(betaradio_LDADD) $(LIBS)

就可以順利編譯成功

同樣地方的 log 變成
gcc -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -pthread
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
-DEGG_COMPILATION -DDATADIR=\"/usr/share\" -g -O2 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lcurl -pthread
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -o betaradio betaradio.o eggtrayicon.o channel.o gstplay.o
-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype
-lfontconfig -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lcurl -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0
make[2]: Leaving directory `/usr/src/packages/BUILD/betaradio-0.1.2/src'

您可以注意到 -l* 這些東西必須放在 *.o 的後面才能順利編譯
似乎最近常遇到這種問題
不知道是為什麼...請理解的人幫忙回答吧!

要安裝這兩個套件需要先有 Packman 套件庫,才能自動解決相依性
請先在社群套件庫中加入
不過 betaradio 的頻道似乎沒有更新,所以無法收聽...
$ betaradio
Can't get mms from V~.
Can't get mms from ��{.

先用 hinedo 吧
這兩個收音機的系統匣圖示大概和 gcin 是同一國的
都無法在 KDE4 顯示透明背景(傷腦筋)

一面工作一面聽收音機是蠻舒服的...

2009年12月9日 星期三

google 瀏覽器(測試版)


請依照您的架構選擇 32 或 64 位元
下載完後在檔案上點一下(或 2 下)
會開啟軟體安裝,可惜無法自動解決相依性
別心急,用 zypper 安裝就沒問題了
# zypper in google-chrome-beta_current_x86_64.rpm
正在取出套件庫 '更新 openSUSE 11.2-0' 中介資訊 [完成]
正在建立套件庫 '更新 openSUSE 11.2-0' 的快取 [完成]
正在載入套件庫資料...
讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列新的套件:
glibc-i18ndata google-chrome-beta lsb m4

4 新套件將被安裝.
全部下載大小: 21.7 MiB。 完成操作後,將增加 59.9 MiB 的使用。
要繼續嗎? [y/n/?] (y): y
正在取出 套件 m4-1.4.13-2.2.x86_64 (1/4), 249.0 KiB (已解開 470.0 KiB)
正在安裝: m4-1.4.13-2.2 [完成]
正在取出 套件 glibc-i18ndata-2.10.1-10.4.x86_64 (2/4), 3.1 MiB (已解開 10.2 MiB)
正在安裝: glibc-i18ndata-2.10.1-10.4 [完成]
正在取出 套件 lsb-4.0-4.1.x86_64 (3/4), 8.0 KiB (已解開 1.0 KiB)
正在安裝: lsb-4.0-4.1 [完成]
正在取出 套件 google-chrome-beta-4.0.249.30-33928.x86_64 (4/4), 18.3 MiB (已解開 49.2 MiB)
正在安裝: google-chrome-beta-4.0.249.30-33928 [完成]
其他 rpm 輸出:
warning: /var/tmp/TmpDir.XZFYls/google-chrome-beta_current_x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 7fac5991

完成了
補張圖:
在 openSUSE 中,瀏覽器的 plugin 都在 /usr/lib(64)/browser-plugins/
請將此目錄連結到 /opt/google/chrome/plugins
$ sudo ln -s /usr/lib64/browser-plugins /opt/google/chrome/plugins

konsole 畫面延遲

不論使用 kwin 或 compiz 的 composite 功能時
konsole 畫面常卡住或造成文字重疊
要再去移動視窗才會更新畫面
將 konsole 的執行命令改用 konsole -graphicssystem raster
您可以直接修改 /usr/share/applications/kde4/konsole.desktop
Exec=konsole -graphicssystem raster


2009年12月7日 星期一

IBus 輸入法 1.2.0 for openSUSE 11.2

openSUSE 11.2 預設的輸入法仍為 scim
如果您想嘗試新一代的 ibus 輸入法
可以試著使用這個套件庫
來安裝 ibus 1.2.0

您可以用下面的單鍵安裝
(for openSUSE 11.2)
照這下面的圖,一步一步完成
寄件者 openSUSE 11.2
按"下一步"
寄件者 openSUSE 11.2
預設會安裝 ibus, ibus-gtk, ibus-qt 套件,因為不知道您想使用哪一種輸入法
所以要請您按"自訂"
寄件者 openSUSE 11.2
按"下一步"
寄件者 openSUSE 11.2
在此選擇您要使用的輸入法模組
目前支援(2009/12/07)
jyutping 粵語拼音
wubi 五筆
anthy (要安裝 anthy,請看注意事項3)
array30 行列30
quick 速成
xinhua 新華
chewing 新酷音(要安裝新酷音,請看注意事項2)
cangjie 倉頡
rustrad
hangul
cantonese 廣東拼音
stroke5 筆順五碼
yong 永碼
m17n
cantonhk 香港廣東拼音
thai
zhuyin 注音
pinyin 拼音
cns11643 交換碼
translit
ziranma 自然碼
easy 輕鬆
viqr
erbi 二筆
wu 吳語
您可以依照您的需求安裝
寄件者 openSUSE 11.2
安裝摘要確認,請按"下一步"
寄件者 openSUSE 11.2
最後確認,請按"是"
寄件者 openSUSE 11.2
請輸入 root 的密碼
寄件者 openSUSE 11.2
開始執行安裝
寄件者 openSUSE 11.2
第一次使用此套件庫,會要求您匯入金鑰
寄件者 openSUSE 11.2
開始進行安裝
寄件者 openSUSE 11.2
完成了!(才怪!)

注意事項1:
因為使用 1-Click Install (或用 zypper 直接安裝)並不會更新 gtk-immodule
所以您必須手動完成最後一個步驟
$ sudo /sbin/SuSEconfig

注意事項2:
ibus-chewing 20091002 之後需要使用修補後的 libchewing
請確認您的 libchewing 也要用 home:swyear:ibus 中的
$ rpm -qi libchewing | grep Vendor
Version : 0.3.2 Vendor: openSUSE
這表示您的 libchewing 仍使用 openSUSE 提供的版本
這版本搭配 ibus-chewing 20091002 會造成打字時不會出現注音的情況
請執行下面指令安裝修補後的 libchewing
$ su
密碼:
# zypper in --from home:swyear:ibus libchewing
確認變更供應商為 obs://build.opensuse.org/home:swyear

注意事項3:
ibus-hangul 需要使用 libhangul >= 0.0.10 的版本
若您有其他套件用到 libhangul ,請自行考慮相容性

注意事項4:
現在會針對 en zh_TW zh_HK zh_CN zh_SG ko_KR ja_JP 這幾個語系設定自動啟動 ibus
只要重新登入,即可使用
如果您使用的語系不再上列中,請參看 /usr/share/doc/packages/ibus/ibus-README.suse
有很多種方法可以讓您設定使用 ibus
如果您覺得哪個語系適合在安裝 ibus 後自動啟動,可以寫信給我(swyear_at_gmail_dot_com)

注意事項5:
若您使用 openSUSE 11.1,注意目前沒有 ibus-qt 套件(QT 版本不夠新)
還有行列30 (array30)也沒編出來
更早的版本就不支援了

2009年12月5日 星期六

套件庫更新

最近更新與新增了一些套件:
1. ibus 1.2.0 系列:
有很多的原始碼在官方網站上仍標示為 unstable...
使用新酷音似乎不會顯示注音???使用 20090917 的版本即可顯示注音
請使用 home:swyear:ibus 的套件庫
2. gcin 更新到 1.4.6pre12
3. oxim 更新到 1.4.1
4. evilvte 更新到 0.4.6pre2
5. lilyterm 更新到 0.9.7
6. 新增文泉驛微米黑字型,更新 chinese-fonts-setting 中的 57-hei.conf 設定檔,將微米黑設成預設中文字型。

好累要睡了...

2009年12月4日 星期五

openSUSE 11.2 的小技巧(4)

1. 覺得 yast2 的字體和桌面設定不符
開啟終端機以 root 身分執行 qtconfig 來設定
$ su
# qtconfig


2. 在您的 ~/.profile 中加上
export GDK_NATIVE_WINDOWS=1

您用這個關鍵字可以找到很多相關的報告
包含 firefox 中 嵌入網頁的 YouTube 無法按播放鍵
qq, eclipse, inkscape... (歡迎補充)
更新:但是加在 ~/.profile 或其他地方是沒用的,這個環境變數會被重設
所以...要不就是修改應用程式的啟動命令
要不就是用終端機執行
export GDK_NATIVE_WINDOWS=1; application



3. 這是 RELEASE NOTE 中的說明
      PulseAudio and Sound in GNOME Applications      

KDE installations do not install PulseAudio by default. PulseAudio will be installed automatically if an application,

which requires it is installed, but it must still be enabled in YaST to hear sound in these applications.

To enable PulseAudio in YaST, open YaST > Sound Module and click 'Other'. Select 'PulseAudio Configuration',

then check 'Enable PulseAudio Support'.



在 GNOME 應用程式的 PulseAudio 與音效

KDE 安裝預設不會安裝 PulseAudio。如果有應用程式需要安裝 PulseAudio,它將被自動安裝,

但是它必須在 YaST 中被啟用才能在這些應用程式中聽到音效。要在 YaST 中啟用 PulseAudio,

開啟 YaST > 音效模組,並點擊 '其他'。選擇 'PulseAudio 組態設定',並核取'啟用 PulseAudio 支援'。


意思是在 KDE 環境中預設不啟用 PulseAudio,若使用預設用 PaulseAudio 音效的程式,需手動在 YaST 中來設定

2009年12月2日 星期三

openSUSE 11.2 的小技巧(3)

這些都是從 openSUSE 論壇上看來的
(常常上論壇可以解決很多問題喔!)

1. 加強 LCD 字體顯示:
(使用預設點陣字者,不必)
(使用 CRT 顯示器者,應該不會有影響,所以也不必)
說明如下:
加入 home:anshuljain 的套件庫
# zypper ar http://download.opensuse.org/repositories/home:/anshuljain/openSUSE_11.2 anshuljain
由此套件庫安裝 freetype2 freetype2-feature-subpixel-hinting cairo 這3個套件
# zypper in --from anshuljain freetype2 freetype2-feature-subpixel-hinting cairo
建立 /etc/fonts/conf.avail/10-lcd-filter.conf 內容如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable freetype's new subpixel filter. Currently, only a cairo
version containing the patches from freedesktop #10301 respects this
setting. -->
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
</fontconfig>

建立連結
# ln -s /etc/fonts/conf.avail/10-lcd-filter.conf /etc/fonts/conf.d/
在家目錄中建立 .Xresources 內容如下:
Xft.lcdfilter: lcddefault
(可能您需要到字型控制中心啟動次像素顯示)
重新登入X

2. knetworkmanager 有時無法連線無線網路
(您要先確定您的無線網卡驅動沒問題喔)
說明:
點擊 knetworkmanager 選擇 Manage Connections...
選擇有問題的無線網路連線,按編輯
選擇 IP Address 分頁,在下方下拉選單中選擇 Routes
取消此分頁中的兩個核取項目
重新連線
(我原本無法連線的地方真的就可以連線了...是否還有其他狀況發生,我就無法保證了)