summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiulio Camuffo <giuliocamuffo@gmail.com>2014-08-28 19:44:10 +0300
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-09-03 15:31:31 +0300
commitde7e2b3ce3d8a929b47b6248c42364b2510c65ab (patch)
tree6982821bda1a0f1101900d14ca2107e7d821c943
parent6ef444d0947459cda35e076fa3514635ec680df6 (diff)
compositor: add an option to set the default numlock value
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. Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r--man/weston.ini.man6
-rw-r--r--src/compositor.c13
2 files changed, 19 insertions, 0 deletions
diff --git a/man/weston.ini.man b/man/weston.ini.man
index ccd7185c..c05a2215 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 8705950e..20ff6b21 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);