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

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

我认为这个标题可能没有多大帮助,但这是我的问题:

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

显然,这在 Awesome 中是不可行的,但我真正想要的是 modkey+ 发送一个键盘事件,让它感觉我按下了变音键。

我是否必须先更改键盘布局?这样代码就可以更改布局,发送相应的事件,然后再改回来?或者我可以在不更改布局的情况下发送事件吗?

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

答案1

您可以为各种类型设置撰写键不同的按键顺序

有具体说明对于Ubuntu,但他们假设您正在运行 Gnome 或 Xfce 等桌面环境。

如果您使用 Awesome 作为独立的窗口管理器,您可以在文件中设置一个撰写键,.xinitrc如下所示(本示例使用正确的Alt键):

setxkbmap -option compose:ralt

然后,例如,要组成 ä,您可以按:CtrlRAlt, ",a

您可以阅读有关 Compose 键的更多信息维基百科页面

答案2

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

要完成这项工作,您只需按住AltGr并按下键盘上的一个键(它基本上是另一个 Shift 键)。这在 Mac 上也是如此。

重音比元音变音更直观。AltGr+a问题A。元音变音版本使用键盘上元音键附近的键:

AltGr+ QA

AltGr+ R(好吧,不是元音变音;只是为了完整性而列出)

AltGr+ J(同上)

AltGr+ Pö

AltGr+ Yü

按下这些键Shift即可获得大写版本,例如AltGr+ Shift+ QA

答案3

你可以通过以下方式做到这一点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

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

setxkbmap -layout us -variant intl

相关内容