home/alacritty/keybinds.nix
2023-10-12 22:51:18 +02:00

172 lines
11 KiB
Nix

{ bind-broken-mac-keybinds }:
let
broken-options = [
{ key = ''Backslash''; mods = ''Option''; chars = ''|''; }
{ key = ''Backslash''; mods = ''Shift|Option''; chars = ''\\''; }
{ key = ''Key6''; mods = ''Option''; chars = ''^''; } # huh?
{ key = ''Minus''; mods = ''Shift|Option''; chars = ''_''; }
{ key = ''LBracket''; mods = ''Option''; chars = ''[''; }
{ key = ''LBracket''; mods = ''Shift|Option''; chars = ''{''; }
{ key = ''RBracket''; mods = ''Option''; chars = '']''; }
{ key = ''RBracket''; mods = ''Shift|Option''; chars = ''}''; }
{ key = ''Key2''; mods = ''Option''; chars = ''@''; }
];
ralts = [
{ key = ''A''; mods = ''Alt''; chars = ''\x1ba''; }
{ key = ''B''; mods = ''Alt''; chars = ''\x1bb''; }
{ key = ''C''; mods = ''Alt''; chars = ''\x1bc''; }
{ key = ''D''; mods = ''Alt''; chars = ''\x1bd''; }
{ key = ''E''; mods = ''Alt''; chars = ''\x1be''; }
{ key = ''F''; mods = ''Alt''; chars = ''\x1bf''; }
{ key = ''G''; mods = ''Alt''; chars = ''\x1bg''; }
{ key = ''H''; mods = ''Alt''; chars = ''\x1bh''; }
{ key = ''I''; mods = ''Alt''; chars = ''\x1bi''; }
{ key = ''J''; mods = ''Alt''; chars = ''\x1bj''; }
{ key = ''K''; mods = ''Alt''; chars = ''\x1bk''; }
{ key = ''L''; mods = ''Alt''; chars = ''\x1bl''; }
{ key = ''M''; mods = ''Alt''; chars = ''\x1bm''; }
{ key = ''N''; mods = ''Alt''; chars = ''\x1bn''; }
{ key = ''O''; mods = ''Alt''; chars = ''\x1bo''; }
{ key = ''P''; mods = ''Alt''; chars = ''\x1bp''; }
{ key = ''Q''; mods = ''Alt''; chars = ''\x1bq''; }
{ key = ''R''; mods = ''Alt''; chars = ''\x1br''; }
{ key = ''S''; mods = ''Alt''; chars = ''\x1bs''; }
{ key = ''T''; mods = ''Alt''; chars = ''\x1bt''; }
{ key = ''U''; mods = ''Alt''; chars = ''\x1bu''; }
{ key = ''V''; mods = ''Alt''; chars = ''\x1bv''; }
{ key = ''W''; mods = ''Alt''; chars = ''\x1bw''; }
{ key = ''X''; mods = ''Alt''; chars = ''\x1bx''; }
{ key = ''Y''; mods = ''Alt''; chars = ''\x1by''; }
{ key = ''Z''; mods = ''Alt''; chars = ''\x1bz''; }
{ key = ''A''; mods = ''Alt|Shift''; chars = ''\x1bA''; }
{ key = ''B''; mods = ''Alt|Shift''; chars = ''\x1bB''; }
{ key = ''C''; mods = ''Alt|Shift''; chars = ''\x1bC''; }
{ key = ''D''; mods = ''Alt|Shift''; chars = ''\x1bD''; }
{ key = ''E''; mods = ''Alt|Shift''; chars = ''\x1bE''; }
{ key = ''F''; mods = ''Alt|Shift''; chars = ''\x1bF''; }
{ key = ''G''; mods = ''Alt|Shift''; chars = ''\x1bG''; }
{ key = ''H''; mods = ''Alt|Shift''; chars = ''\x1bH''; }
{ key = ''I''; mods = ''Alt|Shift''; chars = ''\x1bI''; }
{ key = ''J''; mods = ''Alt|Shift''; chars = ''\x1bJ''; }
{ key = ''K''; mods = ''Alt|Shift''; chars = ''\x1bK''; }
{ key = ''L''; mods = ''Alt|Shift''; chars = ''\x1bL''; }
{ key = ''M''; mods = ''Alt|Shift''; chars = ''\x1bM''; }
{ key = ''N''; mods = ''Alt|Shift''; chars = ''\x1bN''; }
{ key = ''O''; mods = ''Alt|Shift''; chars = ''\x1bO''; }
{ key = ''P''; mods = ''Alt|Shift''; chars = ''\x1bP''; }
{ key = ''Q''; mods = ''Alt|Shift''; chars = ''\x1bQ''; }
{ key = ''R''; mods = ''Alt|Shift''; chars = ''\x1bR''; }
{ key = ''S''; mods = ''Alt|Shift''; chars = ''\x1bS''; }
{ key = ''T''; mods = ''Alt|Shift''; chars = ''\x1bT''; }
{ key = ''U''; mods = ''Alt|Shift''; chars = ''\x1bU''; }
{ key = ''V''; mods = ''Alt|Shift''; chars = ''\x1bV''; }
{ key = ''W''; mods = ''Alt|Shift''; chars = ''\x1bW''; }
{ key = ''X''; mods = ''Alt|Shift''; chars = ''\x1bX''; }
{ key = ''Y''; mods = ''Alt|Shift''; chars = ''\x1bY''; }
{ key = ''Z''; mods = ''Alt|Shift''; chars = ''\x1bZ''; }
{ key = ''Key1''; mods = ''Alt''; chars = ''\x1b1''; }
{ key = ''Key2''; mods = ''Alt''; chars = ''\x1b2''; }
{ key = ''Key3''; mods = ''Alt''; chars = ''\x1b3''; }
{ key = ''Key4''; mods = ''Alt''; chars = ''\x1b4''; }
{ key = ''Key5''; mods = ''Alt''; chars = ''\x1b5''; }
{ key = ''Key6''; mods = ''Alt''; chars = ''\x1b6''; }
{ key = ''Key7''; mods = ''Alt''; chars = ''\x1b7''; }
{ key = ''Key8''; mods = ''Alt''; chars = ''\x1b8''; }
{ key = ''Key9''; mods = ''Alt''; chars = ''\x1b9''; }
{ key = ''Key0''; mods = ''Alt''; chars = ''\x1b0''; }
{ key = ''Grave''; mods = ''Alt''; chars = ''\x1b`''; } # Alt + `
{ key = ''Grave''; mods = ''Alt|Shift''; chars = ''\x1b~''; } # Alt + ~
{ key = ''Period''; mods = ''Alt''; chars = ''\x1b.''; } # Alt + .
{ key = ''Key8''; mods = ''Alt|Shift''; chars = ''\x1b*''; } # Alt + *
{ key = ''Key3''; mods = ''Alt|Shift''; chars = ''\x1b#''; } # Alt + #
{ key = ''Period''; mods = ''Alt|Shift''; chars = ''\x1b>''; } # Alt + >
{ key = ''Comma''; mods = ''Alt|Shift''; chars = ''\x1b<''; } # Alt + <
{ key = ''Minus''; mods = ''Alt|Shift''; chars = ''\x1b_''; } # Alt + _
{ key = ''Key5''; mods = ''Alt|Shift''; chars = ''\x1b%''; } # Alt + %
{ key = ''Key6''; mods = ''Alt|Shift''; chars = ''\x1b^''; } # Alt + ^
{ key = ''Backslash''; mods = ''Alt''; chars = ''\x1b\\''; } # Alt + \
{ key = ''Backslash''; mods = ''Alt|Shift''; chars = ''\x1b|''; } # Alt + |
];
alt-arrows = [
{ key = ''Left''; mods = ''Option''; chars = ''\x1bb''; }
{ key = ''Right''; mods = ''Option''; chars = ''\x1bf''; }
];
ctrl-binds = [
# { key = ''A''; mods = ''Control''; chars = ''\x01''; }
{ key = ''A''; mods = ''Control''; chars = ''\x01''; }
{ key = ''B''; mods = ''Control''; chars = ''\x02''; }
{ key = ''C''; mods = ''Control''; chars = ''\x03''; }
{ key = ''D''; mods = ''Control''; chars = ''\x04''; }
{ key = ''E''; mods = ''Control''; chars = ''\x05''; }
{ key = ''F''; mods = ''Control''; chars = ''\x06''; }
{ key = ''G''; mods = ''Control''; chars = ''\x07''; }
{ key = ''H''; mods = ''Control''; chars = ''\x08''; }
{ key = ''I''; mods = ''Control''; chars = ''\x09''; }
{ key = ''J''; mods = ''Control''; chars = ''\x0A''; }
{ key = ''K''; mods = ''Control''; chars = ''\x0B''; }
{ key = ''L''; mods = ''Control''; chars = ''\x0C''; }
{ key = ''M''; mods = ''Control''; chars = ''\x0D''; }
{ key = ''N''; mods = ''Control''; chars = ''\x0E''; }
{ key = ''O''; mods = ''Control''; chars = ''\x0F''; }
{ key = ''P''; mods = ''Control''; chars = ''\x10''; }
{ key = ''Q''; mods = ''Control''; chars = ''\x11''; }
{ key = ''R''; mods = ''Control''; chars = ''\x12''; }
{ key = ''S''; mods = ''Control''; chars = ''\x13''; }
{ key = ''T''; mods = ''Control''; chars = ''\x14''; }
{ key = ''U''; mods = ''Control''; chars = ''\x15''; }
{ key = ''V''; mods = ''Control''; chars = ''\x16''; }
{ key = ''W''; mods = ''Control''; chars = ''\x17''; }
{ key = ''X''; mods = ''Control''; chars = ''\x18''; }
{ key = ''Y''; mods = ''Control''; chars = ''\x19''; }
{ key = ''Z''; mods = ''Control''; chars = ''\x1A''; }
];
tmux-binds = [
{ key = ''Period''; mods = ''Control''; chars = ''\x1D''; } # tmux escape
{ key = ''Period''; mods = ''Shift|Command''; chars = ''\x1D:''; }
{ key = ''Key0''; mods = ''Command''; chars = ''\x1D0''; }
{ key = ''Key1''; mods = ''Command''; chars = ''\x1D1''; }
{ key = ''Key2''; mods = ''Command''; chars = ''\x1D2''; }
{ key = ''Key3''; mods = ''Command''; chars = ''\x1D3''; }
{ key = ''Key4''; mods = ''Command''; chars = ''\x1D4''; }
{ key = ''Key5''; mods = ''Command''; chars = ''\x1D5''; }
{ key = ''Key6''; mods = ''Command''; chars = ''\x1D6''; }
{ key = ''Key7''; mods = ''Command''; chars = ''\x1D7''; }
{ key = ''Key8''; mods = ''Command''; chars = ''\x1D8''; }
{ key = ''Key9''; mods = ''Command''; chars = ''\x1D9''; }
{ key = ''T''; mods = ''Command''; chars = ''\x1Dc''; }
{ key = ''R''; mods = ''Command''; chars = ''\x1D$''; }
{ key = ''W''; mods = ''Shift|Command''; chars = ''\x1D&''; } # kill window
{ key = ''W''; mods = ''Command''; chars = ''\x1Dx''; } # kill pane
{ key = ''Left''; mods = ''Command''; chars = ''\x1Dp''; }
{ key = ''Right''; mods = ''Command''; chars = ''\x1Dn''; }
{ key = ''Right''; mods = ''Shift|Command''; chars = ''\x1D\x1b[C''; }
{ key = ''Left''; mods = ''Shift|Command''; chars = ''\x1D\x1b[D''; }
{ key = ''O''; mods = ''Command''; chars = ''\x1Dw''; } # ''open'', open a window
{ key = ''A''; mods = ''Command''; chars = ''\x1D;''; } # Last pane
];
others = [
{ key = ''Escape''; chars = ''\x1B''; }
];
std-binds = tmux-binds;
mac-binds =
ralts
;
in
if bind-broken-mac-keybinds then
std-binds ++ mac-binds
else
std-binds