-
-
Notifications
You must be signed in to change notification settings - Fork 375
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
设计:区分键盘按键的状态 #674
Comments
未解决的问题: 如果多个状态同时发生,应该使用哪一个状态的配置?比如我们加上了 shifted 和 alted 来表示 shift 或 alt 已经被按下的状态, 但这俩键同时被按下会怎么样? 是否应该提供一个权重字段? 如果一个状态中有动作没有定义,是否应该继承上一个或者默认状态的动作?比如 - {click: Shift_L, long_click: X, composing: {click: delimiter}} 其中在 composing 的时候,long_click 是没有指定的,这时长按是否应该也输出 X 如果默认也输出 X,但用户不想它输出 X,应该如何禁用? 加一个 |
为啥不把每种"组合键"(按键状态)映射为一个"操作"KeyA 上滑 = Action1 按键支持重定向和虚拟按键比如KeyA上滑 = KeyB上滑 = Alt + KeyC 这样我们可以预制一些按键-操作配置来提供一些可以复用的东西 |
目前难道不就是类似的?快捷键可以预设为一个按键,其他按键可以引用这个按键。 |
我觉得有问题的是中文输入法切换到ASCII模式时,输入法键盘并没有切换到ASCII键盘;切换中英文标点时,键盘label没有随之切换。
我不太能接受过度套娃,死循环的风险增加了 |
我原先想以現有的架構去解決 ascii 下,用 alt 去讓按鍵變化的問題。 但後來卡關了,因為我的中文輸入跟 ascii 用同一個鍵盤,當我在中文輸入時想輸入 alt 複合的符號時,我沒辨法在轉跳時,同時切鍵盤又同時 enable ascii mode,那如果變成兩個動作,這個 alt 按鍵的意義就不大了... 後來又想說不如跟 shift 整合吧,但可惜的是我追了一下 code 發現, shift 看來並沒有任何的客制化能力,它就只能去切換大小寫,而那些無關大小寫的字 (i.e: 1<->! , 2<>@, etc..),我是無法幫忙自定義的。 如果能開放定義除了 ascii 之外的符號的 shift 轉換表,我想應該有很大的幫助。 |
此问题应该继续跟进 |
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
目前 trime 键盘上的按键,对于用户的操作,有下面这些配置项
除去现在没实现的几个,这些配置项实际可以分成两类
click
combo
long_click
swipe_*
都很好理解,就是配置在用户进行相应动作时要触发的preset_keys
中的键但
ascii
paging
has_menu
composing
这几个,是配置的键盘在不同状态下,把click
替换掉的建所以它们本质是
ascii_click
paging_click
...如果用户想单独配置在翻页时或者英文状态下某个按键的上滑操作,是做不到的
Describe the solution you'd like
A clear and concise description of what you want to happen.
将按键的状态与操作拆开
在不同的状态下,
click
combo
long_click
swipe_*
触发不同的键比如在英文模式中 Shift 按下是大写单个字母,上滑是大写锁定,但在中文输入过程中,Shift 按下是分词,上划无作用
这个功能可以在保留兼容性的前提下实现
比如现在 tongwenfeng 里的一个配置是
- {click: Shift_L, composing: delimiter}
其中
Shift_L
和delimiter
都是在preset_keys
中定义的键需要做的修改,就是允许
composing
不止接受preset_keys
中定义的键,还接受一个完整的preset_keyboards
里keys
里这样的包括动作的键就是允许套娃
修改后上面的配置的等价写法是这样的(当然保留旧的写法):
- {click: Shift_L, composing: {click: delimiter}}
扩展一下大概这种样子:
- {click: Shift_L, ascii: {click: ..., swipe_up: ...}, composing: {click: delimiter, swip_up: ..., long_click: ...}}
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
另一种保留兼容性的写法是新加一个 when 字段,接受一个数组
- {click: Shift_L, when: [{state: ascii, click: ..., swipe_up: ...}, {state: composing, click: ..., swipe_up: ...}]}
Additional context
Add any other context or screenshots about the feature request here.
可以新加几个状态,比如 shifted, alted, 来解决 #578 中的问题
The text was updated successfully, but these errors were encountered: