Posted to tcl by aspect at Tue Dec 20 02:58:55 GMT 2016view raw

  1. proc M a\ b {string map $a $b}
  2. proc S a\ b\\\ @ {split $a $b}
  3. regsub -all {[^@|]} [set b [M {|||| ||| $ "BS " % "TAB " & "CAPS " ? ENTER * "SHIFT "} [regsub -all {([^@])} {`1234567890-=$@%QWERTYUIOP[]\@&ASDFGHJKL;'?@*ZXCVBNM,./*} {||\1 ||}]]] _ f
  4. set h [M {\\ _ / _ | \ } [set g [M {||_ |/_ _|| _\\|} [M {||| \\|/} $f]]]]
  5. lmap x [S $h] y [S $b] z [S $f] w [S $g] {
  6. puts $x\n$y\n$z\n$w
  7. }
  8.