【已解决】我使用一种非常奇葩的方式创造快捷键~但是遇到一点小问题…

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

【已解决】我使用一种非常奇葩的方式创造快捷键~但是遇到一点小问题…

#1

帖子 恒河沙数1 » 2014-08-25 10:18

为了实现一些特别的快捷键功能,我使用了xdotool这个软件来完成。
这个软件能够模拟鼠标点击和键盘按键,我还没有完全弄清它的用法,不过我已经写了一些可以使用的脚本,例如,我已经安装了open-terminal-nautilus插件,想要在当前文件夹下打开得要在当前文件夹下点击右键,按下键盘上的E(因为右键菜单上有“在终端中打开(E)”)。所以这个脚本应该是这样:

代码: 全选

#/bin/bash
xdotool click 3   #鼠标右键是3,左键是1,中键是2,向上滚轮是4,向下滚轮是5
xdotool key E
保存为open-terminal-nautilus.sh,添加可执行权限后,双击运行即可在当前文件夹下新开一个终端,至此一切顺利,不过这不是我想要的,我想要的是一个快捷键!
于是我打开系统设置->键盘->快捷键->自定义快捷键
在命令里面填的是:bash /home/.../.../open-terminal-nautilus.sh
绑定的按键是Ctrl+U
但是当我回到文件夹下按Ctrl+U时,只出现了按下鼠标右键的效果。
请问各位大大,这是什么原因?要如何解决?

问题原因见5楼

-----------------------2016年3月7日更新---------------------------
更好更奇葩的方法在此 viewtopic.php?f=21&t=476365
上次由 恒河沙数1 在 2016-03-07 14:18,总共编辑 2 次。
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 我使用一种非常奇葩的方式创造快捷键~但是遇到一点小问题…

#2

帖子 恒河沙数1 » 2014-08-26 13:34

自顶一发!
头像
TeliuTe
论坛版主
帖子: 7675
注册时间: 2007-11-25 13:29
系统: 16/18/20/w7
来自: 新疆博乐
联系:

Re: 我使用一种非常奇葩的方式创造快捷键~但是遇到一点小问题…

#3

帖子 TeliuTe » 2014-08-26 14:46

试试把脚本放到系统路径文件夹里,或者脚本里添加切换到当前文件夹的命令
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 我使用一种非常奇葩的方式创造快捷键~但是遇到一点小问题…

#4

帖子 恒河沙数1 » 2014-08-27 0:01

TeliuTe 写了:试试把脚本放到系统路径文件夹里,或者脚本里添加切换到当前文件夹的命令
感谢你的热心回应,我都尝试了,好像都是只执行了第一步,即点击右键,然后就没有然后了~
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

Re: 我使用一种非常奇葩的方式创造快捷键~但是遇到一点小问题…

#5

帖子 恒河沙数1 » 2014-08-28 19:46

已经解决啦~~多谢cjxgm在他的博客中的提醒。
其实是个小问题,就在于当我按下Ctrl+U时,在脚本模拟按下E键的时候我的手指还没有离开Ctrl键,所以,那个脚本实现的时按下鼠标右键然后按下Crtl+E。这是导致失败的原因。
有两种解决办法:
1、修改脚本为

代码: 全选

#/bin/bash
xdotool click 3   #鼠标右键是3,左键是1,中键是2,向上滚轮是4,向下滚轮是5
sleep 0.5
xdotool key E
嘿嘿,这样有点……,因为必须要在0.5秒内放开Ctrl键~
2、将脚本关联的快捷键改为其他单键(我改为了F4)
回复