Определить посылку по окну?

Определить посылку по окну?

Иногда я нахожу небольшие ошибки в диалогах или окнах. Например, я нашел очень незначительную ошибку в диалоге настроек звука. Я думал, что сообщу об этом, но не было очевидно, какой пакет предоставляет этот диалог.

Есть ли простой инструмент для этого? Я бы представил что-то вроде xwininfo; вы бы запустили команду, указатель мыши изменился бы, и когда вы щелкаете окно, команда вернула бы имя пакета. С такой командой было бы легко расширить ее, чтобы собрать информацию о версии, дистрибутиве и открыть баг-трекер на нужной странице.

Раньше у нас была Справка > Сообщить о проблеме, но поскольку Gnome Control Center не использует меню, эта опция недоступна. Это, конечно, справедливо для всех окон, которые не используют меню. Итак; есть ли альтернатива?

решение1

Откройте терминал ( ctrl- alt- t) и введите

ubuntu-bug -w

Появится сообщение с предложением нажать на окно, чтобы отправить отчет об ошибке в приложении, владеющем этим окном.

Кстати, здесь используется apport, который автоматически собирает много полезной отладочной информации и является предпочтительным способом сообщать об ошибках Ubuntu.

решение2

Ответ roadmr выше — это, безусловно, лучший способ, но я хотел посмотреть, смогу ли я придумать однострочный bash, который возвращает правильный исходный пакет. Это даже более запутанно, чем я себе представлял, поскольку вы, по-видимому, не можете передать по конвейеру dpkgили which.

dpkg -S $(which $(xprop | grep "WM_CLASS(STRING)" | grep -o "\".*\"" | cut -d "," -f 1 | tr -d '""')) | cut -d ":" -f 1

Давайте немного разберемся. grepИ cutвсе это просто ищет и манипулирует строками. Интересно следующее:

  • xprop- Позволяет узнать информацию об окне, на которое вы нажали.

  • which- Возвращает полный путь использованной команды. Пример:

    $ which  gnome-control-center
    /usr/bin/gnome-control-center
    
  • dpkg -S- При наличии файла, предоставляет имя исходного пакета, из которого он взят. Очень полезно, когда двоичное имя и имя исходного пакета различаются. Пример:

    $ dpkg -S /usr/bin/orca
    gnome-orca: /usr/bin/orca
    

Связанный контент