使用键盘模拟鼠标点击

使用键盘模拟鼠标点击

我想让键盘上的按钮像鼠标单击一样工作,最好使用 xmodmap。我该怎么做?

运行 Ubuntu 10.10。

答案1

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

  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"
    

答案2

我想您可以使用 xmodmap 和 Pointer_Button1 键映射来实现这一点。

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

keysym W = Pointer_Button1

可能会起作用,使 W 键充当鼠标左键。我建议使用其他键,除非您不使用任何 W 键,但只要适合您即可。(不,我不会亲自尝试,我需要我的 W 键!)

另外,请查看 xmodmap 的手册页,当然还有 /usr/include/X11/keysymdef.h 的内容,以确保拼写正确。删除 XK_ 前缀以使用 xmodmap 的 keysym 名称。

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

我脑子里一直想着用另一种方法来实现这一点,但现在却想不出任何办法。

哦!根据您的需要,您可以研究键盘鼠标模拟,将数字键盘变成功能齐全的双键(无滚轮!)鼠标。

答案3

内置的“键盘鼠标模拟”模式可以做到这一点,但预配置的组合键用于模拟各种鼠标点击和按下(用于拖动)。

(仅供参考:打开此功能的组合键是从默认键盘映射中删除从前一段时间开始,现在需要Option XkbOptions "keypad:pointerkeys"。)

按下按键并不是打开此模式的唯一方法:

xkbset m

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

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 设置中禁用此设备来再次解决问题。)

相关内容