XGetDeviceModifierMapping(3X11)AIX (X FUNCTIONS)XGetDeviceModifierMapping(3X11) NAME XGetDeviceModifierMapping, XSetDeviceModifierMapping - query or change device modifier mappings SYNTAX XXXXSSSSeeeettttDDDDeeeevvvviiiicccceeeeMMMMooooddddiiiiffffiiiieeeerrrrMMMMaaaappppppppiiiinnnngggg((((_d_i_s_p_l_a_y,,,, _d_e_v_i_c_e,,,, _m_o_d_m_a_p)))) DDDDiiiissssppppllllaaaayyyy ****_d_i_s_p_l_a_y;;;; XXXXDDDDeeeevvvviiiicccceeee ****_d_e_v_i_c_e;;;; XXXXMMMMooooddddiiiiffffiiiieeeerrrrKKKKeeeeyyyymmmmaaaapppp ****_m_o_d_m_a_p;;;; XXXXMMMMooooddddiiiiffffiiiieeeerrrrKKKKeeeeyyyymmmmaaaapppp ****XXXXGGGGeeeettttDDDDeeeevvvviiiicccceeeeMMMMooooddddiiiiffffiiiieeeerrrrMMMMaaaappppppppiiiinnnngggg((((_d_i_s_p_l_a_y,,,, _d_e_v_i_c_e)))) DDDDiiiissssppppllllaaaayyyy ****_d_i_s_p_l_a_y;;;; XXXXDDDDeeeevvvviiiicccceeee ****_d_e_v_i_c_e;;;; ARGUMENTS _d_i_s_p_l_a_y Specifies the connection to the X server. _d_e_v_i_c_e Specifies the device whose modifier mapping is to be queried or modified. _m_o_d_m_a_p Specifies a pointer to the _X_M_o_d_i_f_i_e_r_K_e_y_m_a_p structure. DESCRIPTION The _X_S_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g request specifies the KeyCodes of the keys (if any) that are to be used as modifiers for the specified device. If it succeeds, the X server gen- erates a _D_e_v_i_c_e_M_a_p_p_i_n_g_N_o_t_i_f_y event, and _X_S_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_- _M_a_p_p_i_n_g returns _M_a_p_p_i_n_g_S_u_c_c_e_s_s. X permits at most eight modifier keys. If more than eight are specified in the _X_M_o_- _d_i_f_i_e_r_K_e_y_m_a_p structure, a _B_a_d_L_e_n_g_t_h error results. The modifiermap member of the _X_M_o_d_i_f_i_e_r_K_e_y_m_a_p structure con- tains eight sets of max_keypermod KeyCodes, one for each modifier in the order _S_h_i_f_t, _L_o_c_k, _C_o_n_t_r_o_l, _M_o_d_1, _M_o_d_2, _M_o_d_3, _M_o_d_4, and _M_o_d_5. Only nonzero KeyCodes have meaning in each set, and zero KeyCodes are ignored. In addition, all of the nonzero KeyCodes must be in the range specified by min_keycode and max_keycode as returned by _X_L_i_s_t_I_n_p_u_t_D_e_v_- _i_c_e_s, or a _B_a_d_V_a_l_u_e error results. No KeyCode may appear twice in the entire map, or a _B_a_d_V_a_l_u_e error results. An X server can impose restrictions on how modifiers can be changed, for example, if certain keys do not generate up transitions in hardware, if auto-repeat cannot be disabled on certain keys, or if multiple modifier keys are not sup- ported. If some such restriction is violated, the status reply is _M_a_p_p_i_n_g_F_a_i_l_e_d, and none of the modifiers are changed. If the new KeyCodes specified for a modifier differ from those currently defined and any (current or new) keys for that modifier are in the logically down state, _X_S_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g returns _M_a_p_p_i_n_g_B_u_s_y, and none of Rev. Release 5 Page 1 XGetDeviceModifierMapping(3X11)AIX (X FUNCTIONS)XGetDeviceModifierMapping(3X11) the modifiers is changed. _X_S_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g can generate _B_a_d_L_e_n_g_t_h_P, _B_a_d_D_e_v_- _i_c_e, _B_a_d_M_a_t_c_h, _B_a_d_A_l_l_o_c, _a_n_d _B_a_d_V_a_l_u_e _e_r_r_o_r_s. The _X_G_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g request returns a pointer to a newly created _X_M_o_d_i_f_i_e_r_K_e_y_m_a_p structure that contains the keys being used as modifiers. The structure should be freed after use by calling _X_F_r_e_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g . If only zero values appear in the set for any modifier, that modifier is disabled. _X_G_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g can generate _B_a_d_D_e_v_i_c_e and _B_a_d_- _M_a_t_c_h errors. STRUCTURES The _X_M_o_d_i_f_i_e_r_K_e_y_m_a_p structure contains: typedef struct { int max_keypermod; KeyCode *modifiermap; } XModifierKeymap; DIAGNOSTICS _B_a_d_L_e_n_g_t_h More than eight keys were specified in the _X_M_o_- _d_i_f_i_e_r_K_e_y_m_a_p structure. _B_a_d_A_l_l_o_c The server failed to allocate the requested resource or server memory. _B_a_d_D_e_v_i_c_e An invalid device was specified. The specified device does not exist or has not been opened by this client via _X_O_p_e_n_I_n_p_u_t_D_e_v_i_c_e. This error may also occur if the specified device is the X keyboard or X pointer device. _B_a_d_M_a_t_c_h This error may occur if an _X_G_e_t_D_e_v_i_c_e_M_o_d_i_f_i_e_r_- _M_a_p_p_i_n_g or _X_C_h_a_n_g_e_D_e_v_i_c_e_M_o_d_i_f_i_e_r_M_a_p_p_i_n_g request was made specifying a device that has no keys. _B_a_d_V_a_l_u_e Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error. SEE ALSO XSetDeviceKeyMapping(3X11) XSetDeviceButtonMapping(3X11) _P_r_o_g_r_a_m_m_i_n_g _W_i_t_h _X_l_i_b Rev. Release 5 Page 2