我正在使用XMonad(并且很喜欢!)作为窗口管理器。但是,我不确定如何实现键盘快捷键,该快捷键可以使用当前窗口的工作目录spawn
新建一个进程/窗口。
我认为这个问题有两个部分:确定当前活动窗口的工作目录,并生成具有给定工作目录的进程。
对于进程生成,我当前正在使用一种黑客程序,在其中生成/bin/sh
,将cd
移至所需位置,然后启动程序。有没有更优雅的方法可以做到这一点?
要确定当前窗口的工作目录,我不知道如何执行此操作。快速搜索xmonad-contrib
并没有显示任何内容,尽管我可能错过了一些内容。这是X提供给窗口管理器的属性吗?也许我可以用/proc
树做些什么?
答案 0 :(得分:3)
spawn
已经呼唤到/bin/sh
,因此您可以像在cd
中那样将spawn "cd /very/good/directory && very-good-executable --very --good --arguments"
推入生成的东西中。
甚至没有可靠的方法来检测哪个进程与给定窗口相关联-即使您可以,它甚至可能不在本机上运行! -更不用说它的工作目录了。但另请参见偶尔出现的_NET_WM_PID
原子和this question on the Unix stackexchange。