[PATCH 2/2 weston v2] compositor: add an option to set the default numlock value

Pekka Paalanen ppaalanen at gmail.com
Wed Sep 3 05:33:35 PDT 2014


On Thu, 28 Aug 2014 19:44:10 +0300
Giulio Camuffo <giuliocamuffo at gmail.com> wrote:

> Add a new "numlock-on" option in the [keyboard] section of weston.ini
> which, if set to true, is used to enable the numlock of the keyboards
> attached at startup.
> ---
>  man/weston.ini.man |  6 ++++++
>  src/compositor.c   | 13 +++++++++++++
>  2 files changed, 19 insertions(+)
> 
> diff --git a/man/weston.ini.man b/man/weston.ini.man
> index ccd7185..c05a221 100644
> --- a/man/weston.ini.man
> +++ b/man/weston.ini.man
> @@ -446,6 +446,12 @@ sets the delay in milliseconds since key down until repeating starts (unsigned
>  integer)
>  .RE
>  .RE
> +.TP 7
> +.BI "numlock-on=" "false"
> +sets the default state of the numlock on weston startup for the backends which
> +support it.
> +.RE
> +.RE
>  .SH "TERMINAL SECTION"
>  Contains settings for the weston terminal application (weston-terminal). It
>  allows to customize the font and shell of the command line interface.
> diff --git a/src/compositor.c b/src/compositor.c
> index 8705950..20ff6b2 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -4303,10 +4303,12 @@ int main(int argc, char *argv[])
>  	const char *socket_name = NULL;
>  	int32_t version = 0;
>  	int32_t noconfig = 0;
> +	int32_t numlock_on;
>  	struct weston_config *config = NULL;
>  	struct weston_config_section *section;
>  	struct wl_client *primary_client;
>  	struct wl_listener primary_client_destroyed;
> +	struct weston_seat *seat;
>  
>  	const struct weston_option core_options[] = {
>  		{ WESTON_OPTION_STRING, "backend", 'B', &option_backend },
> @@ -4477,6 +4479,17 @@ int main(int argc, char *argv[])
>  	if (load_modules(ec, option_modules, &argc, argv) < 0)
>  		goto out;
>  
> +	section = weston_config_get_section(config, "keyboard", NULL, NULL);
> +	weston_config_section_get_bool(section, "numlock-on", &numlock_on, 0);
> +	if (numlock_on) {
> +		wl_list_for_each(seat, &ec->seat_list, link) {
> +			if (seat->keyboard)
> +				weston_keyboard_set_locks(seat->keyboard,
> +							  WESTON_NUM_LOCK,
> +							  WESTON_NUM_LOCK);
> +		}
> +	}
> +
>  	weston_compositor_wake(ec);
>  
>  	wl_display_run(display);

Cool, both tested by me, and pushed.


Thanks,
pq


More information about the wayland-devel mailing list