Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

實現行列的傳統功能(沒有用lua) #12

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

jeang-bo-yuan
Copy link
Contributor

@jeang-bo-yuan jeang-bo-yuan commented Jul 8, 2024

實作方式

為了實作特別碼和簡碼的功能,我對array30_main.dict.yaml中的字碼做了一些特別處理:

類別 處理 array30 schema的拼寫運算
特別碼 字碼一樣保有「!」後綴 將「!」轉「空格」
簡碼 字碼有「@」後綴,空碼位的文字以「NULL數字」頂替 將「@」後綴去掉
其他字碼
(重碼)
保留原樣 附加「空格」後綴
(輸入時以跟特別碼相同的邏輯處理)
  • 在輸入1~2個字碼時,特別碼會因為比簡碼多一個「空格」,所以不會出現在候選字的第一頁
  • speller接受「空格」作為輸入碼,且「空格」為末碼,所以:
    • 第一次按下「空格」時,「空格」加入輸入碼;若只有一個符合的字碼則自動上屏
    • 第二次按下「空格」時,因為分段已經結束,所以會改為上屏文字

現在要輸入特別碼的話,需要手動按下「!」
如果目前的分段具有abc這個tag,那麼speller就能將「空格」加入輸入碼中
又因為「空格」是末碼,所以最多只會加入一個「空格」,第二次按下「空格」時就不會被視為字碼而是用來上屏文字
主要是避免萬用字元出現「NULL數字」候選字,導致在反查時產生過長的注釋而崩潰
其實「&」後綴和簡碼的數字後綴是不需要的
@archerindigo
Copy link
Contributor

謝謝,我下星期或許有空看看

@archerindigo
Copy link
Contributor

@jeang-bo-yuan 很出色的更改。我在Linux上試用後感覺良好,只是以往即使有重碼都可以自動上屏,現在要按多一下,要重新習慣一下,對其他慣用Windows原生版本的用戶應該沒有問題。

另外萬用字元似乎無法使用,可以檢查一下?

Trime的支援也想試試看,過幾天我再試。

@jeang-bo-yuan
Copy link
Contributor Author

jeang-bo-yuan commented Jul 26, 2024

@archerindigo 我剛才重頭安裝了一次ibus-rime,發現是相依性沒有設定好。如果schema_list中只加入array30的話,就不會產生array30_query的字典文件。

我目前沒有發現其他問題。如果有空的話,希望你能再測試看看。
辛苦你了。

@lunarythia
Copy link
Contributor

lunarythia commented Aug 4, 2024

我一直以為我用 Windows 時看到的「□」是我電腦顯示不了的字,原來是空碼的意思!

這個PR還修好我之前注意到的問題,就是如果重複輸入kaax (8- 1- 1- 2v) 每次都選第二個重碼字(倵),到最後第二個字就會排第一。

@lunarythia
Copy link
Contributor

@archerindigo @jeang-bo-yuan
Trime 上有問題,可是應該是 Trime 本身就有的問題。
行列用到「,」「.」「/」「;」鍵。可是前三個都被移到其他地方,而且「;」還得長按 b 鍵
也沒找到改變鍵盤配置的設定。

Screenshot_20240804_225804_Keep Notes

@jeang-bo-yuan
Copy link
Contributor Author

jeang-bo-yuan commented Aug 5, 2024

@archerindigo @jeang-bo-yuan Trime 上有問題,可是應該是 Trime 本身就有的問題。 行列用到「,」「.」「/」「;」鍵。可是前三個都被移到其他地方,而且「;」還得長按 b 鍵 也沒找到改變鍵盤配置的設定。

看起來你用的是同文風主題,如果要修改鍵盤配置的話,需要去用戶資料夾修改tongwenfeng.trime.yaml或者tongwenfeng.trime.custom.yaml

因為同文風主題預設沒有包含行列30的鍵盤,所以要自己加。我的做法是直接照抄trime.yaml中行列30的鍵盤。

將下列文字複製、寫入tongwenfeng.trime.custom.yaml,然後再進設定頁面選擇主題——同文風,就能在同文風主題下使用行列30鍵盤。

# tongwenfeng.trime.custom.yaml
patch:
  "preset_keyboards/array30":
    name: 行列30配美式國際
    author: "Terry Tsang <[email protected]>"
    ascii_mode: 1
    width: 10
    height: 44
    lock: true
    keys:
    - {click: '1', long_click: '!', swipe_up: '¡', swipe_down: '¹'}
    - {click: '2', long_click: '@', swipe_up: '²'}
    - {click: '3', long_click: '#', swipe_up: '³'}
    - {click: '4', long_click: '$', swipe_up: '¤', swipe_down: '£'}
    - {click: '5', long_click: '%', swipe_up: '€'}
    - {click: '6', long_click: '^', swipe_up: '¼'}
    - {click: '7', long_click: '&', swipe_up: '½'}
    - {click: '8', long_click: '*', swipe_up: '¾'}
    - {click: '9', long_click: '(){Left}', swipe_left: '(', swipe_right: ')', swipe_up: '‘'}
    - {click: '0', long_click: '-', swipe_down: '_', swipe_up: '’', swipe_left: '¥'}
    - {click: 'q', label: "1^", long_click: '~', swipe_up: 'ä'}
    - {click: 'w', label: "2^", long_click: '+', swipe_up: 'å'}
    - {click: 'e', label: "3^", long_click: '=', swipe_up: 'é'}
    - {click: 'r', label: "4^", long_click: '×', swipe_up: '®'}
    - {click: 't', label: "5^", long_click: '÷', swipe_up: 'þ'}
    - {click: 'y', label: "6^", long_click: '«»{Left}', swipe_left: '«', swipe_right: '»', swipe_up: 'ü'}
    - {click: 'u', label: "7^", long_click: '[]{Left}', swipe_left: '[', swipe_right: ']', swipe_up: 'ú'}
    - {click: 'i', label: "8^", long_click: '{}{Left}', swipe_left: '{', swipe_right: '}', swipe_up: 'í'}
    - {click: 'o', label: "9^", long_click: '\', swipe_up: 'ó'}
    - {click: 'p', label: "0^", long_click: '|', swipe_up: 'ö', swipe_down: '¬', swipe_left: '¦'}
    - {click: 'a', label: "1-", long_click: '`', swipe_up: 'á'}
    - {click: 's', label: "2-", swipe_up: 'ß', swipe_down: '§'}
    - {click: 'd', label: "3-", swipe_up: 'ð'}
    - {click: 'f', label: "4-", long_click: Left, swipe_left: Home, swipe_right: End, swipe_up: Page_Up, swipe_down: Page_Down}
    - {click: 'g', label: "5-", long_click: Up, swipe_left: Home, swipe_right: End, swipe_up: Page_Up, swipe_down: Page_Down}
    - {click: 'h', label: "6-", long_click: Down, swipe_left: Home, swipe_right: End, swipe_up: Page_Up, swipe_down: Page_Down}
    - {click: 'j', label: "7-", long_click: Right, swipe_left: Home, swipe_right: End, swipe_up: Page_Up, swipe_down: Page_Down}
    - {click: 'k', label: "8-"}
    - {click: 'l', label: "9-", swipe_up: 'ø'}
    - {click: ';', label: "0-", long_click: ':', swipe_up: '¶', swipe_down: '°'}
    - {click: 'z', label: "1v", long_click: select_all, swipe_up: 'æ'}
    - {click: 'x', label: "2v", long_click: cut}
    - {click: 'c', label: "3v", long_click: copy, swipe_up: '©', swipe_down: '¢'}
    - {click: 'v', label: "4v", long_click: paste}
    - {click: 'b', label: "5v", long_click: Insert}
    - {click: 'n', label: "6v", long_click: undo, swipe_up: 'ñ'}
    - {click: 'm', label: "7v", long_click: redo, swipe_up: 'µ'}
    - {click: ',', label: "8v", long_click: '<', swipe_up: 'ç'}
    - {click: '.', label: "9v", long_click: '>'}
    - {click: '/', label: "0v", long_click: '?', swipe_up: '¿'}
    - {click: Shift_L}
    - {click: Keyboard_symbols, long_click: Keyboard_number}
    - {click: Mode_switch, long_click: Menu}
    - {click: space, long_click: VOICE_ASSIST, width: 30}
    - {click: "'", long_click: '"'}
    - {click: BackSpace, swipe_right: Delete, swipe_left: Escape, width: 15}
    - {click: Return, long_click: CommitComment, width: 15}

@lunarythia
Copy link
Contributor

lunarythia commented Aug 9, 2024

請問有沒有辦法隱藏「□→NULL」這個選項嗎?
圖片
圖片

@jeang-bo-yuan
Copy link
Contributor Author

因為我是透過OpenCC來將NULL轉成□,所以一定需要一開關來控制。

如果硬要隱藏的話,可以將「NULL -> □」開關去掉,並和其他的開關共用。

下面的範例是和「常用->增廣」共用同一個開關。也就是說,當選擇「常用」其實就是選「NULL」;當選擇「增廣」其實就是選「□」。

不過這做法蠻混淆的,我目前不打算加入Pull Request中。

# array30.custom.yaml
patch:
  "switches/@3/reset": 1 # 預設為「增廣」
  "switches/@6": # 刪掉原本的「NULL -> □」的開關
  "null2square/option_name": extended_charset # 和 「常用->增廣」 共用開關

@lunarythia
Copy link
Contributor

哇 原來可以這樣做。不過我也不打算真的這樣做,因為像你講的,這倒是蠻混淆的

@jeang-bo-yuan
Copy link
Contributor Author

jeang-bo-yuan commented Aug 11, 2024

剛剛翻了一下文檔,才發現原來只要不指定states,就能將開關隱藏起來!

@archerindigo
Copy link
Contributor

@archerindigo 我剛才重頭安裝了一次ibus-rime,發現是相依性沒有設定好。如果schema_list中只加入array30的話,就不會產生array30_query的字典文件。

我目前沒有發現其他問題。如果有空的話,希望你能再測試看看。 辛苦你了。

@jeang-bo-yuan
我用Trime v3.2.19-0, array30_query也有產生,但拼音反查無法運作,可能是Trime本身的問題。

打字功能基本正常,只是重碼選字及空碼對手機打寫效率的影響較大。我個人在手機上還是傾向使用現在的版本。

但總體來說這次修改是更充份還原傳統行列的輸入模式,建議批準pull request。 @lotem

Copy link
Member

@lotem lotem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢修改、测试。

@jeang-bo-yuan
Copy link
Contributor Author

@jeang-bo-yuan
我用Trime v3.2.19-0, array30_query也有產生,但拼音反查無法運作,可能是Trime本身的問題。

打字功能基本正常,只是重碼選字及空碼對手機打寫效率的影響較大。我個人在手機上還是傾向使用現在的版本。

但總體來說這次修改是更充份還原傳統行列的輸入模式,建議批準pull request。 @lotem

我Trime也是用v3.2.19-0,不過拼音反查測起來是正常的。你有下載luna-pinyin嗎?

@lunarythia
Copy link
Contributor

lunarythia commented Sep 3, 2024

@archerindigo @jeang-bo-yuan
我用 Trime 反查沒問題。(不過改了tongwenfeng.trime.custom.yaml之後,反查時就看不到自己在打甚麼了。不知到能不能做反查的時後把鍵盤配置改回拉丁字母)

@jeang-bo-yuan
Copy link
Contributor Author

@archerindigo @jeang-bo-yuan
我用 Trime 反查沒問題。(不過改了tongwenfeng.trime.custom.yaml之後,反查時就看不到自己在打甚麼了。不知到能不能做反查的時後把鍵盤配置改回拉丁字母)

@leafpool243
如果要在反查時看到鍵盤上的拉丁字母,可以把開關從「。,」調成「.,」。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants