Как вывести список названий панелей gnome-control-center?

Как вывести список названий панелей gnome-control-center?

Есть (насколько я могу судить) недокументированная функция, gnome-control-centerкоторая может быть использована для отображения определенной панели напрямую. Например, gnome-control-center soundотобразит панель "Звук". Я пытался выяснить, как называется панель "Раскладка клавиатуры", но безуспешно:

gnome-control-center keyboard # Just the "Typing" and "Shortcuts" tabs
gnome-control-center layout # Not found
gnome-control-center keyboardlayout # Not found
gnome-control-center 'keyboard layout' # Not found

Где я могу найти список названий панелей для использования с этой командой?

решение1

Если у вас установлена ​​версия 3.8, доступна новая функция, которая позволяет намного быстрее находить названия панелей. Она была добавлена ​​только в ветку 3.8 по состоянию на 01.10.2013. Для справки, вот коммит, в котором была добавлена ​​эта функция:

(gcc) Добавить параметр командной строки --list

gnome-control-center -l

что даст следующее со списком.

Available panels:
background
bluetooth
color
datetime
display
info
keyboard
mouse
network
notifications
online-accounts
power
printers
privacy
region
search
sharing
sound
universal-access
user-accounts
wacom

решение2

Я думаю, что вам нужно следующее gnome-control-center region: это должно запустить раскладку клавиатуры и региональные языковые настройки.

Далее ниже приведен полный список отдельных gnome-control-centerкоманд, которые используются для запуска различных панелей настроек. Он был найден путем проверки тех, которые я знал, по исходному коду (хотя dpkg -L gnome-control-centerтакже может быть полезным).

Вы можете загрузить исходный код с помощью

apt-get source gnome-control-center

Теперь, когда вы его проверите, вы увидите, что в каждой папке есть файл desktop, в gnome-control-center-3.4.2/panels/котором есть строка exec. Например, /wacom/gnome-wacom-panel.desktop.inсодержит строку: Exec=gnome-control-center wacom.

Полный список для справки(большинство из них легко угадать, но я перечислю здесь для полноты картины)

1) Графический планшет Wacom --->gnome-control-center wacom

2) Раскладка клавиатуры --->gnome-control-center region

3) Учетные записи пользователей --->gnome-control-center user-accounts

4) Сочетания клавиш --->gnome-control-center keyboard

5) Универсальный доступ --->gnome-control-center universal-access

6) Громкость звука/события (только Unity) --->gnome-control-center sound-nua

7) Громкость звука/события --->gnome-control-center sound

(см. также gnome-sound-appletрегулировку громкости на рабочем столе)

8) Яркость экрана и блокировка --->gnome-control-center screen

9) Принтеры --->gnome-control-center printers

10) Управление питанием --->gnome-control-center power

11) Настройки сети --->gnome-control-center network

12) Мышь и тачпад --->gnome-control-center mouse

13) Системная информация --->gnome-control-center info

14) Дисплеи --->gnome-control-center display

15) Дата и время --->gnome-control-center datetime

16) Управление цветом --->gnome-control-center color

17) Блютуз --->gnome-control-center bluetooth

18) Фон рабочего стола --->gnome-control-center background

19) Язык (это немного отличается) --->gnome-language-selector

(но также см. gnome-control-center regionнекоторые языковые настройки.

Для получения более подробной информации см. man gnome-control-centerиофициальный сайт.

решение3

По состоянию на январь 2016 года эта страница является первым результатом поиска Google по запросу «gnome-control-center get list of panels» и (сюрприз!) правильный ответ, данный 3 года назад, больше не является правильным.

Можно было бы подумать, что они уже придумали разумный способ получить список панелей, верно? Неправильно! (кто-нибудь, поправьте меня, если я ошибаюсь!).

Вот к чему я прибегнул:

strace 2>&1 -f gnome-control-center | grep panel

Затем проверьте этот вывод на предмет вероятных мест, где он ищет панели.

Итак, чтобы сэкономить вам время, вот как можно получить список панелей по состоянию на январь 2016 года (я уверен, что это не на 100% надежно, но, эй, в данный момент меня это устраивает!):

ls /usr/lib/x86_64-linux-gnu/control-center-1/panels/|sed -e 's/lib//' -e 's/.so//' -e 's/_//g'

Если вы используете 32-битную версию, то, очевидно, она у вас не сработает из-за этой штуки x86_64, поэтому вернитесь к команде strace выше и действуйте оттуда.

У меня такое чувство, что этот метод перестанет работать, скажем, через 6 месяцев.

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