IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> logiops安装以及在ubuntu中使用logiops为罗技鼠标自定义按键和手势 -> 正文阅读

[系统运维]logiops安装以及在ubuntu中使用logiops为罗技鼠标自定义按键和手势

信息:
ubuntu20.04
编译之后安装的logid版本:v0.2.2-70-gdbe2b28

安装

参考官网教程:https://github.com/PixlOne/logiops

cmake ..阶段,报错:

CMake Error at CMakeLists.txt:5 (project):
  No CMAKE_CXX_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "/home/noblaker/git/logiops/build/CMakeFiles/CMakeOutput.log".
See also "/home/noblaker/git/logiops/build/CMakeFiles/CMakeError.log".

找不到CMAKE_CXX_COMPILER,之后查了一下才发现,竟然还没安装g++。。。
CXX就是g++编译器的路径。

说明缺少g++编译器。之后安装build-essential依赖:
sudo apt install build-essential 之后就OK了

配置

我使用的是罗技m720,所以配置文件也是针对m720的,不过本文可能对其他型号鼠标的配置也有帮助

如何确定按键对应的cid

首先,m720有6个自定义按键:
在这里插入图片描述

官方配置文件说明(很具体):https://github.com/PixlOne/logiops/wiki/Configuration

首先要弄明白wiki中对于cid部分的介绍,部分如下:
在这里插入图片描述

比如其中的left scrollright scroll,对应的按键就是滚轮分别向左右滚动,所以设置这两个按键时,分别对应的cid为05b和05d。其他的按键类似,都可以根据介绍的按键功能来找到对应的cid。

配置按键对应的动作

官方提供的有一个示例:https://github.com/PixlOne/logiops/blob/master/logid.example.cfg
不过这个很简洁,但是我们再配合官方介绍配置信息的wiki,就能很快弄懂如何配置了。

我使用的配置部分如下,便于后续介绍:

name: "M720 Triathlon Multi-Device Mouse";
    buttons: (
        {
            cid: 0x56;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_C"]; # 侧面的两个键用于复制粘贴
            };
        },
        {
            cid: 0x53;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_V"];
            };
        },
......

首先,每个按键的action有两种类型:KeypressGestures
Keypress类型的action意思就是按下此按键之后的动作,所以配置很简单;
Gestures类型的action还需要继续定义五种子动作:Up, Down, Left, Right, 和 None(None意思就是按住此按键之后不动的动作,其余都是按住此按键之后再向特定方向移动对应的动作)

keys那里配置按键动作即可。
如果不清楚自己要用的按键的名字或代码,可以看linux官方对于按键的定义:https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h

可以是一个,也可以是多个KEY的组合,效果就是这几个KEY一起按。

Gestures类型的其实也很容易配置,只要上面已经搞懂了的话。
列出部分,便于理解:

{
    direction:"Left";
    mode="OnRelease";
    action=
    {
        type:"Keypress";
        keys:["KEY_LEFTCTRL","KEY_LEFTALT", "KEY_UP"];
    }
},
{
    direction:"Right";
    mode="OnRelease";
    action=
    {
        type:"Keypress";
        keys:["KEY_LEFTCTRL","KEY_LEFTALT", "KEY_DOWN"];
    }
},

我这里定义的这两个方向作用就是切换桌面。其他更多信息就见上面那个官方提供的配置说明即可。

windows键比较难找,经过自己查阅以及实践,是正确的:
windows键:KEY_LEFTMETA或者KEY_RIGHTMETA(linux对于windows键定义为meta)

自己使用的m720的配置信息如下:

devices: (
{
    name: "M720 Triathlon Multi-Device Mouse";
    buttons: (
        {
            cid: 0x56;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_C"]; # 侧面的两个键用于复制粘贴
            };
        },
        {
            cid: 0x53;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_V"];
            };
        },
        {
            cid: 0x5b;
            action =
            {
                type: "Keypress";
                keys:["KEY_LEFTALT","KEY_LEFT"]; # 页面前进 or 后退
            };
        },
        {
            cid: 0x5d;
            action =
            {
                type: "Keypress";
                keys:["KEY_LEFTALT","KEY_RIGHT"];
            };
        },
        {
            cid: 0xd0;
            action =
            {
                type: "Gestures";
                gestures:(
                {
                    direction:"Up";
                    mode="OnInterval";
                    interval=75;
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTALT", "KEY_F2"]; # 运行命令
                    }
                },
                {
                    direction:"Down";
                    mode="OnInterval";
                    interval=75;
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTMETA", "KEY_D"]; # 显示桌面
                    }
                },
                {
                    direction:"Left";
                    mode="OnRelease";
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTCTRL","KEY_LEFTALT", "KEY_UP"]; # 切换桌面
                    }
                },
                {
                    direction:"Right";
                    mode="OnRelease";
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTCTRL","KEY_LEFTALT", "KEY_DOWN"];
                    }
                },
                {
                    direction:"None";
                    mode="OnRelease";
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTMETA"];
                    }
                }
                )
            };
        }

    );
    hiresscroll:
    {
        hires: true;
        invert: false;
        target: false;
    };
}
);

另外发现

使用中鼠标自定义的按键跟键盘一起按也是可以的,就是自定义按键与实际键盘按键一起用的效果。
比如,上面定义的一个侧键为:ctrl + C,但是在终端里,复制粘贴需要ctrl + shift + c / v,所以按住shift键的同时,再按鼠标侧键就能在终端里复制粘贴了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:19:35  更:2022-04-22 19:19:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:01:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码