是否可以在脚本中获取特定nautilus窗口的目录?

2024-06-01 07:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想构建一个Python脚本来检查nautilus中是否打开了特定的目录。在

到目前为止,最好的解决方案是使用wmctrl -lxp列出所有窗口, 结果是这样的:

0x0323d584  0 1006   nautilus.Nautilus     namek Downloads
0x0325083a  0 1006   nautilus.Nautilus     namek test
0x04400003  0 25536  gvim.Gvim             namek yolo_voc.py + (~/code/netharn/netharn/examples) - GVIM4

然后检查我感兴趣的目录的基名是否在nautilus.Nautilus窗口的窗口名中。在

下面是我刚刚描述的不完整解决方案的代码:

^{pr2}$

这肯定可以确定它是否是未打开的,这只会让我到目前为止,因为它可能会返回误报。如果我想检查/foo/test是否打开,我无法判断第二行是指该目录还是其他路径,其中最终的目录名为test。E、 我不能区分/foo/test和{}。在

有什么方法可以在Ubuntu上使用builtin或apt get/pip可安装工具来做我想做的事情吗?在


Tags: test目录脚本foodownloadsyolo解决方案nautilus
1条回答
网友
1楼 · 发布于 2024-06-01 07:19:43

使用@SomeGuyOnAComputer的建议:

首先,获取nautilus python绑定:

$ sudo apt install python-nautilus

要创建Nautila目录,请执行以下操作:

^{pr2}$

显然,nautilus python只读取该文件夹中的扩展并自动使用它们。在

下面是一个简单的扩展名,它将文件uri放入标题栏:

from gi.repository import Nautilus, GObject, Gtk

class ColumnExtension(GObject.GObject, Nautilus.LocationWidgetProvider):
    def __init__(self):
        pass

    def get_widget(self, uri, window):
        window.set_title(uri)

把这个放进“扩展名.py“并将其转储到上面创建的文件夹中。重启nautilus。就像杀死任何nautilus进程并重新启动它们一样。一个简单的方法就是重启你的机器。在

这会将文件uri放入标题栏中,这是当前脚本所获取的内容。换句话说,你可以继续做你一直在做的事情,现在它会给你一条完整的道路。在

请注意,当Nautilus第一次启动时,这似乎不起作用。你必须实际导航到某个地方。换言之,如果标题栏显示“Home”,则表示您在主文件夹中,并且没有导航到任何位置。在

相关问题 更多 >