如何让 Nautilus 默认打开一个额外的面板?

如何让 Nautilus 默认打开一个额外的面板?

我想知道如何在文件管理器中默认添加一个额外的窗格(按 F3)。

目前,我添加了额外的窗格,当我关闭文件管理器时,我必须再次添加它。

这是一种捷径,但当我拥有它时我会感觉更有效率,而且我不会想着系统地添加它。

答案1

对于 12.04 / 12.10

我将使用vim编辑器,但如果您不知道,请随意用vimnano简易终端编辑器)或gedit(gui 编辑器)替换。

安装 xdotool
您可以xdotool通过软件中心安装:工具安装 xdotool

或通过

sudo apt-get update && sudo apt-get install xdotool

创建自定义脚本来启动 nautilus
创建包含以下内容的脚本

#!/bin/bash
nautilus $1 && sleep 0.5 ; xdotool key --clearmodifiers F3

并将其保存在某个地方,假设我们将其保存为~/scripts/nautilus.bash

使用 使脚本可执行chmod +x ~/scripts/nautilus.bash。现在测试脚本,输入scripts/nautilus.bash应该会打开 nautilus,一瞬间之后你就会看到额外的窗格。

修改桌面文件
应用程序的桌面文件决定了您的应用程序在 Unity 启动器和仪表板中的显示方式,以及单击它时会发生什么。

您可以使用locate来查找其位置

locate nautilus.desktop

这将返回

/usr/share/applications/nautilus.desktop

现在,为了确保不会发生任何不好的事情,让我们备份一下:

sudo cp /usr/share/applications/nautilus.desktop /usr/share/applications/nautilus.desktop.bak

现在我们可以安全地编辑它(如果您不知道,请记住使用gedit或):nanovim

sudo vim /usr/share/applications/nautilus.desktop

现在你会看到以下内容(我删除了中间的一些内容)

[Desktop Entry]
Name=Files
Comment=Access and organize files
Exec=nautilus %U
...

[Desktop Action Window]
Name=Open a New Window
Exec=nautilus
OnlyShowIn=Unity;

我们感兴趣的是这些Exec=行,它们决定了我们点击应用程序时会发生什么。我们需要更改这两条行(下面的一行[Desktop Action Window]是 Unity quicklist 中的条目)。

现在用脚本的位置替换行nautilus中的代码,在我的情况下(顶部的代码应该保留)。现在保存并退出。Exec=/home/gerhard/scripts/nautilus.bash%U

测试一下
如果您将 nautilus 锁定到启动器,它将会消失,在 Dash 中搜索“文件”并单击它应该会打开 nautilus 并使用额外的窗格!


笔记
sleep如果它只是有时起作用(或者根本不起作用),也许可以通过增加脚本中 该函数的值来增加执行按键之前等待的时间。

答案2

跑步:

nautilus && sleep 0.5 ; xdotool key --clearmodifiers F3

您必须xdotool先安装。

答案3

我发现我需要更详细地使用 xdotool。在此过程中,我决定使用一个脚本,该脚本为新面板提供可选的第二个目录参数,可能会很有用:

if  [ ! -d "$1" ];  then
 echo "parameter 1 not a directory"
 exit 1
fi 

theSubDir=${1##/*/}   #Deletes /*/ from front of $1, giving nautilus window title
file_browser_id=$(xdotool search --name "$theSubDir" | head -1)

if [ -n  "$file_browser_id" ]; then     # nautilus already open in directory
 exit 
fi 

nautilus "$1"
sleep 0.5
file_browser_id=$(xdotool search --name "$theSubDir" | head -1)

if [ -z  "$file_browser_id" ]; then
  echo no nautilus
  exit 
fi 

xdotool search --name "$theSubDir" windowactivate --sync key --window 0 F3

if [ $# -gt 1 ];  then 

 if  [ ! -d "$2" ];  then
  echo "source parameter not a directory"
  exit 1
 fi 

 xdotool search --name "$theSubDir" windowactivate --sync \ 
   key --window 0 --clearmodifiers Ctrl+l # location bar to path
 xdotool search --name "$theSubDir" windowactivate --sync type "$2" 
 xdotool search --name "$theSubDir" windowactivate --sync \
   key --window 0 --clearmodifiers Ctrl+l Return 
fi

相关内容