小键盘模拟

小键盘模拟

我的新笔记本电脑(戴尔灵越5578) 有没有数字键盘。许多没有专用小键盘的笔记本电脑都可以通过 访问小键盘Fn,但这款笔记本电脑不行。当我运行xev并尝试使用传统Fn组合(例如,Fn+ Jfor 1)时,它看不到任何事件。而且标签上甚至没有数字。

AFAIU,我无法使用该Fn密钥创建任何快捷方式,因为Fn它没有传递给操作系统。但理论上我可以使用Alt_L+Super_L代替。问题是如何正确地做到这一点。我更愿意在比键盘布局更低的级别上进行操作,以便与所有虚拟机(甚至非 Linux 虚拟机)良好配合。

环境:Qubes操作系统。主机部分基于Fedora。

我试过了:

  • 通过 Xfce 快捷键绑定 xdotool 命令。这会产生各种奇怪的结果:命令(xdotool 键 KP_1 和变体)通常可以正常工作,但在通过快捷方式调用时则不行。当通过快捷方式调用时,问题可能是当时按下了修饰键。我尝试过各种修改(--clearmodifiers,修饰键等),但没有一个能很好地工作。
  • 对自动键执行相同操作。我遇到了一些自动键冻结的情况。

非解决方案:

  • 使用外部数字键盘/键盘:虽然我的外部键盘上有一个数字键盘(某种程度),但我什至希望在内部键盘上也有一个数字键盘,例如在旅行时,并且使用外部键盘是不可能的或至少不舒服。
  • 使用数字行:在捷克语布局中,数字行主要用于重音字母。我使用的布局(Chack 的 extracs 变体)“数字行”中根本没有数字。
  • 购买不同的笔记本电脑:很难找到满足我的各种要求的笔记本电脑。

答案1

您可以尝试一下kbindkeysnumlockx以及稍微定制的键盘。

安装 xbindkeys 后,您必须运行它。它将告诉您如何创建基本配置。

然后你用xbindkeys -k它来识别密钥并修改配置文件(这一切都记录在默认配置文件中)。

最后,我建议你跑一下xbindkeys -v -n看看是否一切正常。如果是这样,您可以运行xbindkeys该会话,并可能将其添加到您的启动脚本中。

就我而言,Windows 键(右侧)进行绑定,我的~/.xbindkeysrc是:

"numlockx toggle"
    m:0x10 + c:134
    Mod2 + Multi_key

现在您可以添加映射。您将使用第五和第六级(numlock 和 shift+numlock)。

在 /usr/share/X11/xkb/symbols/cz 的顶部,紧接着:

default  partial alphanumeric_keys

添加这个片段:

xkb_symbols "with_numpad" {
    include "cz(basic)"

    key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
    key <AC07>  { [         j,          J,   apostrophe,     NoSymbol , 1, 1] };
    key <AC08>  { [         k,          K,      lstroke,     NoSymbol , 2, 2] };
    key <AC09>  { [         l,          L,      Lstroke,     NoSymbol , 3, 3] };
};

现在,当您按下window键(右)时,xkeybind将设置numlock,这反过来将使J、K、L等返回1、2、3。

最后一步,设置新键盘:

 setxkbmap cz with_numpad

答案2

我认为正确的方法是创建您自己的键盘布局。事实上,您必须为每个虚拟机和每个操作系统执行此操作,但您只需将其部署在模板虚拟机上。

制作它们实际上并不那么困难,取决于你的观点,甚至出奇地容易。对于Linux,你走在正确的道路上。对于 Windows 只需使用自动热键

(或者只是放弃当前的布局并尝试新2。它针对德语进行了优化,但总体布局非常出色,您可以在 Linux 上获得开箱即用的支持,并在 Windows 上获得相当不错的自动热键实现。我已经使用它很多年了。最大的缺点是布局太奇特了,你经常需要在程序中自定义快捷键才能使它们再次可用,例如 vim 中的 hjkl 完全搞砸了。)

相关内容