Ubuntu 20.04.1、Gnome 3.36.3、XOrg 7.7,全新安装在 HP 笔记本电脑(17-by1xxx)上。
此笔记本电脑键盘没有Menu按键(即激活应用程序中上下文菜单的按键 - 例如右键单击鼠标时会出现此菜单)。我想设置右键Alt(此键盘有左键和右键Alt)来执行此操作。
我已经在 Google 上搜索过很多次,并找到了一些潜在的“解决方案”,但大多数似乎都是针对旧版本的 Ubuntu(早在 11.04 和 12.04 时代),或者是 Unity 特有的,或者列出的方法似乎在 20.04 中无法使用(或者至少已被弃用)。
我找到了 Gnome-Tweak-Tool 和“附加布局选项”菜单,但我显然不了解其中一些选项的含义以及它们会产生什么影响。
所以,我的问题是:
是否有“幼儿园”级别的讨论来说明“附加布局选项”中显示的所有选项的含义(比选项本身附带的短语更详细),如果有,在哪里可以找到它?
在附加布局选项中是否有隐藏的选项,允许我使用正确的Alt键作为键(我找到了一个Menu制作键的选项,但是我经常不小心按到它,导致它不是一个有用的选择”)。Caps LockMenuCaps Lock
我曾经(简要地)看过 xKeyboard-config 文件,但很快就无法理解(我是一个“新手”用户,不熟悉这里发生的所有“幕后”事情),因此,如果能更详细地讨论一下所有这些是如何结合在一起的,我将不胜感激 - 虽然现在对我来说,简单的“先做这个,然后这个,然后这个......”就够了。
我也花了一些时间研究 xmodmap,但如果我理解正确的话,这只会影响当前会话,因此每次系统重新启动时都需要运行(可以使用在登录时运行的脚本来完成)?我还发现有几个地方提到这在某种程度上占用大量处理器,并且可能会受到锁定和解锁计算机的影响(或者我可能将其与 setxkbmap 混淆了 - 到目前为止已经是漫长的一天了,当我精神饱满时我真的应该解决这个问题)...
无论如何,任何帮助(包括背景阅读材料的指向)都会受到赞赏。
编辑:
感谢 UnKNOWn 的帮助。我能够使用 xmodmap 来更改行为Right-Alt。我最终使用了Shift+ Right-Alt,并且效果很好。我使用的实际步骤(对 UnKNOWn 的说明进行了轻微修改)如下:
# Get the original key assignments, in case we want to go back
xmodmap -pke
# Find key 108 in the list
# In my case, it is:
# keycode 108 = Alt_R Meta_R Alt_R Meta_R
# Modify that to produce the menu key effect desired
# keycode 108 = Alt_R Menu Alt_R Meta_R
# Send it back to xmodmap to test it
xmodmap -e "keycode 108 = Alt_R Menu Alt_R Meta_R"
将最后一行添加到启动应用程序(无论是直接添加还是通过将其保存在脚本中并添加脚本)解决了我的问题。
再次感谢,UnKNOWn。
答案1
您可以运行此命令
man xkeyboard-config
或者访问此手册页https://manpages.ubuntu.com/manpages/xenial/man7/xkeyboard-config.7.html并看到各种可能性。如果在手册页中找不到任何内容,则不会隐藏任何内容。
根据您的会话x11
或将右 Alt 设为菜单键Wayland
。
您可以通过运行以下命令来找出会话类型。
echo $XDG_SESSION_TYPE
例子:
[admin@ADMIN ~]$ echo $XDG_SESSION_TYPE
x11
[admin@ADMIN ~]$
如果是 x11,您可以使用xmodmap
配置将右 Alt 设为菜单键。https://manpages.ubuntu.com/manpages/focal/man1/xmodmap.1.html
如果是 Wayland,则需要进行硬件级别更改https://manpages.ubuntu.com/manpages/focal/man7/hwdb.7.html
如果您在同一个 AU 中搜索,已经有关于如何使用 xmodmap 和 hwdb 的答案。
编辑:
对于 xorg..
首先打开gnome-tweaks
> 键盘和鼠标 > 附加布局选项 > 键选择第 3 级并取消勾选右 Alt 键。
使用以下命令创建一个文件。
gedit .xmodmaprc
将下面的内容复制粘贴到上面的文件中。
运行xev | grep keycode
命令,然后按右 alt 键获取键码,如果它与 108 不同,则进行更改。
remove mod1 = Alt_R
keycode 108 = Menu
要立即应用上述更改,请运行以下命令
xmodmap .xmodmaprc
将命令添加xmodmap .xmodmaprc
到启动应用程序列表。
正如您在问题中提到的,如果您对 xmodmap 不满意,您可以选择hwdb
https://manpages.ubuntu.com/manpages/focal/man7/hwdb.7.html从启动开始就持续存在的更改,不需要任何其他脚本或启动命令。