Имеется такая проблема. Нужно изменить сочетание клавиш с alt+shift на ctrl+shift в собственной сборке дистрибутива.
Но вот ubiquity после отработки (установки системы) перезаписывает файл /etc/default/keyboard и настройки сново сбрасываются на alt+shift.
Перерыл весь дистрибутив, поменял кучу конфигов, но ничего не изменилось.
Откопал такой файл /usr/lib/ubiquity/console-setup/keyboard-configuration.postinst
Там имеется код:
CONFIGFILE=/etc/default/keyboard
if [ "$1" = "configure" ]; then
db_get keyboard-configuration/modelcode
model="$RET"
db_get keyboard-configuration/layoutcode
layout="$RET"
db_get keyboard-configuration/variantcode
variant="$RET"
db_get keyboard-configuration/optionscode
options="$RET"
if [ ! -e $CONFIGFILE ]; then
cat /usr/share/console-setup/keyboard \
/usr/share/console-setup-mini/keyboard \
2>/dev/null >$CONFIGFILE || true
fi
# Ensure we do not mess up the config file's ownership and permissions.
cp -a -f $CONFIGFILE $CONFIGFILE.tmp
# If the admin deleted or commented some variables but then set
# them via debconf, (re-)add them to the conffile.
for var in XKBMODEL XKBLAYOUT XKBVARIANT XKBOPTIONS; do
if ! grep "^ *${var}=" $CONFIGFILE >/dev/null; then
echo "${var}=" >>$CONFIGFILE
fi
done
sed \
-e "s|^ *XKBMODEL=.*|XKBMODEL=\"$model\"|" \
-e "s|^ *XKBLAYOUT=.*|XKBLAYOUT=\"$layout\"|" \
-e "s|^ *XKBVARIANT=.*|XKBVARIANT=\"$variant\"|" \
-e "s|^ *XKBOPTIONS=.*|XKBOPTIONS=\"$options\"|" \
<$CONFIGFILE >$CONFIGFILE.tmp
mv -f $CONFIGFILE.tmp $CONFIGFILE
...
Но ХЗ знает откуда он этот alt выковыривает. Есть какие соображения?
Пока есть только один рабочий вариант, закомментить
#mv -f $CONFIGFILE.tmp $CONFIGFILE
Всё, разобрался.
Если кому интересно:
Исполняемый файл keyboard-configuration.config
Строка default_toggle='Alt+Shift' заменяется на default_toggle='Control+Shift'