Führen Sie eine GUI ohne den Desktop aus


12

Ich möchte einen Webbrowser oder eine einfache Benutzeroberfläche ausführen, ohne den gesamten Desktop auszuführen. Ich möchte meinen Raspberry Pi als einfachen Webserver verwenden, habe aber immer noch eine sehr einfache Benutzeroberfläche zur Steuerung meines 3D-Druckers mit ein paar Schaltflächen und Grafiken. Ich möchte nicht den gesamten Desktop ausführen, da dies den Pi verlangsamt. Wie könnte ich das erreichen?



@goldilocks Bitte schlagen Sie eine Antwort vor, damit ich sie genehmigen kann. Auch danke!
TheCodeGeek

Antworten:


6

Das Grundproblem besteht darin, jeden Fenstermanager usw. zu umgehen, der standardmäßig nach dem Start von X ausgeführt wird. Wenn Sie einen Anzeigemanager (der einen grafischen Anmeldebildschirm bereitstellt) verwenden, sollten Sie ihn weiterhin verwenden können.

Erstellen Sie in jedem Fall eine Datei in Ihrem Ausgangsverzeichnis .Xclientsmit dem Namen (mit dem führenden Punkt), die folgendermaßen aussieht:

#!/bin/sh

lxterminal  

Ich benutze es lxterminalals Beispiel und weil es mit Raspbian ausgeliefert wird. Machen Sie nun diese Datei ausführbar:

chmod 750 .Xclients  

Dann, ohne dass X läuft: 1

startx

Sie sollten nur ein einfaches Terminal auf dem Bildschirm, keine Titelleiste, keine Rahmen und den X-Mauszeiger haben. Sie können andere Anwendungen starten und sich mit dem Cursor bewegen, aber es gibt keine Menüs usw.

Wenn Sie den Namen der einzelnen Anwendung ersetzen, für die Sie ausgeführt werden möchten lxterminal, beginnen Sie stattdessen damit.


1. Sie können X von innen mit töten. ctrl-alt-backspaceWenn Sie jedoch einen Display-Manager verwenden, kehren Sie zum GUI-Login zurück. Das ist okay.


Überraschenderweise hat das bei mir nicht funktioniert :( Irgendwo habe ich etwas falsch gemacht und es startet einfach den regulären Fenstermanager
Piotr Kamoda

@PiotrKamoda Ich verstehe hier nicht alle Möglichkeiten - und Ihr Kommentar hinterlässt viele Unklarheiten - aber ich werde empfehlen, dies als allgemeine Linux-Frage zu untersuchen .
Goldlöckchen

@goldilocks Ich bin müde ohne Erfolg, niemand erklärt das Problem so gründlich wie Sie. Ich habe es mit frischem Raspbian versucht, nur PiTFT und wxPython installiert. Es scheint, als würde es .xclients ignorieren (oder .Xclients, alle anderen Dateien sind Kleinbuchstaben?) Würde es mit .xinitrc-Datei funktionieren? Ich habe auch versucht, .xclients in / etc / X11 / xinit abzulegen, wo sich andere .xsomething-Dateien befinden.
Piotr Kamoda

wiki.archlinux.org/index.php/… ist eine Lösung mit .xinitrc, sie könnte für diejenigen funktionieren, bei denen .xclients nicht geholfen hat
Piotr Kamoda

@PiotrKamoda Eigentlich verwende ich ~/.xinitrcRaspbian und es sollte überall funktionieren, da dies eine X-Funktion ist - aber beachte, dass ich kein grafisches Login verwende. Das kann mit Sachen durcheinander bringen. Wenn Sie dies tun, lautet der Standard-DM (= Display Manager, der die Anmeldung vornimmt) auf Raspbian. Daher lightdmmöchten Sie die Konfiguration genau untersuchen.
Goldlöckchen

1

Eine mögliche Option ist die Verwendung der X-Weiterleitung von einem anderen Computer. Dadurch wird die GUI-Anwendung geladen und wie auf dem RaspPi ausgeführt, aber die "Anzeige" befindet sich auf dem Remotecomputer.

Beispiel: Auf einem anderen Linux-Desktop, auf dem X ausgeführt wird, geben Sie Folgendes in das Terminal "ssh -X pi@xx.xx.xx.xx" ein (wobei xx die IP-Adresse ist). Sobald Sie angemeldet sind, können Sie die GUI-Anwendung über die RaspPi-Befehlszeile wie den Webbrowser "midori" ausführen. In diesem Fall würde Midori wie auf dem RaspPi ausgeführt, aber die GUI würde auf dem Remotecomputer angezeigt, ähnlich wie auf einem Mini-Remotedesktop, der nur ein Fenster anzeigt.

Dies kann auch auf einem Windows-Computer mit Putty eingerichtet werden. Google Putty X-Forwarding und Sie werden viele Optionen finden, um dies zu konfigurieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.