在 Kubuntu 中,我想捕获活动窗口的地址(如果有,则为 Home)。我希望创建一个自定义键盘快捷键来打开该目录中的终端(kubuntu 中的 konsole)。例如:gnome-terminal --working-directory=/path/to/dir
编辑:对于 dolphin,我发现默认情况下是 Shift+F4,可以轻松配置。但我仍然想知道如何从活动窗口(任何目录管理器的窗口)获取地址(又名 $PWD)。如果没有为该实例打开目录管理器,则将默认参数设置为 ~(Home)。
答案1
您希望哪些应用程序具有此功能?如果某个应用程序不支持此功能,最简单的方法可能是对其进行修补以添加此功能。
您正在寻找的方法存在几个基本问题。
首先,我不知道是否有可能找到属于某个窗口的进程。在 X Window 上(也许 Wayland 也是,我不确定),窗口可能由远程进程(即在另一台计算机上运行)打开,而没有属于该窗口的本地进程。在这种情况下,显然不可能找到进程并找出其工作目录。我不确定是否有办法至少找到本地进程,可能没有。
在 Wayland 上,由于其安全模型,拥有一个可以窥视其他窗口属性的全局快捷方式可能是不可能的,尽管我不熟悉细节。
但是让我们假设您设法以某种方式找到属于当前活动窗口的进程。也许使用启发式方法,例如“如果窗口标题是文件,则找到 nautilus 进程”。
然后,您可以轻松检查该进程的工作目录(在 下/proc/<PID>/cwd
),但它会是您要找的吗?很可能不是。我不熟悉 Dolphin,所以让我们以 Nautilus 为例。它是一个可以打开多个窗口的单一进程,每个窗口显示不同的目录。因此,它显然无法将其工作目录更改为显示的目录,因为它向您显示了多个目录,但该进程可以拥有一个工作目录。因此, 下的值/proc
不会让您找到您要找的内容。除非应用程序以某种方式明确支持向您提供此信息,否则没有合理的方法可以窥视进程的行为,以确定哪个目录路径属于哪个窗口。