Скобки вокруг ||
и &&
не требуются, поскольку они правоассоциативные. Следующие два выражения эквивалентны:
expr1 || expr2 && expr3
expr1 || { expr2 && expr3 }
Так &&
вместо ;
работал бы просто великолепно, как echo
возвратит true.
[[ $(id -u) == 0 ]] || echo "Must be root to run script" && exit 1
Об этом уже сообщили как ошибка Debian № 564327, ошибка Debian № 565279, ошибка Ubuntu № 524774 и ошибка FreeDesktop 20145. Существует исходный патч, присоединенный к обсуждению ошибки FreeDesktop. Существует несколько предложений по обходному решению в обсуждении ошибки Ubuntu, в особенности a .Xmodmap
обходное решение.
Смотря на обходное решение, связанное Giles, это - то, что работало на меня:
clear Mod1
clear Mod4
keycode 204 = NoSymbol NoSymbol NoSymbol NoSymbol
keycode 206 = NoSymbol NoSymbol NoSymbol NoSymbol
keycode 64 = Control_L Control_L Control_L Control_L
keycode 133 = Alt_L Alt_L Alt_L Alt_L
keycode 134 = Alt_R Alt_R Alt_R Alt_R
keycode 108 = Control_R Control_R Control_R Control_R
add Control = Control_L Control_R
add Mod1 = Alt_L Alt_R
Мои функциональные клавиши теперь функционируют как Клавиши CTRL и мой Windows Keys как клавиши Alt.
Проблема возникает, когда Вы пытаетесь добавить keysym к модификатору, который уже добавляется к другой модифицирующей клавише. Жизненно важно знать, что, если Вы добавляете keysym к модификатору весь другой keysyms, что компаньон keysym в случае, если добавляются также относительно того модификатора.
Например:
clear mod5
add mod5 = ISO_Level3_Shift Mode_switch
может привести к
mod5 backslash (0x33), Caps_Lock (0x42), ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
потому что у Вас есть что-то как
keycode 66 = Caps_Lock NoSymbol ISO_Level3_Shift
в Вашем ~/.Xmodmap (Просматривают текущий код клавиши к keysym, отображающемуся через xmodmap -pke
)
который произведет рассматриваемую ошибку BadValue, когда Вы также попытаетесь сделать что-то как
add lock = Caps_Lock
потому что Caps_Lock уже добавляется к mod5 модификатору.
Это - другое решение Вашей проблемы, хотя это действительно не отвечает на Ваш вопрос. Отредактируйте xorg.conf, вставив следующее в Раздел "InputDevice":
Option "XkbOptions" "ctrl:swapcaps"