2022年05月15日 星期日 下午0
Emacs下iedit-mode定义了一个快捷键:Ctrl-;。但这个快捷键在Deepin Linux下被占用了:

由于我大部分时间泡在Emacs里,不大许什么东西能挡了Emacs的道儿。因此我需要:
- 找出谁设置了
Ctrl-;, - 禁掉或修改为其他。
1
Linux桌面并没有一个管理所有全局快捷键的地方。Deepin提供了一个快捷键管理的入口,控制中心 -> 键盘和语言 -> 快捷键:

其中有一个绑定在剪贴板的快捷键Super-V:

Super其实就是Windows下的Windows键:
荣耀出Linux本,键盘改了点:

Deepin沿用Super-V也是为了和Windows下的使用习惯保持一致。这也不是必要的。Windows下的快捷键管理也混乱,没有统一的地方;快捷键还满天飞。看似为了用户的方便,太多的快捷键反而给用户(尤其是Emacs用户)造成麻烦。微软的开发好像也没有意识到这一点。我们可以从微软新近应用vscode和terminal快捷键的设置印证这一点。
回到主题,这个Ctrl-;并不是Deepin设置的。
2
我用xwininfo看这个粘贴板窗口,得到:
xwininfo: Window id: 0x600002 "Fcitx Input Window"
Absolute upper-left X: 1
Absolute upper-left Y: 839
Relative upper-left X: 1
Relative upper-left Y: 839
Width: 200
Height: 162
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: WhenMapped
Save Under State: yes
Map State: IsViewable
Override Redirect State: yes
Corners: +1+839 -1719+839 -1719-79 +1-79
-geometry 200x162+1-79
可以看到,是fcitx输入法框架(Free Chinese Input Toy for X,小企鹅输入法框架)设置的。
3
我在Linux下用的是华宇拼音输入法:

华宇拼音输入法的前身是紫光拼音输入法。在Linux下,其也是基于fcitx输入法框架实现。这没啥特别,其他如:
- 搜狗拼音,
- Sun拼音,
等,也是基于fcitx输入法框架实现。fcitx大有一统江湖之势。
4
剪贴板是放到Deepin设置里管理,还是放到输入法框架里管理呢?这是个问题。我现在看到dde-clipboard可以管理的内容有文本和图片。fcitx的剪贴板管理只有文本。 fcitx剪贴板更容易使用,和输入文字一样,使用数字选取剪贴板历史。
5
最终我使用fcitx-configtool将剪贴板历史快捷键修改为Super-;:

6
Linux桌面下全局快捷键需要一个统一管理的地方。如今的管理太分散。全局快捷键的定义也应该越少越好,最好能够提供统一的去除方法,把不使用的权利还给用户。