fcitx / fcitx5-rime

223 stars 22 forks source link

“针对特定程序默认启用中/英文状态”的功能已实现,但对urxvt和java程序尚未生效 #41

Closed tankb52 closed 2 years ago

tankb52 commented 2 years ago

基于此 issue fcitx5-rime/issues/40 产生的新问题。 系统: Debian GNU/Linux bookworm/sid Fcitx5: 5.0.13

~/.local/share/fcitx5/rime/fcitx5.custom.yaml写入的规则如下

patch:
  "app_options/nvim-qt":
    ascii_mode: true
  "app_options/vim":
    ascii_mode: true
  "app_options/gvim":
    ascii_mode: true
  "app_options/freeplane":
    ascii_mode: true
  "app_options/java":
    ascii_mode: false
  "app_options/urxvt":
    ascii_mode: true
  "app_options/rxvt":
    ascii_mode: true
  "app_options/URxvt":
    ascii_mode: true
  "app_options/Rxvt":
    ascii_mode: true
  "app_options/xterm":
    ascii_mode: true
  "app_options/alacritty":
    ascii_mode: true
  "app_options/scrcpy":
    ascii_mode: true
  "app_options/geany":
    ascii_mode: true
  "app_options/zim":
    ascii_mode: true

其他程序中都已经实现了默认英文效果,但在 rxvt/urxvt 这个终端程序没有生效,目前是将输入法的默认状态改成英文来使用的。

是不是这个方法 dbus-send --print-reply=literal --dest=org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.DebugInfo 取的名字不对?

另外对于用 java 编写的思维导图软件 freeplane ,获取到的名字是 java ,也能生效。但这个名字岂不是要针对所有的java 程序都启用了?

wengxt commented 2 years ago

你 urxvt 大小写不对

至于 java,我简单说一下获得程序名字的原理,对于 XIM 就是根据 WM_PID 的进程获得进程命令行对应的程序,所以只能获得解析器,没有办法。WM_NAME 这种都是易变的,不能拿来当作程序

tankb52 commented 2 years ago

你 urxvt 大小写不对

你那边测试是正常的吗?具体应该怎么写?

上面的文件里,大小写我都写在里面了。 urxvt rxvt URxvt Rxvt

我刚刚测试了 uRxvt 和 URXVT 还是不能生效。

wengxt commented 2 years ago

IC [8c9034a8944f4d9cb763e4f61e8bb8e8] program:urxvt frontend:xim cap:4000000000 focus:0

我用 urxvt 可以生效