Python-PIME: Develop input methods for Windows easily with Python and node.js

PIME

Build status GitHub release

Implement input methods easily for Windows via Text Services Framework:

  • LibIME contains a library which aims to be a simple wrapper for Windows Text Service Framework (TSF).
  • PIMETextService contains an backbone implementation of Windows text service for using libIME.
  • The python server part requires python 3.x and pywin32 package.

All parts are licensed under GNU LGPL v2.1 license.

Development

Tool Requirements

How to Build

  • Get source from github.

    git clone https://github.com/EasyIME/PIME.git
    cd PIME
    git submodule update --init
    
  • Use the following CMake commands to generate Visual Studio project.

    cmake -G "Visual Studio 16 2019" -A Win32 <path to PIME source folder>
    cmake -G "Visual Studio 16 2019" -A x64 <path to PIME source folder>
    
  • Open generated project with Visual Studio and build it.

TSF References

Windows ACL (Access Control List) references

Install

  • Copy PIMETextService.dll to C:\Program Files (X86)\PIME\x86.

  • Copy PIMETextService.dll to C:\Program Files (X86)\PIME\x64.

  • Copy the folder python to C:\Program Files (X86)\PIME\

  • Copy the folder node to C:\Program Files (X86)\PIME\

  • Use regsvr32 to register PIMETextService.dll. 64-bit system need to register both 32-bit and 64-bit PIMETextService.dll

    regsvr32 "C:\Program Files (X86)\PIME\x86\PIMETextService.dll" (run as administrator)
    regsvr32 "C:\Program Files (X86)\PIME\x64\PIMETextService.dll" (run as administrator)
    
  • NOTICE: the regsvr32 command needs to be run as Administrator. Otherwise you'll get access denied error.

  • In Windows 8, if you put the dlls in places other than C:\Windows or C:\Program Files, they will not be accessible in metro apps.

Uninstall

  • Use regsvr32 to unregister PIMETextService.dll. 64-bit system need to register both 32-bit and 64-bit PIMETextService.dll

    regsvr32 /u "C:\Program Files (X86)\PIME\x86\PIMETextService.dll" (run as administrator)
    regsvr32 /u "C:\Program Files (X86)\PIME\x64\PIMETextService.dll" (run as administrator)
    
  • Remove C:\Program Files (X86)\PIME

  • NOTICE: the regsvr32 command needs to be run as Administrator. Otherwise you'll get access denied error.

Bug Report

Please report any issue to here.

Comments

  • 注音輸入法倚天鍵盤排列選字問題
    注音輸入法倚天鍵盤排列選字問題

    Dec 26, 2021

    您好

    注音輸入法倚天鍵盤排列選字, 1.按1變7 2.按2變6 3.按3到6正常 4.按7之後沒反應

    bug 
    Reply
  • 希望能選擇選字時的序號顏色
    希望能選擇選字時的序號顏色

    Jan 1, 2022

    您好:

    目前選字時的序號是藍色,但有時候會覺得太亮了,有些刺眼,不曉得能否有選項讓使用者可以選擇顏色呢?譬如加上暗色系的"dark blue"或者乾脆開放色碼,讓使用者自由選填。謝謝!

    2022-01-01_140807

    enhancement upstream 
    Reply
  • 選字時上下鍵是否可換頁
    選字時上下鍵是否可換頁

    Jan 5, 2022

    現在所使用的是pime版的新酷音 以前都是使用32bit版本的 用很久很習慣了 pime版跟以前的界面或是使用感覺非常接近 先感謝一下開發人員

    但是在選字的時候如果使用上下鍵到邊緣(最上or最下的字) 再按一次下會沒反應,如果在最上面按一下上的話會直接關閉選字框框 以前32bit的版本如果在最上面按上的話,如果有紀錄中的詞語,會跳回紀錄的詞語 如果沒有,則會返回上一頁,如果在第一頁的話我記得會沒反應 在最下面的字按下的話則是會跳到下一頁

    雖然是個小小的細節,但是我使用新酷音真的十幾年了改不掉了XD 希望開發人員如果還有在更新,有機會的話可以滿足我這小小的願望

    感謝!

    upstream 
    Reply
  • cbTS.capsStates在多個按鍵同時按下時無法更新數值
    cbTS.capsStates在多個按鍵同時按下時無法更新數值

    Jan 8, 2022

    cbTS.capsStates記住了大小寫的狀態 可是當在多個按鍵一起按下時onKeyUp(self, cbTS, keyEvent)有機會會不被觸發(或者掉失了event) 此後cbTS.capsStates的狀態就會一直為錯 直至updateLangButtons再被觸發

    這個現象有辦法改掉嗎?

    cinbase 
    Reply
  • 選字希望可以設定選字視窗位置(或是記憶上次位置)
    選字希望可以設定選字視窗位置(或是記憶上次位置)

    Jan 11, 2022

    例如動畫瘋全螢幕發送彈幕輸入時 選字的視窗會跑到別的螢幕(三螢幕) 而非當前全螢幕的畫面中 就算手動調整也不會記憶位置 希望可以新增選字視窗位置記憶功能

    Reply
  • 有辦法讓選字單排列順序自動調整?
    有辦法讓選字單排列順序自動調整?

    Jan 12, 2022

    舉個例子:

    雞:在第11頁第9個 鷄:在第頁第8個 スクショ 2022-01-12 16-45-33

    偶爾會遇到一些字或詞彙使用率相當高, 但是會在好幾頁後,或是好幾個之後。

    如果常用字、常用詞能依據使用習慣往前排, 即便遇到同音字需要選字時,應該也會比較快速點。

    Reply
  • 希望可改善詞庫的UI
    希望可改善詞庫的UI

    Sep 13, 2021

    目前新酷音輸入法開啟「編輯使用者詞庫」遇到的最大問題,就是需要仰賴瀏覽器開啟。 且開啟時間大約15~20秒,甚至容易遇到載入不成功的狀況。

    以前曾經希望可以增加刪除詞彙的快捷鍵。 但用久了才發現希望這功能出現,根本的問題就是因為詞庫的開啟問題,影響到刪除錯詞的便利性。

    最近為了解決這問題,直接找程式開sqlite3檔,再Restart PIME會更快速方便。 也更加感受到詞庫開啟問題現狀的遺憾。

    還有,關於詞庫的部份,希望可以考慮有「使用者自訂」、「自然語言」等分類。 目前新酷音有強大的記憶功能,但也容易記錄到錯誤的詞彙。 覺得有個分類可能會比較方便編輯。 開sqlite3後可發現有user_freq、max_freq、orig_freq等參數,似乎有辦法直接對應分類?

    以上一點使用上的淺見。 再次非常感謝團隊更新新酷音。 雖然不懂寫程式,但詞庫有點像在養自己的數據庫,覺得非常有趣。

    enhancement 
    Reply
  • 酷倉輸入法模組測試版本
    酷倉輸入法模組測試版本

    May 31, 2016

    雖然是測試版本,但酷倉基本上已是功能完備且沒什麼大問題的輸入法模組,大家可以在使用後,於此處建議新功能或使用問題及建議。

    會有此測試版本的原因是,一來可讓大家在 PIME 釋出新的正式版前,就能使用或測試到酷倉最新的功能及修正,一來也可確保酷倉在正式釋出時,是個完善的輸入法模組。

    酷倉輸入法模組測試版本下載位址: https://drive.google.com/open?id=0B0FygkS7MtvXRmIyUE5jRlBmaDQ

    安裝檔採用 #98 的輸入法模組安裝腳本所製作:

    使用此輸入法模組安裝程式的好處是不須解除安裝 PIME 輸入法主程式,
    也不須解除安裝先前版本的輸入法模組,即可直接安裝新版或是測試版的輸入法模組。
    安裝完後也不用重新開機,只須以「CTRL + SHIFT」切換一下輸入法,即可開始使用。
    

    測試版難免有不完善的地方,有時改版可能會因為疏忽,而照成輸入法當掉、卡程式的問題。 在測試輸入法前,你可以建立一個批次檔放在桌面上,當程式無回應時,就執行這個批次檔, 即可釋放掉輸入法,以下為批次檔所要寫入的內容:

    KillPIME.cmd

    TASKKILL /F /IM PIMELauncher.exe
    TASKKILL /F /IM pythonw.exe
    

    要再次啟動輸入法,你只須要在開始功能表裡的「執行」輸入:

    "C:\Program Files (x86)\PIME\PIMELauncher.exe"
    

    即可再次啟動 PIME 輸入法。

    酷倉輸入法模組 v1.08 更新內容:

    • 修正「*」字元只能輸入一次的問題。

    2016/06/01 更新1:

    • 修正萬用字元查詢不準確的問題。
    test 
    Reply
  • 新增行列、大易、拼音、速成、英數輸入法模組
    新增行列、大易、拼音、速成、英數輸入法模組

    Jul 5, 2016

    已結束測試並併入 PIME 輸入法平台。

    這裡的輸入法模組僅適用 PIME v0.13.1 及先前之版本,下個 PIME 正式版本,因為一些檔案存放路徑有變更,所以將無法再支援這裡所提供的輸入法模組測試版。

    如果您希望 PIME 加入新的輸入法,可以在此建議,因為我也不知道還須新增什麼輸入法。

    酷倉: PIME-CheCJ-1.11-setup.exe 行列: PIME-CheArray-1.00-setup.exe 大易: PIME-CheDayi-1.00-setup.exe 拼音: PIME-ChePinyin-1.00-setup.exe 速成: PIME-CheSimplex-1.00-setup.exe

    https://drive.google.com/folderview?id=0B0FygkS7MtvXbWxCc2NzczRuSEE&usp=sharing

    安裝檔採用 #98 的輸入法模組安裝腳本所製作:

    使用此輸入法模組安裝程式的好處是不須解除安裝 PIME 輸入法主程式,
    也不須解除安裝先前版本的輸入法模組,即可直接安裝新版或是測試版的輸入法模組。
    安裝完後也不用重新開機,只須以「CTRL + SHIFT」切換一下輸入法,即可開始使用。
    

    測試版難免有不完善的地方,有時改版可能會因為疏忽,而照成輸入法當掉、卡程式的問題。 在測試輸入法前,你可以建立一個批次檔放在桌面上,當程式無回應時,就執行這個批次檔, 即可釋放掉輸入法,以下為批次檔所要寫入的內容:

    KillPIME.cmd

    TASKKILL /F /IM PIMELauncher.exe
    TASKKILL /F /IM pythonw.exe
    

    要再次啟動輸入法,你只須要在開始功能表裡的「執行」輸入:

    "C:\Program Files (x86)\PIME\PIMELauncher.exe"
    

    即可再次啟動 PIME 輸入法。

    新的架構有個好處,只要改一個 Cin 通用核心,就能修正或改進每個輸入法的功能或問題。 如果想要開發自己的輸入法,你可以去比較酷倉與其它輸入法之間的不同,會發現只須很小的工作量, 就能新增一個輸入法模組。在酷倉的部份檔案裡,我也有註明要改哪些地方,相信要自己修改已不是問題。

    示例: checj_ime.py 與 cheliu_ime.py 不同之處 2016-07-05 4

    行列及大易,我本身不會輸入,所以我僅就它的碼表去想像可能會有的狀況來修改。 如果有問題請提出,因為我平常不會去使用它們,所以沒有想法去改進它,也很難發現會有什麼問題。

    這些輸入法中,有用到上方數字鍵作為字根的輸入法碼表,程式會自動禁用直接顯示候選字清單 (不須按空白鍵)

    目前不啟用直接顯示候選字清單 (不須按空白鍵)打字時:

    當候選字不只一個字,須要按空白鍵或↓鍵才會顯示出候選清單,
    這時你可以用`方向鍵 + 空白/ENTER鍵`或是`數字鍵`選取候選字。
    
    當候選字只有一個字,按下空白鍵時,程式會直接出字。
    按↓鍵會顯示出候選清單,這時你可以用`方向鍵 + 空白/ENTER鍵`或是`數字鍵`選取候選字。
    

    英數: PIME-CheEng-1.00-setup.exe 這個不是 CIN 核心架構的輸入法。

    PIME-0.12-setup.exe 舊版的 PIME 測試版,請直接下載官方的正式版,不要下載這個了。

    Reply
  • 選字鍵自定義
    選字鍵自定義

    Oct 7, 2018

    能不能添加個選字鍵自定義功能 比如以空白鍵選字 不是單純的空白鍵翻頁在用數字鍵挑字 而是以空白鍵打開候選欄 並且每按一下空白鍵跳下一個候選詞 按著不放就繼續往下跳 確定要用哪個字的時候 在按enter確認 就是能取代原本向下鍵的功能 和日文輸入法的空白鍵差不多 這樣可以減少不少手指移動的距離和時間(只要大拇指按著就可以)

    Reply
  • PIME 0.16 Pre-release 無法設定輸入法 & 防毒軟體問題
    PIME 0.16 Pre-release 無法設定輸入法 & 防毒軟體問題

    Nov 5, 2016

    Win 10 X64,無法設定輸入法,跳出來的設定頁面,選擇框全部預設都是沒有勾選,勾選後也無作用。 試過firefox、IE、Edge。

    另外,安裝完後,Windows Defender似乎一值在掃PIME,CPU使用率明顯升高。

    help wanted 
    Reply
  • 新的倉頡輸入模組測試
    新的倉頡輸入模組測試

    Mar 24, 2016

    努力了幾天,總算把倉頡輸入模組弄得較完整且也較好用了,煩請有用倉頡的網友幫忙看看還有什麼須要改善的地方。考量到一般用戶無法自行安裝,所以也以安裝程式重新包裝了這個模組。

    載點在: https://drive.google.com/open?id=0B0FygkS7MtvXUmFGamVVRGM1OUU

    請先解除已安裝新酷音版本並重新開機後,再執行安裝程式。

    目前已知問題: 每頁顯示候選字個數無法正常分頁 特殊符號目前還無法支援

    基本支援了下圖中的五種倉頡碼表 (切換碼表後須切換輸入法才會生效) 2016-03-24 1

    支援使用 Shift 快速切換中英文 支援按住 Shift 輸入全形標點符號 支援預設以全形模式啟動 支援預設以英文模式啟動 支援預設輸出簡體中文

    支援設定每列候選字個數 支援設定選字及訊息視窗文字大小

    支援中文模式下按住 Shift 快速輸入符號

    Reply