Co dwa kursory to nie jeden

Rozważaliście kiedyś możliwość obsługi komputera za pomocą kilku myszy? Okazuje się, że w GNU/Linuksie jest to całkiem realna opcja. Zastosowania niech sobie każdy wymyśli sam, ja tylko podam metodę włączenia tej funkcji.

Najpierw proponuję odczytać numery identyfikacyjne urządzeń wejściowych. Służy do tego komenda xinput list. Gdy już zrozumiemy format, w jakim program nam to wypluwa, tworzymy nowy kursor* - xinput create-master JAKAŚ_NAZWA. Teraz jeszcze raz wypisujemy urządzenia poprzednią komendą (wtedy tak naprawdę jej nie potrzebowaliśmy, ale dobrze się najpierw z nią zapoznać) i przypisujemy jedną z myszy do nowo utworzonego kursora - xinput reattach ID_MYSZY ID_KURSORA. Na dobrą sprawę to już wszystko.

reklama

*) Wiem, że to pewne uproszczenie, ale większa wiedza nie jest nam potrzebna.

Aby przywrócić mysz do normalności, przydzielamy ją do domyślnego kursora, a potem kasujemy ten nasz (xinput remove-master ID_KURSORA).

Napisałem sobie skrypt do włączania i wyłączania dwóch kursorów. Jest bardzo prosty, więc raczej nie wymaga komentarza. Trzeba go oczywiście nieco zmodyfikować, ale nie jest to trudne.

#!/bin/zsh
getid()
{
	xinput list | grep -m 1 "$1" | sed 's/.*=\([^\t]*\).*/\1/'
}

MOUSEID1=$(getid "Mouse0")
MOUSEID2=$(getid "DualPoint Stick")
#if [ -z "$MOUSEID" ]; then
#	echo "The mouse is not connected"
#	exit 1
#fi

if [ -z "$(xinput list | grep '2ndMouse')" ]; then
	xinput create-master 2ndMouse
	SECOND=$(getid 2ndMouse)
	xinput reattach $MOUSEID1 $SECOND
	xinput reattach $MOUSEID2 $SECOND
	echo "Dual Wielding Mode activated"
else
	FIRST=$(getid "Virtual core pointer")
	SECOND=$(getid 2ndMouse)
	xinput reattach $MOUSEID1 $FIRST
	xinput reattach $MOUSEID2 $FIRST
	xinput remove-master $SECOND
	echo "Dual Wielding Mode deactivated"
fi

PS: Pamiętam, że był jakiś program-proteza na Windowsa, który robił coś podobnego, ale nie pamiętam nazwy. Poza tym, miewał różne dziwne problemy (chociaż przedstawione przeze mnie rozwiązanie też nie jest bez wad). 

linux oprogramowanie porady
reklama

Komentarze