我怎样才能用 xte 模拟按“{”?

我怎样才能用 xte 模拟按“{”?

我如何发出{使用 ste 的信号?我尝试了以下方法,但似乎都不起作用:

xte 'key {'    # Outputs: Unable to resolve keysym for '{'
xte 'key \{'   # Outputs: Unable to resolve keysym for '\{'
xte 'str {'    # Outputs: 7
xte 'str \{'   # Outputs -7
xte "str {"    # Outputs: 7

我对和有同样的问题}[]


更新:我发现了这个邮政有人提到了同样的问题。但我仍然不清楚他们是如何解决这个问题的。


更新 2:我发现了这里您也可以使用 ASCII 代码。不幸的是,它不适用于{

xte 'key 0x7b' # Outputs: [

更新 3:调试问题所需的额外信息:

输出$ xmodmap

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

键盘布局:美国国际

美国国际键盘布局

答案1

第一种方法

查找 X 键符。您可以使用xev并按下您感兴趣的键来找到它们,xmodmap -pke打印出您当前的表格,或者查看/usr/include/X11/XF86keysym.h

使用其中一个,您会发现 的键符{braceleft

但是,有一个问题:keykeydownkeyup会产生实际的按键。如果你的键盘上,比如我的键盘上,大括号需要 Shift 键,你也需要按下这个:

xte 'keydown Shift_L' 'key braceleft' 'keyup Shift_L'

在我的计算机上生产{

第二种方法

不要同时使用键盘符号,xte str而应使用:

xte 'str {'

相关内容