2007年12月31日 星期一

[轉] wine 中文問題

簡單說就是把wine預設的字型刪除就可以了
rm -rf /usr/share/wine/fonts

wine…預設編碼不是中文??
我現在用wine執行程式遇到一個問題就是程式如果沒有指定編碼的部份中文就會變亂碼無法顯示,而用Cross Over的情況下則是使用了英文字型來顯示沒有指定編碼的部份(會變成“|||”),因為我不知道Cross Over怎麼改字型也不知道能不能改所以把目標集中在wine的env設定,因為能正常顯示中文的部份有設定是使用big5的編碼,我用locale -a看了一下好像沒有zh_TW.big5,這樣還能用big5來執行嗎?我用env="zh_TW.big5"跟env="zh_TW"都會全部變成“?”而用env="zh_TW.utf8"則跟直接執行一樣,所以我想是不是wine在執行的時候遇到沒有指定編碼方式的字就會預設用英文來顯示(順序:env→程式設定),但在XP執行是正常的(沒指定默認big5?),這樣有辦法解決嗎?我搜過論壇的wine字型校調相關文章不過設定後也只能讓字變大;嗯…也許一些程式安裝時無法顯示中文也跟這有相關吧~
PS:程式是自己寫的所以知道沒有指定預設的編碼

我自問自答好了= =
今天研究了一天大概有一點頭緒了,發現以下幾點:
1. wine及其延伸產品Crossover預設使用的“字型名”為System
2. 該字型的“檔名”為cvgasys.fon
3. Windows預設使用的“字型名”為Fixedsys
4. 該字型的“檔名”為cvgafix.fon
5. 以上都跟亂碼沒有直接的關係= =
6. Crossover似乎對“notepad.exe”這個檔名有下奇怪的暗示
7.wine及其延申產品只要使用.fon字型就會產生亂碼

在測試的過程中還發現在Crossover中即使執行中文版的記事本仍會顯示英文介面,而且預設如果用中文字型會變特大號字,但只要改一下檔名即可正常執行
判斷應該是某個設定檔中有記載notepad.exe和字型相關資訊不過我不知道要改哪(正確來說是哪裡都改過了可是都無效…還會自動被改回來)
結論就是…幹掉所有.fon字型即可解決大部份亂碼問題
rm ~/cxoffice/share/wine/fonts/*.fon
wine也是一樣如法炮製
sudo rm /usr/share/wine/fonts/*.fon
如此一來在找不到原本的系統字型就會改用拷進去的ttf、ttc字型了

原文: http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?post_id=16868

2007年12月18日 星期二

linux下java 1.5, 1.6中文設定

java 到 linux 下中文都會變成 口口 ...
原來有一個很簡單的方法可以修正
# cd /opt/sun-jdk-1.6.0.03/jre/lib/fonts
# mkdir fallback
# cd fallback
# ln -s /usr/share/fonts/fireflysung/fireflysung.ttf .
# mkfontscale
最後將fonts/fallback/fonts.scale檔的內容貼到fonts/fonts.dir
兩個檔案的第一行數字加總到fonts.dir內
大概是會長這樣:
# head fonts.dir
53
fireflysung.ttf -misc-ar pl new sung-medium-r-normal--0-0-0-0-p-0-big5-0
fireflysung.ttf -misc-ar pl new sung-medium-r-normal--0-0-0-0-p-0-big5.eten-0
fireflysung.ttf -misc-ar pl new sung-medium-r-normal--0-0-0-0-p-0-cns11643-1
fireflysung.ttf -misc-ar pl new sung-medium-r-normal--0-0-0-0-p-0-iso10646-1
fireflysung.ttf -misc-ar pl new sung-medium-r-normal--0-0-0-0-p-0-koi8-r
LucidaBrightRegular.ttf -b&h-lucidabright-medium-r-normal--0-0-0-0-p-0-iso8859-1
LucidaBrightItalic.ttf -b&h-lucidabright-medium-i-normal--0-0-0-0-p-0-iso8859-1
LucidaBrightDemiBold.ttf -b&h-lucidabright-demibold-r-normal--0-0-0-0-p-0-iso8859-1

有了上面幾行中文的定義,就不會找不到中文字行了

2007年12月1日 星期六

Thinkpad X61 Gentoo Linux 安裝筆記

安裝過程一切還好,除了一些特殊鍵需要調整
Fn+F1~F12, Home, End等
安裝acpid還有修改 /etc/acpi/default.sh 然後去分析抓到的 event
ibm/hotkey HKEY 00000080 0000xxxx

有用到工具
  • suspend的s2ram待機
  • acpid for Hotkey
  • xrandr 2.0 for Video switch
  • xbacklight for Brightness control
  • xmodmap for MultiMedia key
  • ndiswrapper for Wireless AR5007EG (可用新的branch/hal-0.10.5.6 or testing就有支援)
  • KNetDockApp for Netflow monitor
  • KNetworkManager for auto-network configuration
  • KPowersave for battery control
  • tp_smapi for hdaps, detail battery info
  • gtk-qt-engine for KDE佈景主題套用到GTK的程式
xorg 設定:
$ X -configure
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mice"
#The follow setting is used for ThinkPoint
#EmulateWheel: because ThinkPoint has no scrolling function like normal mouse(ZAxis), we need to emulate this.
Option "EmulateWheel" "on"
#EmulateWheelButton: when button(mid) is press, start the wheel emulation.
Option "EmulateWheelButton" "2"
#Mapping mouse XY moving to button 4 5 6 7 (scroll X, scroll Y)
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
#Mapping normal mouse, which has scroll function(it will generate ZAxis moving event), to button 4 5
Option "ZAxisMapping" "4 5"
EndSection
說明:
在X-Window中,按鍵6 7代表水平的捲軸,4 5代表垂直的捲軸
因此在ThinkPoint中,配合按鍵2的模擬,本來滑鼠的移動就對應成XY軸的捲動
而本來就有滾輪的滑鼠,他在滾動時會產生X-Window中的Z軸動作
因此把這些動作對應到4 5就代表這些事件會由X-Window的垂直捲軸處理
不過X軸的對應會使Firefox變成上一頁/下一頁的效果...因此必須取消Firefox對水平軸的處理要設定mousewheel.horizscroll.withnokey.action=0

Opera在水平滾動時也可能發生「前進」、「後退」等操作,修正方法為: 菜单中:工具->首选项->高级->快捷键->鼠标设置->Opera Standard->编辑


在彈出的窗口中: 
Application->Button6->删除->Button7->删除

確定后,選中Opera Standard(已修改),一路確定即可。


**更新 @ 2008-09-29**
新的 xorg-server => 1.4 支援裝置隨插即用功能 (上面的設定可以省去摟)
他會透過 evdev 驅動向 hal 取得支援輸入的硬體並自動設定,更好的是支援所有按鍵!!
這使得 xorg.conf 的設定可大幅減少,可以省去整個 InputDevice 的設定讓他自己抓
不過會發現 ThinkPoint 的捲軸功能不見了,這是因為直到寫這篇文章的 evdev 版本 2.0.5
都還沒有支援 EmulateWheel 的功能,必須安裝 x11 overlay 中 git 版本才有效 (2008-09-29)
然後設定的部份改到 hal 中,而非 xorg.conf 了 (參考5)
並增加 /etc/hal/fdi/policy/99-x11-mouse.fdi:
(ps.以下為XML檔案,如果看不到請參考網頁,並加入部份的設定)

<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.product" string="TPPS/2 IBM TrackPoint">
      <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
      <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
      <merge key="input.x11_options.XAxsisMapping" type="string">6 7</merge>
      <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
      <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
    </match>
  </device>
</deviceinfo>


多媒體按鍵設定:
編輯 ~/.Xmodmap
keycode 166 = XF86Back
keycode 167 = XF86Forward
keycode 173 = XF86AudioPrev
keycode 174 = XF86AudioStop
keycode 172 = XF86AudioPlay
keycode 171 = XF86AudioNext
keycode 123 = XF86AudioLowerVolume
keycode 122 = XF86AudioRaiseVolume
keycode 233 = XF86MonBrightnessUp
keycode 232 = XF86MonBrightnessDown

按鍵名稱參考: /usr/share/X11/XKeysymDB
keycode 參考 xev 程式所取到的值

ps,好像更新 BIOS 或是驅動還是什麼的會使對應的keycode變更???

螢幕亮度調整:
新版核心中的 thinkpad-acpi 須在載入時附加參數 brightness_enable=1
並且 echo 0xffffffff > /proc/acpi/ibm/hotkey 啟動所有的 hotkey
這樣當按下 Fn+Home/End 調整螢幕亮暗時,變可以產生 keycode 232/233
並對應到 XF86MonBrightnessUp/XF86MonBrightnessDown 然後由 thinkpad-acpi 控制亮度調整
**更新 End @ 2008-09-29**

一些xorg的小提示:
有時候修改/etc/fonts/conf.d時,可以透過以下指令讓接下來開啟的 X apps 套用新設定
xset fp rehash
又如果有手動安裝新字型,需要用 (root) fc-cache -frv 重新更新字型的資料庫

dbus,hal,ntfs-3g:
http://gentoo-wiki.com/HOWTO_D-BUS,_HAL,_KDE_media:/
http://gentoo-wiki.com/HOWTO_NTFS_write_with_ntfs-3g#Adding_.2Fsbin.2Fmount.ntfs_is_more_easier_.28hal-0.5.9.1_or_later.29

compiz-fusion

http://wiki.gentoo-xeffects.org/Compiz_Fusion
安裝好後可以選擇Window Decoration
ps. kde預設session save功能會倒置 compiz 的 Window Manager出問題
因此要到控制中心改每次都開始新的 session 才不會出錯
還有要在CompizConfig Settings Manager的視窗裝飾的命令指定要用的WM
1. kde-window-decorator --replace 可以看到本來kde的主題
2. /usr/bin/emerald --replace 可以用 compiz-fusion 的,比較好看

取消NetworkManager自動改hostname:
# vi /etc/dhcp/dhclient.conf
send host-name "ppc";
supersede host-name "ppc";

還嫌 gentoo 不夠快嗎!?
See this [HOWTO] Flying with gentoo

參考1. http://gentoo-wiki.com/HARDWARE_Lenovo_Thinkpad_T61
參考2. http://yyhh.org/blog/2007/10/thinkpad-x61-hotkeys-solution-debian-linux
參考3. http://wiki.compiz-fusion.org/
參考4. 一些改過的檔案: http://fcu.ppcsite.info/linux
參考5. 新版 xorg 的 evdev 設定 http://gentoo-wiki.com/X11_Mouse/Xorg_7.3
參考6. 配置Trackpoint的中鍵滾輪功能 
Related Posts Plugin for WordPress, Blogger...