[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: terminal with right-click = paste?



On Wed 10 Apr 2019 at 17:21:06 (-0400), Lee wrote:
> On 4/10/19, Dan Ritter <dsr@randomstring.org> wrote:
> > Lee wrote:
> >> On 4/10/19, Dan Ritter <dsr@randomstring.org> wrote:
> >> > Lee wrote:
> >> >> I installed the xfce version of debian 9 & have a terminal icon on the
> >> >> menu bar that starts xfce4-terminal
> >> >>
> >> >> Is there some way to configure xfce4-terminal so that a right mouse
> >> >> click pastes text?
> >> >> What I have now is right-click brings up a menu where I have to left
> >> >> click on paste.  ick.
> >> >
> >> > Middle button is probably set to paste right now.
> >>
> >> It is!!  So how do I change that setting so that right click is set to
> >> paste?
> >
> > You don't! The programmers didn't include that.
> 
> wow.  just.. wow.  I wonder if that omission has anything to do with
> the xterm popcon graph showing about 100K users & xfce4-terminal
> about 28K
> 
> > You can change your button mapping for all of X with xmodmap.
> 
> but then everywhere I expect a right click to pull up a menu won't - correct?
> 
> Oh well... I'll give xterm a try.

I have a mouse with a wheel, but pressing it (as opposed to scrolling
it) is very unreliable. I have changed the middle-click method from
pressing the wheel to the old-fashioned way of dealing with 2-button
mice: pressing both buttons at once.

AFAIK this change is at the level of X and doesn't depend on the term.
Here are the steps I used. You might need to tweak the filename
~/.xsession for a DE as I use just startx and fvwm. For setting stuff
automatically, you need to ascertain the name of your X startup file.

At the end of ~/.xsession I routinely put
xinput
which lists the devices in ~/.xsession-errors which I copy into my
configuration archive. But you can just type
$ xinput at any commandline in X:
⎡ Virtual core pointer			id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech M325			id=10	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad	id=14	[slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen			id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard			id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard	id=5	[slave  keyboard (3)]
    ↳ Power Button			id=6	[slave  keyboard (3)]
    ↳ Video Bus				id=7	[slave  keyboard (3)]
    ↳ Power Button			id=8	[slave  keyboard (3)]
    ↳ Lenovo EasyCamera			id=11	[slave  keyboard (3)]
    ↳ Ideapad extra buttons		id=12	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard	id=13	[slave  keyboard (3)]
$ 

Having read that list, I add lines for devices that might interest me
in a similar way (in ~/.xsession-9-wren¹), and again you can type this
at a commandline:
$ xinput list-props "Logitech M325"
Device 'Logitech M325':
	Device Enabled (141):	1
	Coordinate Transformation Matrix (143):	0.300000, 0.000000, 0.000000, 0.000000, 0.300000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Accel Speed (281):	0.000000
	libinput Accel Speed Default (282):	0.000000
	libinput Accel Profiles Available (283):	1, 1
	libinput Accel Profile Enabled (284):	1, 0
	libinput Accel Profile Enabled Default (285):	1, 0
	libinput Natural Scrolling Enabled (286):	0
	libinput Natural Scrolling Enabled Default (287):	0
	libinput Send Events Modes Available (262):	1, 0
	libinput Send Events Mode Enabled (263):	0, 0
	libinput Send Events Mode Enabled Default (264):	0, 0
	libinput Left Handed Enabled (288):	0
	libinput Left Handed Enabled Default (289):	0
	libinput Scroll Methods Available (290):	0, 0, 1
	libinput Scroll Method Enabled (291):	0, 0, 0
	libinput Scroll Method Enabled Default (292):	0, 0, 0
	libinput Button Scrolling Button (293):	2
	libinput Button Scrolling Button Default (294):	2
	libinput Middle Emulation Enabled (295):	1
	libinput Middle Emulation Enabled Default (296):	0
	Device Node (265):	"/dev/input/event16"
	Device Product ID (266):	1133, 16394
	libinput Drag Lock Buttons (297):	<no items>
	libinput Horizontal Scroll Enabled (298):	1
$ 

Your list would look different even with the same hardware because
mine shows the effect of the mouse commands I have already added
to ~/.xsession:
# Pointers tend to be too sensitive.
# Leave the last number as 1: the other numbers are ratio'd with it.
xinput --set-prop "Logitech M325" "Coordinate Transformation Matrix" .3, 0, 0, 0, .3, 0, 0, 0, 1
# My mouse wheel is very unreliable for button 2, so use buttons 1&3.
xinput --set-prop "Logitech M325" "libinput Middle Emulation Enabled" 1

Now I can use either a wheel press or a both-button-click to paste.
The wheel still scrolls.

¹ A note on the filenames: My .xsession has hooks for host-specific
commands at three stages:

Earlyconfig="$HOME/.xsession-1-$HOSTNAME"
Midconfig="$HOME/.xsession-5-$HOSTNAME"
Lateconfig="$HOME/.xsession-9-$HOSTNAME"

     … various commands here …
     … and, nearing the end: …

[ -f "$Lateconfig" ] && . "$Lateconfig"

so the specific device lists are only about the hosts' own hardware,
plus things that might be connected, whereas the configuration
commands themselves are executed on all my hosts (and are ignored
if not present). That way, the both-button-click works wherever the
mouse is connected.

Cheers,
David.


Reply to: