rime-array icon indicating copy to clipboard operation
rime-array copied to clipboard

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

Open jeang-bo-yuan opened this issue 1 year ago • 14 comments

  • bug 修復
    • emoji的字碼改成大寫字母 https://github.com/rime/rime-array/commit/9d9a0410ad29b5600981b54010703df0a3c29b2b
    • 避免對簡碼和特別碼產生萬用字元 https://github.com/rime/rime-array/commit/8d57b4bb7059150bd551d4c9711801de754e415a
  • 功能新增
    • 隱藏特別碼 + 簡碼的空碼位以「NULL數字」替代 https://github.com/rime/rime-array/issues/5
    • 使用OpenCC將「NULL數字」轉成「□」https://github.com/rime/rime-array/commit/6f61d84e8a1a08b42b360333917ee3a245dfa3f5
    • 遇到重碼字時,需要按兩次空白鍵來上屏

實作方式

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

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

jeang-bo-yuan avatar Jul 08 '24 16:07 jeang-bo-yuan

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

archerindigo avatar Jul 09 '24 14:07 archerindigo

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

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

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

archerindigo avatar Jul 25 '24 17:07 archerindigo

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

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

jeang-bo-yuan avatar Jul 26 '24 08:07 jeang-bo-yuan

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

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

lunarythia avatar Aug 04 '24 22:08 lunarythia

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

Screenshot_20240804_225804_Keep Notes

lunarythia avatar Aug 05 '24 06:08 lunarythia

@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}

jeang-bo-yuan avatar Aug 05 '24 08:08 jeang-bo-yuan

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

lunarythia avatar Aug 09 '24 02:08 lunarythia

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

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

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

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

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

jeang-bo-yuan avatar Aug 10 '24 16:08 jeang-bo-yuan

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

lunarythia avatar Aug 11 '24 02:08 lunarythia

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

jeang-bo-yuan avatar Aug 11 '24 10:08 jeang-bo-yuan

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

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

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

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

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

archerindigo avatar Aug 12 '24 16:08 archerindigo

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

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

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

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

jeang-bo-yuan avatar Aug 19 '24 13:08 jeang-bo-yuan

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

lunarythia avatar Sep 03 '24 13:09 lunarythia

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

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

jeang-bo-yuan avatar Sep 03 '24 14:09 jeang-bo-yuan