On the one hand I can understand your reasoning. Thinking of the mouse, of corse a double press interaction seems like the most natural thing. However, with the mouse users have learned this behaviour for tens of years.
Double press on a keyboard key, however, usually is expected to duplicate the pressed key. You pointed out quite rightly, that with functional keys, there is no inherit meaning. Looking at it that way, you could potentially leverage these keys for addional functionality. They main problem I see is that it will be hard to get users to learn these functionalities soley for your application.
Most casual users struggle even with keyboard-shortcut combinitions that go beyond ctrl+x/c/v/s
. And this is where your target audience comes in. Looking at features of code editors that I really like, for instance selecting several simultaneous code lines with the cursor and writing in all lines at once is one such feature that certainly is desired by the target group and many users are willing to learn those keyboard commands. The more casual computer users in your audience, the harder it will be to push for such an innovative feature to be adapted.
(example of a code editor that let's you write on two lines simultaneously, editor here is Sublime)
Another potential problem is how operating systems handle double keypress detection. Windows, for example, let's you set a time interval after which to trigger a second key press for when a keyboard key stays pressed. In how far these detections extend to control keys is one problem, the other is this: Personally, I tend to hold the ctrl key down between copying and pasting via ctrl+c and ctrl+v. How will your application know not to interpret this as a double-ctrl keypress? The same goes for writing capital letters with shift pressed.
All in all I like your approach to pushing a very, very common input method further, but some of the established usage patterns might complicate the implementation or cause more usability issues than it adds value. What I'd really advise is to make prototypes, if possible, and test around with it.
If you are dead set on trying it, one other thing I would suggest is to make those double press features something that brings up a dialog or auto-complete hint before actually doing anything. For example, you highlight a word and double press your combinition for delete
. Instead of making this delete the word, have an auto-complete with a "Really delete?" come up next to the cursor and pressing enter will accept the delete action. This will reduce false positive activation of the short-cut feature and still make users that accidentally press it aware of the possibility.
(example of autocompletion in Aptana)
Like with this auto-complete, but in a way that instead of suggesting words (or actions) from text input, your context dialog comes up after double key press.