首页 > 系统相关 >启用/禁用触摸板的shell脚本

启用/禁用触摸板的shell脚本

时间:2023-12-22 21:23:49浏览次数:41  
标签:触摸板 shell 禁用 xinput dev id

在笔记本上使用xfce时,不能正确识别厂商设定的 fn 功能键,禁用触摸板的功能失效了。在 KDE 或其它“重量级”桌面环境中基本都能正确识别,而且可以设置在插入外接鼠标时禁用触摸板,但是 xfce 太简陋了,有些功能是缺失的。比较坑的是,它可以正确识别调节背光和音量的功能键,独独缺了禁用触摸板的快捷键支持。不得以,只好自己搞定了。

其实解决办法也很简单,xinput 实用程序可以轻易地控制触摸设备,唯一需要做的只是把它脚本化。

#!/bin/sh

dev_id=`xinput list | \
               grep 'Touch[pP]ad' | \
               sed -E 's/^.*id=([0-9]+).*$/\1/g'`

dev_state=`xinput --list-props $dev_id | \
                  grep 'Device Enabled' | \
                  sed -E 's/^.*:.*([01]).*$/\1/g'`

if [ $dev_state -eq 1 ]; then
    xinput disable $dev_id
elif [ $dev_state -eq 0 ]; then
    xinput enable $dev_id
fi

在 xfce 菜单中,依次点击 设置 -> 键盘 -> 应用程序快捷键 -> 添加

“命令”选择磁盘上保存的脚本(要赋予可执行权限)

接下来我把它绑定到 fn + f9 上面,刚好占用了原来的快捷键。功能完美恢复。

其实之前我是用 Python 实现的,主要是我不想去碰 shell 脚本。最近一段时间比较闲,逼己看了一些 shell 的语法,发现在调用外部程序上,正经的编程语言确实不如 shell 方便,随手就能用的管道和正则表达式。用正统的编程语言确实都能做,但是总要有些脚手架代码。我最反感Java的一点,就是在做正经事之前,先要写一大堆无意义的脚手架代码。

标签:触摸板,shell,禁用,xinput,dev,id
From: https://www.cnblogs.com/zh-geek/p/17922379.html

相关文章

  • Kali本地网络配置-配置sshd服务并使用xshell连接
    1.kalilinux的SSH服务配置,打开终端,输入以下命令,打开ssh的配置文件leafpad/etc/ssh/sshd_config#Leafpad是一个超简单的文本编辑器#/etc是用来存放系统主要的配置文件,例如人员的账号密码文件、各种服务的起始文件等。修改如下图位置左上角文件保存2.在终端中执行services......
  • Shell脚本
    Shell脚本:Shell脚本,按Shell的语法写出来的脚本,是Linux自带的脚本语言相当于Windows下的DOS批处理脚本 1.编辑一个文本文件,保存为hello.sh#!/bin/shecho"hello,world" shell脚本文件编写格式:    2.添加可执行权限......
  • CommunityToolkit.Mvvm 之 通过一个属性控制一个按钮是否禁用 及 按钮执行费时需任务
    要达到的目的:通过一个属性控制一个按钮是否禁用当按钮执行费时需任务时,按下禁用按钮,任务完成后自动解除禁用1. 属性定义1[ObservableProperty]2[NotifyCanExecuteChangedFor(nameof(SettingParamCommand))]//属性变化时通知对应的命令3privateboolallowOperator;2.......
  • 【Powershell】Powershell在远程计算机上执行指令
    开启并配置WinRM被远程机器执行前提:被远程的机器上开启可WinRM如果连接失败;则需要在被远程的机器上运行:Enable-PSRemoting-SkipNetworkProfileCheck-Force验证方法:WinRM处于Running状态防火墙rule处于Allow状态远程机器执行如果远程的计算机没有加入域(这里注意是执行远程指令的机......
  • powershell 作服务端 响应网络(socket tcp)连接 提供文件夹大小查询服务
    包含:端口占用检测心跳包网络断线检测传入的数据是否为合法有效的目录路径检测读取计算文件夹大小(不含软链接|symlink)传回查询到的文件夹大小[cmdletbinding()]Param($Port=8888)$VerbosePreference="Continue"#值或取`SilentlyContinue`,此时需调用脚本时传入`-Ve......
  • Hbase shell命令操作
    1.进入hbaseshell命令行[hdfs@hadoopm106~]$hbaseshellSLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/hdp/3.1.4.0-315/phoenix/phoenix-5.0.0.3.1.4.0-315-server.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:......
  • [C#] 禁用控制台关闭按钮
    禁用控制台关闭按钮internalclassProgram{[DllImport("user32.dll",EntryPoint="FindWindow")]externstaticIntPtrFindWindow(stringlpClassName,stringlpWindowName);[DllImport("user32.dll",E......
  • Shell下处理XML数据工具向导
    目录下载离线安装包安装源码包安装选项参考命令远程获取VmwareESXI机器的网络设备描述远程获取VmwareESXI机器的网络Mac地址参考网址下载离线安装包官方---DownloadPackage---libxml2安装#解析xml数据---xmllint工具--本地源yuminstalllibxml2-de......
  • The Missing Semester of Your CS Education----shell工具和脚本
    一.shell脚本1.$的关键字$0-脚本名$1到$9-脚本的参数。$1是第一个参数,依此类推。$@-所有参数$#-参数个数$?-前一个命令的返回值$$-当前脚本的进程识别码!!-完整的上一条命令,包括参数。常见应用:当你因为权限不足执行命令失败时,可以使用sudo!!再尝试一......
  • beanshell导入java文件
    beanshell导入java文件beanshell可以读取class格式的文件步骤:    a、添加BeanShell预处理程序    b、请求调用   beanshell可以读取java格式的文件步骤:    a、添加BeanShell预处理程序    b、请求调用  ......