Иногда я нахожу небольшие ошибки в диалогах или окнах. Например, я нашел очень незначительную ошибку в диалоге настроек звука. Я думал, что сообщу об этом, но не было очевидно, какой пакет предоставляет этот диалог.
Есть ли простой инструмент для этого? Я бы представил что-то вроде 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