aa122cbae7
This CL can be used to compare the style of nixpkgs-fmt against other formatters (nixpkgs, alejandra). Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: cynthia <cynthia@tvl.fyi> Reviewed-by: edef <edef@edef.eu> Reviewed-by: eta <tvl@eta.st> Reviewed-by: grfn <grfn@gws.fyi> |
||
---|---|---|
.. | ||
.ghci | ||
App.hs | ||
default.nix | ||
Keyboard.hs | ||
Main.hs | ||
README.md | ||
shell.nix | ||
Spec.hs | ||
Transforms.hs | ||
Utils.hs |
Transform QWERTY
Apply a series of transforms to a QWERTY keyboard then use the new keyboard to re-type a passage of text.
Environment
You will need Nix to build this program on your machine. The good news is
that you won't need any Haskell-specific dependencies like ghc
, cabal
, or
stack
: just Nix.
Once you have Nix installed, to build the program, run the following from this project's top-level directory:
$ nix-build
This should output an executable named transform-keyboard
within a result
directory:
$ tree result
result
└── transform-keyboard
Testing
To run the test suite, run the following from the project's top-level directory:
$ nix-shell
$ runhaskell Spec.hs
Usage
Here are some --help
and usage examples:
$ ./result/transform-keyboard --help
Usage: transform-keyboard (-t|--transforms ARG) (-p|--passage ARG)
Transform a QWERTY keyboard using a string of commands
Available options:
-t,--transforms ARG String of transforms where (e.g. "HHVS12VHVHS3")
-p,--passage ARG Input text to re-type
-h,--help Show this help text
Now a working example:
$ ./result/transform-keyboard --transforms=HHVS12VHVHS3 --passage='Hello,Brilliant.'
Typing: "Hello,Brilliant."
On this keyboard:
[H][J][K][L][;][Q][W][E][R][T]
[Y][U][I][O][P][1][2][3][4][5]
[6][7][8][9][0][Z][X][C][V][B]
[N][M][,][.][/][A][S][D][F][G]
Result: ZIVV4D/O3VV36APF
...and an example with an erroneous input (i.e. !
):
$ ./result/transform-keyboard --transforms=HHVS12VHVHS3 --passage='Hello,Brilliant!'
Typing: "Hello,Brilliant!"
On this keyboard:
[H][J][K][L][;][Q][W][E][R][T]
[Y][U][I][O][P][1][2][3][4][5]
[6][7][8][9][0][Z][X][C][V][B]
[N][M][,][.][/][A][S][D][F][G]
Looks like at least one of the characters in your input passage doesn't fit on our QWERTY keyboard:
[1][2][3][4][5][6][7][8][9][0]
[Q][W][E][R][T][Y][U][I][O][P]
[A][S][D][F][G][H][J][K][L][;]
[Z][X][C][V][B][N][M][,][.][/]