Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
I got sick of typing 'xinput set-prop "foo" "Device Enabled" 0'

 src/property.c |   14 ++++++++++++++
 src/xinput.c   |   10 ++++++++++
 src/xinput.h   |    2 ++
 3 files changed, 26 insertions(+)

diff --git a/src/property.c b/src/property.c
index 3ab2cb0..a4d07f6 100644
--- a/src/property.c
+++ b/src/property.c
@@ -824,3 +824,17 @@ int set_prop(Display *display, int argc, char *argv[], 
char *name,
 
     return do_set_prop(display, type, format, argc, argv, name, desc);
 }
+
+int disable(Display *display, int argc, char *argv[], char *name, char *desc)
+{
+    char *new_argv[3] = { NULL, "Device Enabled", "0" };
+    new_argv[0] = argv[0];
+    return set_prop(display, 3, new_argv, name, desc);
+}
+
+int enable(Display *display, int argc, char *argv[], char *name, char *desc)
+{
+    char *new_argv[3] = { NULL, "Device Enabled", "1" };
+    new_argv[0] = argv[0];
+    return set_prop(display, 3, new_argv, name, desc);
+}
diff --git a/src/xinput.c b/src/xinput.c
index a1bb221..0f86720 100644
--- a/src/xinput.c
+++ b/src/xinput.c
@@ -137,6 +137,16 @@ static entry drivers[] =
       "<device> [--type=atom|float|int] [--format=8|16|32] <property> <val> 
[<val> ...]",
       set_prop
     },
+    {
+      "disable",
+      "<device>",
+      disable,
+    },
+    {
+      "enable",
+      "<device>",
+      enable,
+    },
     {NULL, NULL, NULL
     }
 };
diff --git a/src/xinput.h b/src/xinput.h
index b420e61..c37e6e6 100644
--- a/src/xinput.h
+++ b/src/xinput.h
@@ -69,6 +69,8 @@ int set_atom_prop( Display* display, int argc, char *argv[], 
char *prog_name, ch
 int watch_props( Display* display, int argc, char *argv[], char *prog_name, 
char *prog_desc);
 int delete_prop( Display* display, int argc, char *argv[], char *prog_name, 
char *prog_desc);
 int set_prop( Display* display, int argc, char *argv[], char *prog_name, char 
*prog_desc);
+int disable( Display* display, int argc, char *argv[], char *prog_name, char 
*prog_desc);
+int enable( Display* display, int argc, char *argv[], char *prog_name, char 
*prog_desc);
 
 /* X Input 2.0 */
 int create_master( Display* display, int argc, char *argv[], char *prog_name, 
char *prog_desc);
-- 
1.7.10.1

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to