Как программно создавать сочетания клавиш в KDE? - PullRequest
3 голосов
/ 14 июля 2010

Я могу создавать сочетания клавиш для Ctrl-F1 и Ctrl-F2, заставляя их запускать скрипт, используя интерфейс Центра управления, раздел Input Actions.В настоящее время интерес представляет платформа KDE 3.5 на CentOS 5, но 4.x также представляет меньший интерес.

Однако мне нужно создать те же самые ярлыки из сценария оболочки, запускаемого после установки.RPM: этот RPM создает пользователя, а затем полностью предварительно конфигурирует его среду KDE.До сих пор я был в состоянии сделать что-то вроде

cat > kdesktoprc <<- EOM
[Desktop0]
WallpaperMode=NoWallpaper
EOM

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

Другими словами, есть ли команда для создания сочетания клавиш (я не думаю, что могу использовать DCOP, потому что KDEне будет работать в то время)?

Я просмотрел подсказки механизму kconf_update, но не смог определить, подходит ли он для моего варианта использования: есть ли ссылка?

СпасибоВы заранее

1 Ответ

4 голосов
/ 22 июля 2010

Я нашел подход, который, кажется, работает.Сначала я создаю файл .khotkeys, называю его zzz.khotkeys и сохраняю в / usr / hsare / apps / khotkeys.Хорошей отправной точкой для этого является файл printscreen.khotkeys.

Этот файл .khotkeys состоит из двух разделов: раздела [Data] с определениями горячих клавиш и раздела [Main], где среди других ключейу нас есть

Id=zzz

, который используется, чтобы запомнить, какие ключевые определения уже были импортированы.

Чтобы применить определения в zzz.khotkeys, вы можете использовать это

/usr/lib/kconf_update_bin/khotkeys_update --id zzz

, который, по-видимому, вызывает функциональность, эквивалентную кнопке «Импорт» в пользовательском интерфейсе «Действия ввода».

На этом этапе в моем сценарии возникает ряд препятствий, при которых всесценарий% post установки RPM.

Сначала происходит сбой khotkeys_update, если он не может связаться с X-сервером;на первый взгляд это кажется глупым, так как для этого нужно только выполнить преобразование текста, но это можно устранить, поместив его вызов в файл .desktop в .kde / Autostart.

Во-вторых, khotkeys_update выглядит не совсем точнокак опубликованный интерфейс, на который можно положиться с течением времени;так как это для CentOS / KDE 3.5 в контексте, где не ожидается небольшого развития, я имею честь считать это второстепенной проблемой.Если для импорта есть опубликованный интерфейс (оболочки), я не смог бы его найти (я не исследовал DCOP).

В конце концов, тот же сценарий, который непосредственно настраивал другие файлы конфигурации в .kde /share / config также добавляет в .kde / Autostart файл с именем zzz-keys.desktop, который выглядит как

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=ZZZ Hotkeys
Comment=Ensure ZZZ keyboard shortctus are available
Exec=/usr/lib/kconf_update_bin/khotkeys_update --id zzz

, который добавляет горячие клавиши в первый раз (они заканчиваются в khotkeysrc) и пропускается при последующихвызовы, потому что khotkeysrc включает в себя имя ключа AlreadyInstalled, которое также обновляется и включает zzz, поэтому при последующих запусках khotkeys_update находит его и не добавляет дубликаты.

...