Ubuntu添加"打开终端"的右键菜单

如果你的Ubuntu桌面是KDE,那么默认其右键会有打开终端的菜单项,同时打开的终端自动转到当前的路径下,而如果你是Gnome桌面,那么默认是没有这个功能的,这个就有点令人恼火,首先你要打开gnome-terminal,然后再一步步cd到当前路径下,工作起来太影响效率了。

这里介绍如何为Gnome的右键菜单中添加“gnome-terminal”菜单项,其实现步骤如下:

~/.gnome2/nautilus-scripts目录下添加名为“gnome-ternimal”的脚本文件,其内容为

#!/bin/bash

if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
    set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
    if [ $# -eq 1 ]; then
        destination="$1"
        # Go to file's directory if it's a file
        if [ ! -d "$destination" ]; then
            destination="`dirname "$destination"`"
        fi
    else
        zenity --error --title="Error - Open terminal here" \
                --text="You can only select one directory."
        exit 1
    fi
else
    destination= \
       "`echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed 's/^file:\/\///'`"
fi

# It's only possible to go to local directories
if [ -n "`echo "$destination" | grep '^[a-zA-Z0-9]\+:'`" ]; then
    zenity --error --title="Error - Open terminal here" \ 
        --text="Only local directories can be used."
    exit 1
fi

cd "$destination"
exec x-terminal-emulator

保存后,用chmod命令为这个bash脚本添加可执行属性。

这样我们的目的就达到了,你右键就会发现菜单中多了“Scripts”选项,其下一级子菜单就有“gnome-ternimal”选项,点击就会打开一个终端,而且路径已经转到了当前路径。

如果你想知道为什么以上的做法可行,或者想读懂上面的bash脚本,而不是任由我蛊惑,呵呵,那我很欣赏你,下面有一段相关说明会帮助你理解上面的做法。

~/.gnome2/nautilus-scripts/目录下的所有可执行文件都会出现在右键菜单的“Scripts”选项下,其子选项的名字就是可执行文件的名字,选择一个,那么该目录下相应的可执行文件就会执行。当从一个本地文件夹中右键点击菜单时,被选中的文件名会作为参数传递给可执行文件,而如果是在一个远程的文件夹中右键,比如web目录,ftp目录,那么不会传递任何参数给可执行脚本。

任何情况下,Nautilus都将设置下面一些环境变量,它们将被可执行脚本所用:

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: newline-delimited paths for selected files (only if local)
NAUTILUS_SCRIPT_SELECTED_URIS: newline-delimited URIs for selected files
NAUTILUS_SCRIPT_CURRENT_URI: URI for current location
NAUTILUS_SCRIPT_WINDOW_GEOMETRY: position and size of current window
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS: newline-delimited paths for selected files in the inactive pane of a split-view window (only if local)
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_URIS: newline-delimited URIs for selected files in the inactive pane of a split-view window
NAUTILUS_SCRIPT_NEXT_PANE_CURRENT_URI: URI for current location in the inactive pane of a split-view window

所以,上面我们所添加的脚本做的事情很简单,只是获取了当前的路径,然后在打开终端前先cd过去,如此而已。

发表于 2010年10月21日 02:09   评论:0   阅读:4559  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo