首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在按键上运行程序,而不插入键事件。

在按键上运行程序,而不插入键事件。
EN

Unix & Linux用户
提问于 2015-05-09 07:55:53
回答 1查看 3.9K关注 0票数 7

是否有可能将(全局)键按绑定到某个命令,但仍然不中断键按的完成?我的意思是,如果我尝试绑定键解决方案张贴在这里的其他地方

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# In file: ~/.xbindkeysrc
# Bind key 'q' to running 'some_command'
"some_command"
  q

然后按'q‘键永远不会像它那样完成:例如,不要在终端上打印字符'q’。

使用xdotool发送“Q”键,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# In file: ~/.xbindkeysrc
# Bind key 'q' to running 'some_command'
"some_command && xdotool key q"
  q

循环中的结果,因为由xdotool执行的'q‘键按下将通过绑定执行另一个'some_command’。

更清楚一点的是,我希望按'q‘键像往常一样执行,另外执行一些外部命令。上面的解决方案将“q”键按下事件替换为执行某些外部命令。问题是,如果该外部命令也模拟'q‘键按下,那么绑定将重新启动外部命令,我将陷入无限循环。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-05-09 18:15:28

好的,所以我会发布一个我已经找到的解决方案,但是也许其他人有一个更好的解决方案。在给出这里的答案之后,我可以看到所有按下的键

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xinput test <keyboad_id>

在终点站。然后,这只是一个简单的情况,它将该命令的输出传输到一个程序中,该程序监视字符串,如“KeyRelease24”(在我的键盘上释放'q‘时的输出),然后当它与此字符串匹配时,它将执行您喜欢的任何操作。

例如,我们可以按下'q‘键并发出如下声音:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xinput test <keyboard_id> | while read in ; do
  [[ $in = "key press   24" ]] && aplay /usr/share/sounds/purple/alert.wav
done

显然,我们也可以观察其他输入,如果需要的话可以运行其他的输入。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/202436

复制
相关文章
如何在系统中添加字体(添加字体到系统)
笔者最近在使用win10自带的OneNote笔记本记笔记的时候,发现笔者电脑中没有华文新魏这个字体,最开始以为是OneNote不带有这个字体,经过一段时间的收集资料后发现,是笔者电脑win10系统中不带有这个字体,现将有关概念和字体安装方法做一下记录。
全栈程序员站长
2022/08/01
4K0
如何在系统中添加字体(添加字体到系统)
winfrom如何在listview中添加控件
private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewItem[] lvs = new ListViewItem[3]; lvs[0] = new ListViewItem(new string[] { "行1列1", "行1列2", "" }); l
码农阿宇
2018/04/18
2.6K0
如何在Hue中添加Spark Notebook
CDH集群中可以使用Hue访问Hive、Impala、HBase、Solr等,在Hue3.8版本后也提供了Notebook组件(支持R、Scala及python语言),但在CDH中Hue默认是没有启用Spark的Notebook,使用Notebook运行Spark代码则依赖Livy服务。在前面Fayson也介绍了《Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs》、《如何编译Livy并在非Kerberos环境的CDH集群中安装》、《如何通过Livy的RESTful API接口向非Kerberos环境的CDH集群提交作业》、《如何在Kerberos环境的CDH集群部署Livy》、《如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业》、《如何打包Livy和Zeppelin的Parcel包》和《如何在CM中使用Parcel包部署Livy及验证》,本篇文章Fayson主要介绍如何在Hue中添加Notebook组件并集成Spark。
Fayson
2018/11/16
6.8K1
7.如何在OpenLDAP中实现将一个用户添加到多个组
在前面的文章Fayson讲了《1.如何在CentOS6.5安装OpenLDAP并配置客户端》、《2.OpenLDAP集成SSH登录并使用SSSD同步用户》、《3.如何实现OpenLDAP的主主同步》、《4. 如何为Hive配置OpenLDAP认证》、《5.如何为Impala配置OpenLDAP认证》以及《6.如何为Hue配置OpenLDAP认证》。本篇文章主要介绍如何在OpenLDAP中将一个用户添加到多个组中。
Fayson
2018/03/29
4.8K0
如何在 wxPython 中创建多个工具栏
作为C++库wxWidgets的包装器,wxPython允许Python开发人员利用这个成熟且经过实战测试的框架的强大功能。它具有各种平台的本机外观和感觉,包括Windows,macOS和Linux。使用 wxPython,您可以使用各种小部件(例如按钮、文本控件,当然还有工具栏)设计具有视觉吸引力且响应迅速的桌面应用程序。
很酷的站长
2023/08/11
3100
如何在 wxPython 中创建多个工具栏
如何在Ansible中复制多个文件和目录
Ansible 通过 copy 和 fetch 模块提供了基本的复制文件和目录的功能.
东风微鸣
2022/04/21
17.4K2
如何在Ansible中复制多个文件和目录
如何在ModelSim中添加Xilinx仿真库
今天给大侠带来在FPGA设计应用中如何在ModelSim中添加Xilinx仿真库,话不多说,上货。
FPGA技术江湖
2020/12/30
5.3K1
如何在Vue中动态添加类名
能够向组件添加动态类名是非常强大的功能。它使我们可以更轻松地编写自定义主题,根据组件的状态添加类,还可以编写依赖于样式的组件的不同变体。
前端小智@大迁世界
2020/05/12
6.2K0
如何在README.md文件中添加图片
1、在github上的仓库建立一个存放图片的文件夹,文件夹名字随意。如:img-folder
挥刀北上
2021/03/10
6.1K0
如何在README.md文件中添加图片
条码软件中如何在边框上添加文字
很多用户在使用条码标签软件设计制作标签时,会有自己的一些个性化的需要,虽然条码软件不能和作图软件相比,但是很多效果还是可以通过一些小技巧来实现的。比如下面要给大家介绍的把文字压在边框上的效果。如下图所示。
神奇像素科技
2022/03/01
2.7K0
条码软件中如何在边框上添加文字
如何在 TypeScript 中为对象动态添加属性?
在 TypeScript 中,我们经常需要在运行时动态添加属性到对象上。这是因为 TypeScript 是一种静态类型语言,类型系统在编译时会检查代码的类型安全性,所以在编译时我们无法确定对象上将要添加哪些属性。在本文中,我们将讨论如何在 TypeScript 中为对象动态添加属性,以及这样做的一些注意事项。
网络技术联盟站
2023/06/07
11.8K0
如何在Eclipse中添加Tomcat的jar包
右键项目工程,点击Java Build Path 点击Add Library,选择Server Runtime 选择Tomcat版本 此时就看到拥有了Tomcat的jar包了
用户1154259
2018/01/17
2.8K0
如何在Eclipse中添加Tomcat的jar包
如何在WordPress中添加图片放大预览效果
这里分享一个如何在Wordpress中开启点击图片预览的功能。操作也非常的简单,只需要把下面的内容黏贴到对应的文件中即可。实际的效果预览
兔云小新LM
2023/09/11
3850
如何在WordPress中添加图片放大预览效果
gRPC: 如何在 gRPC 服务中自动添加 RequestId?
本文将介绍如何在 gRPC 微服务中,为每一个 API 自动添加 RequestId 。
尹东勋
2021/10/17
2.6K0
gRPC: 如何在 gRPC 服务中自动添加 RequestId?
在CentOS(Linux)中添加单个IP和批量添加多个IP地方法
在/etc/sysconfig/network- s/中新建文件ifcfg-eth0:*,*为数字序号,多个IP则依次增大 以0为例,建立文件ifcfg-eth0:0
雾海梦曦
2022/11/14
3.7K0
在CentOS(Linux)中添加单个IP和批量添加多个IP地方法
1、普通方法: 在/etc/sysconfig/network- s/中新建文件ifcfg-eth0-range0
Inkedus
2020/04/16
4.6K0
如何在前端应用中合并多个 Excel 工作簿
SpreadJS是纯前端的电子表格控件,可以轻松加载 Excel 工作簿中的数据并将它们呈现在前端浏览器应用的网页上。
葡萄城控件
2023/10/11
2930
如何在前端应用中合并多个 Excel 工作簿
点击加载更多

相似问题

Excel:创建新行并进行内插

27

插入缺失数据的行并进行内插

30

AngularJS将数组内插到字符串内指令

10

Rails -将变量传递给字符串内插

34

内插内插字符串中的格式字符串

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文