Block > Maus

Passend zu “30 Jahren Maus” (eigentlich nicht), stelle ich hier ein paar kleine Programme vor, die die Maus per Shell steuern koennen und auch noch, wie Mauszeiger erstellt und geaendert werden koennen.

Wichtig ist natuerlich erstmal das Verschieben der Maus. Das geht mit xdotool:

xdotool mousemove 100 100

oder auch dem kleinen Programm swarp von suckless, was allerdings nicht das Fenster fokusiert, nachdem der Zeiger verschoben wurde.

xdotool hat noch andere Optionen, wie z.B.:

Damit kann schon eine Menge gemacht werden ;)
Uebrigens koennen mit xdotool u.a. auch Tasten gedrueckt werden.
Hilfreich ist dabei eventuell auch das Tool xev, was viele Informationen ueber X Events (Druecken einer Taste, Bewegen der Maus usw.) liefert.

Cool ist auch noch das Deaktivieren der Maus (sodass sie nicht mehr verschiebbar ist):

DISPLAY=":0" xinput disable `DISPLAY=":0" xinput | grep Mouse | tr -d " " | awk '{print $2}' | sed 's/id\=//'`

Wieder aktiviert werden kann die Maus ueber:

DISPLAY=":0" xinput enable `DISPLAY=":0" xinput | grep Mouse | tr -d " " | awk '{print $2}' | sed 's/id\=//'`

Erwaehnenswert ist auch noch unclutter, was die Maus bei inaktiver Nutzung ausblendet (hilfreich z.B. beim Filme gucken):

Mauszeiger aendern

Das wollte ich schon immer einmal machen (schon unter Windows), nur hatte ich bisher nicht gedacht, dass es so einfach ist.

Mauszeiger erstellen

Es faengt erstmal damit an, einen Zeiger zu basteln.
Das Programm meiner Wahl war Gimp, mit dem ich ein Fadenkreuz gebastelt habe:

Fadenkreuz

Das Bild muss 32x32 Pixel gross und transparent sein, abgespeichert habe ich es dann unter dem Namen left_ptr.png.
Das reicht erstmal fuer einen Test, insgesamt muessen (wenn es richtig gemacht werden soll) 180 Zeiger erstellt werden.
Ich habe es mir einfach gemacht und es bei diesem einen Zeiger gelassen.

Wichtig ist noch eine andere Datei, naemlich die Infodatei, in der z.B. drin steht, wo der eigentliche Zeiger (Klickpunkt; ein Pixel) sein soll.
Der Aufbau der Infodatei left_ptr.cursor zu meinem Zeiger:

32 15 15 left_ptr.png
|  |  |  \__________/
|  |  |        |
|  |  |        \- Name des Zeigerbildes
|  |  |
|  |  \- Y-Koordinate des Mauszeigers
|  |
|  \- X-Koordinate des Mauszeigers
|
\- Pixelgroesse (quadratisch, also 32x32)

Uebrigens koennen alle Zeiger auch animiert sein, das brauche ich aber nicht, daher hier nur der Link zu einer Anleitung.

Erstellt werden kann dann der Zeiger mit xcursorgen:

xcursorgen left_ptr.cursor left_ptr
\________/ \_____________/ \______/
     |            |            |
     |            |            \- Ausgabedatei (der eigentliche
     |            |               Cursor/Zeiger)
     |            |
     |            \- Gerade erstellte Infodatei
     |
     \- Programm zum Erstellen des Zeigers

Um das ganze nun systemweit verfuegbar zu machen, muss unter /usr/share/icons ein Ordner erstellt werden, bei mir z.B. test.
In den Ordner kommt nun eine index.theme und ein Ordner cursors mit den ganzen Cursordateien.

Der Aufbau der index.theme:

[Icon Theme]
Name=test
Comment=test icon theme

Um den Ordner cursors zu fuellen, hab ich nun einfach meinen Cursor left_ptr genommen und in 179 mal kopiert. Jeder Cursor hat dabei einen eigenen Namen, die in dieser Datei enthalten sind.
Hier das Skript (der Cursor left_ptr und die Datei names.txt muessen in /usr/share/icons/test liegen), was alles kopiert:

mkdir -p /usr/share/icons/test/cursors
cd /usr/share/icons/test
while read line ; do
    cp left_ptr cursors/$line
done < names.txt

chown -R root:root .
chmod -R 755 .

Achtung: alles muss dem User root gehoeren und die Rechte 755 haben (wird in den letzten beiden Zeilen erledigt).

Mauszeiger auswaehlen

Nun wollte ich die Zeiger natuerlich auch nutzen.

Entweder koennen die Zeiger (bzw. das Theme) ueber das Programm lxappearance ausgewaehlt werden, oder per Shell:

In die ~/.Xresources muss folgendes rein:

Xcursor.theme: test

Nun muss diese Datei nur noch geladen werden:

xrdb ~/.Xresources &

Wenn immer noch nichts passiert ist, den Fenstermanager bzw. X neustarten. Ist dann immer noch nichts geschehen, sollte eine der anderen Moeglichkeiten von hier ausprobiert werden.

Quellen:
https://wiki.archlinux.org/index.php/Mouse_Cursors
http://wiki.ubuntuusers.de/Mauszeiger
http://wiki.ubuntuusers.de/xcursorgen
Geholfen hat auch das Dummy-Theme.

Geschrieben: 2014-01-24, 21:05 - Tags: linux, maus