Как я могу наблюдать за графическим интерфейсом рабочего стола, взаимодействующим с оболочкой?

Вы можете использовать командный файл e, g:

file images.jpg

вывод будет примерно таким:

images.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 
1x1, segment length 16, baseline, precision 8, 342x147, frames 3

OR

rdjpgcom -verbose images.jpg

образец вывода

JPEG image is 342w * 147h, 3 color components, 8 bits per sample
JPEG process: Baseline
4
09.10.2016, 00:20
1 ответ

Действия в графическом интерфейсе, как правило, не вызывают команд оболочки. Иногда такое бывает, но редко. Скорее, как программы с графическим интерфейсом пользователя, так и программы командной строки (включая оболочки) вызывают одни и те же базовые программные интерфейсы.

Если вы хотите понять, как программа что-то делает, проверьте ее документацию или исходный код. Вы можете попробовать понаблюдать за ним, но понять это бывает сложно.

В Linux программа strace перечисляет системные вызовы , сделанные программой. Узнайте идентификатор процесса программы (например, с помощью команды ps xww ), скажем, 1234, и запустите

strace -p1234 -o widget.strace

Выполните действие, которое вы хотите наблюдать, затем уничтожьте strace ( Ctrl + C в терминале). Посмотрите выходной файл и попробуйте разобраться.Вы увидите интенсивную связь с X-сервером (вызовы read и write для конкретного описания файла) из-за действий графического интерфейса. Если действие выполняется X-сервером, вам необходимо дополнительно проанализировать этот протокол. Вы также можете наблюдать за удаленными вызовами через D-Bus ; чтобы понять их, запустите dbus-monitor , чтобы получить удобочитаемую трассировку трафика D-Bus. В противном случае посмотрите, что еще делает программа.

Звук в Ubuntu обычно идет через Pulseaudio . Приложение использует D-Bus для связи с сервером Pulseaudio. Pulseaudio имеет интерфейс командной строки с программами, имя которых начинается с pa , включая pavucontrol для управления громкостью.

4
27.01.2020, 20:55

Теги

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