В Kubuntu я хочу захватить адрес активного окна (если есть, else Home). Я хочу, чтобы это создало пользовательскую комбинацию клавиш для открытия терминала (konsole in kubuntu) в этом каталоге. Например,: gnome-terminal --working-directory=/path/to/dir
EDIT: для дельфина я обнаружил, что по умолчанию Shift + F4, который можно легко настроить. Но я все еще хочу знать, как получить адрес (aka $ PWD) из активного окна (любого менеджера каталогов). Если диспетчер каталогов не открыт для экземпляра, установите параметр по умолчанию как ~ (Главная).
Для какого приложения (приложений) вы хотите использовать эту функцию? Если это приложение не поддерживает это, возможно, самое легкое, если вы его исправляете, чтобы добавить эту функцию.
Существует несколько фундаментальных проблем с подходом, который вы ищете.
Во-первых, я не знаю, можно ли найти процесс, относящийся к определенному окну. В X Window (возможно, Wayland тоже, я не уверен) окно может быть открыто удаленным процессом (то есть работает на другом компьютере) и не будет локальным процессом, принадлежащим этому окну. В этом случае, очевидно, невозможно найти процесс и выяснить его рабочий каталог. Я не уверен, есть ли способ найти по крайней мере локальные процессы, возможно, нет.
На Wayland наличие глобального ярлыка, который заглядывает в свойства других окон, вероятно, невозможно из-за его модели безопасности, хотя я не знаком с деталями.
Но давайте предположим, что каким-то образом вам удастся найти процесс, относящийся к текущему активному окну. Возможно, используя эвристику типа «если заголовок окна - это файлы, то найдите процесс nautilus».
Затем вы можете легко проверить рабочий каталог этого процесса (в разделе /proc/<PID>/cwd), но будет ли это то, вы ищете? Скорее всего, нет. Я не знаком с Дельфином, поэтому давайте возьмем Nautilus в качестве нашего примера. Это единственный процесс, который может открывать несколько окон, каждый из которых показывает другой каталог. Таким образом, он явно не может изменить свой рабочий каталог на отображаемый, поскольку есть несколько каталогов, которые он показывает вам, но один рабочий каталог, который может иметь этот процесс. Таким образом, значение под /proc не даст вам то, что вы ищете. Разумеется, вы не сможете заглянуть в поведение процесса настолько, чтобы выяснить, какой путь к каталогу принадлежит к окну, если приложение так или иначе явно не поддерживает предоставление этой информации вам.
Для какого приложения (приложений) вы хотите использовать эту функцию? Если это приложение не поддерживает это, возможно, самое легкое, если вы его исправляете, чтобы добавить эту функцию.
Существует несколько фундаментальных проблем с подходом, который вы ищете.
Во-первых, я не знаю, можно ли найти процесс, относящийся к определенному окну. В X Window (возможно, Wayland тоже, я не уверен) окно может быть открыто удаленным процессом (то есть работает на другом компьютере) и не будет локальным процессом, принадлежащим этому окну. В этом случае, очевидно, невозможно найти процесс и выяснить его рабочий каталог. Я не уверен, есть ли способ найти по крайней мере локальные процессы, возможно, нет.
На Wayland наличие глобального ярлыка, который заглядывает в свойства других окон, вероятно, невозможно из-за его модели безопасности, хотя я не знаком с деталями.
Но давайте предположим, что каким-то образом вам удастся найти процесс, относящийся к текущему активному окну. Возможно, используя эвристику типа «если заголовок окна - это файлы, то найдите процесс nautilus».
Затем вы можете легко проверить рабочий каталог этого процесса (в разделе /proc/<PID>/cwd), но будет ли это то, вы ищете? Скорее всего, нет. Я не знаком с Дельфином, поэтому давайте возьмем Nautilus в качестве нашего примера. Это единственный процесс, который может открывать несколько окон, каждый из которых показывает другой каталог. Таким образом, он явно не может изменить свой рабочий каталог на отображаемый, поскольку есть несколько каталогов, которые он показывает вам, но один рабочий каталог, который может иметь этот процесс. Таким образом, значение под /proc не даст вам то, что вы ищете. Разумеется, вы не сможете заглянуть в поведение процесса настолько, чтобы выяснить, какой путь к каталогу принадлежит к окну, если приложение так или иначе явно не поддерживает предоставление этой информации вам.