<div><br></div><div>Uri,</div><div><br></div><div>Would it be as simple as adding:</div><div><br></div><div>ioctl(uinput->fd, UI_SET_KEYBIT,    BTN_BACK);</div><div>ioctl(uinput->fd, UI_SET_KEYBIT,   BTN_FORWARD);</div><div><br></div><div>and re-compiling / testing?</div><div><br></div><div>I am not an experienced coder and have not had the time yet to get a good overview of the spice-vdagent code, so this might be a too simple approach.</div><div><br></div><div>I guess all of these values might be tested:</div><div><br></div><div>#define BTN_MISC        0x100<br>#define BTN_0            0x100<br>#define BTN_1            0x101<br>#define BTN_2            0x102<br>#define BTN_3            0x103<br>#define BTN_4            0x104<br>#define BTN_5            0x105<br>#define BTN_6            0x106<br>#define BTN_7            0x107<br>#define BTN_8            0x108<br>#define BTN_9            0x109<br><br>#define BTN_MOUSE        0x110<br>#define BTN_LEFT        0x110<br>#define BTN_RIGHT        0x111<br>#define BTN_MIDDLE        0x112<br>#define BTN_SIDE        0x113<br>#define BTN_EXTRA        0x114<br>#define BTN_FORWARD        0x115<br>#define BTN_BACK        0x116<br>#define BTN_TASK        0x117</div><div><br></div><div>Is there any way to test the btn value? Like xev is not showing me anything related to this value?<br></div><div><br></div><div>Your input is appreciated!</div><div><br></div><div>Thanks<br></div><div><br></div><br><br><blockquote type="cite" style="margin:0 0 0 0.5em;border-left:1px #00f solid;padding-left:1em;">De : Uri Lublin <uril@redhat.com><br>
À : bruts@netc.fr;<br>
   spice-devel@lists.freedesktop.org<br>
Sujet : Re: [Spice-devel] spice-vdagent: how to enable additional mouse buttons?<br>
Date : 11/05/2020 15:23:30 Europe/Paris<br>
<br>
On 5/11/20 4:08 PM, bruts@netc.fr wrote:<br>
> Hi,<br>
> <br>
> <br>
> <br>
> Yes most likely.<br>
> <br>
> I find these lines of code:<br>
> <br>
> <br>
> <br>
> /* buttons */<br>
>      ioctl(uinput->fd, UI_SET_EVBIT, EV_KEY);<br>
>      ioctl(uinput->fd, UI_SET_KEYBIT, BTN_LEFT);<br>
>      ioctl(uinput->fd, UI_SET_KEYBIT, BTN_MIDDLE);<br>
>      ioctl(uinput->fd, UI_SET_KEYBIT, BTN_RIGHT);<br>
> <br>
>      /* wheel */<br>
>      ioctl(uinput->fd, UI_SET_EVBIT, EV_REL);<br>
>      ioctl(uinput->fd, UI_SET_RELBIT, REL_WHEEL);<br>
> <br>
> <br>
> I will probably need to declare the additional mouse buttons of my mouse (Logitech G403), so I run xev to find some information:<br>
> <br>
> <br>
> <br>
> (BTN_LEFT, BTN_RIGHT, button 8, button 9)<br>
> <br>
> <br>
> <br>
> ButtonPress event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 361327, (127,94), root:(128,144),<br>
>      state 0x0, button 1, same_screen YES<br>
> <br>
> ButtonRelease event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 361426, (127,94), root:(128,144),<br>
>      state 0x100, button 1, same_screen YES<br>
> <br>
> ButtonPress event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 362448, (127,94), root:(128,144),<br>
>      state 0x0, button 3, same_screen YES<br>
> <br>
> ButtonRelease event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 362556, (127,94), root:(128,144),<br>
>      state 0x400, button 3, same_screen YES<br>
> <br>
> ButtonPress event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 366829, (127,94), root:(128,144),<br>
>      state 0x0, button 8, same_screen YES<br>
> <br>
> ButtonRelease event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 366949, (127,94), root:(128,144),<br>
>      state 0x0, button 8, same_screen YES<br>
> <br>
> ButtonPress event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 368093, (127,94), root:(128,144),<br>
>      state 0x0, button 9, same_screen YES<br>
> <br>
> ButtonRelease event, serial 48, synthetic NO, window 0x3000001,<br>
>      root 0x3ad, subw 0x0, time 368250, (127,94), root:(128,144),<br>
>      state 0x0, button 9, same_screen YES<br>
> <br>
> <br>
> <br>
> Now the next question is obvious: how do I adjust the code to add support for button 8,9 ?<br>
> <br>
> <br>
> <br>
> I thought BTN_LEFT and BTN_RIGHT would be declared in uinput.h but they are global variables? or where are they declared?<br>
<br>
I found them in<br>
/usr/include/linux/input-event-codes.h.<br>
There is also   BTN_BACK but I'm not sure it's mapped to any of button-8 <br>
or 9.<br>
<br>
Uri.<br>
<br>
> <br>
> Any help with adding support for these buttons would be very appreciated and finally make me stop using virtualbox lol.<br>
> <br>
> Thanks!<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> De : Uri Lublin <uril@redhat.com><br>
> À : bruts@netc.fr;<br>
>     spice-devel@lists.freedesktop.org<br>
> Sujet : Re: [Spice-devel] spice-vdagent: how to enable additional mouse buttons?<br>
> Date : 03/05/2020 17:33:55 Europe/Paris<br>
> <br>
> On 5/1/20 3:51 PM, bruts@netc.fr wrote:<br>
>><br>
>> I am using spice-vdagent on most of my qemu-kvm vm's, while this is very<br>
>> convenient, mouse button 8 and 9 are not working (those are the side<br>
>> buttons of the mouse, one is often used for BACK function of the<br>
>> browser, which my thumb is actually addicted to).<br>
>> How could i make these buttons work with spice-vdagent?<br>
> <br>
> Hi,<br>
> <br>
> Currently 5 mouse buttons are supported. I think some code is needed to<br>
> be added in order to support more buttons.<br>
> <br>
> Uri.<br>
> <br>
>><br>
>> Thanks for the suggestions,<br>
>><br>
>> Bruts<br>
> <br>
> <br>
> <br>
<br></blockquote>