Linux ohne grafisches Betriebssystem, aber mit grafischen Ressourcen

23

Meine erste Computererfahrung war mit einem Commodore. Ich möchte, dass Linux-Computer ähnlich funktionieren. Ich habe mich gefragt, ob es unter Linux möglich ist, etwas Ähnliches zu haben.

Was ich sehen möchte, ist, wenn ich meinen Computer über die Befehlszeile und nicht über eine GUI boote, aber grafische Ressourcen zur Verfügung habe. Wenn ich also say eingebe, werden Firefox, das Programm und seine grafische Oberfläche zur Verfügung gestellt. Wenn ich Firefox beende, kehre ich zur Befehlszeile zurück. Wenn ich das Dateisystem durchsuchen muss, sage ich, ich habe Folgendes eingegeben: XFE oder welcher Manager auch immer wird verwendet, und es wird angezeigt, und ich kann den Ordner durchsuchen. Wenn ich ihn beende, kehre ich wieder zur Befehlszeile zurück. Die Möglichkeit, Programme auszuführen, zu verwalten und zu verwenden, ohne eine grafische Benutzeroberfläche verwenden zu müssen, aber Grafiken zur Verfügung zu haben.

Es wäre schön, wenn all dies auf die Programmierung ausgerichtet wäre. Rufen Sie in der BASH-Befehlszeile die IDE einer Compiler-Umgebung auf und schreiben Sie Programme, ohne von einer Desktop-Umgebung abgelenkt zu werden.

Und wenn mehr als ein Grafikprogramm läuft, habe ich einen Fenstermanager mit Registerkarten. Ist das machbar oder träume ich?

Linuxuser00
quelle
22
Du suchst nur eine maximierte Konsole / Gnome-Terminal / xterm?
user253751
aber das hat dann nichts mit Ubuntu zu tun ;-) Besser das auf U & L fragen unix.stackexchange.com
Rinzwind
11
Ich möchte Sie einladen, jeweils Strg + Alt + F1 bis Strg + Alt + F7 zu drücken.
Michael Hampton
1
Eine andere Option ist die Verwendung von xterm als Fenstermanager. Ich kann dies momentan nicht testen, aber es sollte ~ / .Xsession editieren und die letzte Zeile auf / usr / bin / xterm ohne ein & setzen, so dass dieser Prozess der nicht-terminierende ist, der X am Leben hält. Wenn dieses xterm beendet wird, ist die Sitzung beendet und X wird beendet. Benötigt möglicherweise einige Geometrieparameter.
Criggie
1
Xterm alleine löst das Problem nicht. Ich habe eine sehr minimale Installation erstellt. Dann habe ich Firefox installiert. Es heißt Fehler: GDK_BACKEND stimmt nicht mit den verfügbaren Anzeigen überein. Was vermisse ich?
Linuxuser00

Antworten:

43

Ich denke, Sie können mit einem Kachelfenster-Manager wie i3 oder xmonad das bekommen, was Sie wollen . Es gibt andere minimalistische Fenstermanager mit ähnlichen Funktionen. i3 und xmonad befinden sich beide in Ubuntu-Repositorys, so dass sie einfach zu installieren sind. Anschließend können Sie sie in Ihrem Anmeldebildschirm auswählen.

Eduar
quelle
Das ist ordentlich und interessant, aber es ist nicht genau das, wonach ich suche. Ich möchte, dass jedes Programm in einem eigenen Arbeitsbereich läuft und den gesamten Bildschirm für sich alleine nutzt.
Linuxuser00
12
@ Linuxuser00: Ich denke das ist nur eine Frage der Konfiguration. Die meisten Benutzer von Kachel-Fenstermanagern verwenden ihre großen Bildschirme, um Informationen nebeneinander anzuzeigen, aber sie alle unterstützen das Wechseln zwischen mehreren Vollbild-Apps.
Ojdo
Nachdem ich diese Antwort gelesen habe, habe ich i3 ausprobiert. Es fühlt sich etwas reaktionsschneller an als Compiz. Aber es ist gewöhnungsbedürftig. Ich habe immer noch nicht herausgefunden, wie Windows in i3 genau die gewünschten Größen haben soll.
Kasperd
@kasperd meinst du mod + r dann mit pfeilen spielen? dann, nachdem du entkommen bist?
Vimdude
24

Ich fürchte, Sie verpassen den Hauptunterschied zwischen modernen Computerumgebungen und denen der C-64-Ära. Heimcomputer der C-64-Ära waren Einzelbenutzer- und Einzelprozesssysteme und teilten die Computerressourcen nicht mit anderen Prozessen. Dies bedeutet ganz einfach, dass Sie, wenn Sie ein Programm auf Ihrem C-64 ausführen, das ein Grafikprogramm war, die Hardware Ihres Computers so umkonfigurieren, dass sie sich im Grafikmodus befindet, und Ihr laufendes Programm dann die gesamte grafische Ausgabe und den Benutzer handhabt Eingabe von der Maus und Tastatur selbst.

Im Gegensatz dazu sind moderne Computer und ihre Software Multi-User-Multi-Prozesse, aber nicht nur das. Moderne Software hängt von gemeinsam genutzten Bibliotheken ab, z. B. stützt sich Firefox auf die GTK-Fensterbibliothek und diese wiederum auf andere Bibliotheken auf niedrigerer Ebene. Damit Firefox ausgeführt werden kann, ist eine ganze Reihe von Software und Konfigurationen erforderlich.

Da es so viel zugrunde liegende Software gibt, ist es effizienter, nach dem Start in einer grafischen Umgebung zu bleiben, als die grafische Umgebung für Firefox zu laden, sie dann herunterzufahren und die grafische Umgebung für ein anderes Programm zu starten. so weiter und so fort.

Sie können jedes Linux-GUI-Programm ganz einfach über ein Terminal (Konsolen) -Fenster starten und ausführen. Ich empfehle Ihnen daher, sich eine einfache grafische Desktop-Umgebung, z. B. Enlightenment oder Openbox , auszusuchen und alles über ein Terminal / xterm-Fenster auszuführen.

David
quelle
11

Ich stimme Eduar zu, Sie möchten wahrscheinlich einen Tiling / Dynamic Window Manager (WM). Aber niemand ist direkt angesprochen:

Was ich sehen möchte, ist, wenn ich meine Maschine in die Befehlszeile auflade

Derzeit sollten Sie einen Display Manager (DM) starten, in dem Sie sich anmelden. Sie haben also zwei Möglichkeiten, in eine Shell oder eine Konsole DM zu booten.

Wenn Sie keine DMs eingerichtet haben, melden Sie sich standardmäßig bei einer Shell an. Auf diese Weise erhalten Sie eine Anmeldeaufforderung mit Benutzernamen und Kennwort. Wenn Sie die richtigen Anmeldeinformationen eingeben, melden Sie sich bei Ihrer Standard-Shell an. Ich benutze dies und das Folgende ist ungefähr mein durchschnittlicher Startprozess:

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

Wenn Sie eine DM haben möchten, aber eine Konsole, müssen Sie sie installieren und konfigurieren. Archs Wiki sagt derzeit, dass es drei Konsolen-DMs gibt: CDM, Console TDM und nodm .

Ubuntu verwendet standardmäßig LightDM , so dass Sie es möglicherweise entfernen müssen.
Aber als jemand, der derzeit keine DM hat, würde ich empfehlen, an Ihrer aktuellen DM festzuhalten und einfach Ihre WM zu ändern. Es ist mühsam zu tippen startxund aus dem Speicher automatisch korrekt auszuführen, was für das Setup ärgerlich war.

Theresa Lane
quelle
Ubuntu verwendet standardmäßig Lightdm, zumindest in der Unity-Variante.
Léo Lam
In Bezug auf die startxautomatische Ausführung glaube ich, dass jedes Konto ein Bash-Skript hat, das beim Anmelden ausgeführt wird (oder für andere Shells gleichwertig ist)
Nick Mertin
Bitte verzeihen Sie mir, wenn dies völlig falsch ist, aber da .bash_profilees sich um ein gewöhnliches Bash-Skript handelt, können Sie es nicht einfach einfügen startx?
Nick Mertin
@ MagikM18 Was ist, wenn Sie nach dem Start von X eine interaktive Bash-Shell ausführen möchten? .bash_profileWürde ohne Prüfung versuchen, startxerneut zu starten .
Joeytwiddle
@ Joeytwiddle wahr, ich habe nicht daran gedacht
Nick Mertin
10

Sowohl startx als auch xinit können als Erstes als Client übergeben werden. Der folgende Befehl:

startx /usr/bin/firefox

Startet einen X-Server auf dem TTY, an dem Sie gerade arbeiten, und startet eine einzelne Instanz von Firefox im Vollbildmodus. Sie können zu anderen Titeln wechseln, um zu vermeiden, dass die Firefox-Sitzung beendet werden muss, nur um zur Konsole zurückzukehren, oder um andere Clients dort aufzurufen. Möglicherweise müssen Sie eine Reihe von Optionen angeben, damit dies für Ihren Monitor gut aussieht, da die Desktop-Umgebung einen Teil dieser Konfiguration nicht für Sie übernimmt.

Beachten Sie, dass einige xclients außerhalb von Fenstermanagern oder Desktopumgebungen nicht einwandfrei funktionieren. Es gibt kein DE, das Fensterdekorationen bereitstellt, und kein WM, das MOD-Tastenkombinationen abhört. Wenn diese also keine grafische Möglichkeit zum Beenden bieten, müssen Sie den Prozess (oder X) von einem anderen TTY aus beenden.

Normalerweise ist der erste Client, den die Benutzer mit X verwenden, eine Desktop-Umgebung oder ein Fenstermanager, bei dem es sich lediglich um eine spezielle Art von Client handelt, der andere Clients startet und einbettet und zusätzlich sein eigenes Fenster anzeigt.

Steve Cox
quelle
10

Alternativen

Framebuffer-Modus

Es gibt einige Programme, die im Framebuffer-Modus ausgeführt werden können. Der Framebuffer-Modus ermöglicht es einer Anwendung, den Bildschirm ganz für sich zu behalten, sodass die Anwendung pixelweise auf den Bildschirm zeichnen kann, was immer sie will. Es wird nicht von allen Programmen unterstützt, aber es gibt einige, die dies tun.

Für den Framebuffer-Modus ist kein X-Server erforderlich (z. B. X.orgbei aktuellen Ubuntu-Versionen oder in naher Zukunft Miroder Waylandje nachdem, welche Version populärer wird) oder eine Windows-Manager- / Desktop-Umgebung muss gestartet werden. Dies sollte Ihnen eine schnellere Textumschaltung in den Grafikmodus (und zurück) ermöglichen, insbesondere da auf (den meisten?) Modernen Linux-Distributionen und Grafiktreibern die Alt-F[1-6]Konsolen sowieso im Framebuffer-Modus gerendert werden.

"Text User Interface" (TUI)

Einige Programme, die normalerweise nur über die Befehlszeile ausgeführt werden, unterstützen die Verwendung einer Maus über gpm. Alles, was Sie unter Ubuntu tun müssen, ist, das Paket zu installieren, gpmund es sollte sofort funktionieren, ohne dass eine Konfiguration oder sogar ein Neustart erforderlich ist (IIRC). Nach der gpmInstallation wird Ihr Mauszeiger als Textcursor im Blockstil angezeigt, und Sie können wie gewohnt mit der Maus auf die Elemente der Benutzeroberfläche klicken. Sie können auch Text markieren und Kopieren und Einfügen verwenden.

Wenn Sie noch einen Schritt weiter gehen möchten, gibt es sogar einen "Fenstermanager", mit dem Sie mehrere Terminalanwendungen auf demselben "Desktop" im Textmodus ausführen können.


Nicht vollständige Liste der Programme, die den Framebuffer-Modus unterstützen

  • mc (Midnight Commander) - Dateimanager
  • Links / Links 2, Netsurf - Webbrowser
  • fbi - Bildbetrachter
  • fbgs (im zusammenhang mit fbi, teil derselben suite), fbpdf - PDF viewer
  • mplayer, fbff (ffmpeg-basiert) - Audio- / Videowiedergabe
Pabru
quelle
Das hört sich wirklich gut an, wenn es nur nicht so begrenzt wäre, danke.
Linuxuser00
Hi @ Linuxuser00. Es gibt ein paar weitere Programme, ich hatte einfach keine Zeit, mehr
aufzulisten
Hey @ Linuxuser00, ich habe ein paar mehr hinzugefügt, wenn Sie immer noch interessiert sind
Pabru
5

Verwenden Sie einen Fenstermanager wie FVWM2 anstelle eines "Desktops". Sie können es so konfigurieren, dass nur ein (oder mehrere) xterms beim Booten geöffnet werden, Sie können eine beliebige grafische Anwendung wie einen Webbrowser über die Befehlszeile ausführen, sich nicht um Desktop-Inhalte wie "Taskleiste" oder Symbole für alles kümmern, sondern sie hinzufügen Etwas von dem, was Sie vielleicht tatsächlich für nützlich halten. (In meinem Fall ist das ein Pager-Fenster für mehrere Bildschirme und ein Conky-Lademonitor.)

jamesqf
quelle
Ich spiele gerade mit diesem herum. Vielleicht habe ich es gerade nicht konfiguriert, aber es scheint instabil zu sein und ist auf mich abgestürzt.
Linuxuser00
Humm ... Ich leite es seit - oh, irgendwann im späten 20. Jahrhundert - und hatte keine Probleme mehr. Aber ich benutze OpenSuSE anstelle von Ubuntu, weil es (unter anderem) einfacher zu sein scheint, Fenstermanager zu verwenden, als den Standard-Desktop. Wenn Sie weiter gehen möchten, hat FVWM ein Support-Forum: fvwmforums.org/phpBB3 Der Trick bei der Anmeldung ist, dass sie Ihnen eine Frage zu einer "Aufstellung" stellen. Die Antwort sind die Mitglieder der Beatles, einer Popgruppe aus den 60ern. (Ich musste Google nach der Antwort
fragen,
4

Das ist sehr gut möglich.

Zuerst müssen Sie den grafischen Start deaktivieren. Dann möchten Sie den "Einzelbenutzermodus" (Warnung, dass dies einige ziemlich extreme Sicherheitsrisiken mit sich bringt), und schließlich müssen Sie festlegen, was zu tun ist, wenn Sie eine GUI ausführen möchten.

Siehe Wie boote ich von GRUB in den Einzelbenutzermodus?

Im Wesentlichen fügen Sie die Option singlezu Ihrer GRUB-Startkonfiguration hinzu. Sie können dies in Ihrer / etc / default / grub-Datei tun, um die Änderungen dauerhaft zu speichern.

Siehe Wie deaktiviere ich X beim Booten, damit das System im Textmodus bootet?

Im Wesentlichen ergänzen Sie textIhre Optionen in/etc/default/grub

Auf diese Weise erhalten Sie eine Nur-Text-Umgebung für einen einzelnen Benutzer. Als nächstes wird die GUI verwendet. Das Programm, das Sie ausführen möchten, iststartx

Du würdest rennen

startx /path/to/executable

Das Problem ist, dass Sie wahrscheinlich einen Fenstermanager wollen. Ich würde twmIhnen Ihre Bedürfnisse vorschlagen .

sudo apt-get install twm

Wenn Sie dann Befehle ausführen möchten, würde ich sagen, dass Sie mit run startxzu Ihrer Konsole zurückkehren (STRG + ALT + F1) und so etwas wie tun export DISPLAY=:0. Wann immer Sie eine GUI-Anwendung von der Kommandozeile aus starten, wird diese in der "Grafikseite" gestartet, zu der Sie (normalerweise) mit Strg + Alt + F7 gelangen.

Wenn Sie dieses Setup mögen, können Sie es sogar mit einem Skript automatisieren.

Das ist so nah wie möglich, ohne viel Arbeit.

coteyr
quelle
Warum benötigen Sie den Einzelbenutzermodus?
MSalters
"Was ich sehen möchte, ist, wenn ich meinen Computer über die Befehlszeile boote, ...". Die alten "Commodore" -Computer waren keine Mehrbenutzer. Sie waren überhaupt keine "Benutzer". Sie haben sie aktiviert und einen blinkenden Cursor zum Eingeben von Befehlen erhalten. Alle Befehle waren Versuche und es gab keine Sicherheit zu sprechen. Das, was dem heute am nächsten kommt, ist der "Einzelbenutzermodus", in dem Sie im Grunde genommen als Root angemeldet sind und die meisten, wenn nicht sogar alle Sicherheitsmaßnahmen umgehen.
Coteyr
Aha, ich habe schon vermutet, dass du verwirrt bist. Es gibt keinen guten Grund, warum Sie hier den Einzelbenutzermodus wünschen. Unter Linux ist der Einzelbenutzermodus im Vergleich zum Mehrbenutzermodus unabhängig von der GUI- oder CLI-Auswahl.
MSalters
Nein, ich bin nicht verwirrt. Das OP forderte eine Umgebung, die einem Commodore so ähnlich wie möglich ist. Dies bedeutet keine Sicherheit, keine Mehrbenutzer und Anmeldung. Der beste Weg, um dem näher zu kommen, ist der Einzelbenutzermodus. Die beiden Ziele hängen nicht miteinander zusammen. Sie können mit mehreren Benutzern auf die Konsole zugreifen. Sie können mit einem einzelnen Benutzer auf die grafische Benutzeroberfläche zugreifen. Es sind zwei Teile des größeren Gesamtziels.
Coteyr
Nein, ich möchte keine Umgebung, die so nah wie möglich am Commodore ist. Ich möchte eine ähnliche Einfachheit wie der Commodore (kein grafisches Betriebssystem). Bash alleine ist großartig, möchte aber eine Codierungsumgebung eingeben, wenn ich codieren möchte, oder eine Browserumgebung, wenn ich im Internet surfen möchte, und so weiter. Wenn Sie mit diesen Programmen fertig sind, schließen Sie sie und kehren Sie zu BASH zurück. oder möglicherweise mehrere Programme in ihrem eigenen Arbeitsbereich ausführen. Ich war beschäftigt und konnte einige der bisher diskutierten Methoden nicht implementieren.
Linuxuser00
3

Ich mag Ratpoison für das, was du versuchst zu tun. Ich werde keinen Screenshot veröffentlichen, da Sie den Unterschied zu einem Screenshot von xterm (oder einer anderen von Ihnen ausgeführten Anwendung) nicht erkennen können. In der Standardkonfiguration wird ein Fenster im Vollbildmodus angezeigt. Sie können es aufteilen, um mehrere Fenster anzuzeigen, aber für den Großteil meines täglichen Gebrauchs ist dies nicht der Fall. Wenn Sie einen Terminal-Emulator aus Ihrer .ratpoisionrc-Datei starten, erhalten Sie eine Eingabeaufforderung, sobald Sie sich anmelden. Sie ist vom Gnu-Bildschirm inspiriert und das einzige Konzept, das sie übersehen haben, waren abnehmbare und geteilte Sitzungen (aber vnc füllt diese Lücke gut aus). .

hildred
quelle
2

Ich denke, Sie können bekommen, was Sie wollen, ohne den Desktop wegzuwerfen. Wie andere Antworten gezeigt haben, erhalten Sie wahrscheinlich eine bessere Leistung, wenn der Desktop ausgeführt wird, und es gibt technische Gründe, aus denen Linux ausgeführt wird, als würde ein älteres Betriebssystem nicht wirklich funktionieren.

Ich werde Gnome als Beispiel für einen Workflow verwenden, da ich weiß, dass andere Desktop-Umgebungen ähnliche Funktionen unterstützen. In Gnome 3 können Sie einen Arbeitsbereich (oder mehrere) mit einem Vollbild-Terminal haben, der das gleiche Erscheinungsbild aufweist wie der reine Befehlszeilenmodus. Die Tatsache, dass der Gnome-Desktop im Hintergrund ausgeführt wird, spielt keine Rolle.

Anschließend können Sie mithilfe eines Fenstermanagers (wie dem in dieser SO-Frage beschriebenen ) steuern, in welchem ​​Arbeitsbereich neue Fenster erstellt werden, und erzwingen, dass jedes neue Fenster in einem eigenen Arbeitsbereich platziert wird. Wenn Sie bereit sind, Fenster beim Erstellen selbst zu verschieben, benötigen Sie keine Software außerhalb von gnome. Gnome 3 unterstützt automatische Arbeitsbereiche, sodass beim Öffnen / Schließen von Fenstern im untersten Arbeitsbereich automatisch neue Arbeitsbereiche erstellt / gelöscht werden. Dann können Sie einfach verwenden, ctrl + alt + arrowum schnell zwischen ihnen zu wechseln. Wenn Sie ein Fenster schließen, wird der Arbeitsbereich, in dem es sich befand, automatisch gelöscht, und die beiden Arbeitsbereiche auf jeder Seite werden zusammen verschoben. Alles, was Sie jemals sehen, sind die geöffneten Fenster und das Terminal.

Godric Seher
quelle
Das klingt ungefähr richtig. Vielleicht würden Openbox und Gnome mir geben, was ich will?
Linuxuser00
Ich habe openbox (oder einen anderen Fenstermanager) nicht verwendet, daher müssen Sie sie selbst auswerten. Ich starte jedoch gnome 3 auf meinem Laptop und verwende den in dieser Antwort beschriebenen Workflow (manuelles Verschieben von Fenstern). Ich bin ziemlich zufrieden damit, obwohl es etwas schmerzhafter ist, die Fenster nach der Erstellung in die gewünschte Reihenfolge zu bringen, als es sein sollte.
Godric Seer
2

Installieren Sie Xvfb:

apt-get install xvfb

Lauf:

/usr/bin/Xvfb :1 &
export DISPLAY=:1

Führen Sie dann eine beliebige Grafiksoftware aus, die Sie kopflos mögen.

Ian Ellis
quelle
1

Sie können mit [Strg] [Alt] [F1] schnell zu einer Befehlszeilenschnittstelle wechseln (funktioniert, glaube ich, mit [F1] - [F12]). Eine davon wechselt auch zu Ihrer GUI zurück, wenn Sie eine benötigen. Ich denke, es ist [Strg] [Alt] [F8] auf Mint, also solltest du es versuchen. Ich werfe mich allerdings in das Lager "Verwende einen Kachelfenster-Manager". i3 ist wirklich ein großartiges Tool.

Johnathan Andersen
quelle
Ja, aber das Problem, das ich dabei habe, ist, dass im Hintergrund eine GUI ausgeführt wird, die meine Ressourcen verwendet. Daher sollte ich nur die GUI verwenden, anstatt vorzutäuschen, dass sie nicht vorhanden ist.
Linuxuser00
Sehr richtig! Eine Möglichkeit, dies zu umgehen, besteht darin, das Betriebssystem so einzustellen, dass die gesamte Sitzung ausgetauscht wird, wenn sie nicht aktiv ist. Es würde mich nicht überraschen, wenn dies automatisch geschehen würde, aber es ist wahrscheinlich etwas, das Sie mit erheblichen Schwierigkeiten einstellen müssten.
Johnathan Andersen