struct wl_array keys;
struct wl_resource *focus;
int mod_changed;
+ int repeat_delay;
+ int repeat_rate;
} kbd;
struct
wl_resource_set_implementation(res, &_e_keyboard_interface, cdata,
_e_comp_wl_input_cb_keyboard_unbind);
+ /* send current repeat_info */
+ if (wl_resource_get_version(res) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION)
+ wl_keyboard_send_repeat_info(res, cdata->kbd.repeat_rate, cdata->kbd.repeat_delay);
+
/* send current keymap */
wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1,
cdata->xkb.fd, cdata->xkb.size);
cdata->xkb.fd = -1;
+ /* get default keyboard repeat rate/delay from configuration */
+ cdata->kbd.repeat_delay = e_config->keyboard.repeat_delay;
+ cdata->kbd.repeat_rate = e_config->keyboard.repeat_rate;
+
+ /* check for valid repeat_delay and repeat_rate value */
+ /* if invalid, set the default value of repeat delay and rate value */
+ if (cdata->kbd.repeat_delay < 0) cdata->kbd.repeat_delay = 400;
+ if (cdata->kbd.repeat_delay < 0) cdata->kbd.repeat_rate = 25;
+
/* create the global resource for input seat */
cdata->seat.global =
wl_global_create(cdata->wl.disp, &wl_seat_interface, 4,
E_CONFIG_VAL(D, T, xkb.default_model, STR);
E_CONFIG_VAL(D, T, xkb.use_cache, UCHAR);
+ E_CONFIG_VAL(D, T, keyboard.repeat_delay, INT);
+ E_CONFIG_VAL(D, T, keyboard.repeat_rate, INT);
+
if (old)
{
E_CONFIG_SUB(D, T, xkb.current_layout, _e_config_xkb_option_edd);
E_CONFIG_LIMIT(e_config->backlight.dim, 0.1, 1.0);
E_CONFIG_LIMIT(e_config->backlight.idle_dim, 0.1, 1.0);
+ E_CONFIG_LIMIT(e_config->keyboard.repeat_delay, -1, 1000); // 1 second
+ E_CONFIG_LIMIT(e_config->keyboard.repeat_rate, -1, 1000); // 1 second
+
if (!e_config->icon_theme)
e_config->icon_theme = eina_stringshare_add("hicolor"); // FDO default
const char *desklock_layout;
} xkb;
+ struct
+ {
+ int repeat_delay;//delay in milliseconds since key down until repeating starts
+ int repeat_rate;//the rate of repeating keys in characters per second
+ } keyboard;
+
Eina_List *menu_applications;
unsigned char exe_always_single_instance; // GUI
int use_desktop_window_profile; // GUI