[WESTON PATCH 1/1] compositor: Add idle timeout option to weston.ini

Frederic Plourde frederic.plourde at collabora.co.uk
Wed Oct 29 12:28:59 PDT 2014


On 14-10-29 02:57 PM, Bryce Harrington wrote:
> On Mon, Oct 27, 2014 at 11:17:48AM -0400, Frederic Plourde wrote:
>> Weston's idle timeout can already be set via the '-i' command-line
>> option, but this patch lets users specify it also via weston.ini.
>> Note that the command-line option takes precedence over the .ini,
>> should the option be set by both.
>>
>> This patch also Updates weston.ini man page with idle-timeout bits
>>
>> https://bugs.freedesktop.org/show_bug.cgi?id=83921
>> Signed-off-by: Frederic Plourde <frederic.plourde at collabora.co.uk>
> These docs are handy; I'd wondered if --idle-timeout controlled the
> screensaver timing but had to just experiment with it to see.  (I wonder
> if the option could be more obviously named?)  Improving the man page
> will clarify this for others.

You surely mean "--idle-time" instead of "idle-timeout".... right ?
So.... Well, to be honest, for clarity reasons, I would stick to 
"idle-time" in here because it controls the *same* functionality as the 
-i command-line, also referred to as "idle-time" in weston.man.

Now, you're right in that it could be mistaken with a 
screensaver-related feature.... so I will clarify some more in the man 
page change.. good catch :)

>
> Reviewed-by: Bryce Harrington <b.harrington at samsung.com>
>
>> ---
>>   man/weston.ini.man | 19 +++++++++++++++++--
>>   src/compositor.c   |  6 +++++-
>>   2 files changed, 22 insertions(+), 3 deletions(-)
>>
>> diff --git a/man/weston.ini.man b/man/weston.ini.man
>> index c05a221..a5566b0 100644
>> --- a/man/weston.ini.man
>> +++ b/man/weston.ini.man
>> @@ -62,21 +62,21 @@ Comment lines are ignored:
>>   .RS 4
>>   .nf
>>   .IR "#comment"
>>   .fi
>>   .RE
>>   .PP
>>   The section headers are:
>>   .PP
>>   .RS 4
>>   .nf
>> -.BR "core           " "The core modules"
>> +.BR "core           " "The core modules and options"
>>   .BR "libinput       " "Input device configuration"
>>   .BR "shell          " "Desktop customization"
>>   .BR "launcher       " "Add launcher to the panel"
>>   .BR "screensaver    " "Screensaver selection"
>>   .BR "output         " "Output configuration"
>>   .BR "input-method   " "Onscreen keyboard input"
>>   .BR "keyboard       " "Keyboard layouts"
>>   .BR "terminal       " "Terminal application options"
>>   .BR "xwayland       " "XWayland options"
>>   .BR "screen-share   " "Screen sharing options"
>> @@ -85,21 +85,21 @@ The section headers are:
>>   .PP
>>   Possible value types are string, signed and unsigned 32-bit
>>   integer, and boolean. Strings must not be quoted, do not support any
>>   escape sequences, and run till the end of the line. Integers can
>>   be given in decimal (e.g. 123), octal (e.g. 0173), and hexadecimal
>>   (e.g. 0x7b) form. Boolean values can be only 'true' or 'false'.
>>   .RE
>>   .SH "CORE SECTION"
>>   The
>>   .B core
>> -section is used to select the startup compositor modules.
>> +section is used to select the startup compositor modules and general options.
>>   .TP 7
>>   .BI "shell=" desktop-shell.so
>>   specifies a shell to load (string). This can be used to load your own
>>   implemented shell or one with Weston as default. Available shells
>>   in the
>>   .IR "__weston_modules_dir__"
>>   directory are:
>>   .PP
>>   .RS 10
>>   .nf
>> @@ -139,20 +139,35 @@ directory are:
>>   .fi
>>   .RE
>>   .BI "gbm-format="format
>>   sets the GBM format used for the framebuffer for the GBM backend. Can be
>>   .B xrgb8888,
>>   .B xrgb2101010,
>>   .B rgb565.
>>   By default, xrgb8888 is used.
>>   .RS
>>   .PP
>> +.RE
>> +.TP 7
>> +.BI "idle-time="seconds
>> +sets Weston's idle timeout in seconds. This idle timeout is the time
>> +after which Weston will enter an inactive mode, fading the screen to
>> +black and possibly starting screensavers (if opt-in), etc.
> We're leaving a question to the reader here, "What does 'if opt-in'
> mean?"  It might be friendly to point them to further documentation on
> hooking up and/or configuring screensavers here.

Thought it was pretty clear at first, but I can certainly try to add 
more precision about the fact that screensavers are not automatically 
enabled/turned on a timeout time.

So all of the above in patch v2, stay tuned.
> Btw, do you know if we have anything to inhibit/re-enable the
> screensaver at runtime?
>
>> +
>> +.IR Important
>> +: This option may also be set via Weston's '-i' command
>> +line option and will take precedence over the current .ini option. This
>> +means that if both weston.ini and command line define this idle-timeout
>> +time, the one specified in the command-line will be used. On the other
>> +hand, if none of these sets the value, default idle timeout will be
>> +set to 300 seconds.
>> +.RS
>>   
>>   .SH "LIBINPUT SECTION"
>>   The
>>   .B libinput
>>   section is used to configure input devices when using the libinput input device
>>   backend.
>>   .PP
>>   Available configuration are:
>>   .TP 7
>>   .BI "enable_tap=" true
>> diff --git a/src/compositor.c b/src/compositor.c
>> index 4540911..015037f 100644
>> --- a/src/compositor.c
>> +++ b/src/compositor.c
>> @@ -4603,21 +4603,21 @@ int main(int argc, char *argv[])
>>   		*(*backend_init)(struct wl_display *display,
>>   				 int *argc, char *argv[],
>>   				 struct weston_config *config);
>>   	int i, fd;
>>   	char *backend = NULL;
>>   	char *shell = NULL;
>>   	char *modules = NULL;
>>   	char *option_modules = NULL;
>>   	char *log = NULL;
>>   	char *server_socket = NULL, *end;
>> -	int32_t idle_time = 300;
>> +	int32_t idle_time = -1;
>>
>>   	int32_t help = 0;
>>   	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;
>> @@ -4701,20 +4701,24 @@ int main(int argc, char *argv[])
>>   	ec = backend_init(display, &argc, argv, config);
>>   	if (ec == NULL) {
>>   		weston_log("fatal: failed to create compositor\n");
>>   		ret = EXIT_FAILURE;
>>   		goto out_signals;
>>   	}
>>   
>>   	catch_signals();
>>   	segv_compositor = ec;
>>   
>> +	if (idle_time < 0)
>> +		weston_config_section_get_int(section, "idle-time", &idle_time, -1);
>> +	if (idle_time < 0)
>> +		idle_time = 300; /* default idle timeout, in seconds */
>>   	ec->idle_time = idle_time;
>>   	ec->default_pointer_grab = NULL;
>>   
>>   	for (i = 1; i < argc; i++)
>>   		weston_log("fatal: unhandled option: %s\n", argv[i]);
>>   	if (argc > 1) {
>>   		ret = EXIT_FAILURE;
>>   		goto out;
>>   	}
>>   
>> -- 
>> 1.9.1
>>
>> _______________________________________________
>> wayland-devel mailing list
>> wayland-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list