Linux senza sistema operativo grafico ma con risorse grafiche


23

La mia prima esperienza al computer è stata con un Commodoro. Vorrei che il computer Linux funzionasse in modo simile. Mi chiedevo se fosse possibile avere qualcosa di simile usando Linux.

Quello che mi piacerebbe vedere è quando avvio il mio computer nella riga di comando e non in una GUI ma ho risorse grafiche disponibili. Quindi quando scrivo dico: Firefox, il programma e la sua interfaccia grafica sono resi disponibili. Quando esco da Firefox, ritorna alla riga di comando. Se ho bisogno di sfogliare il file system, dico che ho digitato: XFE o qualunque gestore sia in uso e viene fuori e mi permette di sfogliare la cartella, e quando esco, torna di nuovo alla riga di comando. Quindi la possibilità di eseguire, gestire e usare programmi senza dover usare una GUI ma avere grafica disponibile.

Sarebbe bello avere tutto ciò orientato verso la programmazione. Quindi, dalla riga di comando BASH, puoi richiamare l'IDE di un ambiente compilatore e iniziare a scrivere programmi senza essere distratto da un ambiente desktop.

E se è in esecuzione più di un programma grafico, credo che abbia un gestore di finestre a schede. È fattibile o sto sognando?


22
Stai solo cercando una konsole / gnome-terminal / xterm ingrandita?
user253751

ma questo non ha nulla a che fare con Ubuntu ;-) Meglio chiederlo su U&L unix.stackexchange.com
Rinzwind

11
Vorrei invitarti a premere rispettivamente Ctrl + Alt + F1 fino a Ctrl + Alt + F7.
Michael Hampton,

1
Un'altra opzione è usare xterm come gestore delle finestre. Non posso provarlo adesso, ma dovrebbe essere edit ~ / .Xsession e impostare l'ultima riga su / usr / bin / xterm senza un & quindi questo processo è quello non terminante che mantiene X in vita. Quando termina questo xterm, la sessione termina e X si chiude. Potrebbe aver bisogno di alcuni parametri geometrici.
Criggie,

1
Xterm da solo non risolve il problema. Ho creato un'installazione molto minimale. Quindi ho installato Firefox. Dice errore: GDK_BACKEND non corrisponde ai display disponibili. Cosa mi sto perdendo?
Linuxuser00

Risposte:


43

Penso che puoi ottenere quello che vuoi usando un Tiling Window Manager, come i3 o xmonad . Esistono altri gestori di finestre minimalisti con funzionalità simili. i3 e xmonad si trovano entrambi nei repository Ubuntu, quindi sono facili da installare e quindi è possibile selezionarli nella schermata di accesso.


Questo è pulito e interessante ma non è esattamente quello che sto cercando. Vorrei vedere ogni programma in esecuzione nel suo spazio di lavoro usando l'intero schermo a se stesso.
Linuxuser00,

12
@ Linuxuser00: penso che sia solo una questione di configurazione. Alla maggior parte degli utenti dei gestori di finestre di affiancamento piace usare i loro grandi schermi per visualizzare le informazioni fianco a fianco, ma tutti supportano lo scambio tra diverse app a schermo intero.
ojdo,

Dopo aver letto questa risposta, ho provato i3. Sembra un po 'più reattivo di Compiz. Ma ci vuole un po 'per abituarsi. Non ho ancora capito come rendere Windows in i3 abbia le dimensioni esatte, voglio che abbiano.
Kasperd,

@kasperd intendi mod + R, quindi gioca con le frecce? poi dopo aver finito di scappare?
vimdude,

24

Temo che manchi la differenza principale tra i moderni ambienti informatici e quelli dell'era C-64. I computer domestici dell'era C-64 erano monoutente, sistemi a processo singolo e non condividevano le risorse dei computer con altri processi. Questo significa semplicemente che quando avresti eseguito un programma sul tuo C-64 che era un programma grafico, avrebbe riconfigurato l'hardware del tuo computer in modalità "grafica" e quindi il tuo programma in esecuzione avrebbe gestito tutto l'output grafico e l'utente input dal mouse e dalla tastiera stessa.

I computer moderni e il suo software, al contrario, sono multiutente, multi processo, ma non solo questo, il software moderno dipende dalle librerie condivise, ad esempio Firefox si basa sulla libreria di finestre GTK e che a sua volta si basa su altre librerie di livello inferiore. Quindi, affinché Firefox possa funzionare, dipende da un'intera pila di software e configurazione.

Poiché esiste un numero così elevato di software di base, ciò rende più efficiente rimanere all'interno di un ambiente grafico una volta avviato, piuttosto che caricare l'ambiente grafico per Firefox, quindi spegnerlo, quindi avviare l'ambiente grafico per un altro programma, così via e così via.

Puoi semplicemente avviare ed eseguire qualsiasi programma della GUI di Linux da una finestra terminale (console), quindi ti consiglio di scegliere un semplice ambiente desktop grafico, forse Enlightenment o Openbox , ed eseguire tutto da una finestra terminal / xterm.


11

Sono d'accordo con Eduar, probabilmente vorrai un Tiling / Dynamic Window Manager (WM). Ma nessuno si è rivolto direttamente:

Quello che vorrei vedere è quando avvio la mia macchina nella riga di comando

Attualmente è necessario avviare un Display Manager (DM) in cui si accede. Quindi hai due opzioni, avvia una shell o un DM console.

Se non hai DM configurati, accederai per impostazione predefinita a una shell, questo ti darà un prompt di login di nome utente e password, se inserisci le credenziali corrette, accederai alla shell predefinita. Lo uso e il seguente è approssimativamente il mio "processo" di avvio medio:

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

Se vuoi avere un DM, ma uno di console, dovrai installarlo e configurarlo. La wiki di Arch attualmente dice che ci sono tre DM console: CDM, Console TDM e nodm .

Ubuntu utilizza LightDM per impostazione predefinita , quindi potrebbe essere necessario rimuoverlo.
Ma come qualcuno che al momento non ha un DM, consiglierei di rimanere con il tuo DM attuale e cambiare semplicemente il tuo WM. È noioso dover digitare startxe dalla memoria eseguirlo automaticamente correttamente è stato fastidioso da configurare.


Ubuntu utilizza lightdm per impostazione predefinita, almeno sulla variante Unity.
Léo Lam,

In termini di esecuzione startxautomatica, credo che ogni account abbia uno script bash che viene eseguito all'accesso (o equivalente per altre shell)
Nick Mertin

Per favore, perdonami se questo è completamente errato, ma dato che .bash_profileè un normale script bash, non potresti semplicemente startxinserirlo?
Nick Mertin,

@ MagikM18 Cosa succede se si desidera eseguire una shell bash interattiva dopo l'avvio di X? Senza alcun controllo, .bash_profiletenterebbe di eseguire startxnuovamente.
joeytwiddle,

@joeytwiddle vero, non ci avevo pensato
Nick Mertin,

10

startx e xinit possono entrambi essere passati a un client iniziale per iniziare. Il seguente comando:

startx /usr/bin/firefox

farà girare un xserver sul TTY su cui stai attualmente lavorando e avvierà una singola istanza di firefox in qualcosa di simile a schermo intero. Puoi passare ad altri tty per evitare di dover chiudere la sessione di Firefox solo per tornare alla console o per far apparire altri client lì. Potrebbe essere necessario specificare molte opzioni per rendere questo aspetto piacevole per il tuo monitor poiché non avrai l'ambiente desktop che eseguirà una parte di quella configurazione per te.

Dovresti essere consapevole che alcuni client non funzionano bene al di fuori dei gestori di finestre o degli ambienti desktop. Non ci sono DE che forniscono decorazioni per le finestre e nessun ascolto WM per le combinazioni di tasti MOD, quindi se non forniscono un modo grafico per uscire dovrete interrompere il processo (o X) da un altro TTY.

Normalmente il client iniziale che le persone usano con X è un ambiente desktop o window manager che è solo un tipo speciale di client che avvia e incorpora altri client oltre a visualizzare la propria finestra.


10

alternative

Modalità framebuffer

Ci sono alcuni programmi che sono in grado di funzionare in modalità framebuffer. La modalità Framebuffer consente a un'applicazione di avere lo schermo tutto per sé, consentendo all'applicazione di disegnare tutto ciò che vuole sullo schermo pixel per pixel. Non tutti i programmi lo supportano, ma ce ne sono alcuni che lo supportano.

La modalità Framebuffer non richiede un X Server (come X.orgnel caso delle versioni correnti di Ubuntu, o nel prossimo futuro forse Miro in Waylandbase a quale diventa più popolare), né l'avvio di alcun ambiente desktop manager / desktop. Questo dovrebbe darti un passaggio più veloce dalla modalità testo alla grafica (e viceversa), specialmente come nella maggior parte (la maggior parte?) Delle moderne distribuzioni Linux e driver grafici che le Alt-F[1-6]console sono rese usando comunque la modalità framebuffer.

"Text User Interface" (TUI)

Alcuni programmi che normalmente supportano solo la riga di comando utilizzano un mouse tramite gpm. Su Ubuntu, tutto ciò che devi fare è semplicemente installare il pacchetto gpme dovrebbe funzionare immediatamente senza alcuna configurazione o addirittura il riavvio necessario (IIRC). Una volta gpminstallato, il puntatore del mouse verrà mostrato come un cursore di testo in stile blocco e puoi usare il mouse normalmente per fare clic sugli elementi dell'interfaccia utente. Puoi anche evidenziare il testo e usare copia e incolla.

Se si desidera fare un ulteriore passo avanti, esiste anche un "gestore di finestre" che consente di eseguire più applicazioni terminali sulla stessa modalità di testo "desktop".


Elenco non esaustivo di programmi che supportano la modalità framebuffer

  • mc (Midnight Commander) - file manager
  • Collegamenti / Collegamenti 2, Netsurf - browser web
  • fbi - visualizzatore di immagini
  • fbgs (relativo a fbi, parte della stessa suite), fbpdf - Visualizzatore PDF
  • mplayer, fbff (basato su ffmpeg) - riproduzione audio / video

Sembra davvero bello, se non fosse così limitato, grazie.
Linuxuser00,

Ciao @ Linuxuser00. Ci sono altri programmi, non ho avuto il tempo di
elencarne

Ehi @ Linuxuser00, ne ho aggiunti un altro se sei ancora interessato
Pabru,

5

Cerca di utilizzare un gestore di finestre come FVWM2, piuttosto che un "desktop". Puoi configurarlo per aprire solo uno (o più) xterms all'avvio, puoi eseguire qualsiasi applicazione grafica come un browser web dalla riga di comando, non essere infastidito da elementi del desktop come "barra delle applicazioni" o icone per tutto, ma puoi aggiungere qualsiasi parte di ciò che potresti trovare effettivamente utile. (Nel mio caso, questa è una finestra del cercapersone per più schermate e un monitor di caricamento Conky.)


Attualmente sto giocando con questo. Forse non l'ho configurato correttamente al momento, ma sembra essere instabile e si è schiantato su di me.
Linuxuser00

Humm ... lo gestisco da - oh, qualche volta alla fine del 20 ° secolo - e non ho avuto problemi. Ma uso OpenSuSE anziché Ubuntu perché (tra le altre ragioni) sembra più semplice usare i gestori di finestre piuttosto che il "desktop" predefinito. Se vuoi andare oltre, FVWM ha un forum di supporto: fvwmforums.org/phpBB3 Il trucco per iscriverti è che ti fanno una domanda su una "line-up". La risposta sono i membri dei Beatles, un gruppo pop degli anni '60. (Ho dovuto
chiedere

4

Questo è molto possibile

Innanzitutto è necessario disabilitare l'avvio grafico. Quindi vuoi "Single User Mode" (attenzione che ci sono alcuni rischi di sicurezza piuttosto estremi con questo), infine devi affrontare cosa fare quando vuoi eseguire una GUI.

Vedi Come si avvia in modalità utente singolo da GRUB?

In sostanza aggiungi l'opzione singlealla configurazione di avvio di GRUB. Puoi farlo nel tuo file / etc / default / grub per rendere permanenti le modifiche.

Vedi Come disabilitare X all'avvio in modo che il sistema si avvii in modalità testo?

Essenzialmente aggiungi textalle tue opzioni in/etc/default/grub

Questo ti darà un singolo utente, ambiente di solo testo. Il prossimo è usare la GUI. Il programma che si desidera eseguire èstartx

Scapperesti

startx /path/to/executable

Il problema è che probabilmente vuoi un gestore di finestre di qualche tipo. Vorrei suggerire twmle tue esigenze.

sudo apt-get install twm

Quindi per eseguire i comandi, direi corri startxquindi torna alla tua console (CTRL + ALT + F1) e fai qualcosa di simile export DISPLAY=:0. Ora, ogni volta che sei un'applicazione GUI dalla riga di comando, verrà avviata nella "Grafica" che puoi ottenere con Ctrl + Alt + F7 (di solito).

Se ti piace quella configurazione puoi anche automatizzare la configurazione con uno script.

Che sia così vicino al tuo obiettivo, senza molto lavoro.


Perché hai bisogno della modalità utente singolo?
Salterio

"Quello che vorrei vedere è quando avvio la mia macchina dalla riga di comando, ...". I vecchi computer "Commodore" non erano multiutente. Non erano affatto "utenti". Li hai attivati ​​e hai un cursore lampeggiante per digitare i comandi. Tutti i comandi erano tentativi e non c'era sicurezza di cui parlare. La cosa più vicina a questa è la "modalità utente singolo", che sostanzialmente ti avvia come root, ignora la maggior parte, se non tutta, la sicurezza.
Coteyr,

Ah, già sospettavo che fossi confuso. Non c'è motivo per cui tu voglia qui la Modalità utente singolo. In Linux, la modalità utente singolo rispetto a quella multiutente è indipendente dalla scelta della GUI o della CLI.
Salterio

No, non sono confuso. L'OP ha richiesto un ambiente il più possibile simile a un Commodoro. Ciò significa nessuna sicurezza, nessun multiutente e login. Il modo migliore per avvicinarsi a questo è la modalità utente singolo. I due obiettivi non sono correlati tra loro, è possibile avere accesso alla console con più utenti, è possibile avere la GUI con un singolo utente. Sono due parti dell'obiettivo generale più ampio.
Coteyr,

No, non voglio un ambiente il più vicino possibile al Commodoro. Voglio semplicità simile al Commodore (nessun sistema operativo grafico). Bash da solo è fantastico, ma vorrei entrare in un ambiente di codifica se voglio codificare o entrare in un ambiente browser se voglio navigare in rete e così via. E quando finito con questi programmi chiuderli e tornare a BASH. o forse avere più programmi in esecuzione nel proprio spazio di lavoro. Sono stato impegnato e non sono stato in grado di implementare alcuni di questi metodi discussi finora.
Linuxuser00,

3

Mi piace ratpoison per quello che stai cercando di fare. Non pubblicherò uno screenshot perché non puoi distinguere da uno screenshot di xterm (o da qualunque applicazione tu stia eseguendo). Nella sua configurazione standard visualizza una finestra a schermo intero. Puoi dividerlo per visualizzare più finestre, ma per la maggior parte del mio uso quotidiano non lo faccio. Se avvii un emulatore di terminale dal tuo file .ratpoisionrc ricevi un prompt quasi non appena accedi. È ispirato allo schermo di gnu e l'unico concetto che mancava era sessioni staccabili e condivise (ma VNC riempie bene il gap) .


2

Penso che tu possa ottenere quello che vuoi senza buttare via il desktop. Come altre risposte hanno coperto, probabilmente otterrai prestazioni migliori con il desktop in esecuzione comunque e ci sono ragioni tecniche che eseguono Linux come un vecchio sistema operativo non funzionerebbe davvero.

Userò gnome come mio flusso di lavoro di esempio perché è quello che so, ma immagino che anche altri ambienti desktop supporteranno funzionalità simili. In gnome 3 puoi avere uno spazio di lavoro (o multiplo) con un terminale a schermo intero che ha lo stesso aspetto e la stessa modalità di esecuzione in modalità solo riga di comando. Il fatto che il desktop di gnome sia in esecuzione in background è irrilevante.

Quindi, utilizzando un gestore di finestre (come quello discusso in questa domanda SO ) per controllare su quale spazio di lavoro vengono create le nuove finestre, è possibile forzare ogni nuova finestra a essere posizionata sul proprio spazio di lavoro. Se sei disposto a spostare Windows da solo quando vengono creati, non hai bisogno di alcun software oltre a gnome. Gnome 3 supporta le aree di lavoro automatiche, quindi quando apri / chiudi finestre nell'area di lavoro più in basso verranno automaticamente create / cancellate nuove aree di lavoro. Quindi puoi semplicemente usare ctrl + alt + arrowper spostarti rapidamente tra di loro. Quando si chiude una finestra, l'area di lavoro in cui si trovava viene automaticamente eliminata e le due aree di lavoro su ciascun lato si spostano insieme. Tutto quello che vedi sono le finestre che hai aperto e il terminale.


Sembra giusto. Forse Openbox e Gnome mi darebbero quello che voglio?
Linuxuser00,

Non ho usato openbox (o qualsiasi altro gestore di finestre), quindi dovrete valutarli da soli), ma eseguo gnome 3 sul mio laptop e utilizzo il flusso di lavoro descritto in questa risposta (spostamento manuale di Windows). Sono abbastanza contento, anche se riorganizzare le finestre nell'ordine che voglio dopo che sono state create è un po 'più doloroso che dovrebbe essere.
Godric Seer,

2

Installa Xvfb:

apt-get install xvfb

Correre:

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

quindi esegui qualsiasi software grafico che ti piace senza testa.


1

Puoi passare rapidamente a un'interfaccia della riga di comando usando [ctrl] [alt] [F1] (funziona con [F1] - [F12] credo). Uno di questi tornerà anche alla tua GUI per quando ne avrai bisogno; Penso che sia [ctrl] [alt] [F8] su Mint, quindi potresti provare quello. Mi lancerò nel campo "usa un gestore di finestre di piastrellatura"; i3 è davvero un ottimo strumento.


Sì, ma il problema che ho con questo è che c'è una GUI in esecuzione in background usando le mie risorse, quindi dovrei semplicemente usare la GUI invece di fingere che non ci sia.
Linuxuser00,

Verissimo! Un modo per aggirare questo sarebbe quello di impostare il sistema operativo in modo da scambiare l'intera sessione quando non è attivo. Non sarei troppo sorpreso se lo facesse automaticamente, ma è probabilmente qualcosa che avresti bisogno di affrontare notevoli difficoltà per impostare.
Johnathan Andersen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.