In the late nineties, our computerclub had freebsd systems, multiusers systems off a shared NFS with the hardware also doubling as terminals.
To make emergency login to the physical console possible without logging of the locally logged on user, they simply defined extra getty's on up to 20 terminals (F1..F10 and iirc ctrl-shift-F1..F10). The ctrl-shift-Fx combos (and the extra terminals on them) were a bit a secret.
I was porting a full screen app, and experimenting with consoles in raw mode, and found a whole bunch of syscons ioctls. These included font manipulation. I also found out that if you execute a program with "exec xxx" on one of the hidden consoles, that the terminal stdinput handle remained valid for syscons ioctlrs and that the syscons didn't change the settings on a per console/getty basis.
I used that for two programs:
- one that created a lookup table for 2 x 26 characters (upper/lower) that shuffled the values. Then I set font and keyboard controller according to this table. So you would press the "E" key, and the "E" glyph was shown, but some other ascii code (like "v") was actually generated to the terminal.
- I took the VGA font and did some bit twiddling (shift upper and lower rowes) to make them a bit cursive or mirrored. Then I started animating the font. (so slanted to the right, normal slanted to the level, normal etc).
The program hooked sigusr2 which could be used (from a remotely logged in session) to turn these features on and off. Fun times, though in the end I didn't trick my main targets as badly since they had seen me develop it. We used it with a lot of fun next year on the new batch of students though.