嵌入式开发linux控制鼠标,嵌入式系统/ARM技术中的linux中如何使用微软鼠标的第4、5键...

2023-11-19

虽说使用linux的人大都对微软没什么好感,但不能否认微软确实也出了不少好东西呀,比如微软鼠标(IE系列) icon_smile.gif IE 2.0和以上版本都有5个按钮,除了正常的左中右外,两侧还各有一个,在windows中可用来支持浏览器的前进/后退功能很是方便。其实在linux中稍加配置也能完成同样的功能,为什么不呢?

(一)先解释一下linux中对鼠标按钮和滚轮的处理。

在linux中,滚轮被当作两个按钮来处理,向上滚是一个,向下滚是另一个。所以以IE2.0为例,一共有7个按钮:左中右三个,两侧各一个,加上滚轮两个。

(二)修改X配置

首先我们考虑你的机器只有一个鼠标的情况,因为我的实验是在IBM笔记本上进行的,微软鼠标是我的第二个鼠标(别忘了,笔记本自己还有一个呢),这种多于一个的情况有些复杂,稍后再叙述。

需要修改的配置文件 /etc/X11/XF86Config,或者 /etc/X11/XF86Config-4,如果两个都有就改第二个。

找到关于鼠标的一段,一般是下面这样的。

代码:

Section "InputDevice"

Identifier "Mouse0"

Driver "mouse"

Option "Device" "/dev/mouse"

Option "Protocol" "IMPS/2"

Option "Emulate3Buttons" "no"

Option "ZAxisMapping" "4 5"

Option "Buttons" "5"

EndSection

其中 Identifier 和 "Device"字段各人的机器会不一样,我们也不用管它。我们需要修改的是其他字段,修改后的配置如下:

代码:

Section "InputDevice"

Identifier "Mouse0"

Driver "mouse"

Option "Device" "/dev/mouse"

Option "Protocol" "ExplorerPS/2"

Option "Emulate3Buttons" "no"

Option "ZAxisMapping" "6 7"

Option "Buttons" "7"

EndSection

说明:

Option "Device" 字段说明鼠标的类型,这里改成微软鼠标的类型,如果是其它型号的鼠标,比如逻技,只要型号代码填写正确也应可行。至于普通的5键鼠标,用IMPS/2行不行,我没试过;

Option "Buttons" 字段说明鼠标的按钮个数,计算方法前面说过了;

Option "ZAxisMapping" 字段说明将滚轮映射成哪两个按键,这里也是比较有意的地方,无论你的鼠标有几个按钮,正常的情况应该是 "4 5"。可是X只能认识最后的两个按钮为鼠标,所以必须改成"6 7",而造成的后果就是:左右两侧的按钮成了滚轮,滚轮成了两侧的按钮,不过不要害怕,下面自有办法解决icon_smile.gif

(三)重新启动X

配置修改好了,重新启动X,看看我们的成果。在命令行下输入 xev 进行测试。

把鼠标移到那个小窗口中,分别按鼠标的各个按钮和上下滚动滚轮,窗口中应该出现button 1,button 2, ... button 7的字样。(注意:按下去时没有,必须释放才有,这是鼠标的工作原理,呵呵)

如果你能看到button 1 ... button 7,恭喜即将大功告成了。

现在我们还要解决滚轮和两侧按钮倒置的问题。在命令行中输入

代码:

xmodmap -e "pointer = 1 2 3 6 7 4 5"

将倒置的按钮顺序重新“正”过来!至此所有的设置完成,找个支持4、5键的流览器来看看,比如 Firefox 。

怎么样,在linux下面,你也能方便的“前进”,“后退”了吧。

下面再谈谈其它的问题。

(一)由于每次启动X后都需要手工执行xmodmap -e "pointer = 1 2 3 6 7 4 5",怎么才能自动执行呢?

这个本不属于本文讨论的范围,可考虑到使用的方便还是,我还是来写一点吧。

由于这个命令必须在每次启动X后执行,将它写在.bashrc等文件中是没有用的。有的系统.xinitrc或者.xsession也不行。似乎问题很复杂,不同的linux发型版本和桌面系统都不一样。

我以RedHat为例来说一下。

如果你使用Gnome,这么做:在自己的目录下建一个可执行脚本,比如叫mouse.sh

代码:

#!/usr/bin/bash

xmodmap -e "pointer = 1 2 3 6 7 4 5"

保存后别忘了chmod +x mouse.sh

进入gnome,在设置-〉其它设置 中找到session,把mouse.sh加到启动程序中即可。

如果你使用KDE,在自己的目录下建一个.kdestart文件,同样写上

代码:

#!/usr/bin/bash

xmodmap -e "pointer = 1 2 3 6 7 4 5"

即可。

(二)如何在多于一个鼠标的系统上(比如IBM笔记本)正确配置呢?

配置其实是一样的,可问题在于xmodmap似乎只支持CorePointer,即第一个鼠标,这样默认的配置,你的微软鼠标滚轮是左右两侧键,“正”不过来了。

我的解决办法是人工的禁止笔记本上自带的那个鼠标,(不知道将USB鼠标设置成CorePointer行不行,我没试过,嘿嘿)。

来源:轻舞寻梦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式开发linux控制鼠标,嵌入式系统/ARM技术中的linux中如何使用微软鼠标的第4、5键... 的相关文章

  • 大数据毕设项目 大数据旅游数据分析可视化系统 - python

    文章目录 0 前言 1 课题背景 2 数据处理 3 数据可视化工具 3 1 django框架介绍 3 2 ECharts 4 Django使用echarts进行可视化展示 mysql数据库 4 1 修改setting py连接mysql数据
  • PPT 生成整数序列字典序的r-组合算法

    生成整数序列字典序的r 组合算法 一 PPT效果展示 二 问题 2 1 简述 2 2 算法简述 2 3 例子 三 PPT实现 一 PPT效果展示 二 问题 2 1 简述 给定一个整数序列 1 2 3 n 输出其所有字典序的r 组合 注意事项
  • C# 参数按照ASCII码从小到大排序MD5加密

    region 1 获取参数GetSignParamSrc
  • c++汉诺塔蓝桥杯

    总时间限制 10000ms 单个测试点时间限制 1000ms 内存限制 262144kB 描述 小蓝很喜欢玩汉诺塔游戏 游戏中有三根柱子 开始时第一根柱子上有 n 个圆盘 从上到下圆盘的大小依次为 1 到 n 每次 可以将一个盘子从一根柱子
  • 网页引用Font Awesome图标

    方法一 demo html
  • 第二天:Struts2入门

    第一个Struts2入门案例 Struts2的下载与安装 源码下载地址 http struts apache org download cgi 源码目录结构说明 apps 框架本身提供一些案例 学习 docs 框架本身提供的文档 指南和AP
  • angular:ng build默认文件带hash值,可以防止cdn缓存导致用户文件不能刷新

    问题 如题 说明 cdn缓存了文件 如果是同一个名称文件 如果不手动清除cdn缓存 则用户获取的是旧的 而不是新的 因此如果前端打包在文件加上hash 这样文件有变动 用户会获取新文件
  • 自动驾驶数据闭环,要么被高估了,要么被低估了?

    在和身边的人沟通自动驾驶的数据闭环时 会碰到两类典型的人 第一类 当你给他讲数据闭环的时候 他的眼神是迷茫的 好像没有引起太多的重视和共鸣 甚至有人会反馈 嗯 这个没什么 我们以前干的差不多 第二类 他会觉得数据闭环 能解决一切问题 而且
  • mysql 新版本出现group by 语句不兼容问题

    原文地址 http www cnblogs com anstoner p 6414440 html 注 文中的方式 我只是用了修改sql mode 的方法 其它的未尝试 全文如下 目录 1 具体出错提示 1 1 1 查看sql mode 1
  • Java Web快速开发(1)Java 项目构建

    文章目录 Java 项目构建 1 Java 版本发展 2 集成开发环境 3 Java发布形式 1 扩展参数说明 2 JVM 内存回收机制 3 Java 程序分析调测工具 4 Maven Java 项目构建 1 Java 版本发展 EJB E
  • 流媒体之推流和拉流

    推流 将直播内容推送至服务器的过程 拉流 为服务器已有直播内容 用指定地址进行拉取的过程 什么是推流 推流 指的是把采集阶段封包好的内容传输到服务器的过程 其实就是将现场的视频信号传到网络的过程 推流 对网络要求比较高 如果网络不稳定 直播
  • QPixmap的深拷贝和浅拷贝

    在最近的项目中用到了QPixmap 涉及多线程操作QPixmap对象 为了简单 比如在线程1中构造了一个QPixmap对象 传入线程2 这时调用的函数为operator const QPixmap pixmap 对于不了解QPixmap类的
  • 静态分析基础技术

    静态分析基础技术 原文链接 https hvnt3r top 2019 01 静态分析基础技术 知识点 我觉得安全圈的思路都是差不多的 跟渗透测试一样 对一个恶意软件的分析也需要前期的信息收集阶段来帮助我们对目标有一个大致的了解和认识 方便
  • 使用mui button提交ajax请求后台失败的原因

    在input内输入单号 人工点击按钮触发事件ajax请求后台 一切正常 但是 如果在input内输入完单号 用安卓或苹果手机的软键盘回车键事件调用ajax请求后台 就会有问题 原因如下 mui提供的按钮默认是放在
  • 华为机试题97-记负均正

    描述 首先输入要输入的整数个数n 然后输入n个整数 输出为n个整数中负数的个数 和所有正整数的平均值 结果保留一位小数 0即不是正整数 也不是负数 不计入计算 如果没有正数 则平均值为0 数据范围 1 n 2000 输入的整数都满足 val
  • 配置本地docker与镜像并上传到服务器使用

    1 在本地创建基础容器 官网 1 卸载旧版本 如果有 sudo apt get remove docker docker engine docker io containerd runc 2 设置Docker的存储库并从中安装 更新包索引并
  • SQL优化技巧

    本文以Mysql数据库为例 总结数据库优化方法 一 数据库优化四个层面 Mysql数据库优化 可以从以下四个层面优化 硬件 系统配置 数据库表结构 sql语句及索引 优化效果 SQL语句及索引 gt 数据库表结构 gt 系统配置 gt 硬件
  • CentOS8 同步时间chrony ntpdate已无法使用

    CentOS8 同步时间chrony ntpdate已无法使用 在CentOS8中 已使用chrony替代ntp 首先安装chrony 使用dnf安装 dnf install y chrony 也可以用yum安装 yum install y
  • Linux权限、用户组、用户

    前提 这里以Centos7为例 首先进入 目录 并输入 ls l cd ls l 分析 根据上图我们拿其中一条来说 drwxr xr x 14 root root 3440 Aug 14 07 31 dev 第一个字母 d 代表这个文件的含

随机推荐

  • 俄罗斯担忧开发者无法访问开源代码,为什么开源如此重要?

    俄乌冲突背景下 俄国媒体发文称 世界第一开源软件平台GitHub正在考虑限制俄罗斯软件开发者访问开源软件源代码储存库 此外 数据库巨头 Oracle 也宣布已经暂停了在俄罗斯的所有业务 这些消息迅速刷屏 原因之一便是现在的 IT 世界已离不
  • Win10环境下配置VScode远程开发ssh-remote(免密登录)

    问题背景 在开发或者做实验的过程中 我们经常会用到远程服务器或者Github的项目 而我服务器上的项目只能在Jupyter Notebook上编写 或许可以在其他IDE上写 但我不知道 而我们喜欢用的IDE比如Pycharm 轻量级的VSc
  • C语言之指针知识大总结

    文章目录 一 地址 二 指针与指针变量 三 指针的作用 四 初学指针时常见的错误 五 通过调用函数修改主调函数中的值 六 指针与一维数组 七 使用函数操作一维数组 八 指针变量所占字节数 九 静态数组的缺陷 十 malloc函数 十一 动态
  • ElasticSearch 6.3版本(ES)查询人名关键字不拆词查询

    ElasticSearch 6 3版本 ES 查询关键字不拆词查询 类似mysql 的 like 语句 mysql的sql语法类似如下 采用大量like和locate语法 进行模糊查询 导致查询一个需要8秒多 通过ES优化后 总的查询在1秒
  • postman中进行SHA1或MD5签名

    大部分接口为了防御重放攻击 往往使用SHA1或者MD5对请求进行签名 例如 我们有如下请求 Request URL http xx xx xx xx nonce 123 timestamp 123 Body xxx xxx signatur
  • ESP8266(果云科技的开发板源码)

    ESP8266 果云科技的开发板源码 TOC 最近调试果云科技的老板子ESP8266开发板 比较老了 调试串口输入很麻烦 因为API函数很麻烦 源码已上传 请下载 下面是代码 File uart c Copyright 2013 2016
  • jxls Excel表格导出( 模板导出多个sheet)

    使用模板来导出excel表格 1 使用jxls core jar包来实现 jxls core不支持POI4以上的版本 1 1 maven
  • 在微服务项目中,Spring Security 比 Shiro 强在哪?

    Spring Security 和Shiro的区别
  • LDAP协议

    1 LDAP是Lightweight Directory Access Protocol的缩写 顾名思义 它是指轻量级目录访问协议 这个主要是相对另一目录访问协议X 500而言的 LDAP略去了x 500中许多不太常用的功能 且以TCP I
  • 程序的链接

    程序的链接是一个非常实际的问题 他建立在很实际的问题之上 不从程序员的角度去思考问题 则是从软件的角度去思考如何复用错综复杂的代码 因为 这个问题的本质是我们没有给底层的硬件一个完整的可按顺序执行的程序 我们在前几章虽然讨论了指令流的问题
  • 【Node.js实战】一文带你开发博客项目之Koa2重构(实现session、开发路由、联调、日志)

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 也会涉及到服务端 个人状态 在校大学生一枚 已拿多个前端 offer 秋招 未来打算 为中国的工业软件事业效力n年 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 Vue3项目实
  • QT--SQLite

    QT数据库实例 QT Sqlite操作 转载于 http mobile 51cto com symbian 273444 htm 585532 tsina 1 51851 7e393678b940a4d55500bf3feae3d2e9 S
  • 时序分解

    时序分解 MATLAB实现基于LMD局部均值分解的信号分解分量可视化 目录 时序分解 MATLAB实现基于LMD局部均值分解的信号分解分量可视化 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 LMD局部均值分解 直接替换Exc
  • 思维模型:建立高品质思维的30种模型

    第一章 如何快速而全面地做出决策 思维模型1 关注 重要 任务 忽略 紧急 任务 用于区分真正的优先事项和冒牌货 重要任务和紧急任务区分开 把活动和需求分类 整理出最重要的任务 并找出为了实现这些重要任务需要采取哪些最关键的流程 重要任务
  • 游戏开发unity插件CRI ADX2系列:插件下载及教程

    推荐一个比较好的声音插件 可以在较大压缩音乐资源的同时维持较好的音质 教程 https blog criware cn category tutorials https www bilibili com video av56190616 C
  • 玩转Makefile

    1 前言 Makefile是一个神奇的东西 有了它只需一个make命令就可以让源文件按你的规则编译成你所想要的程序 非常简单 方便 对于Keil VS等IDE 一般只需点一下绿色的三角按钮 就可以完成编译 但具体内部是怎么实现编译的 改动文
  • 【Spark ML】第 1 章:机器学习简介

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 解决粒子特效被NGUI遮挡的问题。

    最近给UI添加粒子特效时 总是被UI遮挡 解决方法是 因为粒子系统的渲染顺序列默认为3000 而NGUI的渲染顺序默认也是从3000开始 当有嵌套的panel时或者Depth更高的panel时 GUI的渲染顺序会高于3000 解决办法是 1
  • ValueError: PyCapsule_GetPointer called with incorrect name

    ValueError PyCapsule GetPointer called with incorrect name解决问题的方式 增高pyqt5的版本 增高pyqt5的版本 我遇到了这个问题的时候在网上查的一直是说需要降低pyqt5的版本
  • 嵌入式开发linux控制鼠标,嵌入式系统/ARM技术中的linux中如何使用微软鼠标的第4、5键...

    虽说使用linux的人大都对微软没什么好感 但不能否认微软确实也出了不少好东西呀 比如微软鼠标 IE系列 icon smile gif IE 2 0和以上版本都有5个按钮 除了正常的左中右外 两侧还各有一个 在windows中可用来支持浏览