Я только что читал » Как вернуться в GNOME Classic? «. В некоторых ответах говорится, что вы должны нажать Alt kbd> + Win kbd>, чтобы получить диалоговое окно Add to panel . Однако моя клавиатура не имеет Win kbd>. Поэтому я спрашивал себя, как запустить окно Добавить на панель . Обычно лучший способ - ввести имя программы в терминал. В этом случае я не могу понять имя.
Я проверил его на другом компьютере и не смог найти имя в списке процессов. Также xwininfo
или подобные программы не показывали названия. Итак, как лучше узнать название программы, открывшей окно (X).
Вы можете использовать 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
. Нажмите на окно, и оно напечатает название программы.
На основании ответа iBelieve:
alias fxname='basename $(ll /proc/$(xprop _NET_WM_PID | awk "{print \$NF}")/exe | awk "{print \$NF}")'
$NF
в командах awk необходимо экранировать, чтобы оно не интерпретировалось как переменная оболочки. Как только вы запустите его, появится сетка, чтобы вы щелкнули по нужному окну.