xinit -kein Mauszeiger

  • Hi,

    ich möchte das Programm "sunvox" mittels "xininit" auf meinem Raspi

    starten.

    Das funktioniert aus der Shell mit dem Aufruf:

    xinit /root/sunvox/sunvox

    Das Blöde ist nur, das dabei kein Mauscursor erscheint.

    Wenn ich blind mit der Maus auf dem Tisch rumfahre und klicke,

    passiert schon was im Programm, allerdings sehe ich keinen Mauspfeil.

    Weiß da wer Rat?

    thx

  • Hi,

    sunvox läuft ja, das muß man nur auspacken und mittels xinit oder startx starten.

    Nur gibts keinen Mauszeiger, obwohl die Maus "blind" -wie beschrieben- funktioniert.

  • whoami (AKA who am I), der xinit aufruft ?


    xinit (ohne Optionen) initialisiert das X Windows System nur rudimentär, ohne Displaymanager und dem ganzen grafischen Pi Pa Po. Siehe <man xinit>


    Wenn nach startx auch der Mauszeiger fehlt, solltest Du in den Logfiles (/var/log/) und/oder den versteckten x---error Files im home-Verzeichnis einen Grund für das Fehlen des Mauszeigers finden.



    Servus !



    Ed: Wenn gar kein Mauszeiger vom Grafikorogramm unterstützt wird - siehe oben - wird natürlich auch nichts angezeigt.

    Wer nichts weiß, muss alles glauben.

    Einmal editiert, zuletzt von RTFM ()

  • Zitat

    xinit (ohne Optionen) initialisiert das X Windows System nur rudimentär, ohne Displaymanager und dem ganzen grafischen Pi Pa Po.

    So soll das auch sein. Hier ist weder ein display manager (xdm, gdm, erschießmichdm) noch irgendein window manager (gnome, Pixel, sonstwas) installiert, nur die Pakete "xserver-xorg", "xinit" und "xinput".


    Das ist hier ein Pi Zero auf dem nur "sunvox" im Vollbildmodus mit Mausbedienung und angeschlossenem MIDI Keyboard laufen soll.


    Hab jetzt ne halbe Lösung.

    Wenn ich "xterm" über "xinit" starte:

    "xinit /usr/bin/xterm" bekomme ich auch nen Mauszeiger und der bleibt persitent,

    wenn ich sunvox aus dem X-Terminal starte.

    Ist aber von Hinten durch die Brust

  • So soll es eigentlich nicht sein, dass Du einfach Argument mit Option verwechselst und Du Dir den Blick in die man page ersparst.


    Da darft Du Linux oder X-Org nicht verantwortlich machen, wenn Du dann nur eine halbherzige Lösung zustandebringst.



    Servus !

    Wer nichts weiß, muss alles glauben.

  • RTFM schrieb:

    Ed: Wenn gar kein Mauszeiger vom Grafikorogramm unterstützt wird - siehe oben - wird natürlich auch nichts angezeigt.

    ?

    Natürlich läßt sich das Programm mit Maus bedienen, weiß ich aber nun, woher der Mauszeiger kommt?

    Qsynth oder xterm läßt sich auch über xinit starten und da ist dann jeweils automatisch ein Mauspfeil,

    bei sunvox nicht, obwohl die Maus offensichtlich im Programm was macht.


    Ich bitte noch um Aufklärung, wen ich hier für irgendwas verantwortlich gemacht hätte?

    Meine Frage war: Warum sehe ich keinen Mauspfeil?

  • Du machst Linux dafü verantworlich, dass der Mauszeiger bei < xinit DeinXprogramm > nicht erscheint obwohl in den mitinstallierten man pages steht.


    xinit [ [ client ] options ... ] [ -- [ server ] [ display ] options... ]


    Dort steht auch, wie es sich mit .xinitrc und .xserverrc in den homedirs der user verhält und dass xterm nur aufderufen wird, wenn kein Clientorigramm als Argument angegeben wird.


    Du siehst daher deshalb keinen Mauszeiger, weil die xinit Syntax nicht stimmt.



    Servus !

    Wer nichts weiß, muss alles glauben.

  • Zitat

    Du machst Linux dafü verantworlich, dass der Mauszeiger bei < xinit DeinXprogramm > nicht erscheint obwohl in den mitinstallierten man pages steht.



    xinit [ [ client ] options ... ] [ -- [ server ] [ display ] options... ]

    Das verbietet mir die Bescheidenheit!

    Eher ist es wohl meine Abneigung man pages durchzuackern.

    Dein Schubser ging aber in die richtige Richtung und Dank dafür.

    Ich dachte Foren wären dafür gut, Leute zu befragen, die das tun,

    lieber "RTFM". :mrgreen:

    Pfundst jedenfalls, wenn ich sunvox über xinit > xterm starte.

    *sunny.sh:


    #!/bin/sh

    xinit /usr/bin/xterm -geometry 40x20+0+0 -rv /root/sunvox/sunvox


    Der Witz ist, daß xterm Ausmaße haben muß, die >0 sind,

    dann erscheint auch ein fettes Mauskreuz wenn sunvox gestartet ist.

    (-uff! nochmal drumrumgekommen: "man xinit")


    hav'a lotta fun!

    Einmal editiert, zuletzt von Heinrich ()

  • Für xterm wäre < man xterm > zuständig, aber < xterm -help > tuts auch.


    Du benörigst die xterm Optiom:

    "This option specifies the program (and its command line argu‐

    ments) to be run in the xterm window."

    falls Du die erste Zeile von xterm -help nicht verstehst.


    Wenig überraschend, dass die Option -e (von execute abgeleitet) heisst.


    Mit < xinit xterm -e /Pfad/zu/Programm > wird mit der Grundkonfiguratiom (default-Werten) die Terminalemulaiion xterm gestartet und in dieser "Programm" ausgeführt, wenn .xinitrc des angemeldeten Users fehlt.


    Du kannst ".xterm -e /Pfad/zu/Programm" auch in ein neues Startscript ".xinitrc"des Users aufnehmen


    Wenn Du keinen Display-Manager verwendest, dann bist Du der Manager des X-Systems. Insbesondere hast Du auch zu managen, dass das System aus dem X-Window wieder sauber runterfahren kann.



    Servus !

    Wer nichts weiß, muss alles glauben.

  • Du siehst daher deshalb keinen Mauszeiger, weil die xinit Syntax nicht stimmt.

    Kann ich nicht nachvollziehen, xinit /root/sunvox/sunvox scheint mir absolut gültige Syntax zu sein.


    Da m.E. der X-Server den Mauszeiger bereitstellt, sollte es eigentlich keinen Unterschied machen, welcher client durch xinit zusätzlich zum Server gestartet wird. Insofern finde ich den fehlenden Mauszeiger sehr merkwürdig, eine Erklärung habe ich leider nicht.


    Heinrich : Unter welchem Nutzer rufst Du denn das xinit auf? Gibt es im Homeverzeichnis dieses Nutzers eine Datei .xserverrc oder .xinitrc? Gibt es bei Dir die Dateien /etc/X11/xinit/xserverrc oder /etc/X11/xinit/xinitrc? Falls eine oder mehrere dieser vier Dateien existieren, wie ist ihr Inhalt? Was passiert wenn Du per xinit einfach ein sleep startest (xinit /bin/sleep 20)? Gibt es dann einen Cursor?

    Einmal editiert, zuletzt von Manul () aus folgendem Grund: Tipphelfer.

  • Zitat

    Insbesondere hast Du auch zu managen, dass das System aus dem X-Window wieder sauber runterfahren kann.

    das Xorg.0.log sagt, wenn ich sunvox beendet habe, am Ende:

    "Server terminated successfully (0). Closing log file."

    Ein paar altbekannte Warnungen (WW) gibts noch im Log, weil u.a. der Kyrillische Font fehlt :)

    -jedenfalls sieht's so aus, als ob der x-Server sauber wieder runterfährt.


    Zitat

    Unter welchem Nutzer rufst Du denn das xinit auf?

    na ja, geht das mit nem anderen, als root?

    (vorbehaltlich: Bluetooth und Wifi sind disabled, der Zero soll halt nur Musik machen)


    .xserverrc oder .xinitrc habe ich nicht angelegt.

    Der xserver sagt: "Using system config directory "/usr/share/X11/xorg.conf.d" "

    Da sind ein paar Dateien drin.


    Ich glaube eigentlich, das aufgerufene Programm bestimmt normalerweise den Cursor und sunvox tut das eben nicht.

    Das Programm kommt als Binary, hat daher keine manpage und ich habe auch leider keine Doku für eine Startparameterliste

    gefunden.

    Wenn ich sunvox direkt über xinit starte ist die Maus ja nachprüfbar aktiv, nur ist sie leider unsichtbar.

    Wenn ich nur xterm direkt über xinit starte, bekomme ich immerhin das schlichte X-Kreuz als Mauscursor.

    Qsynth ist hier auchnoch installiert (das und etliche unnütze X-Kollegen kam leider automatisch mit fluidsynth mit,

    obwohl ich fluidsynth eigentlich ohne X nutze).

    Wenn ich qsynth direkt mit xinit und ohne xterm starte, fährt das Programm mit nem schicken Mauspfeil hoch.

    So liegt jedenfalls die Vermutung nahe, daß das aufgerufene Programm auch den Mauscursor bestimmt.


    Jedenfalls funktioniert das jetzt, wie beschrieben, obwohl es vlt. noch ne Möglichkeit gibt, den Aufruf von xterm auszulassen.

  • na ja, geht das mit nem anderen, als root?

    Ja. Möglicherweise muss der in einer bestimmten Gruppe sein (tty?), root muss er jedenfalls nicht sein.

    Der xserver sagt: "Using system config directory "/usr/share/X11/xorg.conf.d" "

    Das ist schon einen Schritt später.

    Ich glaube eigentlich, das aufgerufene Programm bestimmt normalerweise den Cursor und sunvox tut das eben nicht.

    M.W. nicht. Ich bin zumindest ziemlich sicher, daß sich xterm nicht um den cursor kümmert.

  • Ich bin zumindest ziemlich sicher, daß sich xterm nicht um den cursor kümmert.


    Und ich bin vom Gegenteil überzeugt, einfach weil es in der man page von xterm (Pointer Usage) steht.



    Servus !

    Wer nichts weiß, muss alles glauben.

  • Ich danke Euch jedenfalls,

    das hier:


    #!/bin/sh

    xinit /usr/bin/xterm -geometry 40x20+0+0 -rv -e /root/sunvox/sunvox


    -tut's

    (oben hatte ich übrigens das "-e" vor dem Pfad zu sunvox versehentlich nicht eingetragen.)

  • Und ich bin vom Gegenteil überzeugt, einfach weil es in der man page von xterm (Pointer Usage) steht.

    In der Sektion steht, wie xterm auf den Pointer reagiert, nicht daß es ihn verändern oder bereitstellen würde. Recht hast Du trotzdem: Wenn man in der xterm man page nach "pointer" sucht, findet man auch die Stellen, an denen Farbe und Form des Mauszeigers gesetzt bzw. beeinflusst werden. Trotzdem fällt es mir schwer, mir vorzustellen, daß ein im Hintergrund laufendes xterm den Mauszeiger außerhalb seines eigenen Fensters in irgendeiner Form beeinflussen sollte. Auch da lasse ich mich aber gern eines besseren belehren.

  • Nach meinen bescheidenen empirischen Experimenten,

    kann man mit xinit ein Programm aufrufen, das den Mauspfeil bestimmt

    und der bleibt dann auch für weitere Fenster erhalten, solange der Vaterprozeß

    läuft. Ich habe ja oben schon beschrieben daß, wenn man xterm über xinit mit dem xserver startet,

    das simple x-Kreutz als Mauscursor auftaucht, wenn man xterm mit dem -geometry- Parameter

    aufruft und dessen Ausmaße mit >0 angegeben werden.

    Bsp:

    xinit /usr/bin/xterm -geometry 40x20+0+0

    => X-Kreuz erscheint im Terminalfenster und läßt sich darüber hinaus

    auch in weitere, nachfolgend gestartete Programme bewegen und nutzen.

    xinit /usr/bin/xterm -geometry 0x0+0+0

    => Mauscursor erscheint nicht.


    Letzteres hatte ich probiert, um sunvox mit X-Mauscursor über ein unsichtbares Terminalfenster zu starten:

    xinit /usr/bin/xterm -geometry 0x0+0+0 -e /root/sunvox/sunvox =>so erscheint kein Mauscursor

    xinit /usr/bin/xterm -geometry 40x20+0+0 -e /root/sunvox/sunvox =>so erscheint der Cursor.

    Von der Logik her würde ich sagen, daß, damit der Mauscursor erscheint, das Programm, daß ihn bestimmt

    (hier wohl xterm), mit mindestens solchen Ausmaßen gestartet werden muß, daß er dort drin auch erscheinen kann.

    Vielleicht reicht da schon 1 Zeichen und 1. Zeile: 1x1+0+0 ...das hab ich aber nicht mehr probiert.

    Danach ist er persistent und übergreifend aktiv.

    Einmal editiert, zuletzt von Heinrich ()

  • Das X-Windows System ist meistens das grösste Installationspaket einer Linux Installation, manchmal sogar grösser als alle anderen Pakete zusammen. Es kann weser mit Trial + Error, noch mit Interpretation von man pages verstanden werdem zumal schon die Bezeichnung X-Server und X-Client der vermeintlichen Server - Client Struktur widerspricht.


    Der X-Server ist quasi nur eine Grafikkonsole (Bildschirm, Tastatur, Pointergerät, Steuerungslogik), die eine Bitmapgrafik entgegennimmt (Data-IN) und die Rohdaten von Keyboard und Mouse absendet (Data-out). Dabei ist es unwesentlich ob sch die Grafikkonole 10 m oder 10.000 km neben dem Rechner ,mit dem X-Client steht, oder die I/O desselben Rechners verwendet, da das X -System (vormals X11, X86) grundsätzlich netwerkfähig ist.


    Der X-Client ist das X-Programm, das die anzuzeigende Bitmap-Grafij erzeut und die Rohdaten (Tastatur und Maus) von der X-Konsole entgegennimmt und als Eingabegerät behandelt.. Dazu braucht das X-Programm Angaben über die Displaybreite/-Höhe (in Pixel), die verwendete Tastatur und der Maus, des Zeichensatzes und der Zeichenbreite/-Höhe und mit welchen Fonts die Zeichen auch in verschiedenen Zeichengrössen, der Farben (auch der Hintergrundfarbe) dargestellt werden sollen. Wenn dias X-Programm nicht das Rad neu erfinden will, wird die Ein-/Ausgabe einem Grafikterminalemulationsprogramm überlassen, das mit den X-Systemresourcen und Umhebungsvariablen klarkommt und gleich das passende Bitmap generiert.


    Am grunds#tzlichen Aufruf von < xinit X-Client (--)X-Server > ädert sich nichts.



    Servus !

    Wer nichts weiß, muss alles glauben.