如何创建键盘快捷键来模拟特定的击键(而不是命令)?

Mic*_*ino 5 mac keyboard

Delete我在 Mac 上使用 Ubuntu 19.10,因此键盘上没有按键。

要模拟该键,我可以执行Fn+Backspace但我想选择其他键组合,例如Super+ Backspace。这可能吗?

Raf*_*ffa 6

这将完成这项工作:

首先:/usr/share/X11/xkb/symbols/pc通过在终端中运行以下命令来编辑 XKB文件:

sudo nano /usr/share/X11/xkb/symbols/pc
Run Code Online (Sandbox Code Playgroud)

其次:找到这一行:

key <BKSP> {    [ BackSpace, BackSpace  ]   };
Run Code Online (Sandbox Code Playgroud)

并通过在其前面添加来注释掉它,//如下所示:

//key <BKSP> {  [ BackSpace, BackSpace  ]   };
Run Code Online (Sandbox Code Playgroud)

第三:将以下代码复制并粘贴到上面第二个注释行下方:

key <BKSP> {
    type= "PC_SUPER_LEVEL2",
    symbols[Group1]=  [ BackSpace, Delete ]
};
Run Code Online (Sandbox Code Playgroud)

并保存文件。

第四:在终端中运行以下命令清除XKB缓存:

sudo rm -rf /var/lib/xkb/*
Run Code Online (Sandbox Code Playgroud)

最后:重新启动系统以激活新的 xkb 配置,或通过在终端中使用以下命令设置 xkb 地图布局来重新加载新的 xkb 配置:

setxkbmap -layout us
Run Code Online (Sandbox Code Playgroud)

并测试您的新组合键。


此解决方案应该使按Super+ Backspace与按该键一样工作Delete

要将组合更改为Shift+,Backspace 您可以更改PC_SUPER_LEVEL2为上面的第三PC_SHIFT_LEVEL2项 。


Pab*_*chi 1

命令可以模拟特定的击键。一种方法是创建一个自定义快捷方式以在“设置”>“键盘”>“自定义快捷方式”xdotool上运行() :

截屏


dam*_*dam 0

不,根据这个答案,不可能整体做到这一点,Fn不能被视为另一个关键:

确实Fn没有可比性。它是一个硬件密钥,不能直接与操作系统连接。按Fn另一个键会导致将完全不同的代码发送到操作系统。
此类示例包括 XF86AudioMute、XF86Eject 等。操作系统无法检测是否Fn按下。

我曾认为可以使用gnome-tweakspackage, inside :

键盘和鼠标->其他布局选项

但不,您可以定义每个特殊键的行为(从基本键Ctrl到旧Meta键),但因为Fn不是软件键,所以您无法更改他的功能。

您可以创建自定义快捷方式来执行该Delete模拟,但它需要命令。