用键盘模拟鼠标单击


13

我想在键盘上做一个按钮,使其像单击鼠标一样,最好使用xmodmap。我该怎么做?

运行Ubuntu 10.10。


setxkbmap -option keypad:pointerkeys会做你想要的。然后是shift-numlock。
peterh-恢复莫妮卡

Answers:


6

以下步骤将帮助您将键盘键重新连接到鼠标按钮。

  1. 使用xev实用程序识别键盘键。

    运行xev实用程序并按键盘键进行重新连接,将输出如下内容

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    请注意将重新映射的键代码。

  2. 运行xkbset实用程序

    xkbset m

  3. 使用xmodmap实用程序重新映射。

    在以下情况下,菜单键重新映射到鼠标右键。

    xmodmap -e "keycode 135 = Pointer_Button3"


参见我的脚本superuser.com/questions/313926/…在Linux上使用鼠标按键的键。替代AHK?
Russo

4

我想您可以使用xmodmap和Pointer_Button1键映射完成此操作。

在文件/usr/include/X11/keysymdef.h中查找确切的拼写和大小写,但是应该可以将键盘键映射到鼠标按钮(1、2、3等),甚至双击(查看标头文件,第460行左右)

keysym W = Pointer_Button1

MIGHT起作用,导致W键充当鼠标左键。我建议您使用其他键,除非您不使用任何W,但是任何适合您的键都可以。(不,我不会自己尝试,我需要我的W!)

还可以查看xmodmap的手册页,当然也可以查看/usr/include/X11/keysymdef.h的内容,以获得正确的拼写。删除XK_前缀以使用xmodmap的keyym名称。

看起来像是我的Debian系统的x11-proto-core-dev包中的(keysymdef.h)...您可能想在线搜索该文件及其内容,怀疑是否要安装所有涉及到的-dev文件只要得到一个。GIYF。

我想着另一种方法来解决这个问题,但现在什么都没想到。

哦!根据您的需要,您可以研究“键盘鼠标仿真”,它将数字小键盘变成功能齐全的两键(无滚轮!)鼠标。


1
有关读者的信息,有关“键盘鼠标仿真”的信息,请访问:en.linuxreviews.org / ...启用此功能的组合键默认禁用,此功能从前开始已经被禁用,现在需要Option XkbOptions "keypad:pointerkeys"击键不是启用此功能的唯一方法:xkbset mcrunchbang.org/forums/viewtopic.php?id=27937执行此操作,可以控制讨厌的超时,也可以从cmdline中将其关闭。
imz-伊万·扎哈拉里舍夫(Ivan Zakharyaschev),2016年

3

内置的“键盘鼠标仿真”模式可以做到这一点,并且/但是具有用于模拟各种鼠标单击和按下(用于拖动)的预配置按键组合

(供参考:自从一段时间以来,已从默认键盘图中删除了启用此功能的组合键,现在需要使用Option XkbOptions "keypad:pointerkeys"。)

击键不是打开此模式的唯一方法:

xkbset m

按照http://crunchbang.org/forums/viewtopic.php?id=27937执行此操作,并且可以控制讨厌的超时,也可以从cmdline中将其关闭。要关闭讨厌的超时:

xkbset exp =m

因此,xkbset确实比使用钥匙更方便(仅是用于打开此模式的键),因为可以xkbset更好地控制首选超时等。

使用数字键盘。一些基本组合(更多信息请参见http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg

  • /*-是用于选择左,中或右按钮;
  • 5用于使用所选按钮单击;
  • 0.用于按下和释放所选按钮(用于拖动等)

关于始终启用“键盘鼠标仿真”的问题的说明

  1. 我无法始终启用“键盘鼠标仿真”。因此,我依靠特殊键(如中的keypad:pointerkeys)来执行此操作。

  2. 我发现Xfce在启动时也弄乱了这些设置,因此如果xkbset m在Xfce之前运行,则该设置无效。因此,我必须更改Xfce配置中的设置以匹配我的总体愿望,即:Xfce设置:可访问性:鼠标:启用仿真。(对我了解这种Xfce选项的存在的来源是:https ://bugzilla.xfce.org/show_bug.cgi?id =3860。)这似乎有所帮助。(我也用禁用了触摸板xinput float ...;这在Linux控制台之间切换时很混乱,但是至少可以通过在Xfce设置中禁用此设备来再次解决。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.