Skip to content

Latest commit

 

History

History
125 lines (94 loc) · 8.68 KB

README.md

File metadata and controls

125 lines (94 loc) · 8.68 KB

Jedi's Yahoo! KeyKey IME Toolbox

GitHub all releases GitHub release (latest by date)
GitHub commits since tagged version GitHub last commit GitHub issues

Jedi's Yahoo! KeyKey IME Toolbox 是另一個我閒暇時亂弄的東西,用來設定 Yahoo! 奇摩輸入法(Windows 版)的隱藏設定及功能。目前沒有什麼做大的打算,也沒有什麼更新時程規劃,不過若有任何使用上的意見也都歡迎回饋,如果有什麼我也覺得應該要改進的地方,我也會抽空來處理,就這樣。

請注意:這裡提供的是輔助 Yahoo! 奇摩輸入法使用的工具,不是輸入法本身。Yahoo! 奇摩輸入法雖然連官方網站都不存在了,仍然有人備份了最後的官方正式安裝程式,請先安裝起來再搭配這裡提供的工具使用。

功能

  • Yahoo! 奇摩輸入法鍵盤對應選擇介面 可以讓 Yahoo! 奇摩輸入法搭配一百多種不同的鍵盤排列方式(例如 Dvorak)使用。
  • Yahoo! 奇摩輸入法隱藏設定 可以啟用及調整若干 Yahoo! 奇摩輸入法內的秘密參數與功能,讓你發揮 Yahoo! 奇摩輸入法的全部潛力。
    • 設定輸入緩衝區字型大小(8 pt 到 72 pt)
    • 強制以細明體作為輸入緩衝區字型
    • 變更注音輸入的鍵盤配置(許氏鍵盤倚天 26 鍵
    • 任意變更選字按鍵設定
    • 關閉「一點通」功能,解放你的「`」鍵!

使用方法

下載 RAR 檔案解壓縮後,根據需要分別執行各檔案:

  • Yahoo! 奇摩輸入法鍵盤對應選擇介面
    • 執行 YahooKeyKeyIMELayout.exe
    • 設定後需重新開機纔能生效
  • Yahoo! 奇摩輸入法隱藏設定
    • 執行 YahooKeyKeyIMEEgg.exe
    • 設定後需重新登入系統纔能生效
  • 建議搭配漁村輸入法表格‧改

變更沿革

v2021.05.30.18.27

  • 新增「關閉一點通」的功能

v2010.09.24.23.24

  • 修正無法在唯讀媒體上直接執行的瑕疵(現在暫存檔案都會透過暫存路徑來處理)
  • 訊息微調:輸入的緩衝區字型名稱不存在於系統上時,錯誤訊息會顯示出輸入的內容為何

v2010.09.24.04.29

  • 可以任意指定輸入緩衝區字型(預設仍為細明體)

v2010.09.22.15.20

  • Yahoo! 奇摩輸入法隱藏設定增設簡體中文及英文介面
  • (開發相關)Yahoo! 奇摩輸入法隱藏設定之語系字串獨立成一個檔案(localeEgg.ahk)以便維護

v2010.09.20.09.59

  • 修正在簡體中文環境下執行時不會以簡體中文介面呈現的瑕疵(註:YahooKeyKeyIMEEgg.exe 仍然僅有繁體中文介面)

v2010.08.29.11.30

  • 修正未先檢查相關 .plist 檔案是否存在的瑕疵

v2010.08.28.12.41

  • 修正自訂選字按鍵未先轉換成 UTF-8 編碼就直接寫入 .plist 檔案的瑕疵(搭配某些歐洲鍵盤排列的時候會出問題)

v2010.08.28.08.58

  • 修正自訂選字按鍵時不會將 " < > 判斷為非法字符的瑕疵

v2010.08.28.08.02

  • Yahoo! 奇摩輸入法隱藏設定現在可任意自訂選字按鍵,並且能判斷出字符太多或太少、字符不合法、字符重用等輸入錯誤

v2010.08.28.05.43

  • 第一個公開版本

檔案說明

  • YahooKeyKeyIMELayout.ahk:Yahoo! 奇摩輸入法鍵盤對應選擇介面主程式
  • locale.ahk:Yahoo! 奇摩輸入法鍵盤對應選擇介面語系檔(請注意:這個檔案的編碼格式應該要是 ANSI 而不是 UTF-8)
  • YahooKeyKeyIMEEgg.ahk:Yahoo! 奇摩輸入法隱藏設定主程式
  • localeEgg.ahk:Yahoo! 奇摩輸入法隱藏設定語系檔(請注意:這個檔案的編碼格式應該要是 ANSI 而不是 UTF-8)
  • com.yahoo.KeyKey.OneKey.plist:可以關閉一點通功能的 Yahoo! 奇摩輸入法設定檔
  • ListFonts.exe:用來讀取作業系統字型清單的工具程式,執行後會輸出 ListFonts.log ,很不幸地我已經忘記這是哪裡來的了
  • YahooKeyKeyIMEConfig.ico:圖示檔,取自 Yahoo! 奇摩輸入法的資源
  • build.ahk:編譯打包用的腳本
  • YahooKeyKeyIME.diz:打包成壓縮檔要加入的註解文字內容

編譯及打包說明

  • 需要先安裝以下工具:
    • AutoHotkey,要用到裡面附的 Ahk2Exe 工具來編譯成可執行檔。我最後編譯的時候用的是比較舊的 1.0.48.05 版,不保證新版可以直接用。
    • WinRAR
  • 請注意各種工具的預設路徑寫死在 build.ahk 裡面,有需要可以自己改掉
  • 執行 build.ahk 就會自動編譯打包成 RAR 格式的壓縮檔,壓縮檔的註解文字內容來自 YahooKeyKeyIME.diz,壓縮檔的檔名會採用當下的日期時間編碼。

技術細節

鍵盤對應

這個部分的調整,是對登錄進行操作,因此修改後需要重新開機,Windows 才會載入修改過的值。

任何安裝到 Windows 的傳統輸入法(包括 Yahoo! 奇摩輸入法)都會列在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts 登錄機碼中,並且可以藉由修改登錄的方式,改變對應的鍵盤排列。

Yahoo! 奇摩輸入法的鍵盤標識碼是 E0200404,確認方式是檢查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0200404 機碼的 Ime File 字串值是否為 KEYKEY.IME;確認無誤後,要修改的目標就是這個機碼的 Layout File 字串,它預設的值是對應到美式 QWERTY 鍵盤排列的 KBDUS.DLL,若修改為 KBDDV.DLL 就會對應到美式 Dvorak 鍵盤排列。

同理,如果要對應到其他鍵盤排列,也是修改這個字串值,例如 KBDUSL.DLL 會對應到美式左手 Dvorak 鍵盤排列……要知道哪個鍵盤排列是哪個值,可以研究 Windows 預設提供的各個輸入法機碼。

隱藏設定

這個部分的調整,是對 %AppData%\Yahoo! KeyKey\ 目錄內的各個 plist 設定檔進行操作,修改後需要重新登入 Windows 才會生效。

如果修改後不想要重新登入,還有一個方法是用工作管理員KeyKeyServer.exe 這個處理程序砍掉,這樣下次啟動(切換輸入法到)Yahoo! 奇摩輸入法的時候,新的設定值就會生效。這個方法有個要注意的地方:在操作前已經使用過 Yahoo! 奇摩輸入法的那些程式也必須關閉重新啟動,否則會叫不出輸入法。

plist 設定檔都是 UTF-8 編碼的純文字檔案,原則上可以用任何比較新的純文字編輯器去修改。plist 設定檔實際上是 XML 檔案,每一個設定項目都是一個 <key>...</key>,其設定值就是緊接著的 <string>...</string>(單個值)或 <array>...</array>(多個值)。以下說明各項隱藏設定的項目:

  • 共通設定:com.yahoo.KeyKey.plist
    • 輸入緩衝區字型大小:<key>IMEUnawareComposingBufferHeightPt</key>
    • 輸入緩衝區字型:<key>OverrideUIFontName</key>
  • 好打注音設定:com.yahoo.KeyKey.SmartMandarin.plist
    • 注音鍵盤對應:<key>KeyboardLayout</key>
      • 許氏:<string>Hsu</string>
      • 倚天 26 鍵:<string>Eten26</string>
      • 大千:<string>Standard</string>
    • 選字按鍵:<key>CandidateSelectionKeys</key>
  • 傳統注音設定:com.yahoo.KeyKey.TraditionalMandarin.plist
    • 注音鍵盤對應:<key>KeyboardLayout</key>
      • 許氏:<string>Hsu</string>
      • 倚天 26 鍵:<string>Eten26</string>
      • 大千:<string>Standard</string>
    • 選字按鍵:<key>CandidateSelectionKeys</key>
  • 一點通功能設定:com.yahoo.KeyKey.OneKey.plist
    • 功能觸發鍵:<key>ShortcutKey</key>
      • 預設是 <string>`</string>,改成無法觸發的按鍵,就可以在效果上關閉一點通功能,解放 ` 鍵……