in src/keyboard_x.cc [85:121]
int XStateFromKeyMod(int keyMod) {
int x_modifier = 0;
// Ctrl + Alt => AltGr
if (keyMod & kControlKeyModifierMask && keyMod & kAltKeyModifierMask) {
x_modifier |= mode_switch_modifier;//alt_r_modifier;
} else if (keyMod & kControlKeyModifierMask) {
x_modifier |= ControlMask;
} else if (keyMod & kAltKeyModifierMask) {
x_modifier |= alt_modifier;
}
if (keyMod & kShiftKeyModifierMask) {
x_modifier |= ShiftMask;
}
if (keyMod & kMetaKeyModifierMask) {
x_modifier |= meta_modifier;
}
if (keyMod & kNumLockKeyModifierMask) {
x_modifier |= num_lock_modifier;
}
if (keyMod & kLevel3KeyModifierMask) {
x_modifier |= level3_modifier;
}
if (keyMod & kLevel5KeyModifierMask) {
x_modifier |= level5_modifier;
}
// See https://www.x.org/releases/X11R7.6/doc/libX11/specs/XKB/xkblib.html#xkb_state_to_core_protocol_state_transformation
x_modifier |= (effective_group_index << 13);
return x_modifier;
}