Ich gehe davon aus, dass du den crosshair-Cursor meinst, den Blender 3D im Edit Mode verwendet.
Wo befinden sich die Cursor-Dateien im System?
Benutzerweit in ~/.icons, systemweit in /usr/share/icons - siehe auch Wiki-Artikel Mauszeiger.
Gibts dafür spezielle Tools…
Im Paket x11-apps befindet sich das Befehlszeilenwerkzeug xcursorgen, mit dem PNGs zusammen mit Konfigurationsdateien in X11-Cursor-Dateien konvertiert werden. Dieses Werkzeug wird normalerweise dafür verwendet, für mehr Information siehe man xcursorgen
.
…oder kann ich die z.B. mit Gimp editieren?
Es gibt das gimp-xmc-plugin 🇬🇧, womit X11-Cursor-Dateien geöffnet und gespeichert werden können. Ob das Plugin verlässlich arbeitet, weiss ich nicht, aber für einfaches Editieren ist es wohl der einfachste Ansatz.
Kann mir jemand sagen ob und wie das geht?
Das „ob“ habe ich bereits oben beantwortet, das „wie“ dagegen wird etwas umfangreicher, wenn es mit dem gimp-xmc-plugin nicht ohne Weiteres funktioniert. Das brauchbarste HowTo zu diesem Thema, dass ich finden konnte ist How to Make a Cursors File for Ubuntu 🇬🇧. Das umreisst allerdings nur die Grundlagen und lässt mir persönlich zu viele Fragen offen. In diesem Sinne für dich und aus eigenem Interesse versuche ich das in der Theorie zusammenzufassen:
Was hier folgt, ist nur die Theorie. Ungetestet!
Die X11-Cursor-Dateien werden aus verschiedenen PNGs und Konfigurationsdateien erstellt und können unterschiedliche Größen und Animationen enthalten. Die Namen der einzelnen Cursor sollen - soweit ich das verstehe - einmal einer Cursor-Spezifikation der XDG 🇬🇧 folgen, die sich im Prinzip von den Namen der Glyphen in der X11:CursorFont ableitet - siehe dazu die Definitionen in /usr/include/X11/cursorfont.h ohne das „XC_“-Präfix.
Der Aufbau des gesamten Cursor-Themes folgt dabei in ungefähr der Icon-Theme-Spezifikation der XDG 🇬🇧. Der Theme-Ordner enthält einen Ordner mit Namen cursors, in dem die X11-Cursor-Dateien abgelegt sind, und die Textdatei index.theme, die in der Spezifikation (s.o.) näher erklärt ist. Als gutes Beispiel kann man sich das dmz-cursor-theme (/usr/share/icons/DMZ-[White|Black]) ansehen, das - soweit ich mich entsinne - als Standardtheme in Ubuntu verwendet wird. Siehe dazu auch man Xcursor
.
Um die PNG-Bilddateien für ein Cursor-Theme zu erstellen kann man z.B. Inkscape und/oder Gimp verwenden. Normalerweise werden Icon-Themes heutzutage gerne mit einem Vektorgrafikprogramm erstellt und nur die kleinen Icongrößen nach dem PNG-Export in einerm Rastergrafikprogramm nachbearbeitet. Einen guten Einstieg in die Materie bieten mitunter die Tango Icon Theme Guidelines der XDG 🇬🇧 (Videotutorials inklusive).
Um sich die einzelnen X11-Cursor-Dateien als Bild direkt ansehen zu können, habe ich auf die Schnelle keine andere Möglichkeit als das gimp-xmc-plugin gefunden. Jedes Einzelbild, dass in der X11-Cursor-Datei gespeichert ist, wird damit in GIMP als eigene Ebene angezeigt. Der Ebenenname gibt dabei jeweils die Größe des Cursors wieder, sowie Frame, Verzögerung und Bildfolgeart (immer replace) für eine Animation. Diese Angaben im Ebenennamen sind wichtig, wenn man die Datei auch als X11-Cursor-Datei speichern möchte. Ebenso wichtig ist, dass das Canvas der Größe des größten Cursors entspricht - wobei Höhe immer gleich Breite sein muss - während die Größe der einzelnen Ebenen immer der Größe des jeweiligen Cursor entsprechen - bspw. größter Cursor 48x48px (Canvas 48x48px, Ebene 48x48px), mittlerer Cursor 32x32px (Canvas 48x48px, Ebene 32x32px), kleinster Cursor 24x24px (Canvas 48x48px, Ebene 24x24px). Zusätzlich muss der Hotspot der unterschiedlichen großen Cursors innerhalb einer Datei für alle Ebenen identisch sein - also z.B. die Spitze des Pfeils für alle Ebenen auf den gleichen Koordinaten auf dem Canvas liegen. Beispielsweise wäre der Ebenenname für den 32x32px arrow- bzw. default-Cursor (32px)_1(50ms)(replace) und für den animierten progress-Cursor die Ebenennamen (32px)_01(30ms)(replace) bis z.B. (32px)_31(30ms)(replace).
Mit xcursorgen dagegen muss man für alles eine einzelne PNG erstellen - also für jede Größe und jedes Frame einer Animation. Auch hierbei gilt Höhe = Breite aber die Bilder müssen nicht alle die gleiche Größe haben - also für einen 32x32px Cursor muss die PNG auch nicht größer sein, auch wenn der 48x48px Cursor entsprechend in einer 48x48px PNG vorliegt. Anschließend erstellt man zusätzlich im gleichen Verzeichsnis eine Textdatei als Konfiguration für jeden Cursor. Die Syntax dieser Konfigurationsdatei entspricht:
<Größe> <x-Koordinate des Hotspots> <y-Koordinate des Hotspots> <Bildname> <Verzögerung für Animation in Millisenkunden>
Für jedes Bild legt man eine Zeile in der Konfigurationsdatei an, wobei die Verzögerung bei einem statischen Cursor nicht angegeben werden muss. Bilder mit gleicher Größe werden als Animation zusammengefasst, Bilder mit unterschiedlicher Größe entsprechend als unterschiedliche Größen für den Cursor erkannt.
Konfigurationsdatei für arrow- bzw. default-Cursor (arrow.cursor):
48px 1 1 arrow_48.png
32px 1 1 arrow_32.png
24px 1 1 arrow_24.png
Konfigurationsdatei für progress-Cursor (progress.cursor):
48px 1 1 progress_48-01.png
...
48px 1 1 progress_48-31.png
32px 1 1 progress_32-01.png
...
32px 1 1 progress_32-31.png
24px 1 1 progress_24-01.png
...
24px 1 1 progress_24-31.png
Hat man alle PNGs und Konfigurationsdateien beisammen, kann man mit xcursorgen
die einzelnen X11-Cursor-Dateien generieren:
xcursorgen konfigurationsdatei ausgabedatei(cursorname)
Beipiel:
xcursorgen arrow.cursor default
xcursorgen progress.cursor progress
Diese beiden Befehle generieren die X11-Cursor-Dateien default und progress im gleichen Verzeichnis.
Es gibt z.B. im Verzeichnis des DMZ-Cursor-Themes noch weitere X11-Cursor-Dateien mit - auf den ersten Blick - scheinbar hexadezimalen Dateinamen. Deren Verwendungszweck kenne ich schlichtweg nicht!
Das müsste es weitesgehend sein. An Struktur und Formulierung muss ich vielleicht nochmal pfeilen, aber sobald ich die Zeit habe, geht das - nach einer kurzen Testphase - vielleicht einfach mal in einen Wiki-Artikel.
Ich hoffe, das beantwortet deine Fragen und wirft nicht zu viele Neue auf.