(feature) Add swapEscapeAndCapsLock and swapRightCommandAndRightOption (#1706)

This commit is contained in:
Sam 2026-06-11 06:46:22 +00:00 committed by GitHub
commit f73cbf1f65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 36 additions and 0 deletions

View file

@ -38,6 +38,18 @@ in
description = "Whether to swap the left Command key and left Alt key.";
};
system.keyboard.swapRightCommandAndRightOption = mkOption {
type = types.bool;
default = false;
description = "Whether to swap the right Command key and right Option key.";
};
system.keyboard.swapCapsLockAndEscape = mkOption {
type = types.bool;
default = false;
description = "Whether to swap the Caps Lock key and Escape key.";
};
system.keyboard.swapLeftCtrlAndFn = mkOption {
type = types.bool;
default = false;
@ -64,6 +76,14 @@ in
(mkIf cfg.remapCapsLockToControl { HIDKeyboardModifierMappingSrc = 30064771129; HIDKeyboardModifierMappingDst = 30064771296; })
(mkIf cfg.remapCapsLockToEscape { HIDKeyboardModifierMappingSrc = 30064771129; HIDKeyboardModifierMappingDst = 30064771113; })
(mkIf cfg.nonUS.remapTilde { HIDKeyboardModifierMappingSrc = 30064771172; HIDKeyboardModifierMappingDst = 30064771125; })
(mkIf cfg.swapCapsLockAndEscape {
HIDKeyboardModifierMappingSrc = 30064771129;
HIDKeyboardModifierMappingDst = 30064771113;
})
(mkIf cfg.swapCapsLockAndEscape {
HIDKeyboardModifierMappingSrc = 30064771113;
HIDKeyboardModifierMappingDst = 30064771129;
})
(mkIf cfg.swapLeftCommandAndLeftAlt {
HIDKeyboardModifierMappingSrc = 30064771299;
HIDKeyboardModifierMappingDst = 30064771298;
@ -72,6 +92,14 @@ in
HIDKeyboardModifierMappingSrc = 30064771298;
HIDKeyboardModifierMappingDst = 30064771299;
})
(mkIf cfg.swapRightCommandAndRightOption {
HIDKeyboardModifierMappingSrc = 30064771303;
HIDKeyboardModifierMappingDst = 30064771302;
})
(mkIf cfg.swapRightCommandAndRightOption {
HIDKeyboardModifierMappingSrc = 30064771302;
HIDKeyboardModifierMappingDst = 30064771303;
})
(mkIf cfg.swapLeftCtrlAndFn {
HIDKeyboardModifierMappingSrc = 30064771296;
HIDKeyboardModifierMappingDst = 1095216660483;

View file

@ -5,20 +5,28 @@
system.keyboard.remapCapsLockToControl = true;
system.keyboard.remapCapsLockToEscape = true;
system.keyboard.nonUS.remapTilde = true;
system.keyboard.swapCapsLockAndEscape = true;
system.keyboard.swapLeftCommandAndLeftAlt = true;
system.keyboard.swapRightCommandAndRightOption = true;
system.keyboard.swapLeftCtrlAndFn = true;
test = ''
echo checking keyboard mappings in /activate >&2
grep "hidutil property --set '{\"UserKeyMapping\":.*}'" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingSrc\":30064771129" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingSrc\":30064771113" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingSrc\":30064771172" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771113" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771125" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771129" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771296" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771298" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771299" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771296" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingSrc\":30064771303" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingSrc\":30064771302" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771302" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":30064771303" ${config.out}/activate
grep "\"HIDKeyboardModifierMappingDst\":1095216660483" ${config.out}/activate
'';
}