Как найти имя программы окна X?

Я только что читал » Как вернуться в GNOME Classic? «. В некоторых ответах говорится, что вы должны нажать Alt + Win , чтобы получить диалоговое окно Add to panel . Однако моя клавиатура не имеет Win . Поэтому я спрашивал себя, как запустить окно Добавить на панель . Обычно лучший способ - ввести имя программы в терминал. В этом случае я не могу понять имя.

Я проверил его на другом компьютере и не смог найти имя в списке процессов. Также xwininfo или подобные программы не показывали названия. Итак, как лучше узнать название программы, открывшей окно (X).

1
задан 13 April 2017 в 15:24

2 ответа

Вы можете использовать xprop _NET_WM_PID, чтобы получить PID окна, затем запустить ll /proc/<pid>/exe и посмотреть, где находится ссылка, чтобы выяснить, как называется файл программы.

Ниже приведен небольшой скрипт на Python, взятый из программы, над которой я работаю:

#! /usr/bin/env python

import os, subprocess

# Function based on code from apport
def get_window_pid():
    xprop = subprocess.Popen(['xprop', '_NET_WM_PID'],
            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    (out, err) = xprop.communicate()
    if xprop.returncode == 0:
        try:
            return int(out.split()[-1])
        except ValueError:
            return -1
    else:
        return -1

def get_window_exe():
    pid = get_window_pid()

    if pid == -1:
        return ''

    return os.path.realpath('/proc/' + str(pid) + '/exe')

if __name__=='__main__':
    exe = get_window_exe()
    if exe == '':
        print 'Unable to identify window\'s executable' 
    else:
        print exe

Сохраните это в файл и запустите, набрав python <filename>.py. Нажмите на окно, и оно напечатает название программы.

0
ответ дан 13 April 2017 в 15:24

На основании ответа iBelieve:

alias fxname='basename $(ll /proc/$(xprop _NET_WM_PID | awk "{print \$NF}")/exe | awk "{print \$NF}")'

$NF в командах awk необходимо экранировать, чтобы оно не интерпретировалось как переменная оболочки. Как только вы запустите его, появится сетка, чтобы вы щелкнули по нужному окну.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: