Scrolling with a WACOM tablet pen
Clash Royale CLAN TAG#URR8PPP
I've got a wacom pen with a button. How can I trigger scrolling when moving the pen with the button pressed?
According to xev
, below, the triggering events are MotionNotify with state 0x200.
If this isn't done trivially, an idea I have is to build a service to read these events from somewhere and transform them into other events. This way, I can define gestures, as well. With this approach:
- Where can I read them?
- How can I write events back?
- Are there libraries to detect gestures?
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, is_hint 0, same_screen YES
ButtonPress event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, button 2, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630667, (348,183), root:(1254,187),
state 0x200, is_hint 0, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630675, (347,184), root:(1253,188),
state 0x200, is_hint 0, same_screen YES
...
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, is_hint 0, same_screen YES
ButtonRelease event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, button 2, same_screen YES
linux xorg hardware wacom
add a comment |
I've got a wacom pen with a button. How can I trigger scrolling when moving the pen with the button pressed?
According to xev
, below, the triggering events are MotionNotify with state 0x200.
If this isn't done trivially, an idea I have is to build a service to read these events from somewhere and transform them into other events. This way, I can define gestures, as well. With this approach:
- Where can I read them?
- How can I write events back?
- Are there libraries to detect gestures?
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, is_hint 0, same_screen YES
ButtonPress event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, button 2, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630667, (348,183), root:(1254,187),
state 0x200, is_hint 0, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630675, (347,184), root:(1253,188),
state 0x200, is_hint 0, same_screen YES
...
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, is_hint 0, same_screen YES
ButtonRelease event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, button 2, same_screen YES
linux xorg hardware wacom
Just wanted to ask the same question. Any ideas?
– student
Jun 18 '16 at 15:42
What exactly are you trying to accomplish? If it's just for a certain app, it might be easier to configure it that way. For example, the GIMP will let you scroll an image if you hold down the middle button. In Firefox, I've used the "Grab and Drag" extension to make it work similarly.
– hackerb9
Dec 28 '17 at 19:20
add a comment |
I've got a wacom pen with a button. How can I trigger scrolling when moving the pen with the button pressed?
According to xev
, below, the triggering events are MotionNotify with state 0x200.
If this isn't done trivially, an idea I have is to build a service to read these events from somewhere and transform them into other events. This way, I can define gestures, as well. With this approach:
- Where can I read them?
- How can I write events back?
- Are there libraries to detect gestures?
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, is_hint 0, same_screen YES
ButtonPress event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, button 2, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630667, (348,183), root:(1254,187),
state 0x200, is_hint 0, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630675, (347,184), root:(1253,188),
state 0x200, is_hint 0, same_screen YES
...
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, is_hint 0, same_screen YES
ButtonRelease event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, button 2, same_screen YES
linux xorg hardware wacom
I've got a wacom pen with a button. How can I trigger scrolling when moving the pen with the button pressed?
According to xev
, below, the triggering events are MotionNotify with state 0x200.
If this isn't done trivially, an idea I have is to build a service to read these events from somewhere and transform them into other events. This way, I can define gestures, as well. With this approach:
- Where can I read them?
- How can I write events back?
- Are there libraries to detect gestures?
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, is_hint 0, same_screen YES
ButtonPress event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630659, (349,181), root:(1255,185),
state 0x0, button 2, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630667, (348,183), root:(1254,187),
state 0x200, is_hint 0, same_screen YES
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695630675, (347,184), root:(1253,188),
state 0x200, is_hint 0, same_screen YES
...
MotionNotify event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, is_hint 0, same_screen YES
ButtonRelease event, serial 33, synthetic NO, window 0xc00001,
root 0x2ce, subw 0x0, time 695632069, (327,486), root:(1233,490),
state 0x200, button 2, same_screen YES
linux xorg hardware wacom
linux xorg hardware wacom
edited Mar 20 '18 at 22:46
jw013
36.2k6100125
36.2k6100125
asked Sep 29 '13 at 15:39
konrkonr
1218
1218
Just wanted to ask the same question. Any ideas?
– student
Jun 18 '16 at 15:42
What exactly are you trying to accomplish? If it's just for a certain app, it might be easier to configure it that way. For example, the GIMP will let you scroll an image if you hold down the middle button. In Firefox, I've used the "Grab and Drag" extension to make it work similarly.
– hackerb9
Dec 28 '17 at 19:20
add a comment |
Just wanted to ask the same question. Any ideas?
– student
Jun 18 '16 at 15:42
What exactly are you trying to accomplish? If it's just for a certain app, it might be easier to configure it that way. For example, the GIMP will let you scroll an image if you hold down the middle button. In Firefox, I've used the "Grab and Drag" extension to make it work similarly.
– hackerb9
Dec 28 '17 at 19:20
Just wanted to ask the same question. Any ideas?
– student
Jun 18 '16 at 15:42
Just wanted to ask the same question. Any ideas?
– student
Jun 18 '16 at 15:42
What exactly are you trying to accomplish? If it's just for a certain app, it might be easier to configure it that way. For example, the GIMP will let you scroll an image if you hold down the middle button. In Firefox, I've used the "Grab and Drag" extension to make it work similarly.
– hackerb9
Dec 28 '17 at 19:20
What exactly are you trying to accomplish? If it's just for a certain app, it might be easier to configure it that way. For example, the GIMP will let you scroll an image if you hold down the middle button. In Firefox, I've used the "Grab and Drag" extension to make it work similarly.
– hackerb9
Dec 28 '17 at 19:20
add a comment |
1 Answer
1
active
oldest
votes
I ran into a much simpler variant of this problem: translating the extra keys on my mouse into keyboard/mouse-button combinations, to allow binding them in the window manager to move/resize windows. Perhaps my code can serve you as a starting point:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
The gist of the idea is that it captures input events from my mouse's /dev/input/...
device, optionally modifies them, and writes them back out to /dev/uinput
.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f92866%2fscrolling-with-a-wacom-tablet-pen%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I ran into a much simpler variant of this problem: translating the extra keys on my mouse into keyboard/mouse-button combinations, to allow binding them in the window manager to move/resize windows. Perhaps my code can serve you as a starting point:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
The gist of the idea is that it captures input events from my mouse's /dev/input/...
device, optionally modifies them, and writes them back out to /dev/uinput
.
add a comment |
I ran into a much simpler variant of this problem: translating the extra keys on my mouse into keyboard/mouse-button combinations, to allow binding them in the window manager to move/resize windows. Perhaps my code can serve you as a starting point:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
The gist of the idea is that it captures input events from my mouse's /dev/input/...
device, optionally modifies them, and writes them back out to /dev/uinput
.
add a comment |
I ran into a much simpler variant of this problem: translating the extra keys on my mouse into keyboard/mouse-button combinations, to allow binding them in the window manager to move/resize windows. Perhaps my code can serve you as a starting point:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
The gist of the idea is that it captures input events from my mouse's /dev/input/...
device, optionally modifies them, and writes them back out to /dev/uinput
.
I ran into a much simpler variant of this problem: translating the extra keys on my mouse into keyboard/mouse-button combinations, to allow binding them in the window manager to move/resize windows. Perhaps my code can serve you as a starting point:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
The gist of the idea is that it captures input events from my mouse's /dev/input/...
device, optionally modifies them, and writes them back out to /dev/uinput
.
answered Jul 22 '18 at 3:57
Vladimir PanteleevVladimir Panteleev
789418
789418
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f92866%2fscrolling-with-a-wacom-tablet-pen%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Just wanted to ask the same question. Any ideas?
– student
Jun 18 '16 at 15:42
What exactly are you trying to accomplish? If it's just for a certain app, it might be easier to configure it that way. For example, the GIMP will let you scroll an image if you hold down the middle button. In Firefox, I've used the "Grab and Drag" extension to make it work similarly.
– hackerb9
Dec 28 '17 at 19:20