Skip to content
Snippets Groups Projects
Commit 4e123a61 authored by Jiří Kalvoda's avatar Jiří Kalvoda
Browse files

KEYMAP Init

parent 014a63e5
No related branches found
No related tags found
No related merge requests found
ln -sr . ~/texmf/tex/keymap
texhash
%%%%%%%%%%%%%% Mod keys %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\Ctrl{c}
\def\Shift{s}
\def\Super{w}
%%%%%%%%%%%%%% Undef key %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\UndefKey{}
%%%%%%%%%%%%%% general Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\GoMode#1{\UndefKey}
\def\Cmd#1{\UndefKey}
\def\LayoutCont#1{\UndefKey}
\def\ResizeCont#1#2#3{\UndefKey}
\def\FloatingToggleCont{\UndefKey}
%%%%%%%%%%%%%% WM Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% workspaces
\def\GoWorkspace#1{\UndefKey}
\def\ContWorkspace#1{\UndefKey}
\def\ContGoWorkspace#1{\UndefKey}
\def\MoveWorkspace#1{\UndefKey}
% Container
\def\FocusWind#1{\UndefKey}
\def\MoveCont#1{\UndefKey}
\def\SplitContV{\UndefKey}
\def\SplitContH{\UndefKey}
\def\SplitContT{\UndefKey}
\def\FullscreenContToggle{\UndefKey}
% Restart i3
\def\RestartProg{\UndefKey}
%%%%%%%%%%%%%% System modificator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\ExitProg{\UndefKey}
\def\ExitShutdown{\UndefKey}
\def\ExitSuspend{\UndefKey}
\def\ExitRestart{\UndefKey}
\def\Light#1#2{\Cmd{light #1 #2; lightGUI}}
\catcode37=11
\def\Volume#1#2{\Cmd{amixer sset Master -q #2%#1; sleep 0.05; volumeGUI}}
\catcode37=14
\def\CpuFSet#1{\Cmd{cpuF #1; cpuFGUI 'SET TO #1'}}
\def\CpuF{\Cmd{cpuFGUI}}
\def\DiskSleep#1#2{\Cmd{diskSleepGUI #1 #2}}
%%%%%%%%%%%%%% Not bind commmand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\And#1#2{#1}
\def\AndII#1#2{#2}
\def\RunCmd#1{}
\def\IiiiLine#1{}
\def\IiiiInline#1{}
\def\setkeywh#1#2#3#4{%
\defcs{keywK#1}{#2}%
\defcs{keyhK#1}{#3}%
\defcs{skipBeforeK#1}{#4}%
}
\newdimen\standkeyw\standkeyw 100pt\relax%
\newdimen\standkeyh\standkeyh 35pt\relax%
\for i 0 {16}{\for j 0 {13} {\setkeywh{\Key{}{\the\counti}{\the\countj}}{\standkeyw}{\standkeyh}{0pt}}}
\setkeywh{\Key{}{0}{1}}{\standkeyw}{\standkeyh}{\standkeyw}
\setkeywh{\Key{}{0}{5}}{\standkeyw}{\standkeyh}{0.5\standkeyw}
\setkeywh{\Key{}{0}{9}}{\standkeyw}{\standkeyh}{0.5\standkeyw}
\setkeywh{\Key{}{1}{13}}{2\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{2}{0}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{2}{13}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{3}{0}}{2\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{4}{0}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{4}{12}}{2.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{0}}{2\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{1}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{2}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{3}}{5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{4}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{5}}{1.5\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{5}{6}}{2\standkeyw}{\standkeyh}{0pt}
\setkeywh{\Key{}{9}{0}}{\standkeyw}{\standkeyh}{\standkeyw}
\setkeywh{\Key{}{15}{0}}{2\standkeyw}{\standkeyh}{0pt}
\defcs{keyLineLen0}{13}
\defcs{keyLineLen1}{14}
\defcs{keyLineLen2}{14}
\defcs{keyLineLen3}{13}
\defcs{keyLineLen4}{13}
\defcs{keyLineLen5}{07}
\defcs{keyLineLen6}{03}
\defcs{keyLineLen7}{03}
\defcs{keyLineLen8}{03}
\defcs{keyLineLen9}{01}
\defcs{keyLineLen10}{03}
\defcs{keyLineLen11}{04}
\defcs{keyLineLen12}{04}
\defcs{keyLineLen13}{03}
\defcs{keyLineLen14}{04}
\defcs{keyLineLen15}{02}
\def\setKeyNames#1#2#3{%
\countj#2%
\for{iter}\in{#3}{\ex\edef\csname keyNameK\Key{}{#1}{\the\countj}\endcsname{\iter}\advance\countj1}%
}
\setKeyNames{0}{0}{{Esc}}
\for i 1 {13}{\setKeyNames{0}{\counti}{{F\the\counti}}}
\setKeyNames{1}{0}{`1234567890-={Backspace}}
\setKeyNames{2}{0}{{Tab}qwertyuiop[]{Entr}}
\setKeyNames{3}{0}{{CapsLk}asdfghjkl;'}
\ex\def\csname keyNameK\Key{}{3}{12}\endcsname{\\}
\setKeyNames{4}{0}{{Shift}{NOT}zxcvbnm,./{Shift}}
\setKeyNames{5}{0}{{Ctrl}{Super}{Alt}{Space}{AltGr}{Super}{Ctrl}}
\setKeyNames{6}{0}{{PrtSc}{ScrLock}{Pause}}
\setKeyNames{7}{0}{{Insert}{Home}{PgUp}}
\setKeyNames{8}{0}{{Delete}{End}{PgDown}}
\setKeyNames{9}{0}{{Up}}
\setKeyNames{10}{0}{{Left}{Down}{Right}}
\setKeyNames{11}{0}{{NumLock}/*-}
\setKeyNames{12}{0}{789+}
\setKeyNames{13}{0}{456}
\setKeyNames{14}{0}{123{Enter}}
\setKeyNames{15}{0}{0.}
\newdimen\afterEscSkip
\afterEscSkip 30pt
\newdimen\afterAlphaSkip
\afterAlphaSkip 30pt
\def\OutputMode{doc}
\input keymap-utils.tex
\input keymap-abstract.tex
%%%%%%%%%%%%%% Working vars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcount\counti
\newcount\countj
%%% Colors %%% (from ucwmac (c) MJ)
\chardef\colorstk=\pdfcolorstackinit page direct{0 g 0 G}
\def\colorset#1{\pdfcolorstack\colorstk set #1}
\def\colorpush#1{\pdfcolorstack\colorstk push #1}
\def\colorpop{\pdfcolorstack\colorstk pop}
\def\colorlocal{\aftergroup\colorpop\colorpush}
\def\rgb#1{{#1 rg #1 RG}}
\def\gray#1{{#1 g #1 G}}
\def\cmyk#1{{#1 k #1 K}}
\def\cwhite{\rgb{1 1 1}}
%%%%%%%%%%%%%% Output %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\parindent=0pt
\pdfpagewidth=85cm
\pdfpageheight=85cm
\hsize=78cm
\vsize=78cm
\font\hhdfont csbx17
\font\smallfont cmr8
\font\basicfont cmr10\basicfont
\font\smallsmallfont cmr5 at 5pt
\newbox\autofontBox
\def\autofont#1{{%
\setbox\autofontBox=\hbox{#1}%
\ifdim\wd\autofontBox<100pt\relax\basicfont\else%
\ifdim\wd\autofontBox<300pt\relax\baselineskip 1pt\smallfont\else%
\fi\baselineskip 1pt\smallsmallfont\fi%
#1%
}}
%%%%%%%%%%%%%% Chars and catcodes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\\{$\scriptscriptstyle \backslash$}
\def\nl{\par}
%%%%%%%%%%%%%% general commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\GoMode#1{\printkey{\rgb{0 0 1}}{MODE\nl\smallfont#1}}
\def\Cmd#1{\printkey{\rgb{1 0 1}}{\autofont{#1}}}
\def\UndefKey{\printkey{\rgb{1 0 0}}{UNDEF}}
%%%%%%%%%%%%%% WM Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% workspaces
\def\GoWorkspace#1{\printkey{\rgb{0 1 1}}{Workspace\nl#1}}
\def\ContWorkspace#1{\printkey{\rgb{0 1 1}}{Move to workspace\nl#1}}
\def\ContGoWorkspace#1{\printkey{\rgb{0 1 1}}{Move and go to wsp.\nl#1}}
\def\MoveWorkspace#1{\printkey{\rgb{0 1 0}}{Move worksp. #1}}
% Container
\def\FocusWind#1{\printkey{\rgb{0 1 0}}{Focus #1}}
\def\MoveCont#1{\printkey{\rgb{0 1 0}}{Move #1}}
\def\SplitContV{\printkey{\rgb{0.85 1 0}}{Split vertical}}
\def\SplitContH{\printkey{\rgb{0.85 1 0}}{Split horizontal}}
\def\SplitContT{\printkey{\rgb{0.85 1 0}}{Split tabbed}}
\def\FullscreenContToggle{\printkey{\rgb{0.85 1 0}}{}}
% Restart i3
\def\RestartProg{\printkey{\rgb{1 0 0}}{Restart WM}}
%%%%%%%%%%%%%% System modificator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\ExitProg{\printkey{\rgb{1 0 0}}{Exit}}
\def\ExitShutdown{\printkey{\rgb{1 0 0}}{Shutdown}}
\def\ExitSuspend{\printkey{\rgb{1 0 0}}{Suspend}}
\def\ExitRestart{\printkey{\rgb{1 0 0}}{Restart}}
%%%%%%%%%%%%%% Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newdimen\keyw
\newdimen\keyh
\newdimen\skipBefore
\def\Ctrl{\def\ctrl{1}}
\def\Shift{}
\def\Super{}
\def\Key#1#2#3{%
\def\ctrl{0}%
#1%
\edef\lastKeyMod{\ctrl}%
\edef\lastKey{}%
}
\input keyboard-doc-keyboard.tex
\def\BindKey#1#2{#1
\defcs{keymapK\lastKey}{#2}
}
\def\getkey#1{%
#1\csname keymapK\lastKey\endcsname%
}
% mods
\def\allmod{{x}}%{x\Shift}{x\Ctrl}{x\Ctrl\Shift}{x\Super}{x\Shift\Super}{x\Ctrl\Super}{x\Ctrl\Shift\Super}}
\Key{ }{}{}\defcs{modNameM\lastKeyMod}{No mod}
\Key{\Shift }{}{}\defcs{modNameM\lastKeyMod}{Shift}
\Key{\Ctrl }{}{}\defcs{modNameM\lastKeyMod}{Ctrl}
\Key{\Ctrl\Shift }{}{}\defcs{modNameM\lastKeyMod}{Ctrl+Shift}
\Key{\Super }{}{}\defcs{modNameM\lastKeyMod}{Super}
\Key{\Shift\Super }{}{}\defcs{modNameM\lastKeyMod}{Shift+Super}
\Key{\Ctrl\Super }{}{}\defcs{modNameM\lastKeyMod}{Ctrl+Super}
\Key{\Ctrl\Shift\Super}{}{}\defcs{modNameM\lastKeyMod}{Ctrl+Shift+Super}
\def\nullkey{\printkey{\cwhite}{}}
\def\nullkeyin{\nullkey} % For comparing
\def\bindnullkey#1#2{%
\for{iter}\in\allmod{\BindKey{\Key{\ex\eat\iter}{#1}{#2}}{\nullkey}}%
}
\def\getUsedMod#1#2{
\for{iter}\in\allmod{\Key{\ex\eat\iter}{#1}{#2}\letcs{tmp}{keymapK\lastKey}\ifx\tmp\nullkeyin\else\defcs{activeModM\lastKeyMod}{1}\fi}%
}
\def\printkey#1#2{%
\hrule \hbox{%
\vrule\relax%
\hbox to 0pt{\colorlocal{#1}\vrule width \keyw height \keyh\hskip -\keyw}%
\vbox to \keyh{%
\hsize\keyw%
\leftskip 0pt plus 1fill%
\rightskip 0pt plus 1fill%
\vskip 0pt plus 1fil\relax%
\keyname%
#2%
\hskip 0pt\hbox{}\vskip 0pt plus 1fil\relax\hrule height 0pt
}\vrule%
}\hrule%
}
\def\printkeybymap#1#2{%
\Key{}{#1}{#2}\skipBefore \csname skipBeforeK\lastKey\endcsname%
\kern \skipBefore\vbox{%
\Key{}{#1}{#2}%
\keyw \csname keywK\lastKey\endcsname%
\keyh \csname keyhK\lastKey\endcsname%
\advance\keyw -0.4pt%
\advance\keyh -0.4pt%
\def\keyname{#1-#2\nl}%
\def\printkeybymapIsFirst{1}
\for{iter}\in\allmod{%
\letcs{tmp}{activeModM\ex\eat\iter}
\if\tmp1%
\getkey{\Key{\ex\eat\iter}{#1}{#2}}%
\if \printkeybymapIsFirst1\relax%
\advance\keyh -10pt%
\vskip-0.4pt%
\def\keyname{}%
\def\printkeybymapIsFirst{0}%
\fi%
\fi%
}%
}%
\hskip -0.4pt
}
\def\printline#1{\hbox{\for j 0 {\csname keyLineLen\the\counti\endcsname} {\printkeybymap{#1}{\the\countj}}}\vskip 10pt}
\long\def\Mode#1#2{
{
\let\UpModeName\ModeName
\def\ModeName{#1}
%\for i 0 {16}{\for j 0 {14} {\bindnullkey{\the\counti}{\the\countj}}}
#2
\for{iter}\in\allmod{\Key{\ex\eat\iter}{}{}\defcs{activeModM\lastKeyMod}{0}}%
\for i 0 {16}{\for j 0 {14} {\getUsedMod{\the\counti}{\the\countj}}}%
{\hhdfont #1 (%
\def\isFirst{1}%
\for{iter}\in\allmod{%
\Key{\ex\eat\iter}{}{}\letcs{tmp}{activeModM\lastKeyMod}%
\if\tmp1%
\if \isFirst1\def\isFirst{0}\else, \fi%
%\csname modNameM\ex\eat\iter\endcsname%
\fi%
})}
\vskip 10pt\relax
\hbox{
\vbox{
\for i 0 1{\printline{\the\counti}}
\vskip\afterEscSkip\relax
\for i 1 6{\printline{\the\counti}}
}\hskip \afterAlphaSkip
\vbox{
\for i 6 7{\printline{\the\counti}}
\vskip\afterEscSkip\relax
\for i 7 9{\printline{\the\counti}}
\vskip \standkeyh
\vskip 1.4pt
\for i 9 {11}{\printline{\the\counti}}
}\hskip \afterAlphaSkip
\vbox{
\for i {11} {15}{\printline{\the\counti}}
}
}
}
\vfil \break
}
%%%%%%%%%%%%%% Chars and catcodes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\catcode`&=11
\catcode`"=11
\catcode`'=11
\catcode`_=11
\catcode`~=11
\catcode`$=11 %$
%%%%%%%%%%%%%% Input %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Mode{default}{
\input master.tex
}
\bye
\def\OutputMode{doc}
\input keymap-utils.tex
\input keymap-abstract.tex
%%%%%%%%%%%%%% Working vars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcount\counti
\newcount\countj
%%% Colors %%% (from ucwmac (c) MJ)
\chardef\colorstk=\pdfcolorstackinit page direct{0 g 0 G}
\def\colorset#1{\pdfcolorstack\colorstk set #1}
\def\colorpush#1{\pdfcolorstack\colorstk push #1}
\def\colorpop{\pdfcolorstack\colorstk pop}
\def\colorlocal{\aftergroup\colorpop\colorpush}
\def\rgb#1{{#1 rg #1 RG}}
\def\gray#1{{#1 g #1 G}}
\def\cmyk#1{{#1 k #1 K}}
\def\cwhite{\rgb{1 1 1}}
%%%%%%%%%%%%%% Output %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\parindent=0pt
\pdfpagewidth=85cm
\pdfpageheight=85cm
\hsize=78cm
\vsize=78cm
\font\hhdfont csbx17
\font\smallfont cmr8
\font\basicfont cmr10\basicfont
\font\smallsmallfont cmr5 at 5pt
\newbox\autofontBox
\def\autofont#1{{%
\setbox\autofontBox=\hbox{#1}%
\ifdim\wd\autofontBox<100pt\relax\basicfont\else%
\ifdim\wd\autofontBox<300pt\relax\baselineskip 1pt\smallfont\else%
\fi\baselineskip 1pt\smallsmallfont\fi%
#1%
}}
%%%%%%%%%%%%%% Chars and catcodes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\\{$\scriptscriptstyle \backslash$}
\def\nl{\par}
%%%%%%%%%%%%%% general commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\GoMode#1{\printkey{\rgb{0 0 1}}{MODE\nl\smallfont#1}}
\def\Cmd#1{\printkey{\rgb{1 0 1}}{\autofont{#1}}}
\def\UndefKey{\printkey{\rgb{1 0 0}}{UNDEF}}
%%%%%%%%%%%%%% WM Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% workspaces
\def\GoWorkspace#1{\printkey{\rgb{0 1 1}}{Workspace\nl#1}}
\def\ContWorkspace#1{\printkey{\rgb{0 1 1}}{Move to workspace\nl#1}}
\def\ContGoWorkspace#1{\printkey{\rgb{0 1 1}}{Move and go to wsp.\nl#1}}
\def\MoveWorkspace#1{\printkey{\rgb{0 1 0}}{Move worksp. #1}}
% Container
\def\FocusWind#1{\printkey{\rgb{0 1 0}}{Focus #1}}
\def\MoveCont#1{\printkey{\rgb{0 1 0}}{Move #1}}
\def\SplitContV{\printkey{\rgb{0.85 1 0}}{Split vertical}}
\def\SplitContH{\printkey{\rgb{0.85 1 0}}{Split horizontal}}
\def\SplitContT{\printkey{\rgb{0.85 1 0}}{Split tabbed}}
\def\FullscreenContToggle{\printkey{\rgb{0.85 1 0}}{}}
% Restart i3
\def\RestartProg{\printkey{\rgb{1 0 0}}{Restart WM}}
%%%%%%%%%%%%%% System modificator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\ExitProg{\printkey{\rgb{1 0 0}}{Exit}}
\def\ExitShutdown{\printkey{\rgb{1 0 0}}{Shutdown}}
\def\ExitSuspend{\printkey{\rgb{1 0 0}}{Suspend}}
\def\ExitRestart{\printkey{\rgb{1 0 0}}{Restart}}
%%%%%%%%%%%%%% Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newdimen\keyw
\newdimen\keyh
\newdimen\skipBefore
\def\Key#1#2#3{%
#1@#2@#3%
}
\input keymap-doc-keyboard.tex
\def\BindKey#1#2{
\defcs{keymapK#1}{#2}
}
\def\getkey#1{%
\csname keymapK#1\endcsname%
}
% mods
\def\allmod{{x}{x\Shift}{x\Ctrl}{x\Ctrl\Shift}{x\Super}{x\Shift\Super}{x\Ctrl\Super}{x\Ctrl\Shift\Super}}
\defcs{modNameM}{No mod}
\defcs{modNameM\Shift}{Shift}
\defcs{modNameM\Ctrl}{Ctrl}
\defcs{modNameM\Ctrl\Shift}{Ctrl+Shift}
\defcs{modNameM\Super}{Super}
\defcs{modNameM\Shift\Super}{Shift+Super}
\defcs{modNameM\Ctrl\Super}{Ctrl+Super}
\defcs{modNameM\Ctrl\Shift\Super}{Ctrl+Shift+Super}
\def\nullkey{\printkey{\cwhite}{}}
\def\nullkeyin{\nullkey} % For comparing
\def\bindnullkey#1#2{%
\for{iter}\in\allmod{\BindKey{\Key{\ex\eat\iter}{#1}{#2}}{\nullkey}}%
}
\def\getUsedMod#1#2{
\for{iter}\in\allmod{\letcs{tmp}{keymapK\Key{\ex\eat\iter}{#1}{#2}}\ifx\tmp\nullkeyin\else\defcs{activeModM\ex\eat\iter}{1}\fi}%
}
\def\printkey#1#2{%
\hrule \hbox{%
\vrule\relax%
\hbox to 0pt{\colorlocal{#1}\vrule width \keyw height \keyh\hskip -\keyw}%
\vbox to \keyh{%
\hsize\keyw%
\leftskip 0pt plus 1fill%
\rightskip 0pt plus 1fill%
\vskip 0pt plus 1fil\relax%
\keyname%
#2%
\hskip 0pt\hbox{}\vskip 0pt plus 1fil\relax\hrule height 0pt
}\vrule%
}\hrule%
}
\def\printkeybymap#1#2{%
\skipBefore \csname skipBeforeK\Key{}{#1}{#2}\endcsname%
\kern \skipBefore\vbox{%
\keyw \csname keywK\Key{}{#1}{#2}\endcsname%
\keyh \csname keyhK\Key{}{#1}{#2}\endcsname%
\advance\keyw -0.4pt%
\advance\keyh -0.4pt%
\def\keyname{\csname keyNameK\Key{}{#1}{#2}\endcsname\nl}%
\def\printkeybymapIsFirst{1}
\for{iter}\in\allmod{%
\letcs{tmp}{activeModM\ex\eat\iter}
\if\tmp1%
\getkey{\Key{\ex\eat\iter}{#1}{#2}}%
\if \printkeybymapIsFirst1\relax%
\advance\keyh -10pt%
\vskip-0.4pt%
\def\keyname{}%
\def\printkeybymapIsFirst{0}%
\fi%
\fi%
}%
}%
\hskip -0.4pt
}
\def\printline#1{\hbox{\for j 0 {\csname keyLineLen\the\counti\endcsname} {\printkeybymap{#1}{\the\countj}}}\vskip 10pt}
\long\def\Mode#1#2{
{
\let\UpModeName\ModeName
\def\ModeName{#1}
\for i 0 {16}{\for j 0 {14} {\bindnullkey{\the\counti}{\the\countj}}}
#2
\for{iter}\in\allmod{\defcs{activeModM\ex\eat\iter}{0}}%
\for i 0 {16}{\for j 0 {14} {\getUsedMod{\the\counti}{\the\countj}}}%
{\hhdfont #1 (%
\def\isFirst{1}%
\for{iter}\in\allmod{%
\letcs{tmp}{activeModM\ex\eat\iter}%
\if\tmp1%
\if \isFirst1\def\isFirst{0}\else, \fi%
\csname modNameM\ex\eat\iter\endcsname%
\fi%
})}
\vskip 10pt\relax
\hbox{
\vbox{
\for i 0 1{\printline{\the\counti}}
\vskip\afterEscSkip\relax
\for i 1 6{\printline{\the\counti}}
}\hskip \afterAlphaSkip
\vbox{
\for i 6 7{\printline{\the\counti}}
\vskip\afterEscSkip\relax
\for i 7 9{\printline{\the\counti}}
{ \setbox5=\vbox{\printkeybymap{0}{0}}\vskip\ht5}
\for i 9 {11}{\printline{\the\counti}}
}\hskip \afterAlphaSkip
\vbox{
\for i {11} {16}{\printline{\the\counti}}
}
}
}
\vfil \break
}
%%%%%%%%%%%%%% Chars and catcodes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\catcode`&=11
\catcode`"=11
\catcode`'=11
\catcode`_=11
\catcode`~=11
\catcode`$=11 %$
%%%%%%%%%%%%%% Input %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Mode{default}{
\input master.tex
}
\bye
{
\newcount\counti
\newcount\countj
\def\defKeyCode#1#2#3{\ex\global\ex\edef\csname keyCodeK#1K#2\endcsname{#3}}
\defKeyCode{0}{0}{9}
%if(row==0 && col==0) return 9;
\for i{11}{13}{\countj 95 \advance\countj\counti \advance\countj -11 \defKeyCode{0}{\the\counti}{\the\countj}}
%if(row==0 && col>=11) return 95+col-11;
\for i{1}{11}{\countj 67 \advance\countj\counti \advance\countj -1 \defKeyCode{0}{\the\counti}{\the\countj}}
%if(row==0) return col+67-1;
\defKeyCode{1}{0}{49}
%if(row==1 && col==0) return 49;
\for i{1}{14}{\countj 10 \advance\countj\counti \advance\countj -1 \defKeyCode{1}{\the\counti}{\the\countj}}
%if(row==1) return col+10-1;
\for i{0}{14}{\countj 23 \advance\countj\counti \advance\countj 0 \defKeyCode{2}{\the\counti}{\the\countj}}
%if(row==2) return col+23;
\defKeyCode{3}{0}{66}
%if(row==3 && col==0) return 66;
\defKeyCode{3}{12}{51}
%if(row==3 && col==12) return 51;
\for i{1}{12}{\countj 38 \advance\countj\counti \advance\countj -1 \defKeyCode{3}{\the\counti}{\the\countj}}
%if(row==3) return col+38-1;
\for i{0}{12}{\countj 50 \advance\countj\counti \advance\countj 0 \defKeyCode{4}{\the\counti}{\the\countj}}
%if(row==4) return col+50;
\defKeyCode{4}{1}{94}
%if(row==4 && col==1) return 94;
\defKeyCode{5}{0}{37}
\defKeyCode{5}{1}{133}
\defKeyCode{5}{2}{64}
\defKeyCode{5}{3}{65}
\defKeyCode{5}{4}{108}
\defKeyCode{5}{5}{105}
%if(row==5) return std::vector<int>{37,133,64,65,108,105}[col];
%
\defKeyCode{6}{0}{107}
\defKeyCode{6}{1}{78}
\defKeyCode{6}{2}{127}
%if(row==6) return std::vector<int>{107,78,127}[col];
\defKeyCode{7}{0}{118}
\defKeyCode{7}{1}{110}
\defKeyCode{7}{2}{112}
%if(row==7) return std::vector<int>{118,110,112}[col];
\defKeyCode{8}{0}{119}
\defKeyCode{8}{1}{115}
\defKeyCode{8}{2}{116}
%if(row==8) return std::vector<int>{119,115,116}[col];
\defKeyCode{9}{0}{111}
%if(row==9) return std::vector<int>{111}[col];
\defKeyCode{10}{0}{113}
\defKeyCode{10}{1}{116}
\defKeyCode{10}{2}{114}
%if(row==10) return std::vector<int>{113,116,114}[col];
% TODO
%if(row==11) return std::vector<int>{77,106,63,82}[col];
%if(row==12) return std::vector<int>{79,80,81,86}[col];
%if(row==13) return std::vector<int>{83,84,85}[col];
%if(row==14) return std::vector<int>{87,88,89,104}[col];
%if(row==15) return std::vector<int>{90,91}[col];
}
\def\OutputMode{i3}
\input keymap-utils.tex
\input keymap-abstract.tex
\catcode`p=1
\catcode`q=2
\catcode`{=11
\catcode`}=11
\def\SimLeftCurlip{q
\def\SimRightCurlip}q
\catcode`{=1
\catcode`}=2
\catcode`p=11
\catcode`q=11
\catcode113=0
\catcode92=11
qdefqSimBackslash{\}
qcatcode92=0
\catcode113=11
\def\SimQuotes{"}
\catcode`&=11
\catcode`~=11
\catcode`$=11 %$
\catcode`"=13
\catcode`'=11
\catcode`_=11
\long\def\nl{^^J}
\newlinechar`^^J % LaTeX already does this
\def\beginCmdEsc{%
\def"{\SimBackslash\SimBackslash\SimQuotes}%
\def\\{\SimBackslash\SimBackslash\SimBackslash\SimBackslash}%
}
\def\endEsc{
\def"{\SimQuotes}%
\def\\{\SimBackslash}%
\def\{{\SimLeftCurli}%
\def\}{\SimRightCurli}%
}
\endEsc
\def\Ctrl{ctrl+}
\def\Shift{shift+}
\def\Super{Mod4+}
\def\Key#1#2#3{%
#1\csname keyCodeK#2K#3\endcsname%
}
\def\confirmCmd#1#2{\Cmd{i3-nagbar -t warning -m '#1' -b 'Yes' '#2'}}
%%%%%%%%%%%%%% general Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\GoMode#1{\addoutput{mode "#1"; }\Cmd{i3-mode-log "#1"}}
\def\Cmd#1{\addoutput{exec "}\beginCmdEsc\addoutput{#1}\endEsc\addoutput{"}}
\def\LayoutCont#1{\addoutput{ layout #1 }}
\def\ResizeCont#1#2#3{\addoutput{ resize #1 #2 #3 px or #3 ppt }}
\def\FloatingToggleCont{\addoutput{floating toggle}}
%%%%%%%%%%%%%% WM Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% workspaces
\def\GoWorkspace#1{\addoutput{workspace "#1"}}
\def\ContWorkspace#1{\addoutput{move container to workspace "#1"}}
\def\ContGoWorkspace#1{\ContWorkspace{#1}\addoutput{; }\GoWorkspace{#1}}
\def\MoveWorkspace#1{\addoutput{ move workspace to output #1}}
% Container
\def\FocusWind#1{\addoutput{ focus #1}}
\def\MoveCont#1{\addoutput{ move #1}}
\def\SplitContV{\addoutput{ split v }}
\def\SplitContH{\addoutput{ split h }}
\def\SplitContT{\addoutput{ split v; layout tabbed }}
\def\FullscreenContToggle{\addoutput{ fullscreen toggle }}
% Restart i3
\def\RestartProg{\addoutput{ restart }}
%%%%%%%%%%%%%% System modificator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\ExitProg{\confirmCmd{Do you really want to EXIT i3 }{i3-msg exit}}
\def\ExitShutdown{\confirmCmd{Do you really want to SHUTDOWN? }{poweroff}}
\def\ExitSuspend{\Cmd{systemctl suspend}}
\def\ExitRestart{\confirmCmd{Do you really want to REBOOT? }{reboot}}
%%%%%%%%%%%%%% Not bind commmand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\And#1#2{#1\addoutput{ ; }#2}
\def\AndII#1#2{#1\addoutput{ ; }#2}
\def\RunCmd#1{\addoutput{exec "}\beginCmdEsc\addoutput{#1}\endEsc\addoutput{"\nl}}
\def\IiiiLine#1{\addoutput{#1\nl}}
\def\IiiiInline#1{\addoutput{#1}}
\input keymap-i3-keyboard.tex
\def\addoutput#1{\long\edef\output{\output #1}}
\def\bindkey#1#2{%
\addoutput{bindcode #1 }#2\addoutput{\nl}%
}
\def\BindKey#1#2{%
\addoutput{bindcode #1 }#2\addoutput{\nl}%
}
\newwrite\file
\immediate\openout\file = ./i3.config
\def\ModeDefaultName{default}
\def\UpModeName{ERR}
\def\ModeName{ERR}
\long\def\Mode#1#2{
{
\let\UpModeName=\ModeName
\edef\ModeName{#1}
\long\edef\output{}
\ifx\ModeName\ModeDefaultName\else\addoutput{mode "#1"\nl\{\nl}\fi
#2
\ifx\ModeName\ModeDefaultName\else\addoutput{\}}\fi
\immediate\write\file{\output\nl
}\relax
}
}
\Mode{\ModeDefaultName}{
\input ./master.tex
}
\closeout\file
\bye
\let\ex=\expandafter
\def\eat#1{}
\def\letcs#1#2{\ex\ex\ex \let\ex\ex \csname#1\endcsname \csname#2\endcsname}
\def\defcs#1#2{\def\defcstmp{#2}\letcs{#1}{defcstmp}}
\def\for#1#2#3#4{%
\if\in#2%
\defcs{endloop#1}{}%
\ex\def\csname loop#1\endcsname##1{%
\ex\if\csname endloop#1\endcsname##1\else%
\defcs{#1}{##1}%
#4\relax%
\letcs{looptmp}{loop#1}%
\ex\ex\ex\looptmp\fi}%
\letcs{looptmp}{loop#1}%
\ex\looptmp#3\csname endloop#3\endcsname%
\else%
\csname count#1\endcsname #2\relax%
\defcs{loop#1}{%
#4\relax%
\advance\csname count#1\endcsname 1\relax%
\ifnum\csname count#1\endcsname<#3%
\letcs{looptmp}{loop#1}%
\ex\ex\ex\looptmp\fi}\csname loop#1\endcsname%
\fi%
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment