Working Lego Computer Keyboard
jkbrickworks.com
jkbrickworks.com
Are mindstorms flexible enough to emulate USB HID?
edit: it looks like mindstorm EV3 is bluetooth-enabled. I don't know the details, but it might be possible to get it bound as a bluetooth keyboard, and thus to have a fully functional "pure-lego"[0] bluetooth keyboard.
[0] the mindstorm EV3 brick runs a Linux distro on a 300MHz ARM9 core with 64MB RAM and 16MB flash (plus a SDHC slot). Whether this remains "pure lego" may be up to debate.
So a sticker from an original set is allowed, but printing your own sticker isn't; any 9V battery will do in a 9V battery box, and any SD card in an SDHC slot, but not a newly made extra-long wire to carry power out to a motor.
There are companies that make LEGO-compatible bricks, which range from execrable quality to slightly better than LEGO's own, but none of that would qualify.
All that being said, I don't know of anyone who maintains LEGO purity except in competitions and exhibitions with specific rules. LEGO themselves often produce large sculptures with an interior support armature which is not made of LEGO products.
You can't create a better, more flexible or completely different keyboard (e.g. recreate a symbolics keyboard, or a typematrix layout)