[PD] x11key, how can i simulate a "space" or a "control s", etc

Alexandre Quessy listes at sourcelibre.com
Thu Mar 22 07:47:06 CET 2007


Hi Moritz,
Eh ! Nice. Someone playing with my little X11 externals. :)

Yes, you can simulate any key press... even control keys and such. You
can see the list of the keys you can generate in the file
/usr/include/X11/keysymdef.h You need to send it only the part after
the "XK_".

Here I paste some of the most useful possibilities.

-- 
Alexandre Quessy
http://alexandre.quessy.net


/*
 * Latin 1
 * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
 * Byte 3 = 0
 */
#ifdef XK_LATIN1
#define XK_space                         0x0020  /* U+0020 SPACE */
#define XK_exclam                        0x0021  /* U+0021 EXCLAMATION MARK */
#define XK_quotedbl                      0x0022  /* U+0022 QUOTATION MARK */
#define XK_numbersign                    0x0023  /* U+0023 NUMBER SIGN */
#define XK_dollar                        0x0024  /* U+0024 DOLLAR SIGN */
#define XK_percent                       0x0025  /* U+0025 PERCENT SIGN */
#define XK_ampersand                     0x0026  /* U+0026 AMPERSAND */
#define XK_apostrophe                    0x0027  /* U+0027 APOSTROPHE */
#define XK_quoteright                    0x0027  /* deprecated */
#define XK_parenleft                     0x0028  /* U+0028 LEFT PARENTHESIS */
#define XK_parenright                    0x0029  /* U+0029 RIGHT PARENTHESIS */
#define XK_asterisk                      0x002a  /* U+002A ASTERISK */
#define XK_plus                          0x002b  /* U+002B PLUS SIGN */
#define XK_comma                         0x002c  /* U+002C COMMA */
#define XK_minus                         0x002d  /* U+002D HYPHEN-MINUS */
#define XK_period                        0x002e  /* U+002E FULL STOP */
#define XK_slash                         0x002f  /* U+002F SOLIDUS */
#define XK_0                             0x0030  /* U+0030 DIGIT ZERO */
#define XK_1                             0x0031  /* U+0031 DIGIT ONE */
#define XK_2                             0x0032  /* U+0032 DIGIT TWO */
#define XK_3                             0x0033  /* U+0033 DIGIT THREE */
#define XK_4                             0x0034  /* U+0034 DIGIT FOUR */
#define XK_5                             0x0035  /* U+0035 DIGIT FIVE */
#define XK_6                             0x0036  /* U+0036 DIGIT SIX */
#define XK_7                             0x0037  /* U+0037 DIGIT SEVEN */
#define XK_8                             0x0038  /* U+0038 DIGIT EIGHT */
#define XK_9                             0x0039  /* U+0039 DIGIT NINE */
#define XK_colon                         0x003a  /* U+003A COLON */
#define XK_semicolon                     0x003b  /* U+003B SEMICOLON */
#define XK_less                          0x003c  /* U+003C LESS-THAN SIGN */
#define XK_equal                         0x003d  /* U+003D EQUALS SIGN */
#define XK_greater                       0x003e  /* U+003E GREATER-THAN SIGN */
#define XK_question                      0x003f  /* U+003F QUESTION MARK */
#define XK_at                            0x0040  /* U+0040 COMMERCIAL AT */
#define XK_A                             0x0041  /* U+0041 LATIN
CAPITAL LETTER A */
#define XK_B                             0x0042  /* U+0042 LATIN
CAPITAL LETTER B */
#define XK_C                             0x0043  /* U+0043 LATIN
CAPITAL LETTER C */
#define XK_D                             0x0044  /* U+0044 LATIN
CAPITAL LETTER D */
#define XK_E                             0x0045  /* U+0045 LATIN
CAPITAL LETTER E */
#define XK_F                             0x0046  /* U+0046 LATIN
CAPITAL LETTER F */
#define XK_G                             0x0047  /* U+0047 LATIN
CAPITAL LETTER G */
#define XK_H                             0x0048  /* U+0048 LATIN
CAPITAL LETTER H */
#define XK_I                             0x0049  /* U+0049 LATIN
CAPITAL LETTER I */
#define XK_J                             0x004a  /* U+004A LATIN
CAPITAL LETTER J */
#define XK_K                             0x004b  /* U+004B LATIN
CAPITAL LETTER K */
#define XK_L                             0x004c  /* U+004C LATIN
CAPITAL LETTER L */
#define XK_M                             0x004d  /* U+004D LATIN
CAPITAL LETTER M */
#define XK_N                             0x004e  /* U+004E LATIN
CAPITAL LETTER N */
#define XK_O                             0x004f  /* U+004F LATIN
CAPITAL LETTER O */
#define XK_P                             0x0050  /* U+0050 LATIN
CAPITAL LETTER P */
#define XK_Q                             0x0051  /* U+0051 LATIN
CAPITAL LETTER Q */
#define XK_R                             0x0052  /* U+0052 LATIN
CAPITAL LETTER R */
#define XK_S                             0x0053  /* U+0053 LATIN
CAPITAL LETTER S */
#define XK_T                             0x0054  /* U+0054 LATIN
CAPITAL LETTER T */
#define XK_U                             0x0055  /* U+0055 LATIN
CAPITAL LETTER U */
#define XK_V                             0x0056  /* U+0056 LATIN
CAPITAL LETTER V */
#define XK_W                             0x0057  /* U+0057 LATIN
CAPITAL LETTER W */
#define XK_X                             0x0058  /* U+0058 LATIN
CAPITAL LETTER X */
#define XK_Y                             0x0059  /* U+0059 LATIN
CAPITAL LETTER Y */
#define XK_Z                             0x005a  /* U+005A LATIN
CAPITAL LETTER Z */
#define XK_bracketleft                   0x005b  /* U+005B LEFT SQUARE
BRACKET */
#define XK_backslash                     0x005c  /* U+005C REVERSE SOLIDUS */
#define XK_bracketright                  0x005d  /* U+005D RIGHT
SQUARE BRACKET */
#define XK_asciicircum                   0x005e  /* U+005E CIRCUMFLEX ACCENT */
#define XK_underscore                    0x005f  /* U+005F LOW LINE */
#define XK_grave                         0x0060  /* U+0060 GRAVE ACCENT */
#define XK_quoteleft                     0x0060  /* deprecated */
#define XK_a                             0x0061  /* U+0061 LATIN SMALL
LETTER A */
#define XK_b                             0x0062  /* U+0062 LATIN SMALL
LETTER B */
#define XK_c                             0x0063  /* U+0063 LATIN SMALL
LETTER C */
#define XK_d                             0x0064  /* U+0064 LATIN SMALL
LETTER D */
#define XK_e                             0x0065  /* U+0065 LATIN SMALL
LETTER E */
#define XK_f                             0x0066  /* U+0066 LATIN SMALL
LETTER F */
#define XK_g                             0x0067  /* U+0067 LATIN SMALL
LETTER G */
#define XK_h                             0x0068  /* U+0068 LATIN SMALL
LETTER H */
#define XK_i                             0x0069  /* U+0069 LATIN SMALL
LETTER I */
#define XK_j                             0x006a  /* U+006A LATIN SMALL
LETTER J */
#define XK_k                             0x006b  /* U+006B LATIN SMALL
LETTER K */
#define XK_l                             0x006c  /* U+006C LATIN SMALL
LETTER L */
#define XK_m                             0x006d  /* U+006D LATIN SMALL
LETTER M */
#define XK_n                             0x006e  /* U+006E LATIN SMALL
LETTER N */
#define XK_o                             0x006f  /* U+006F LATIN SMALL
LETTER O */
#define XK_p                             0x0070  /* U+0070 LATIN SMALL
LETTER P */
#define XK_q                             0x0071  /* U+0071 LATIN SMALL
LETTER Q */
#define XK_r                             0x0072  /* U+0072 LATIN SMALL
LETTER R */
#define XK_s                             0x0073  /* U+0073 LATIN SMALL
LETTER S */
#define XK_t                             0x0074  /* U+0074 LATIN SMALL
LETTER T */
#define XK_u                             0x0075  /* U+0075 LATIN SMALL
LETTER U */
#define XK_v                             0x0076  /* U+0076 LATIN SMALL
LETTER V */
#define XK_w                             0x0077  /* U+0077 LATIN SMALL
LETTER W */
#define XK_x                             0x0078  /* U+0078 LATIN SMALL
LETTER X */
#define XK_y                             0x0079  /* U+0079 LATIN SMALL
LETTER Y */
#define XK_z                             0x007a  /* U+007A LATIN SMALL
LETTER Z */
#define XK_braceleft                     0x007b  /* U+007B LEFT CURLY BRACKET */
#define XK_bar                           0x007c  /* U+007C VERTICAL LINE */
#define XK_braceright                    0x007d  /* U+007D RIGHT CURLY
BRACKET */
#define XK_asciitilde                    0x007e  /* U+007E TILDE */

#define XK_nobreakspace                  0x00a0  /* U+00A0 NO-BREAK SPACE */
#define XK_exclamdown                    0x00a1  /* U+00A1 INVERTED
EXCLAMATION MARK */
#define XK_cent                          0x00a2  /* U+00A2 CENT SIGN */
#define XK_sterling                      0x00a3  /* U+00A3 POUND SIGN */
#define XK_currency                      0x00a4  /* U+00A4 CURRENCY SIGN */
#define XK_yen                           0x00a5  /* U+00A5 YEN SIGN */
#define XK_brokenbar                     0x00a6  /* U+00A6 BROKEN BAR */
#define XK_section                       0x00a7  /* U+00A7 SECTION SIGN */
#define XK_diaeresis                     0x00a8  /* U+00A8 DIAERESIS */
#define XK_copyright                     0x00a9  /* U+00A9 COPYRIGHT SIGN */
#define XK_ordfeminine                   0x00aa  /* U+00AA FEMININE
ORDINAL INDICATOR */
#define XK_guillemotleft                 0x00ab  /* U+00AB
LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
#define XK_notsign                       0x00ac  /* U+00AC NOT SIGN */
#define XK_hyphen                        0x00ad  /* U+00AD SOFT HYPHEN */
#define XK_registered                    0x00ae  /* U+00AE REGISTERED SIGN */
#define XK_macron                        0x00af  /* U+00AF MACRON */
#define XK_degree                        0x00b0  /* U+00B0 DEGREE SIGN */
#define XK_plusminus                     0x00b1  /* U+00B1 PLUS-MINUS SIGN */
#define XK_twosuperior                   0x00b2  /* U+00B2 SUPERSCRIPT TWO */
#define XK_threesuperior                 0x00b3  /* U+00B3 SUPERSCRIPT THREE */
#define XK_acute                         0x00b4  /* U+00B4 ACUTE ACCENT */
#define XK_mu                            0x00b5  /* U+00B5 MICRO SIGN */
#define XK_paragraph                     0x00b6  /* U+00B6 PILCROW SIGN */
#define XK_periodcentered                0x00b7  /* U+00B7 MIDDLE DOT */
#define XK_cedilla                       0x00b8  /* U+00B8 CEDILLA */
#define XK_onesuperior                   0x00b9  /* U+00B9 SUPERSCRIPT ONE */
#define XK_masculine                     0x00ba  /* U+00BA MASCULINE
ORDINAL INDICATOR */
#define XK_guillemotright                0x00bb  /* U+00BB
RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
#define XK_onequarter                    0x00bc  /* U+00BC VULGAR
FRACTION ONE QUARTER */
#define XK_onehalf                       0x00bd  /* U+00BD VULGAR
FRACTION ONE HALF */
#define XK_threequarters                 0x00be  /* U+00BE VULGAR
FRACTION THREE QUARTERS */
#define XK_questiondown                  0x00bf  /* U+00BF INVERTED
QUESTION MARK */
#define XK_Agrave                        0x00c0  /* U+00C0 LATIN
CAPITAL LETTER A WITH GRAVE */
#define XK_Aacute                        0x00c1  /* U+00C1 LATIN
CAPITAL LETTER A WITH ACUTE */
#define XK_Acircumflex                   0x00c2  /* U+00C2 LATIN
CAPITAL LETTER A WITH CIRCUMFLEX */
#define XK_Atilde                        0x00c3  /* U+00C3 LATIN
CAPITAL LETTER A WITH TILDE */
#define XK_Adiaeresis                    0x00c4  /* U+00C4 LATIN
CAPITAL LETTER A WITH DIAERESIS */
#define XK_Aring                         0x00c5  /* U+00C5 LATIN
CAPITAL LETTER A WITH RING ABOVE */
#define XK_AE                            0x00c6  /* U+00C6 LATIN
CAPITAL LETTER AE */
#define XK_Ccedilla                      0x00c7  /* U+00C7 LATIN
CAPITAL LETTER C WITH CEDILLA */
#define XK_Egrave                        0x00c8  /* U+00C8 LATIN
CAPITAL LETTER E WITH GRAVE */
#define XK_Eacute                        0x00c9  /* U+00C9 LATIN
CAPITAL LETTER E WITH ACUTE */
#define XK_Ecircumflex                   0x00ca  /* U+00CA LATIN
CAPITAL LETTER E WITH CIRCUMFLEX */
#define XK_Ediaeresis                    0x00cb  /* U+00CB LATIN
CAPITAL LETTER E WITH DIAERESIS */
#define XK_Igrave                        0x00cc  /* U+00CC LATIN
CAPITAL LETTER I WITH GRAVE */
#define XK_Iacute                        0x00cd  /* U+00CD LATIN
CAPITAL LETTER I WITH ACUTE */
#define XK_Icircumflex                   0x00ce  /* U+00CE LATIN
CAPITAL LETTER I WITH CIRCUMFLEX */
#define XK_Idiaeresis                    0x00cf  /* U+00CF LATIN
CAPITAL LETTER I WITH DIAERESIS */
#define XK_ETH                           0x00d0  /* U+00D0 LATIN
CAPITAL LETTER ETH */
#define XK_Eth                           0x00d0  /* deprecated */
#define XK_Ntilde                        0x00d1  /* U+00D1 LATIN
CAPITAL LETTER N WITH TILDE */
#define XK_Ograve                        0x00d2  /* U+00D2 LATIN
CAPITAL LETTER O WITH GRAVE */
#define XK_Oacute                        0x00d3  /* U+00D3 LATIN
CAPITAL LETTER O WITH ACUTE */
#define XK_Ocircumflex                   0x00d4  /* U+00D4 LATIN
CAPITAL LETTER O WITH CIRCUMFLEX */
#define XK_Otilde                        0x00d5  /* U+00D5 LATIN
CAPITAL LETTER O WITH TILDE */
#define XK_Odiaeresis                    0x00d6  /* U+00D6 LATIN
CAPITAL LETTER O WITH DIAERESIS */
#define XK_multiply                      0x00d7  /* U+00D7
MULTIPLICATION SIGN */
#define XK_Oslash                        0x00d8  /* U+00D8 LATIN
CAPITAL LETTER O WITH STROKE */
#define XK_Ooblique                      0x00d8  /* U+00D8 LATIN
CAPITAL LETTER O WITH STROKE */
#define XK_Ugrave                        0x00d9  /* U+00D9 LATIN
CAPITAL LETTER U WITH GRAVE */
#define XK_Uacute                        0x00da  /* U+00DA LATIN
CAPITAL LETTER U WITH ACUTE */
#define XK_Ucircumflex                   0x00db  /* U+00DB LATIN
CAPITAL LETTER U WITH CIRCUMFLEX */
#define XK_Udiaeresis                    0x00dc  /* U+00DC LATIN
CAPITAL LETTER U WITH DIAERESIS */
#define XK_Yacute                        0x00dd  /* U+00DD LATIN
CAPITAL LETTER Y WITH ACUTE */
#define XK_THORN                         0x00de  /* U+00DE LATIN
CAPITAL LETTER THORN */
#define XK_Thorn                         0x00de  /* deprecated */
#define XK_ssharp                        0x00df  /* U+00DF LATIN SMALL
LETTER SHARP S */
#define XK_agrave                        0x00e0  /* U+00E0 LATIN SMALL
LETTER A WITH GRAVE */
#define XK_aacute                        0x00e1  /* U+00E1 LATIN SMALL
LETTER A WITH ACUTE */
#define XK_acircumflex                   0x00e2  /* U+00E2 LATIN SMALL
LETTER A WITH CIRCUMFLEX */
#define XK_atilde                        0x00e3  /* U+00E3 LATIN SMALL
LETTER A WITH TILDE */
#define XK_adiaeresis                    0x00e4  /* U+00E4 LATIN SMALL
LETTER A WITH DIAERESIS */
#define XK_aring                         0x00e5  /* U+00E5 LATIN SMALL
LETTER A WITH RING ABOVE */
#define XK_ae                            0x00e6  /* U+00E6 LATIN SMALL
LETTER AE */
#define XK_ccedilla                      0x00e7  /* U+00E7 LATIN SMALL
LETTER C WITH CEDILLA */
#define XK_egrave                        0x00e8  /* U+00E8 LATIN SMALL
LETTER E WITH GRAVE */
#define XK_eacute                        0x00e9  /* U+00E9 LATIN SMALL
LETTER E WITH ACUTE */
#define XK_ecircumflex                   0x00ea  /* U+00EA LATIN SMALL
LETTER E WITH CIRCUMFLEX */
#define XK_ediaeresis                    0x00eb  /* U+00EB LATIN SMALL
LETTER E WITH DIAERESIS */
#define XK_igrave                        0x00ec  /* U+00EC LATIN SMALL
LETTER I WITH GRAVE */
#define XK_iacute                        0x00ed  /* U+00ED LATIN SMALL
LETTER I WITH ACUTE */
#define XK_icircumflex                   0x00ee  /* U+00EE LATIN SMALL
LETTER I WITH CIRCUMFLEX */
#define XK_idiaeresis                    0x00ef  /* U+00EF LATIN SMALL
LETTER I WITH DIAERESIS */
#define XK_eth                           0x00f0  /* U+00F0 LATIN SMALL
LETTER ETH */
#define XK_ntilde                        0x00f1  /* U+00F1 LATIN SMALL
LETTER N WITH TILDE */
#define XK_ograve                        0x00f2  /* U+00F2 LATIN SMALL
LETTER O WITH GRAVE */
#define XK_oacute                        0x00f3  /* U+00F3 LATIN SMALL
LETTER O WITH ACUTE */
#define XK_ocircumflex                   0x00f4  /* U+00F4 LATIN SMALL
LETTER O WITH CIRCUMFLEX */
#define XK_otilde                        0x00f5  /* U+00F5 LATIN SMALL
LETTER O WITH TILDE */
#define XK_odiaeresis                    0x00f6  /* U+00F6 LATIN SMALL
LETTER O WITH DIAERESIS */
#define XK_division                      0x00f7  /* U+00F7 DIVISION SIGN */
#define XK_oslash                        0x00f8  /* U+00F8 LATIN SMALL
LETTER O WITH STROKE */
#define XK_ooblique                      0x00f8  /* U+00F8 LATIN SMALL
LETTER O WITH STROKE */
#define XK_ugrave                        0x00f9  /* U+00F9 LATIN SMALL
LETTER U WITH GRAVE */
#define XK_uacute                        0x00fa  /* U+00FA LATIN SMALL
LETTER U WITH ACUTE */
#define XK_ucircumflex                   0x00fb  /* U+00FB LATIN SMALL
LETTER U WITH CIRCUMFLEX */
#define XK_udiaeresis                    0x00fc  /* U+00FC LATIN SMALL
LETTER U WITH DIAERESIS */
#define XK_yacute                        0x00fd  /* U+00FD LATIN SMALL
LETTER Y WITH ACUTE */
#define XK_thorn                         0x00fe  /* U+00FE LATIN SMALL
LETTER THORN */
#define XK_ydiaeresis                    0x00ff  /* U+00FF LATIN SMALL
LETTER Y WITH DIAERESIS */
#endif /* XK_LATIN1 */


2007/3/21, moritz <erstens at gmx.ch>:
> ola
>
> im playing around with x11key.
>
> how can i simulate some special keys/ commands like space, tab, delete,
> control a, control c/v, control s, etc... with x11key?
>
> i want to make my X very organic  :)
>
> thanx
>
> mORitz
>
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>




More information about the Pd-list mailing list