В X11 (на консоли я не знаю) можно сделать это путем переопределения поведения Клавиши выхода. Я посмотрел на "сдвиг (break_caps)" определение, чтобы видеть, как это работает и адаптировало его.
Посмотрите на этот ответ на xkb для получения дополнительной информации о том, как/где поместить локально измененные файлы и загрузить их.
И для того, чтобы сделать, что Вы хотите, Вам нужно в локальном файле символов (например: ~/.xkb/symbols/mysymbols
) раздел как это:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
и в локальном файле контурной карты (например: ~/.xkb/keymap/mykbd
; можно создать его с setxkbmap -print > ~/.xkb/keymap/mykbd
) изменитесь xkb_symbols
строка для добавления +mysymbols(esc_breaks_caps)
.
Можно теперь загрузить его: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
и нажатие Esc удалит состояние CapsLock (на самом деле, эффект происходит на выпуске Esc; я думаю, что только ключи модификаторов имеют непосредственный эффект; другие эффект после их выпуска.)
О, если Вы хотите также подкачать Клавиши выхода и клавиши Caps Lock; затем используйте это вместо этого (и Вы помещаете "+mysymbols (esc_swap_and_breaks_caps)" в свой mykbd файл):
partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
replace key {
type = "ALPHABETIC",
symbols = [ Escape, Escape ],
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
replace key { [ CapsLock, CapsLock ] };
};
обратите внимание, что физические ключи
и
;
(ключ выгравировал CapsLock в Вашей клавиатуре), отправляют Escape и
(ключ выгравировал Esc), отправляет CapsLock, с
(отправляющий Escape) также сбрасывающий capslock состояние
Вам нужен блок целевого типа со всеми служебными блоками, перечисленными как Wants =
dependencies. Затем вы запускаете его с помощью systemctl start unitname.target
. (Убедитесь, что вы не используете здесь systemctl isolate
; это отключит все, кроме того, что находится в дереве зависимостей ваших служб, что, по-видимому, вам не нужно.)
Пробовали ли вы использоватьPartOf
на вспомогательных устройствах -целевой группы в дополнение к Wants
в целевой группе? Пример:PartOf=foo.target
в foo-sub1.service
и Wants=foo-sub1.service foo-sub2.service
в foo.target
. Я только что попробовал это и смог запустить и остановить все мои вспомогательные устройства -, просто запуская и останавливая цель.
PartOf=
Configures dependencies similar to Requires=, but limited to stopping and restarting of units. When systemd stops or restarts the units listed here, the action is propagated to this unit. Note that this is a one-way dependency — changes to this unit do not affect the listed units.
When PartOf=b.service is used on a.service, this dependency will show as ConsistsOf=a.service in property listing of b.service. ConsistsOf= dependency cannot be specified directly.