В настоящее время у меня есть .Xmodmap
файл, который меняет мой Commandна Ctrl, затем меняет мой Ctrlна Super(я использую Linux на Mac).
Он работает довольно хорошо, когда запускается только один раз, но при последовательных запусках (например, когда я перезагружаю свою рабочую среду (Cinnamon), он перезагружает .Xmodmap
файл), он в основном сбрасывает настройки, отменяя изменения. Эффективное переключение между желаемой настройкой и исходной настройкой.
Как я могу написать .Xmodmap
файл, который устанавливает настройки только один раз, но не изменяет их при последующих запусках? Вот мой существующий .Xmodmap
файл:
clear control
clear mod4
keycode 105 =
keycode 206 =
keycode 133 = Control_L NoSymbol Control_L
keycode 134 = Control_R NoSymbol Control_R
keycode 37 = Super_L NoSymbol Super_L
add control = Control_L
add control = Control_R
.Xmodmap
влияет только на ключи, которые вы меняете, что вы хотите сделать по-другому?Ответы:
Сбросьте карту до ее первоначального состояния перед применением ваших модов. Полный сброс занимает вечность, поэтому лучше всего придумать разницу.
Этот код использует,
.Xmodmap{.orig,.reset,.mods}
где, если.orig
его не существует, он устанавливается в текущее состояние и вычисляет,.reset
чтобы восстановить это состояние, где бы он ни находился. перед применением.mods
.(редактировать: очистка)
источник
Зайдите в систему> Настройки> Автозагрузка приложений и добавьте
xmodmap ~/.Xmodmap
.источник
Я все еще немного смущен тем, что вы хотите, но я думаю, что это так:
Если вы положите это в свой
~/.Xmodmap
,затем каждый раз
xmodmap ~/.Xmodmap
выполняется, затем левая Ctrlи левая ⌘клавиши меняются местами. Итак, при первом вызове Ctrlклавиша действует так, как если бы вы нажали ⌘, но при втором вызове она Ctrlснова начинает действовать как клавиша.источник
xmodmap ~/.Xmodmap
из xterm, и посмотрите, действительно ли ваш код заменяет ключи при повторном применении. Может быть, ваши ключи возвращаются к исходному поведению, когда Cinnamon перезапускается, не по той причине, о которой вы думаете?