fcitx / fcitx5-rime

219 stars 22 forks source link

ascii_composer/switch_key 里面的Control_L会调用Caps_Lock的问题 #60

Closed c02y closed 1 year ago

c02y commented 1 year ago

我在系统级禁用掉了Caps_Lock按键,所以不管有没有输入框,按Caps_Lock都不会切换到大写

但是发现在只要设置Control_L切换中英文,文本输入框内Caps_Lock也可以切换中英文,禁用Control_L也会禁用Caps_Lock

把Control_L设置成任何值(clear, noop, commit_code, commit_text, inline_ascii),Caps_Lock效果会变成Control_L效果一样,不管设置里面Caps_Lock设置成什么值

文件default.yaml:

ascii_composer:
  good_old_caps_lock: true  # true | false
  switch_key:
    Caps_Lock: clear      # commit_code | commit_text | clear
    Shift_L: noop  # commit_code | commit_text | inline_ascii | clear | noop
    Shift_R: noop         # commit_code | commit_text | inline_ascii | clear | noop
    Control_L: commit_code       # commit_code | commit_text | inline_ascii | clear | noop
    Control_R: noop       # commit_code | commit_text | inline_ascii | clear | noop

FYI: rime config: rime-ice or rime-config Arch Linux fcitx5-rime default.yaml: 只使用小鹤双拼

  schema_list:
    - schema: double_pinyin_flypy

似乎不是rime配置的问题,所以我在fcitx5-rime和librime都提交了这个issue

wengxt commented 1 year ago

@c02y 你是如何禁用caps lock的,然后请贴fcitx5-diagnose

c02y commented 1 year ago

禁用Caps_Lock, i3wm配置里面自启动: setxkbmap -option ctrl:nocaps

fcitx5-diagnose: fcitx5-diagnose.log

wengxt commented 1 year ago

@c02y 我没有在 fcitx5-diagnose的输出中看到你setxkbmap的效果

c02y commented 1 year ago

我是放在i3wm的配置文件的

exec_always --no-startup-id setxkbmap -option ctrl:nocaps

按键录屏软件比如screenkey也录不到Caps_Lock按键, 我不禁用Caps_Lock的话可以录到Caps_Lock按键

我在浏览器用Surfingkeys插件模拟vim操作浏览器,比如gg道页首,G到页尾,按下Caps_Lock,按g并不是G,录屏软件也显示我按下去的是g

你说fcitx5-diagnose没看到setxkbmap效果,会不会是setxkbmap不能放到i3wm启动?

就算fcitx5没有识别到setxkbmap效果,但是这个为什么会导致Caps_Lock会同步Control_L的中英切换?

wengxt commented 1 year ago

你可能对 ctrl:nocaps 的效果有所误解

你可以自己打开 /usr/share/X11/xkb/rules/evdev.xml 然后搜索 ctrl:nocaps

描述是 Caps Lock as Ctrl

你的 caps lock 将被当作 ctrl 使用,所以你看见的现象不正符合你的预期吗?

wengxt commented 1 year ago

这个选项可能才是你想要的

c02y commented 1 year ago

好尴尬🦆,这个命令是我好久之前google到的,用起来一直没问题,原来是错的,感谢

试了下,caps:none设置就没问题了