You are not logged in.
Hi,
I try to click with F1 keyboard key because of finger injury, it works well with cinnamon/Debian9 but not with xfce4 and Archlinux X86_64.
I use code from here.
The code :
#!/bin/bash
set -x
exec &>/tmp/log
id=$(
xinput list |
awk '/Dell USB Keyboard/{print gensub(/.*id=([0-9]+).*/, "\\1", "1")}'
)
xdotool mousedown 1 # if I stop here; I have a mousedown !
while IFS= read -r event; do
if [[ $event == *release* ]]; then
xdotool mouseup 1
exit
fi
done < <(xinput test $id)
The log when I press F1 key to drag & drop the border of a GUI application :
- press :
+xinput list
+awk '/Dell USB Keyboard/{print gensub(/.*id=([0-9]+).*/, "\\1", "1")}'
+id=10
+xdotool mousedown 1 # executed, but no action !
+IFS=
+read -r event
+xinput test 10
- release key :
+[[ key release 67 == *release* ]]
+xdotool mouseup 1
+exit
The code is ran from xfce4 keyboard shortcuts configuration panel.
What is wrong ?
If I remove code and keep only
xdotool mousedown 1
I can drag&drop ! (but can't release it)
Last edited by Mévatlavé (2019-02-05 00:14:15)
Offline
Are you trying to move stuff around without the mouse?
If you want to move the mouse curser with xdotool (15 pxl)
up
xdotool mousemove_relative -- 0 -15
down
xdotool mousemove_relative 0 15
right
xdotool mousemove_relative 15 0
left
xdotool mousemove_relative -- -15 0
Click the mouse buttons
xdotool click 1
xdotool click 3
xdotool click 2
Move a window around, try these
xdotool getactivewindow windowmove x 0
xdotool getactivewindow windowmove 10 10
xdotool getactivewindow windowmove --relative 0 -100
xdotool getactivewindow windowmove --relative 0 30
xdotool getactivewindow windowmove --relative -- -30 0
xdotool getactivewindow windowmove --relative -- 30 -30
Simple shell demo
while :; do
for i in {1..300..10}; do
xdotool getactivewindow windowmove "$i" "$i"
sleep .1
done
for i in {300..500..10}; do
xdotool getactivewindow windowmove "$i" 300
sleep .1
done
for i in {300..10..10}; do
xdotool getactivewindow windowmove 500 "$i"
sleep .1
done
for i in {500..10..10}; do
xdotool getactivewindow windowmove "$i" 10
sleep .1
done
done
Offline
Thanks, but what I try to do is not to move mouse cursor programmaticaly but by moving the mouse and F1 press.
Because of a finger injury, I can't press with my index finger the left clicks
Last edited by sputnick (2019-02-13 21:59:50)
Offline
and you've got only one hand with a single injured finger ?
Last edited by N_BaH (2019-02-13 22:34:25)
Offline
Both.
I just try to figure how to map left click on F1 key, I'm pretty sure it's possible.
I don't want to use mouse on left hand, index finger have the same injury
Offline
Can't you just bind the command: "xdotool click 1" to a key from the keyboard options?
PS: But then you wouldn't be able to drag and drop, sorry I didn't read properly. I will give it another thought.
Last edited by izmvpt (2019-02-14 12:39:43)
Offline
This worked for me.
This gave me a mouse down for 3 secs then mouse up.
I was able to drag/resize a window for 3 secs and then mouse up.
xdotool mousedown 1; sleep 3; xdotool mouseup 1
So...I made an entry in my ~/.fluxbox/keys file.
F1 :Exec (xdotool mousedown 1; sleep 3; xdotool mouseup 1)
I could then position the mouse curser on the corner of the window,
press F1, resize the window back and forth for 3 seconds,
then mouse up.
For moving a window, if I placed the mouse curser on the window
header and then pressed F1, I could move the window but never got a
mouse up. Which is why I suggested post #2 for moving windows.
You should be able to do what you want to do from that.
Launch xterm when the curser is moved to the far left of the screen
xdotool behave_screen_edge --quiesce 750 left exec xterm
Then if you want to close a window/ right click on a menu/ open a link/ ect.. Put your mouse curser on the item and
xdotool click 1
xdotool click 3
xdotool click 2
I'll let you figure out your own window manager. I can do all of that
in fluxbox without xdotool
# Use arrow keys to move-resize.
# Window resize, all except arrow keys disabled. Escape to exit.
Control Mod4 r :KeyMode ResizeMode
ResizeMode: None Up :ResizeVertical -8
ResizeMode: None Down :ResizeVertical +8
ResizeMode: None Left :ResizeHorizontal -8
ResizeMode: None Right :ResizeHorizontal +8
# Window move, all except arrow keys disabled. Escape to exit.
Control Mod4 m :KeyMode MoveMode
MoveMode: None Up :MoveUp 20
MoveMode: None Down :MoveDown 20
MoveMode: None Left :MoveLeft 20
MoveMode: None Right :MoveRight 20
#Resize on focused window
Mod1 Up :Resize -5% -5%
Mod1 Down :Resize 6% 6%
.........etc
Last edited by teckk (2019-02-14 14:47:50)
Offline