相关疑难解决方法(0)

在默认文件管理器中打开一个目录并选择一个文件

在我正在编写的程序中,我想提供打开当前正在处理的文件所在目录的功能,并自动选择该文件(以便用户不需要搜索它)。

我知道我可以使用以下命令在默认文件管理器中打开一个目录

xdg-open /path/to/directory
Run Code Online (Sandbox Code Playgroud)

我知道我可以在 nautilus 中打开一个目录并使用

nautilus /path/to/file.txt
Run Code Online (Sandbox Code Playgroud)

以为我可以用

xdg-mime query default inode/directory
Run Code Online (Sandbox Code Playgroud)

获取默认文件管理器 - 如果它是 nautilus - 如上所示调用它。但是,尽管 nautilus 是我系统上的默认设置(xdg-open打开 nautilus 和 gnome shell 中的位置菜单),xdg-mime返回Thunar.desktop. (我试过了find / -name Thunar.desktop -mount 2>/dev/null但没有找到任何东西。)

另外,我不知道如何打开一个目录,然后选择一个子目录中的鹦鹉螺(与上面提到的方法,将打开子目录)。

我怎样才能打开默认的文件管理器的目录,并选择在该目录中的文件(如果选择一个目录,也很可能将是巨大的,但是对于这种应用并不需要),或至少找出默认的文件管理器,这样我可以直接调用吗?

xdg

13
推荐指数
2
解决办法
9189
查看次数

在 Linux 上从 Firefox 运行正确的文件管理器的简洁方法

正如许多人所知,目前的解决方案defaults.confmimetypes.cache不起作用。

Firefox 目前使用 D-bus 来激活服务org.freedesktop.FileManager1来处理“打开包含文件夹”操作等。

如果安装了许多服务文件(例如 nemo 和 dolphin)并且没有运行守护程序(dolphin --daemon/usr/bin/nemo --no-default-window),则没有干净的方法来选择首选文件管理器。

在我的系统上看起来像选择的第一个服务文件按字母顺序排序。因此,在 KDE 系统上 Firefox 通过 Nemo 处理文件夹。

我目前至少看到两种解决方案,两者似乎都是黑客:

  1. 制作一个符号链接:

    ln -s /usr/share/dbus-1/services/org.kde.dolphin.FileManager1.service /usr/share/dbus-1/services/00_preferred_org.freedesktop.FileManager1.service
    
    Run Code Online (Sandbox Code Playgroud)

    (不要忘记终止当前正在运行的文件管理器守护进程或重新登录会话)

  2. 早期预运行需要org.freedesktop.FileManager1处理程序。就像dolphin --daemon~/.profile适当的条件下一样。

还有更干净的方法吗?

PS尝试在没有Firefox的情况下执行文件管理器:

dbus-send --session \
          --print-reply \
          --dest=org.freedesktop.FileManager1 \
          /org/freedesktop/FileManager1 \
          org.freedesktop.FileManager1.ShowFolders \
              array:string:"file:/" string:""
Run Code Online (Sandbox Code Playgroud)

linux kde d-bus firefox cinnamon

6
推荐指数
1
解决办法
2691
查看次数

标签 统计

cinnamon ×1

d-bus ×1

firefox ×1

kde ×1

linux ×1

xdg ×1