[PATCH xf86-input-synaptics] syndaemon: decouple background mode from quietness

Peter Hutterer peter.hutterer at who-t.net
Sun Dec 5 17:16:48 PST 2010


On Fri, Dec 03, 2010 at 11:55:00AM +0100, Alessandro wrote:
> syndaemon currently outputs lots of stuff when not running in background mode.
> However, current init daemons and session managers can manage to launch the
> daemon in background without "-b" just fine (if not better), by doing the
> fork() themselves. Indeed, if one uses that setup, ie. by having syndaemon
> launched by GNOME at login, it gets the ~/.xsession-errors file spammed by
> Enable/Disabled messages.
> 
> This patch fixes this by introducing a new verbose (-v) flag that enables those
> messages and makes syndaemon quiet by default.
> 
> Signed-off-by: Alessandro Guido <ag at alessandroguido.name>
> ---
>  tools/syndaemon.c |   13 +++++++++----
>  1 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/syndaemon.c b/tools/syndaemon.c
> index d06fe5f..addfe40 100644
> --- a/tools/syndaemon.c
> +++ b/tools/syndaemon.c
> @@ -64,6 +64,7 @@ static XDevice *dev;
>  static Atom touchpad_off_prop;
>  static TouchpadState previous_state;
>  static TouchpadState disable_state = TouchpadOff;
> +static int verbose;
>  
>  #define KEYMAP_SIZE 32
>  static unsigned char keyboard_mask[KEYMAP_SIZE];
> @@ -82,6 +83,7 @@ usage(void)
>      fprintf(stderr, "  -k Ignore modifier keys when monitoring keyboard activity.\n");
>      fprintf(stderr, "  -K Like -k but also ignore Modifier+Key combos.\n");
>      fprintf(stderr, "  -R Use the XRecord extension.\n");
> +    fprintf(stderr, "  -v Print diagnostic messages.\n");
>      exit(1);
>  }
>  
> @@ -110,7 +112,7 @@ toggle_touchpad(Bool enable)
>      if (pad_disabled && enable) {
>          data = previous_state;
>          pad_disabled = False;
> -        if (!background)
> +        if (verbose)
>              printf("Enable\n");
>      } else if (!pad_disabled && !enable &&
>                 previous_state != disable_state &&
> @@ -118,7 +120,7 @@ toggle_touchpad(Bool enable)
>          store_current_touchpad_state();
>          pad_disabled = True;
>          data = disable_state;
> -        if (!background)
> +        if (verbose)
>              printf("Disable\n");
>      } else
>          return;
> @@ -290,7 +292,7 @@ Bool check_xrecord(Display *display) {
>  			    &first_error);
>  
>      status = XRecordQueryVersion(display, version, version+1);
> -    if (!background && status) {
> +    if (verbose && status) {
>  	printf("X RECORD extension version %d.%d\n", version[0], version[1]);
>      }
>      return found;
> @@ -433,7 +435,7 @@ void record_main_loop(Display* display, double idle_time) {
>  
>  	if (ret == 0 && pad_disabled) { /* timeout => enable event */
>  	    toggle_touchpad(True);
> -	    if (!background) printf("enable touchpad\n");
> +	    if (verbose) printf("enable touchpad\n");
>  	}
>  
>      } /* end while(1) */
> @@ -543,6 +545,9 @@ main(int argc, char *argv[])
>  	case 'R':
>  	    use_xrecord = 1;
>  	    break;
> +	case 'v':
> +	    verbose = 1;
> +	    break;
>  	default:
>  	    usage();
>  	    break;
> -- 
> 1.7.3.2

fwiw, when I tested this I had to merge this hunk in.

diff --git a/tools/syndaemon.c b/tools/syndaemon.c
index addfe40..0309fb5 100644
--- a/tools/syndaemon.c
+++ b/tools/syndaemon.c
@@ -518,7 +518,7 @@ main(int argc, char *argv[])
     int use_xrecord = 0;
 
     /* Parse command line parameters */
-    while ((c = getopt(argc, argv, "i:m:dtp:kKR?")) != EOF) {
+    while ((c = getopt(argc, argv, "i:m:dtp:kKR?v")) != EOF) {
        switch(c) {
        case 'i':
            idle_time = atof(optarg);


I just squashed it into your commit but it does make me wonder how much testing
has gone into the original patch...
 
Cheers,
  Peter


More information about the xorg-devel mailing list