Fcitx4 2英文輸入切換的改造

2021-09-01 03:34:07 字數 1231 閱讀 4841

使用時,發現其還是沒有將中途輸入大寫字母的情況切換到英文輸入狀態,於是,我又開始嘗試修改源**.

按照前文

boolean switchtoeng(fcitxautoengstate* autoengstate, char *str)

return false;

}其中,printf語句為便於分析該函式作用而寫的除錯輸入,在編譯,安裝(由於fcitx將在/usr/lib和/usr/local/lib下搜尋執行庫,故必須進行安裝),執行後發現,autoeng->str輸出的為如"https","http:"等,並且在輸入開頭為這些字串時,fcitx將自動進入英文狀態,這樣,可以判斷,該函式的確是自動切換英文輸入的方法,在返回true時,fcitx進入英文輸入狀態.

於是,我在for迴圈之後,增加如下**:

int index = autoengstate->index - 1;

char last = autoengstate->buf[index];

if (index > 0 && ('a' <= last && 'z' >= last))

autoengstate->buf中存放的是當前輸入的字元(最後乙個為'\0'),這裡,我僅對"中途"輸入大寫字母的情況進行了判斷,如果中途輸入了大寫字母,則返回true,這樣fcitx便自動進入英文輸入狀態.

如此,我的目的便輕鬆地達到了.

如果,這樣的判斷還是不能滿足要求,那就在if語句中再增加判斷條件吧!

src/module/autoeng/autoeng.c

",並將函式"

switchtoeng

"修改為如下**:

boolean switchtoeng(fcitxautoengstate* autoengstate, char *str)

// 那再對是否含有大寫字母或標點進行判斷,是,則進入英文輸入狀態

int index = autoengstate->index - 1;

char last = autoengstate->buf[index];

if (index > 0 && ('a' <= last && 'z' >= last))

return false;

}

在控制台中輸入如下命令進行編譯,安裝:

$ cmake . && make && sudo make install && pkill fcitx && fcitx

英文版Ubuntu安裝Fcitx輸入法

在英文環境 lc ctype en us.utf 8 下安裝,可按如下配置 首先,執行 sudo apt get install fcitx pinyin im switch 然後,執行 im switch s fcitx z all all 最後,在 system settings 中開啟 lan...

Autoit輸入法切換成英文 08040804

在編寫鉤子的時候,盡量多使用controlsend,但某些情況下需要使用 send,可以先切換輸入法為英文再使用send。08040804 為 英語美式鍵盤,如需切換其它輸入法,修改此處即可!具體 如下 hwnd wingethandle active hwnd 為目標視窗控制代碼,這裡設定的是當前...

Autoit輸入法切換成英文 08040804

在編寫鉤子的時候,盡量多使用controlsend,但某些情況下需要使用 send,可以先切換輸入法為英文再使用send。08040804 為 英語美式鍵盤,如需切換其它輸入法,修改此處即可!具體 如下 hwnd wingethandle active hwnd 為目標視窗控制代碼,這裡設定的是當前...