如何添加自定义组合键序列?


40

如何添加自定义组合键序列?

例如,我想Compose|>键入符号。

我尝试将以下内容添加到~/.XCompose

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <bar> <greater> : "▸" U25B8 # Black right-pointing small triangle

但是新序列除了xterm以外在任何地方都无法使用。

安装ibus-table-compose,然后在IBus中启用Compose输入法并不能解决问题。IBus模仿了许多组合键序列,但不是我创建的。


您现在如何键入符号?您可能会将用于键入符号的命令映射到键盘布局中的特定键。要查找特定键的确切键符号,可以使用xev。但是,当然,这只是我的猜测。
Nitin Venkatesh

3
@nitstorm我通过按下键AltGr +>,它是一个自定义映射我设置通过将键符输入它U25B8到的键码60~/.xmodmaprc。我不问如何输入▸;我在问如何为它创建一个组合键序列。
ændrük

Answers:


7

创建一个包含以下内容的文件~/.XCompose(即.XCompose在“主”文件夹中命名的文件):

include "%L"   # import the default Compose file for your locale
<Multi_key> <bar> <greater>     : "▸"

请参阅man 5 Compose有关此文件格式的更多信息。


2
整齐!有什么方法可以在不重新启动X的情况下重新读取此文件?
杰里米·克尔

1
这听起来很有希望,但是~/.XCompose即使重启后我的文件也似乎没有任何作用。你有这个工作吗?
ændrük

@杰里米:我不确定,但是也许可以将键盘布局更改为其他布局,然后再改回来。
2011年

1
@ændrük:我似乎记得Gtk / GNOME愚蠢地使用了组合键设置(您可以测试新的组合键组合是否在xterm中起作用,以确认是这种情况)。我似乎记得该解决方法与选择绕过有问题的插入方法的替代输入法有关。可能会问一个新的问题,因为它不仅对此有用,而且IIRC还能修复特定于区域设置的Compose地图等;)
2011年

1
由于至少18.04 LTS这个答案现在应该无需改变输入法的工作。
ændrük

22
  1. .XCompose在您的主目录(~/.XCompose)中创建一个名为的文件,其中包含:

    # import the default Compose file for your locale
    include "%L"
    
    <Multi_key> <bar> <greater>  : "▸"
    

    请参阅man 5 Compose有关此文件格式的更多信息。

  2. 将以下内容添加到~/.profile

    export GTK_IM_MODULE="xim"
    

    在Ubuntu 18.04(可能还有其他)上,您可能需要使用以下内容:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. 注销并重新登录。或重新启动X。或重新启动。


3
我注意到,通过这种解决方案,我不能再使用Ctrl-Shift-u来按数字插入unicode字符了。因此,我认为这会将一般的东西从Gnome切换到由该〜/ .XCompose文件配置的X东西。还有没有办法修改Gnome的东西呢?我想保留Ctrl-Shift-u功能。
Alfe 2013年

2
@Alfe按照Ubuntu论坛底部的建议使用UIM :在11.04中未读取.XCompose文件GNOME在Debian jessie / sid中具有默认设置(请参阅im-config(8)进行自定义)。也就是说,.XCompose设置在GTK(GNOME)和Qt(KDE)应用程序中均有效,.XCompose和Ctrl + Shift + U在GTK应用程序(如Eclipse)中均有效。
PointedEars

谢谢!那么,您只是apt-getuim软件包,还是必须配置其他内容?
2013年

1
我试图让它运行一段时间,但无济于事。除了安装uim软件包以外,听听您所做的工作对您很有帮助。至少这可以帮助确保您的方法在Ubuntu 12.04上不起作用。
2013年

@dan_waterford嗨,我只是在这里问了这个问题,并把它“可能重复了”。但是,我尝试了您的答案,但无法正常工作。有任何想法吗?:)
Owen_R

9

在Ubuntu 14.04上,我执行以下操作:

1)安装uim使用软件管理器,其他包一样uim-ximuim-gtk2uim-gtk3uim-qt安装自动。参见https://launchpad.net/ubuntu/+source/uim

2)通过向添加下一行来定义环境变量~/.profile,这样自定义组合键序列仅适用于当前用户:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

~/.XCompose在重新启动1)Ubuntu或2)在终端中运行以下命令后,只需重新启动X-server,OP中的-file应该可以工作:

$ sudo restart lightdm

注意:仅在更改~/.profile文件后才需要重新启动,所做的更改~/.XCompose将在下次启动应用程序(终端,Gedit等)时生效。

要检查环境变量是否设置正确,请在终端中输入以下命令:

$ printenv | grep IM_MODULE

非常感谢:

关于自定义组合键序列:

关于自定义键盘映射:

.Xcompose模仿Window US International键盘的示例文件:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.