当前位置: 首页>>技术教程>>正文


gnome – 在现有窗口中将 Nautilus 作为新选项卡打开

, , , ,

问题描述

目前,如果我单击启动器、快捷方式图标等,我将获得一个新的 Nautilus 窗口。如果已经打开了一个 Nautilus 窗口,我宁愿它在现有窗口的新选项卡中打开(就像我已经完成 Ctrl + T 并浏览到新位置一样)。我怎样才能做到这一点?

最佳方法

我为此编写了一个 bash 脚本和一个启动器。

  1. 首先,创建文件:

    mkdir ~/bin && gedit ~/bin/nautilus-ctrl-t.sh
    
  2. 然后粘贴以下内容,并保存:

    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
    
  3. 然后运行命令:

    sudo chmod u+x ~/bin/nautilus-ctrl-t.sh
    
  4. 现在,要创建启动器文件,请运行以下命令:

    gedit ~/.local/share/applications/Nautilus-Ctrl-t.desktop
    
  5. 粘贴以下内容并保存:

    [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
    
  6. 注销或重新启动以更新应用程序列表,您就完成了。

试试那个。希望能帮助到你。

更新

添加了一个位置作为脚本参数

更新 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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12239.html,未经允许,请勿转载。