{ 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