Я использую ноутбук с международной альтернативой США (прежний нас международный) расположение и usb клавиатура Microsoft Curve с бразильским расположением когда за моим столом.
То, что я хотел бы, должно переключить разметки автоматически, когда клавиатура usb обнаруживается, вместо того, чтобы идти в предпочтения вручную каждый раз, когда я оставляю стол. Есть ли в человечности 9.04 такой путь?
Существует три компонента к решению, которое позволило бы Вам подкачать раскладки клавиатуры:
1. Обнаружьте, когда клавиатура будет включена в /
Все изменения аппаратной конфигурации отправляются на демоне шины сообщения D-шины.
D-шина является магистральной системой сообщения, простым путем к приложениям, чтобы говорить друг с другом. В дополнение к межпроцессному взаимодействию D-шина помогает скоординировать жизненный цикл процесса; это делает это простым и надежным, чтобы кодировать "единственный экземпляр" приложение или демон, и запустить приложения и демонов по требованию, когда их сервисы необходимы.
D-шина предоставляет обоих системный демон (для событий, таких как "новое устройство добавленная" или "очередь печати, измененная") и per-user-login-session демон (для общих потребностей IPC среди пользовательских приложений).
Можно следить за развитием событий, отправленных на D-шине через dbus-команду-контроля:
dbus-monitor --system #show all events
dbus-monitor --system --profile 'interface=org.freedesktop.Hal.Manager' # filter: only events sent by Hal
dbus-monitor --system --profile 'interface=org.freedesktop.Hal.Manager, member=DeviceAdded' # filter: only DeviceAdded events sent by Hal
Включите свою клавиатуру и наблюдайте, что сообщения проходят. Это должно дать Вам общее представление о фильтре, необходимо обнаружить включаемую клавиатуру или. Необходимо будет также познакомиться с использованием dbus-монитора более подробно.
2. Обнаружьте расположение клавиатуры
После того как клавиатура включается в систему, HAL(Уровень аппаратной абстракции) настраивает ее. Можно получить эту информацию с помощью команды hal-get-property, после того как Вы определили ключ, в котором Вы нуждаетесь. Например, в моей системе:
$ hal-get-property --udi /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input --key "input.xkb.layout"
gb
$ hal-get-property --udi /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input --key "input.xkb.model"
pc105
Посмотрите на этот ответ для подробного объяснения того, как получить значения от HAL: устанавливание профилей процесса на человечности. Я думаю, что сообщение D-шины могло бы дать Вам настроенный узел HAL для подключенного устройства, но я не уверен. В противном случае Вы знаете, что это будет в любом из двух мест - соответствие одной из двух клавиатур.
3. Выберите расположение своей системы для соответствия раскладке клавиатуры
joe уже указал, как можно сделать это использование xmodmap.
Я не знаю об этом. Но это - моя работа вокруг, я раньше решал (переключатель от нас до Великобритании)
sudo xmodmap /usr/share/xmodmap/xmodmap.uk
Мое предположение - то, что это могло бы быть возможным использованием некоторых директив HAL.
Однако Вы не должны переходить к Предпочтениям каждый раз, когда Вы хотите переключить разметки. Почему Вы просто не добавляете "апплет" Индикатора Клавиатуры к своей панели? Это - только один щелчок мышью затем.