plateaukao / sweetlime

a smaller better lime (Lightweight Input Method Editor)
GNU General Public License v3.0
104 stars 37 forks source link

加上colemak layout keyboard #24

Closed hsieh123 closed 1 year ago

hsieh123 commented 1 year ago

您好,我是無蝦米使用者,最近想花點時間將qwerty layout替換成colemak layout, 幾年前有過開發android apk的經驗,但沒有開發input method的經驗,能請你指點一下哪些是關鍵的檔案我應該修改的嗎?

plateaukao commented 1 year ago

@hsieh123 看起來還蠻有趣的。我其實也沒有開發 input method 的經驗,所以只是東改改西改改。 對於不同鍵盤的 layout,我找了一下,它們都設定在 LimeStudio/app/src/main/res/xml/ 下面,你可以先參考怎麼樣依照這些檔案生成 colemak 型式所需要的 layout;

然後再找一下這些 layout xml 被指定的地方,加上你新增的 layout 選項。 可能的地方會是 kobj.getEngkb() 或是找找 getKeyboardXMLID 被呼叫的地方。

plateaukao commented 1 year ago

當你利用匯入字根表,新增輸入法後,在萊姆輸入法 app 的畫面,可以點左上角的 三,點選你的無蝦米輸入法;它會跳出新的畫面讓你可以選擇你要的鍵盤型式。如果上面你有成功加入新鍵盤 layout 的話,就可以利用這方式去切換成 colemak layout。

hsieh123 commented 1 year ago

謝謝你,我找了一個下午,為了將新鍵盤layout加到你說的鍵盤型式選單(應是fragment_dialog_keyboard),但始終找不到怎麼加入自定義的lime_colemak.xml到db的keyboard table裡,所以在getKeyboardObj()的時候cursor會找不到我自己定義的keyboard 而出錯(因為根本沒加入)。 我最後放棄(還有更重要的事等著我做),用最下流的方法:把lime.xml內容直接替換成lime_colemak.xml!還是謝謝你的建議啊!

最後附上colemak layout,有興趣的人可以下載後改名為lime.xml,放到LimeStudio/app/src/main/res/xml/ , 記得在APP設定內把數字列英文鍵盤取消(因為我只有畫4行的) lime_colemak.txt

plateaukao commented 1 year ago

原來是在 db 啊~ 那可能要用 tool 去修改一下 db :D 之後我有時間的話,再把你這個鍵盤 layout 也放進去囉,感謝~