Main /

Mauszeiger Selbst Erstellen

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

Mauszeiger Selbst Erstellen

Mauszeiger selbst erstellen

Früher™ war es einfach, da gab es keine Mauszeiger, der Atari-8Bit und der C64 kannten zu dessen Markteinführung keine Maus. Erst mit der unbezahlbaren Lisa, dann dem Atari ST/Mac und Amiga kam die Maus. Es gab nicht viele unterschiedliche Zeiger. Das hat sich gewandelt, der Mauszeiger ist kontextsensitiv und an vielen Stellen im Fenster zeigt der Mauszeiger ein anderes Bild.

Ein simples Durchzählen eines Mauszeiger Themes zeigt 114 verschiedene Zeiger.

 ls -1 /usr/share/icons/breeze_cursors/cursors | wc -l
 114

 Allerdings sind viele Zeiger doppelt vergeben. Jeder Mauszeiger/Cursor hat einen Namen der leicht auf dessen Kontext zurückzuführen ist. 

Um das etwas besser zu verstehen, habe ich einfach mal ein paar Bilder mit Zahlen erstellt und daraus Mauszeiger gemacht. Und da man so etwas bei der Masse nicht selbst pixelt, nutzt man ImageMagick, dann geht das per Script.

 for COUNT in $(seq 1 114); do
   convert -size 32x32 -fill black -font Arial -pointsize 12 label:"$COUNT" $COUNT.png
 done

Das Bash-Script erzeugt mal ganz fix 114 Bilder.

Da aber PNG-Bilder nicht als Mauszeiger direkt dargestellt werden können, bedarf es des Programmes xcursorgen, das allerdings eine eigene Config-Datei braucht.

 mkdir -p cursors
 for COUNT in $(seq 1 114); do
   echo "32 1 1 $COUNT.png 1000" >cursor.in         # Config-Datei
   xcursorgen cursor.in cursors/$COUNT
 done

Jetzt hat man 114 Dateien die als Name 1-114 haben. Diese müssen jetzt mit den Namen aus einem anderen Cursor-Theme verheiratet werden. Was liegt da näher als symbolische Links zu verwenden.

 cd cursors
 COUNT=1
 for FILE in $(ls -1 /usr/share/icons/breeze_cursors/cursors); do
   ln -s $COUNT $FILE
   COUNT=$((COUNT + 1))
 done

Jetzt haben wir in einem cursors-Verzeichnis 114 Cursor-Bilder und 114 symbolische Links die auf diese Namen zeigen.

Um die Cursor im System sichtbar zu machen, muss im $HOME-Verzeichnis ein .icons/ Verzeichnis mit folgender Struktur existieren:

 .icons/
   default/
     index.theme
   mycursors/
     cursors/

in der Datei ~/.icons/default/index.theme is das aktuelle Zeiger-Theme hinterlegt.

 [Icon Theme]
 Inherits=mycursors

Existiert die index.theme nicht, einfach anlegen.

Nur noch am Desktop abmelden und wieder anmelden und diese "Zahlen" Icons sollten zu sehen sein. Der Klickpunkt ist immer oben links. Die Zahlen in der config-Datei von xcursorgen (32 1 1) geben die quadratische Größe an und den Klickpunkt in x,y. Man kann auch gnome-tweaks starten und den Zeiger-Theme auswählen.

Jetzt kann man mit der Maus über den Bildschirm wandern und jeden Zeiger als Zahl sehen. Im Direktory mittels ls -al kann man zu jedem Namen auch dessen Zahl sehen. Also z.B. mit der Maus über den Rand und es wird eine Nummer gezeigt, mittels ls -al lässt sich der Name herausfinden.

Wer jetzt eigene Cursor haben möchte, kann sich einfach mittels Gimp eigene Zeiger erstellen. Die Bildchen als PNG exportieren. Mit einem Editor die Config-Datei erstellen, dabei den Klickpunkt richtig wählen, oben links ist 0,0. Dann per xcursorgen zum Zeiger machen:

 xcursorgen Config-Datei <cursors/Neuer Mauszeiger Cursor>

und die symbolischen Links sukzessiv ersetzen mit:

 ln -sf <Neuer Mauszeiger Cursor> <Name der auf die gewünschte Nummer zeigt>

Man braucht vielleicht 15 verschiedene Bildchen, um das zu bewerkstelligen.

Faule nehmen jetzt einen Icon-Editor und erstellen sich einen Satz Zeiger. Aber mich interessierte

  1. die Technik dahinter und
  2. habe ich ein paar nette Zeiger gefunden, für die es kein Linux/Gnome/KDE Theme gibt. https://www.deviantart.com lässt grüßen.

Noch etwas: Animationen kann xcursorgen auch, man muss nur die einzelnen Bilder angeben, die zu einer Animation verschmelzen. Für jedes Bild eine Zeile, den Zeit, wie lange ein Bild dargestellt werden soll, gibt die letzte Zahl in Millisekunden an. 1000ms = 1s.

Wer jetzt eine *.ani Datei hat und ein etwas moderneres OS, das evtl. mit *.ani Dateien überhaupt nichts mehr anfangen kann. Solus z.B. dem sei dieses kleine C-Programm ans Herz gelegt.

https://github.com/Mastermindzh/Scripts/blob/master/c%2B%2B/ani2png.c

Es suggeriert zwar aus einer Ani-Datei PNG-Dateien zu erstellen, aber es werden Cur-Dateien mit falscher Endung (.png), diese Dateien müssen erst noch mittels ImageMagick convert in echte PNG-Dateien gewandelt werden. Tipp: Wer das Programm mittels gcc selbst baut, steht ja in dessen erster Zeile wie das geht, kann gleich noch das falsche ".png" in ".cur" ersetzen. Dann ist die Endung gleich richtig.

Muss man halt wissen. Wenn das geklappt hat, noch schnell die xcursorgen-Config-Datei erstellen und schon hat man auch animierte Mauszeiger.

Heidenarbeit das alles mal herauszufinden.

Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 17.06.2021 16:37 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki