滚动锁定键在 Fedora/KDE 上不起作用

Ynh*_*key 2 keyboard kde scroll-lock fedora-16

我有一台装有 Fedora 16 和 KDE 的计算机。它通过KVM切换器与另一台电脑的显示器相连,切换器使用Scroll Lock + Scroll Lock在电脑之间切换。

问题是由于某种原因Scroll Lock 按钮在Fedora/KDE 上不起作用。Num Lock 和 Caps Lock 工作。该命令xset q说它已关闭,并且xset led named "Scroll Lock"确实将其打开,但我无法“双击”。

如何检查按钮不起作用的原因并解决问题?我到处找,但没有找到任何有这个特定问题的人。

D. *_*yle 5

我曾经试图弄清楚这一点。显然,默认情况下 X 不会检测到 Scroll Lock,因此如果您在船上,则必须使其识别并检测该键。

  1. 打开一个终端。

  2. 运行xmodmap -pm以检查哪些 mod 密钥可用。通常至少有一个。在我的情况下,mod3 可用。因此,我将运行以下命令(您可用的 mod 密钥可能不同,因此在运行下一个命令时使用该编号)。

  3. 运行xmodmap -e 'add mod3 = Scroll_Lock'并且 Scroll Lock 键应该开始在 X 中工作。

  4. 要使其永久化,您可以在您的窗口管理器/环境中添加一个启动项或使用另一种方法,例如将其放入 .xinitrc 文件或在 xinitrc.d 中创建一个文件来执行此操作(如果这些仍然适用于您的 Linux 发行版) ,或者如果他们不这样做,则使用另一种方法)。

更新:我刚刚注意到,在一些更新后,我以前使用启动项调用 xmodmap 的方法停止运行。我正在使用启动应用程序首选项的附加功能。由于现在这样做的方式已添加到此命令已被破坏的其他方式中,因此我为 Fedora 21 及更高版本添加了以下内容。它也应该适用于许多其他发行版,但 YMMV。

要使上述永久,请执行以下操作:

  1. 如果与下面的 mod3 不同,请使用从上面获得的可用 mod 编号,或者通过运行再次检查哪个可用:

xmodmap

出于本指南的目的,我们假设它提供 mod3 作为可用插槽。

  1. 在 /usr/local/bin 目录中创建一个名为 scrlkon 的脚本。

sudo touch /usr/local/bin/scrlkon

  1. 打开您刚刚创建的文件(如果您愿意,可以使用您喜欢的文本编辑器代替 nano)。

sudo nano /usr/local/bin/scrlkon

  1. 将以下文本放入文件中:

#!/usr/bin/sh

sleep 4

exec xmodmap -e 'add mod3 = Scroll_Lock'

exit

  1. 保存文件并使其可执行:

sudo chmod +x /usr/local/bin/scrlkon

  1. 从启动项调用脚本。

您可以随意命名该新启动项,只要它调用 scrlkon

  1. 如果在您注销并再次登录时它没有立即启动,请重新启动。

注意:如果需要,您可能希望将睡眠数调整为 4 以上。调用 sleep 函数对于抵消关闭 mod 键或在登录时禁用 xmodmap 命令是必要的。4 是一个不错的数字,因为登录后很快就可以工作。但是如果它仍然被 Fedora 环境中的某些东西禁用(由于某种原因,这在 mate-desktop 中特别糟糕)只需增加睡眠次数,直到您始终启用密钥。那应该这样做。

以上述方式执行此操作的另一种方法(如果您不想制作脚本或添加其他文件)是在备用步骤 2-6 的启动程序项中的命令字段中替换以下内容:

sh -c "sleep 15; exec xmodmap -e 'add mod3 = Scroll_Lock'"
Run Code Online (Sandbox Code Playgroud)

这似乎也有效。只要确保单引号和双引号是直引号而不是弯引号。