Mouse buttons on shoulders without losing shoulder modifiers


comradekingu

Glowing ember
Joined
Apr 15, 2011
Messages
5,072
Website
portfolio.anotheragency.no
L1 and R1 is always above L2 and R2. When they are double, which is PS-layout.

If you use an external keyboard and mouse it isnt tablettop mode anymore, then you are using it as a screen console.

I agree, the default should be sane, so that no hacks are needed. Hacks possible is very welcome.

For FPS im  thinking dpad+right nub+shoulders or buttoncluster+left nub+shoulders is the best.

Ill try to order some of the nubs and see how they fare.
 
Last edited by a moderator:

_wb_

Microbe
Staff member
Joined
Apr 5, 2012
Messages
5,390
Age
39
Location
Brussels, Belgium
In my proposals, Shift and Ctrl are on the bottom shoulder buttons (which I call L1/R1 and you call L2/R2), while Meta and Alt are on the top shoulder buttons (which I call L2/R2 and you call L1/R1). The mouse buttons would specifically be overloaded with the top shoulder buttons, because Shift/Ctrl + click/drag is more important than Meta/Alt + click/drag, and because the top shoulder buttons are more usable in tabletop mode than the bottom ones.

I would argue that the bottom shoulder buttons should be called L1/R1 for backwards compatibility with the Pandora. It also makes more sense to me to make the 'big' shoulder buttons the primary, number 1 buttons, while the 'small', additional, new shoulder buttons are secondary, number 2 buttons. But that's just my opinion.
 

rygD

Nihilistic Mystic
Joined
Feb 28, 2014
Messages
7,481
Location
Everywhere
In Xfce singleclick selects, and doubleclick enters. Clicking a selected folder does nothing, so it has to be done quickly. I think its better to change this so that clicking something that is selected also opens.
 I am pretty sure hitting enter will also work in place of double clicking.  This is an alternative, not a solution to the mouse button issue, so your idea may work.  Another option is single clicking opens it.  If you are trying to highlight one or more items you can click and drag (maybe) or use shift or ctrl with your clicks, whichever is appropriate.



In most tabletop situations, I would imagine most people to use an external keyboard and mouse (and screen) anyway.
Most often when I am using my Pandora on a table I am out somewhere, and don't always lug around an extra keyboard, mouse and monitor.  I do not have a tv out cable.  If I am doing something at a desk I usually use a different computer, not the Pandora, and if I am using both I have the Pandora to the side or behind the keyboard.  If I feel the Pyra can fill my needs in place of a laptop or something I may get a docking station, but most times I am out of the house I will not have that.  You might not want to assume that people using a highly portable device on a table will usually be using it in a desktop typical set up.

For FPS im  thinking dpad+right nub+shoulders or buttoncluster+left nub+shoulders is the best.
I am confused by what you mean.  I think that combination might be good.  Send me a message if you think discussing it here will derail the thread. 
 

edgex004

Advanced Member
Joined
Jan 5, 2008
Messages
1,204
The issue I have with the proposal is that you have to release the button in order for the mouse click to register. This would rule out click-drag, for instance to drag a window or select a region of the screen. You would need to:

1. Switch to finger or stylus for that

2. Have another pattern for click drag, such as press-release-press-hold.

3. Have another one of you buttons fn-modify to click drag.
 

_wb_

Microbe
Staff member
Joined
Apr 5, 2012
Messages
5,390
Age
39
Location
Brussels, Belgium
The issue I have with the proposal is that you have to release the button in order for the mouse click to register. This would rule out click-drag, for instance to drag a window or select a region of the screen. You would need to:


1. Switch to finger or stylus for that


2. Have another pattern for click drag, such as press-release-press-hold.


3. Have another one of you buttons fn-modify to click drag.
You didn't read my proposal closely enough. Dragging is not ruled out at all.

L2-keydown would not immediately produce an event by itself, but it would wait until the next event:

- If the next event is L2-keyup, it produces LeftMouseDown immediately followed by LeftMouseUp (i.e. a left click).

- If the next event is mouse movement, it produces LeftMouseDown just before the first movement becomes an event, and whenever there's an L2-keyup, it's a LeftMouseUp. So in this case you are doing a left drag.

- If the next event is a keyboard key (A-Z, 0-9, symbols etc), then it produces a MetaDown event, and whenever there's a L2-keyup, it will be a MetaUp event.

- If the next event is a modifier key (L1, R1, R2, or one of the keyboard modifier keys), then the decision of what event L2-keydown produces gets postponed until the next event.
 

edgex004

Advanced Member
Joined
Jan 5, 2008
Messages
1,204
The issue I have with the proposal is that you have to release the button in order for the mouse click to register. This would rule out click-drag, for instance to drag a window or select a region of the screen. You would need to:


1. Switch to finger or stylus for that


2. Have another pattern for click drag, such as press-release-press-hold.


3. Have another one of you buttons fn-modify to click drag.
You didn't read my proposal closely enough. Dragging is not ruled out at all.


L2-keydown would not immediately produce an event by itself, but it would wait until the next event:


- If the next event is L2-keyup, it produces LeftMouseDown immediately followed by LeftMouseUp (i.e. a left click).


- If the next event is mouse movement, it produces LeftMouseDown just before the first movement becomes an event, and whenever there's an L2-keyup, it's a LeftMouseUp. So in this case you are doing a left drag.


- If the next event is a keyboard key (A-Z, 0-9, symbols etc), then it produces a MetaDown event, and whenever there's a L2-keyup, it will be a MetaUp event.


- If the next event is a modifier key (L1, R1, R2, or one of the keyboard modifier keys), then the decision of what event L2-keydown produces gets postponed until the next event.
Ah okay.
 

elw3

ƐʍlƎ
Joined
Aug 10, 2010
Messages
1,517
I stiched together a little python script that should let the R button behave like that on the pandora. Just for demonstration and such....

I think this is pretty cool, try moving files around or select them, this is way better than the nub.

Do not move windows, srsly that crashes x. 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from threading import Thread
from threading import activeCount
from time import sleep
from subprocess import Popen,PIPE,call

class datas():
key=0
nub=0
co=0
state=0

#monitor keyboard
def keys():
data= open("/dev/input/event0" ,"rb" )
while 1:
data.read(32)
datas.key+=1
datas.co+=1
print datas.key
class key(Thread):
def __init__(bla):
Thread.__init__(bla)
def run(bla):
keys()
key().start()
#nub
def nubs():
data= open("/dev/input/event2" ,"rb" )
while 1:
data.read(32)
datas.nub+=1
datas.co+=1
class nub(Thread):
def __init__(bla):
Thread.__init__(bla)
def run(bla):
nubs()
nub().start()
#pressing
def actions():
while datas.co==0:
# sleep(0.000000001)
pass
if datas.nub > 0:
print "nubnub"
call('xdotool mousedown 1', shell=True)
while datas.state==1:
pass
call('xdotool mouseup 1', shell=True)
elif datas.key == 0:
call('xdotool click 1', shell=True)


class action(Thread):
def __init__(bla):
Thread.__init__(bla)
def run(bla):
actions()
#modkey
def mods():
# keys=[['Up', '670001', '670000'], ['Down', '6c0001', '6c0000'], ['Left', '690001', '690000'], ['Right', '6a0001', '6a0000'], ['Y', '680001', '680000'], ['B', '6b0001', '6b0000'], ['X', '6d0001', '6d0000'], ['A', '660001', '660000'], ['L', '360001', '360000'], ['R', '610001', '610000'], ['Start', '380001', '380000'], ['Select', '1d0001', '1d0000'], ['Pando', '8b0001', '8b0000']]
keyss=[['R', '610001', '610000']]
data= open("/dev/input/event4" ,"rb" )
while 1:
button=data.read(32)
for i in keyss:
if button.encode('hex_codec')[20:26] == i[1]:
datas.key=0
datas.nub=0
datas.co=0
datas.state=1
print "press"
print datas.key
print datas.nub
print datas.co
print datas.state
action().start()
if button.encode('hex_codec')[20:26] == i[2]:
datas.co=1
datas.state=0
print "release"
print datas.key
print datas.nub
print datas.co
print datas.state

class mod(Thread):
def __init__(bla):
Thread.__init__(bla)
def run(bla):
mods()
mod().start()
You can change the mouse key according to the big outcommented line (or make everything a mouse key!). Event 2 is the left nub while 3 should be right as indicator for dragging. 
 
Last edited by a moderator:
Top