- CLIPBOARD:
- This contains copied data.
- Copy data by selecting text and pressing Ctrl+c or right-clicking and choosing copy from the context menu.
- Paste data by pressing Ctrl+v or pressing Shift+Insert or right-clicking the mouse and choosing paste to paste.
- AutoKey's
clipboard.get_clipboard()
andclipboard.fill_clipboard()
API calls can access this.
- PRIMARY:
- This contains selected data.
- Its purpose is to contain the only argument to commands that take one argument and is the principal means of communication between clients that use the selection mechanism.
- Select data by selecting text.
- Paste data by pressing the middle mouse button.
- AutoKey's
clipboard.get_selection()
andclipboard.fill_selection()
API calls can access this.
- SECONDARY:
- This contains selected data.
- Its purpose is to either contain the second argument to commands that take two arguments or to contain additional data when there's already a primary selection that the user doesn't want to disturb.
- Select data by holding down the meta or Alt key while selecting text.
- Paste data by holding down the meta or Alt key while pressing the middle mouse button.
- AutoKey doesn't have API calls to access this.
- With the keyboard:
- Hold down the Shift key while pressing any of the arrow keys.
- Hold down the Shift key while pressing the Home or End button.
- Hold down the Shift key while pressing the PgUp or PgDn button.
- Hold down the Ctrl and Shift and End keys.
- With the mouse:
- Hold down the left mouse button and drag it across the text.
- Hold down the left mouse button and lasso the text with the mouse.
- Double-click to select the current word.
- Triple click to select the curent line.
- With the mouse and keyboard:
- Hold down the left mouse button and press the PgUp or PgDn key.
- Hold down the left mouse button and press the Ctrl key.
- Hold down the left mouse button and the Ctrl and Shift and End keys.
- Hold down the Ctrl key while making multiple selections.
- Select some text and press the Ctrl and Ins keys together.
For more details about how all of this works, see the "Peer-to-Peer Communication by Means of Selections" section in the Inter-Client Communication Conventions Manual.
The reason I used a much larger range is because I assumed it might similar to ASCII, where the lower ordinals are for non-printable characters. If something like that is going on then the script worked fine. It just didn't run far enough. I'm guessing that this has something to do with keyboard scan codes, but I'm not familiar with them. That doesn't seem to be it either.
I ran it and it looks a lot like a qwerty keyboard, but I'm not sure what standard those codes line up with and it gets weird with a lot of gaps after the normal printable characters.
Sorry for letting that bit of C/bash syntax slip in and break things.
Some of them are control codes. 135 did a clipboard paste. (when I ran the script from 128 to 256).