Ubuntu16.04自定义触控板实现多指手势控制

转Ubuntu系统后以后终于领会到两个系统间触控板控制的差距,在Windows中可以使用二指、三指和四指完成页面滚动、页面放大缩小、程序间的切换等一些基本操作,但是在Ubuntu中只能通过两指完成页面滚动功能。

1 基本快捷键查看与修改

在Ubuntu系统中长按Win(super)键可以查看一些Ubuntu的快捷键,在系统的setting - keyboard选项下面可以查看和设置这些快捷键,在命令行终端的edit -preference选项下面也可以设置命令行终端的一些快捷键。

2 自定义触控板手势

fusuma是一个实现多指控制器的包,能够识别手指在触控板上的扫动动作(swipe)和捏动作(pinch)。

2.1 给当前用户访问触控板的权限

$ sudo gpasswd -a $USER input

也可以用命令

$ sudo usermod -a -G input $USER

在执行这一步后需要重新登录账户。

2.2 安装fusuma包和相关依赖包

$ sudo apt-get install libinput-tools 
$ sudo gem install fusuma
$ sudo apt-get install xdotool

2.3 确保触控板的info传输到GNOME桌面环境

$ gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled

2.4 配置自定义手势

这里在.config下面新建fusuma文件夹并在其中添加YML配置文件。

$ mkdir -p ~/.config/fusuma
$ gedit ~/.config/fusuma/config.yml

Github上面提供了centos的自定义手势,但是不能在Ubuntu上面使用,这里我根据自己的需求设置了Ubuntu的自定义手势。

二指:上下左右:页面滑动  拉近拉远:放大缩小

三指:上:显示所有运行的窗口 下:显示桌面 左:返回到前一个界面 右:前进到下一个界面(浏览器中适用)

四指:上:显示搜索窗口 下:暂且设置为返回桌面 左右:选择文件夹中的文件

需要说明的是,这里的threshold表示键盘检测的敏感度,interval表示程序检测连续两次键盘手势的时间间隔,default值均为1,但是我想要更好的检测效果,将两个参数都设置成比较小的值。

swipe:
  3: 
    left: 
      command: 'xdotool key alt+Left'
    right: 
      command: 'xdotool key alt+Right'
    up:
      command: 'xdotool key super+W'
    down: 
      command: 'xdotool key ctrl+super+d'
  4:
    left: 
      command: 'xdotool key super+Left'
    right: 
      command: 'xdotool key super+Right'
    up: 
      command: 'xdotool key super+a'
    down: 
      command: 'xdotool key ctrl+super+d'
pinch:
  2:
    in:
      command: 'xdotool key ctrl+plus'
      threshold: 0.1
    out:
      command: 'xdotool key ctrl+minus'
      threshold: 0.1

threshold:
  swipe: 0.1
  pinch: 0.1

interval:
  swipe: 0,1
  pinch: 0.1

2.5 运行fusuma

通过命令

$ fusuma

运行fusuma,,fusuma会调用配置的YML配置文件。

如果需要升级为最新的版本,通过下面的命令实现。

$ sudo gem update fusuma

 2.6 配置fusuma开机自启动

1.查看fusuma的系统位置

$ which fusuma

2.进行GNOME桌面启动配置

$ gnome-session-properties

 3.添加fusuma和fusuma的路径,并在路径的末尾加上 -d 表示在后台运行(daemonize process),然后重启Ubuntu即可自启动fusuma实现手势控制。

 

——————————————————

快捷键冲突:我在命令行终端中将复制(ctrl+shift+c)和粘贴(ctrl+shift+v)分别修改为ctrl+c和ctrl+v,保存后发现这两个键是生效的,但是结束当前进程的快捷键(ctrl+c)失效了,变为了ctrl+shift+c,发生了快捷键的冲突。由于复制键用的比较少,粘贴键用的比较多,最后只将粘贴更改为ctrl+v,保留了复制(ctrl+shift+c)和结束进程(ctrl+c)的设置。

YML文件配置:在很多大同小异的教程中都看到了下面这段配置格式,其实这个格式在fusuma V1.0后就被移除了,需要更改为 command: 'xdotool key alt+Left'这个格式。

swipe:
  3: 
    left: 
       shortcut: 'alt+Left'

 

你可能感兴趣的:(Linux)