вот решение с помощью bash, сложного в написании языка!
#!/usr/bin/bash
RCXML='rc.xml'
find=$(cat $RCXML | grep -i -B 1 $1 | head -2)
editkeys=$(cat $RCXML | grep -i -B 1 $1 | head -1)
echo ''
echo ' FOUND THE FOLLOWING SHORTCUT:'
echo " ${find}"
echo ''
echo ' EDITING ABOVE KEYBIND TO:'
echo " <keybind key=\"$2\">"
echo ''
echo ' HIT ENTER TO CONFIRM.'
read y
if [ -z $y ]; then
sed -i "s/$editkeys/\ \ \ \ <keybind key=\"$2\">/g" $RCXML
fi
пример использования:
bash rcedit.sh ToggleShowD C-S-u
примечание: если у вас одна и та же привязка для двух разных вещей, то используется последняя в файле. и этот скрипт редактирует первую найденную по имени действия, например toggledesktop. но, очевидно, вы можете изменить его, чтобы найти по привязке, хотя привязки, очевидно, менее вероятно, будут уникальными
скрипт должен находиться в той же папке, что и rc. xml, если вы не укажете полный путь в переменной RCXML, и обратите внимание, что globbing/tilda не работает в переменной
также, если вы хотите редактировать пользовательские ярлыки, которые включают дополнительную строку:
<action name="Execute">
вам придется изменить сценарий bash, чтобы включить эту дополнительную строку:
find=$(cat $RCXML | grep -i -B 2 $1 | head -3)
editkeys=$(cat $RCXML | grep -i -B 2 $1 | head -1)
если вы хотите редактировать сочетания клавиш мыши, вам придется сделать намного больше редактирования
Я пытался некоторое время создать что-то, что больше ценит формат XML, с помощью ruby, хотя тот факт, что запись имени действия вложена внутри клавиши привязки, является немного неправильным способом, чтобы закодировать простое решение. Кроме того, файл rc.xml заполнен строками комментариев, что сбило с толку два модуля ruby XML, которые я пробовал. но если вы удалите их, то, возможно, сможете сделать что-то на ruby.
Вы также можете добавить следующие строки в .bashrc
alias backuprcxml="~/.config/openbox/lxde-rc.xml > ~/.config/openbox/lxde-rc.xml.backup"
alias restorercxml="~/.config/openbox/lxde-rc.xml.backup > ~/.config/openbox/lxde-rc.xml"
затем запустите это один раз, чтобы создать резервную копию:
backuprcxml
затем добавьте следующую строку в: ~/.config/openbox/autostart
~/.config/openbox/lxde-rc.xml.backup > ~/.config/openbox/lxde-rc.xml
Гном-калькулятор предпочел бы видеть
1.3x10^4 * 10
Чтобы сделать это, нажмите Ctrl + e , как в
1.3Ctrl + e4
Это можно найти в меню справки приложения калькулятора в разделе «Экспериментальная запись»