在超赞的窗口管理器中,如何使按键绑定发送键盘事件?


11

我认为标题可能不会很有帮助,但这是我的问题:

我正在使用很棒的窗口管理器,并试图使我的键绑定在风格上类似于OSX的特殊键。我正在学习德语,因此有时需要键入在其上带有变音符(双点)的元音。在OSX中,要执行此操作,请键入Alt + U,然后输入所需的元音。

显然,这真是太不可行了,但是我想要的是modkey +发送一个键盘事件,使它给人以我敲过变音键的印象。

我必须先更改键盘布局吗?这样代码可以更改布局,发送相应的事件,然后将其更改回?还是可以发送事件而不更改布局?

如果可以的话,我该如何首先发送事件?

Answers:


5

您可以通过Xmodmap而不是通过窗口管理器来实现。这与您的键盘布局/键映射直接相关,与您的窗口管理器无关。

要更改xmodmap,请创建一个名为的文件~/.Xmodmap并添加以下内容。这应该使您可以直接使用altgr + u输入üäöß

keysym a = a A adiaeresis Adiaeresis
keysym o = o O odiaeresis Odiaeresis
keysym u = u U udiaeresis Udiaeresis
keysym s = s S ssharp section

之后,您必须使用以下命令应用此文件中的内容 xmodmap ~/.Xmodmap

输入变态的另一种方法是使用美国国际布局。这使您可以使用“ +字符”输入变音符号。要输入ä,您需要输入"a。国际布局在Windows中以及据我所知在OSX中也可用。

setxkbmap -layout us -variant intl

但是,窗口管理器(特别是Awesome WM)具有一项功能,即不允许其键绑定被VirtualBox拦截。我认为setxkbmap不能在这里提供帮助。
Hi-Angel'3

11

您可以为各种不同的键序列设置组合键。

对于Ubuntu,有一些特定的说明,但它们假定您正在运行Gnome或Xfce之类的桌面环境。

如果您将awesome用作独立的窗口管理器,则可以在.xinitrc文件中设置组合键,如下所示(本示例使用右键Alt):

setxkbmap -option compose:ralt

然后,组成一个A,例如,你会打:CtrlRAlt"a

您可以在Wikipedia页面上阅读有关Compose键的更多信息。


6

除了“撰写”键之外,您还可以通过选择“国际”键盘布局之一来设置键以选择所谓的“第三级”。在Debian上,我使用“英语(国际AltGr死键)”。在PC键盘上,AltGr实际上用于此目的的,并且X喜欢默认将其分配给第三级移位。您也可以明确地执行此操作。

要做所有这些,只需按住AltGr并按下键盘上的一个键(基本上是另一个Shift键)即可。这也正是Mac上的工作方式。

口音比变音符号更直观。AltGr+ a问题á。变音版本在键盘上的元音键附近使用一个键:

AltGr+ Qä

AltGr+ Rë(好吧,不是变音符号;仅出于完整性目的列出它)

AltGr+ Jï(同上)

AltGr+ Pö

AltGr+ Yü

Shift向下按这些键可获得大写字母版本,例如AltGr+ Shift+ QÄ

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.