【分享】使用键盘快捷键在当前路径打开终端

sh/bash/dash/ksh/zsh等Shell脚本
回复
恒河沙数1
帖子: 295
注册时间: 2013-04-27 19:26
系统: ubuntu+win7

【分享】使用键盘快捷键在当前路径打开终端

#1

帖子 恒河沙数1 » 2016-03-07 14:12

很久以前,我发过一篇帖子,里面提到了我用一种奇葩的方式实现了这个功能 viewtopic.php?f=180&t=463347 ,但是,有很多限制,比如,当鼠标指针落在当前文件夹中的文件上的时候,就不能够起作用了,因为右键菜单中不存在E对应的选项了。
今天突发奇想,使用另一种方式制作了一个脚本,使用于任何聚焦的nautilus窗口,依然使用xdotools,还需要xclip。
脚本代码如下:

代码: 全选

#!/bin/bash

xclip_tmp=$(xclip -o)
xdotool key Ctrl+l
currnet_dir_path=$(xclip -o)
xdotool key Escape
gnome-terminal --working-directory=$currnet_dir_path
echo $xclip_tmp | xclip -i
这个脚本工作的逻辑是这样的,先把xclip中的缓存保存下来,然后模拟按下键盘上的快捷键ctrl+l,此时,nautilus会显示当前目录的完整路径,并且被全选中,因此这个路径就会在xclip的缓存中,之后按下escape键,这样关闭nautilus显示的路径条。然后打开gnome-terminal 工作路径设为从xclip中读出的路径,最后把之前xclip的缓存再写回去。

将这个脚本保存,添加可执行文件后,在系统的设置->键盘->快捷键->自定义快捷键中添加绑定按键即可,我绑定的是F4。
嘿嘿~

需要注意的是,该脚本似乎不能按照如下的方式书写:

代码: 全选

#!/bin/bash

xclip_tmp=$(xclip -o)
xdotool key Ctrl+l
xdotool key Escape
gnome-terminal --working-directory=$(xclip -o)
echo $xclip_tmp | xclip -i
我分析主要原因是xclip读取字符串需要时间,而在xdotool key Ctrl+l 与 xdotool key Escape这两步连续执行的时间间隔不够xclip读取整个路径(事实上,经过实验,只读取了路径的第一个字符‘/’)。
头像
lhw828
帖子: 2797
注册时间: 2007-03-15 16:58
来自: 湖北武汉
联系:

Re: 【分享】使用键盘快捷键在当前路径打开终端

#2

帖子 lhw828 » 2016-03-18 23:04

这个还不错。
回复