Как XMonad может порождать процесс с указанным рабочим каталогом? - PullRequest
1 голос
/ 31 мая 2019

Я использую (и люблю!) XMonad в качестве оконного менеджера.Однако я не уверен, как реализовать сочетание клавиш, которое может spawn новый процесс / окно с рабочим каталогом текущего окна.

Я думаю, что есть две части этой проблемы:Определение рабочего каталога в текущем активном окне и порождение процесса с заданным рабочим каталогом.

Для порождения процесса в настоящее время я использую хак, где я порождаю /bin/sh, что cd 's в нужное место, затем запускает программу.Есть ли более элегантный способ сделать это?

Для определения рабочего каталога текущего окна я понятия не имею, как это сделать.Быстрый поиск xmonad-contrib ничего не показал, хотя я мог что-то упустить.Это атрибут, который X делает доступным для оконного менеджера?Может быть, я мог бы что-то сделать с деревом /proc? 1012 *

1 Ответ

3 голосов
/ 31 мая 2019

spawn уже вызывает /bin/sh, так что вы можете просто засунуть cd в то, что вы породили, как в spawn "cd /very/good/directory && very-good-executable --very --good --arguments".

Нет даже надежного способа определить, какой процесс связан с данным окном - и даже если бы вы могли, он может даже не работать на этом компьютере! - не говоря уже о его рабочем каталоге. Но см. Также атом _NET_WM_PID, который иногда доступен, и этот вопрос в стеке Unix .

...