问题描述
目前,如果我单击启动器、快捷方式图标等,我将获得一个新的 Nautilus 窗口。如果已经打开了一个 Nautilus 窗口,我宁愿它在现有窗口的新选项卡中打开(就像我已经完成 Ctrl
+ T
并浏览到新位置一样)。我怎样才能做到这一点?
最佳方法
我为此编写了一个 bash 脚本和一个启动器。
-
首先,创建文件:
mkdir ~/bin && gedit ~/bin/nautilus-ctrl-t.sh
-
然后粘贴以下内容,并保存:
if [ "$(wmctrl -xl | grep "nautilus\.Nautilus")" == "" ]; then nautilus "$1" & else #Save old clipboard value oldclip="$(xclip -o -sel clip)" echo -n "$1" | xclip -i -sel clip #wmctrl -xF -R nautilus.Nautilus && xdotool key "ctrl+t" "ctrl+l" && xdotool type "${1}" && xdotool key Return wmctrl -xF -R nautilus.Nautilus && xdotool key ctrl+t ctrl+l ctrl+v Return #Restore old clipboard value echo -n "$oldclip" | xclip -i -sel clip fi
-
然后运行命令:
sudo chmod u+x ~/bin/nautilus-ctrl-t.sh
-
现在,要创建启动器文件,请运行以下命令:
gedit ~/.local/share/applications/Nautilus-Ctrl-t.desktop
-
粘贴以下内容并保存:
[Desktop Entry] Type=Application Name=Nautilus-Ctrl-t Comment=Launches Nautilus if not yet, otherwise opens a new tab in it Categories=FileManager;GNOME; Icon=/usr/share/icons/gnome/48x48/apps/system-file-manager.png Exec=/bin/bash -c ~/bin/nautilus-ctrl-t.sh Terminal=false
-
注销或重新启动以更新应用程序列表,您就完成了。
试试那个。希望能帮助到你。
更新
添加了一个位置作为脚本参数
更新 2
用 xclip 替换 xdotool 类型
更新 3
通过添加数字清理过程。添加了 mkdir 命令。更新了第一个 “if statement” 因为如果 nautilus 正在管理桌面,它会有一个 pid,但没有活动窗口,所以最好使用 wmctrl。如果有空格,在第一个参数周围添加引号。将 nautilus 的图标更改为 .desktop 文件中的系统默认值。
次佳方法
我认为这是不可能的,因为 1) Ubuntu Brainstorm 处的 suggested idea 尚未实现,2) 据说在分析源代码后 Shiki 没有找到 a way to pass this call to nautilus 。