Ha, I had quite a post written up before I noticed the bug in my experimentation code. That changed my results to be significantly more random. Still, I'll try to explain my thoughts.I am disputing that this method of generating a pad is random.

First, to my understanding, the keyboard is not the key. An attacker would know the complete details of the algorithm, including how text is reduced to binary. The only secret would be the binary representation of the text provided by the user.

What bothers me about this method of generating a pad is (as EVOEx pointed out) statistical distributions. In a perfectly random environment, the odds of encountering a 0 or a 1 should be 50%. In the case where a user enters plaintext (passages out of a book, etc.), this does not happen. For example, a user has about a 47% chance to enter a character mapping to a 1. Not hugely bad, but still non-random. I'd love to analyze the chart for second-order groupings (if my first character is a 1, how likely is it that the second character is a 1?), but I don't feel like doing it by hand. My source is Statistical Distributions of English Text.

In the case where a user 'bangs on the keyboard', I've got to say that I'm not convinced. In my 'random' strings, I had about a 57% chance to enter a 0. In my binary strings, I had the greatest chance (about 30%) to have a "00", while the least chance (about 13%) to have a "11". Perhaps a different keyboard mapping would improve this.

Of course, that's sort of my point. Let's say I knew that a 'random' string had a given distribution. For sake of example, let's say it has the distribution I found above. If I simply use a key of all 0's, I've already got more than half the bits correct. Of course, this wouldn't produce anything from the encrypted message, so unless I was already able to do some guessing, that's not good enough. If I use all the pieces of the distribution, surely I can do a bit better than "all 0's". Whether or not it's enough better, I'm not sure.