rime / squirrel

【鼠鬚管】Rime for macOS
https://rime.im
GNU General Public License v3.0
4.6k stars 412 forks source link

UI Improvements (macOS deployment target = 10.15+, up to 14.4) #848

Open groverlynn opened 6 months ago

groverlynn commented 6 months ago

Download package 包括下述UI改進:

  1. 修正直式輸入面板的排版(採用NSTextView),直立(upright)的寬字符和側臥(sideways)的窄字符均能對齊基線。Emoji在橫式和直式下均不會產生基線跳躍。(MacOS 12及以後的版本採用新的textkit 2API,對部分罕用字符的支援度高於MacOS 11及以前的系統使用的textkit。)
  2. 修正輸入面板與遊標之間的相對位置:
    • 輸入面板相應邊界或輸入面板內的輸入遊標對齊App內的文字輸入遊標。
    • 輸入面板和App的文字輸入的上下邊界之間均保持一定距離以避免遮擋,特別修正了輸入面板位於App文字輸入位置以上時未留足空間而導致遮擋的bug。
    • 新增支援App內文字直式輸入時(sweep vertical)輸入面板的智能定位,輸入面板爲橫式或直式均適用。
    • 新增允許滑鼠臨時性拖拽輸入面板,可以查看被輸入面板遮擋的內容。輸入面板會在下一輪輸入(清空當前輸入或確認上屏後)或面板超出屏幕邊界時回到默認的位置。
  3. 候選項線性(linear)排列模式下只在選項之前或之後換行/列,確保同一選項不分屬兩行/列,除非單一選項長度超過上限。修改行間距(line-spacing)實現方式以避免出現高亮多邊形摺疊、並且橫式各行上下居中/直式各欄左右居中。
  4. 修改native方案配色以更接近系統顏色,其中選項標籤和高亮選項背景色採用預設(accent)顏色。
  5. 選項標籤默認採用全寬(full-width)的1234567890。其中第十項改用以反應實際按鍵。直式模式下全寬數字保持直立,更利閱讀。修改後選項標籤部分確保等寬,無需設置專門字型。同時,標籤的缺省字型則改爲數字等寬(monospaced digit)的系統字型。當然,用戶仍可以自選字型、自定選項標籤字符。自選字型優先使用數字等寬(monospaced)或字母數字半寬(half-width)(若字型支援)。
  6. 輸入面板邊框(border)厚度遵從用戶設定,區分上下邊界的邊框高度(height)和左右邊界的邊框寬度(width)。
  7. 新增頁碼及翻頁提示(◃⃝/◂⃝及▸⃝/▹⃝,空心代表盡頭,無法繼續翻頁)。線性(linear)模式位於末行行尾,堆疊(stacked)模式獨佔末行),用戶可以知曉當前是否爲第一頁(尤其在回翻時),以免不慎繼續使用,向前翻頁觸發上屏。翻頁提示符亦是翻頁鍵,支援滑鼠和觸控板直接點選翻頁,terminal等APP攔截鍵盤方向鍵時也可以點選面板上按鈕。選項開關:style/show_paging
  8. 半透明(磨砂)參數translucency修改爲程度,取值爲0到1之間,0爲不透明,1爲完全透明(與alpha相反/互補)。無需另外設置半透明的背景色(back_colorpreedit_back_color)。註:背景顏色的alpha通道、輸入面板的alpha值、輸入面板的translucency值互相獨立且效果疊加。因半透明效果會混合系統的淺色或暗黑模式,所以輸入面板的配色也必須使用相應的淺色或深色,否則會呈現並非半透明的效果。如果選用的背景色與淺色/暗黑模式衝突,會自動替換所有顏色爲其亮度(Lab*色彩空間之luminance)上的補色。
  9. 支援滑鼠和觸控板直接點選候選項。主鍵/單指上屏,次鍵/雙指刪除自造詞或歸零詞頻(相當於高亮該候選項然後執行shift+Fn+delete)。開啓翻頁提示(show_paing)時支援滑鼠和觸控板主鍵/單指點選翻頁提示來翻頁,次鍵/雙指分別相當於HomeEnd。主鍵/單指點選輸入編碼區的⌫退格,次鍵/雙指點選相當於esc
  10. 若直接點選輸入編碼區域,可直接將輸入遊標(I-Beam或caret)移動至所點選的位置(inline模式前提條件是host app不攔截滑鼠事件)。注意:如果所選位置屬於已選詞部分,選詞會被打散,效果完全等同於用鍵盤方向鍵移動遊標至該處。
  11. 支援背景使用圖片(設置項:back_image,默認路徑為~/Library/Rime),此時半透明(磨砂)參數translucency代表背景色(back_colorpreedit_back_color)遮擋背景圖片的程度,0爲背景色徹底遮擋背景圖片,1爲無背景色/只顯示背景圖片 。
  12. 新增候選項線性排列模式linear的子模式:表格式排列tabular。表格模式中,候選項盡可能地居左對齊,高亮區域覆蓋候選項所在的整個單元格。表格式默認模仿系統輸入法卷軸式展開,同時顯示5頁(至多50個)候選詞。右鍵/輔助按鈕點按展開收起按鈕可鎖定。
  13. 新增設置:行長line_length(橫排時爲候選框每行寬度,直排時爲候選框每行高度,單位爲point)。當取值爲正數時,文字框長度即固定不變,選項不足一行時留空補足該長度(tabled表格式排版時,以單元格為單位向下取整,單元格寬度為2/4/6/8…個漢字寬)。另外,line兩端額外留有半個漢字寬的padding(不計入line_length中),避免文字被圓角切割。
  14. 修正了選項標籤字符不帶強書寫方向(strong writing direction)時(比如符號)選項中的由右至左書寫字符導致整個選項書寫方向改爲由右至左的bug。修正後選項整體保持由左至右的書寫方向,由右至左書寫的字符串則由右至左嵌套其中。
  15. markdownhtml<tag>語法對候選項套用加粗**__)、斜體*_)、下劃線<u>)、刪除線~~)、上標(^)、下標~)等樣式,以及ruby注音(Unicode範式:U+FFF9文字U+FFFAㄨㄣˊ ㄗˋU+FFFB,注音部分以空格斷字;三個定位符號可使用UTF8編碼輸入,比如U+FFF9即是\xEF\xBF\xB9)。相關的設定項為candidate_formatcomment_format
  16. 暗黑模式(Dark Appearance)不跟隨系統,而是跟隨調用輸入法的App界面。如系統暗黑模式但文檔背景白色,則輸入法也使用淺色配色(前提是分別設置了color_schemecolor_scheme_dark,或使用color_scheme: native,或啓用半透明磨砂效果/translucency為正數)。
  17. 選單switches可控制樣式style(會覆蓋當前color_scheme的相應設定)。既可以是單獨控制樣式的switch,也可以附屬於其他switch之上。相關的設定項為方案的style/<option_name>。典型應用場景:根據繁簡選擇相應字型。 假定switches中有一組繁簡轉換選項options: [ zh_TW, zh_HK, zh_Hans ],則style中設定如左:
    zh_TW:
    font_face: "PingFangTC-Regular"
    comment_font_face: "PingFangTC-Light"
    zh_HK:
    font_face: "PingFangHK-Regular"
    comment_font_face: "PingFangHK-Light"
    zh_Hans:
    font_face: "PingFangSC-Regular"
    comment_font_face: "PingFangSC-Light"

上述所有UI改善均無需提高最低系統要求,保持最低支援macOS 10.15(最低支援MacOS 10.6,需配合librime 1.8.5-)。一圖以蔽之:

Screenshot 2023-06-30 at 00 25 07

背景圖片

Screenshot 2023-06-30 at 02 34 46

固定行長(本例為200 pt)

Screenshot 2023-07-05 at 03 29 12

tabular表格式排列

Screenshot 2024-03-09 at 08 22 58

所有依賴combining marks的合成字符均能夠正確顯示(註:多數合成字母和數學符號有專門的碼位,所以已被unicode官方建議不要使用,例如不建議使用U+0061U+0304 | ā,而應使用U+0101 | ā)。 Screenshot 2023-06-29 at 20 05 43 (2)

此外,這個PR沒有 rime/squirrel#749 新引入的諸多bug:

dyphire commented 6 months ago

安装你仓库里对应的 release 版本后在 macos 12.7.3 上测试无法正常工作,全新安装和重启都不起作用 截图里可以看到只有一个候选项,lua 脚本也无法生效导致显示注音

image
groverlynn commented 6 months ago

安装你仓库里对应的 release 版本后在 macos 12.7.3 上测试无法正常工作,全新安装和重启都不起作用 截图里可以看到只有一个候选项,lua 脚本也无法生效导致显示注音 image

應該是之前master branch裡的有些更新導致的,我resolve conflicts看看

@dyphire try this: https://github.com/groverlynn/squirrel/releases/download/0.16.2u/Squirrel-0.16.2u.zip

dyphire commented 6 months ago

安装你仓库里对应的 release 版本后在 macos 12.7.3 上测试无法正常工作,全新安装和重启都不起作用 截图里可以看到只有一个候选项,lua 脚本也无法生效导致显示注音

應該是之前master branch裡的有些更新導致的,我resolve conflicts看看

@dyphire try this: https://github.com/groverlynn/squirrel/releases/download/0.16.2u/Squirrel-0.16.2u.zip

试了下还是一样的问题

groverlynn commented 6 months ago

安装你仓库里对应的 release 版本后在 macos 12.7.3 上测试无法正常工作,全新安装和重启都不起作用 截图里可以看到只有一个候选项,lua 脚本也无法生效导致显示注音

應該是之前master branch裡的有些更新導致的,我resolve conflicts看看 @dyphire try this: https://github.com/groverlynn/squirrel/releases/download/0.16.2u/Squirrel-0.16.2u.zip

试了下还是一样的问题

@dyphire 現在應該可以了

dyphire commented 6 months ago

还是没有修复

image
groverlynn commented 6 months ago

安装你仓库里对应的 release 版本后在 macos 12.7.3 上测试无法正常工作,全新安装和重启都不起作用 截图里可以看到只有一个候选项,lua 脚本也无法生效导致显示注音 image

还是没有修复 image

會不會是你的配色方案背景色和前景色設成一樣的了?

dyphire commented 6 months ago

會不會是你的配色方案背景色和前景色設成一樣的了?

官方版本部署使用没有任何问题,而且即使删除自定义配置完全默认部署也是一样的问题,只显示一个候选项。顺便除了候选项外 lua 脚本也没有生效,如果 lua 脚本正常生效是不会显示注音的

groverlynn commented 6 months ago

會不會是你的配色方案背景色和前景色設成一樣的了?

官方版本部署使用没有任何问题,而且即使删除自定义配置完全默认部署也是一样的问题,只显示一个候选项。顺便除了候选项外 lua 脚本也没有生效,如果 lua 脚本正常生效是不会显示注音的

找到根源了。librime 1.10.0有問題。現在換到最新的應該就是這樣的效果了

Screenshot 2024-03-10 at 08 16 34 (2)

dyphire commented 6 months ago

我这边测试还是无法正常使用,默认部署:

image

但之后测试自定义方案部署时发现更换 librime 后 lua 脚本可以正常工作了(不再显示注音),候选项的问题还是没解决

boomker commented 5 months ago

@groverlynn 我这边 librime 升级到 1.11.0了, 还是没有翻页按钮的效果。 已经设定了 show_paging: true

Bambooin commented 4 months ago

Seems you forgot the style lint in Makefile, we should include the .mm and .hh pattern.

https://github.com/rime/squirrel/blob/866eac59ef48c1693c75c18a8f9c635d23e3caa5/Makefile#L82-L86