Avvia Ubuntu senza un ambiente desktop ma avvia un'applicazione X.


29

Voglio fare un piccolo computer solo per la navigazione in Internet. Non voglio caricare un ambiente desktop per ridurre al minimo l'utilizzo di RAM, CPU e GPU. Il computer funzionerà con una CPU ARM. Non mi importa di Distro che uso, ho pensato al buon vecchio Debian semplice.


Quindi vorrei suggerire Ubuntu minimal iso e installare blackbox DE
Tachyons il

Non sono davvero un esperto, ma suggerirei di dare un'occhiata alla configurazione di xsession (c'è una pagina man per xsession). Se si desidera questo comportamento solo per un utente, creare un file nella directory home degli utenti denominato .xsession e inserire il comando che si desidera eseguire al suo interno. Quindi probabilmente dovrai usare un gestore degli accessi che ti consenta di accedere a xsession di default invece di qualche altro ambiente desktop (o disabilitare il gestore di login e usare invece startx). Tuttavia, raccomanderei invece di utilizzare un gestore di finestre salvaspazio (Tachyons ha suggerito la blackbox, e ce ne sono molte altre).
Fonte d'anima,

Se non carichi l'ambiente desktop come dovresti aprire il browser Internet?
dlin,

5
@Nick Puoi. Con un semplice server X come 'sessione' senza un gestore di finestre è possibile eseguire esattamente un'applicazione a schermo intero (senza bordi o altre decorazioni). Ecco come funzionano ad esempio queste distribuzioni XBMC minime. L'ho fatto con Chromium una volta qualche anno fa in 10.04 - ma non ho salvato la configurazione esatta.
gertvdijk,

"Ho pensato al buon vecchio Debian semplice." Se stai considerando altre distribuzioni oltre a Ubuntu, dovresti invece chiederlo su Unix & Linux StackExchange . Questo sito Ask Ubuntu è solo per Ubuntu - qui non correlate alle domande Ubuntu sono fuori tema.
gertvdijk,

Risposte:


26
  1. Nel /usr/share/xsessions/creare un file nel formato ".desktop" per creare la vostra abitudine, sessione di minima. Per eseguire Google Chrome come unica applicazione dopo l'accesso, procedere come segue:

    [Desktop Entry]
    Type=Application
    Exec=google-chrome
    Name=Google Chrome
    Comment=Testing
    
  2. Riavvia il tuo display manager, ad es

    sudo restart lightdm  # or kdm, gdm, etc.
    

    O semplicemente disconnettersi.

  3. "Google Chrome" dovrebbe apparire nell'elenco delle sessioni da selezionare (accanto a Unity normale o ad altri DE installati).

    Accedi e divertiti.

opzionale

  • XDM è un display manager molto minimale: LightDM, GDM e KDM sono piuttosto "grandi". Installalo usando il pacchetto xdmInstalla xdm e riconfigura il default per quando il tuo sistema si avvia usando

    sudo dpkg-reconfigure lightdm
    
  • Configura il tuo display manager per accedere automaticamente a un utente specifico. Consulta la documentazione per il tuo display manager.


1
Se è necessario portare l'intero desktop, è sufficiente eliminare il file .desktop e riavviare?
enthusiasticgeek

1
@enthusiasticgeek Non è necessario. Nel gestore degli
accessi

Qualcuno sa caldo per cambiare la lingua di input del sistema in modalità app singola?
fnc12,

Qualcuno affronta il problema quando manca il puntatore del mouse in modalità app singola?
fnc12,

Ho avviato google-chrome --kiosk, ma non occupa lo schermo completo .. in qualche modo per ingrandirlo ..?
tumbudu,

24

So che questo è obsoleto, ma non riuscivo a vedere la risposta corretta per la richiesta come la capisco, quindi eccola:

Ho avuto un progetto per la creazione di un sistema embedded che eseguiva una specifica applicazione java grafica su un semplice computer con un processore Atom e un touchscreen. La mia decisione è stata quella di evitare l'uso dei window manager in quanto tali, per mantenerlo a) semplice, b) leggero e c) evitare qualsiasi tipo di messaggio di sistema che esplodesse sullo schermo.

Il sistema si presenta così:

  1. Installazione del sistema Ubuntu di base, la variante più leggera di 12.04 (ancora vicino a 1 GB, ma ok per me anche su un disco flash da 2 GB). Puoi torturarlo un po 'per fare un'installazione più piccola, ovviamente ci sono diversi modi per farlo. Inoltre, non è necessario utilizzare Ubuntu, ma le seguenti istruzioni dovrebbero essere riviste: ci sono differenze tra le distribuzioni, specialmente sui file di configurazione e le loro posizioni.

  2. Installazione di xorg e di altri utili software utili, come il calibratore xinput per il mio touchscreen resistivo, ifplugd per il rilevamento della connessione ethernet live, acpid per il rilevamento del funzionamento del pulsante di accensione e così via.

  3. Apri /etc/init/tty1.conf e cambia la exec /sbin/getty -8 -i 38400 tty1riga in qualcosa del genere exec /sbin/getty -8 -i 38400 tty1 -a username, dove "nome utente" è il nome dell'utente a cui vuoi accedere automaticamente.

  4. Per avviare automaticamente la sessione X, apri il file .bashrc dell'utente ~/.bashrce aggiungi qualcosa del genere alla fine del file:

    if [ $(tty) == "/dev/tty1" ]; then
        while true; do startx -- -nocursor -depth 16; echo "Again [$?]..."; done
    fi

    (La roba -nocursor è per i touchscreen, rimuovila per lo schermo normale per vedere il puntatore del mouse) Questo rigenererà il server X, quindi se l'applicazione si chiude per qualsiasi motivo, riavvierà automaticamente il server X.

  5. Ora nel file .xsession dell'utente, ~/.xsessionscrivi qualcosa del genere (ricorda che ogni comando qui viene eseguito in serie, quindi usa il simbolo & alla fine della riga se vuoi avviare un server):

    xrandr --output VGA1 --mode 800x600      #For setting a video mode
    xrandr --fb 800x600                      #Not always required, sets the framebuffer size
    xsetbg -center background.png &          #To set the background, comes from the xloadimage package
    xset -dpms s off                         #To avoid screen going blank after a while
    ~username/start.sh                       #Start your application
    #You can put some other application calls here that will be run when your application exits

Ci sono molte altre cose da considerare per un tale sistema, questa è solo la configurazione di base. Spero che aiuti qualcuno. In bocca al lupo.


1

Ai vecchi tempi, si poteva semplicemente correre Xe X si accendeva con uno schermo vuoto. Quindi potresti impostare DISPLAY=:0ed eseguire qualcosa lì. Forse funziona ancora? Da una shell vorrai X&metterlo in background.

Esamina il -geometryparametro della riga di comando X standard per regolare il posizionamento della finestra, dal momento che non avrai un gestore di finestre per aiutarti.

Per eseguire qualcosa come non root, devi cercare xauthper impostare l'autorizzazione X per l'utente non root.


-3

Prima di tutto, non capisco come dovresti aprire il browser web senza caricare l'ambiente desktop. È come voler cucinare un pasto senza accendere il forno. . Va bene, è possibile con X Server, la domanda è sbagliata.

Quello che stai cercando è scegliere quale applicazione / i verrà avviata durante il processo di avvio.

  • In Ubuntu / Unity:

    Fai clic sull'icona a forma di ingranaggio nell'angolo in alto a destra del pannello superiore. Seleziona Startup Applications .

    Una volta aperto, ti verrà mostrato un elenco di applicazioni che il tuo sistema si avvia all'avvio del tuo sistema operativo.

    Fai clic su Aggiungi in alto a destra.

    Ti verrà mostrata una finestra di dialogo.

    Nella finestra di dialogo risultante:

    1) Immettere il nome del programma nel campo "nome" .

    2) Immettere il comando per eseguire il programma nel campo "comando" .

    3) Immettere eventuali commenti nel campo "commenti" .

    Per esempio:

    Fai clic su Salva e chiudi .

  • Nella shell di Gnome:

    Premere Alt+F2per visualizzare la finestra di dialogo Esegui.

    Tipo gnome-session-properties.

    Fai clic sul pulsante "Aggiungi" .

    Nella finestra di dialogo risultante:

    1) Immettere il nome del programma nel campo "nome" .

    2) Immettere il comando per eseguire il programma nel campo "comando" .

    3) Immettere eventuali commenti nel campo "commenti" .

    Fai clic su Salva e chiudi .

  • In KDE:

    Vai a Menu K> Computer> Impostazioni di sistema.

    Seleziona Avvio e spegnimento e fai clic sul pulsante Aggiungi programma .

    Digita il comando per eseguire il programma e fai clic su OK .

  • In LXDE:

    Esegui i seguenti comandi nel terminale:

    mkdir -p ~/.config/lxsession/LXDE/
    touch ~/.config/lxsessions/LXDE/autostart
    leafpad ~/.config/lxsessions/LXDE/autostart
    

    Aggiungi questa riga al file di avvio automatico:

    @program_command
    

    Fai clic su Salva e chiudi .

  • IN LXDE / Lubuntu:

    Esiste già un file di avvio automatico, in ~./config/lxsession/Lubuntu/autostart.

    Usa questo file invece di crearne uno nuovo, come descritto sopra.

  • In XFCE:

    Nel menu Applicazioni, apri Gestione impostazioni e seleziona Sessione e avvio .

    Nella scheda Avvio automatico applicazione fare clic sul pulsante Aggiungi .

    1) Immettere il nome del programma nel campo "nome" .

    2) Immettere il comando per eseguire il programma nel campo "comando" .

    3) Immettere eventuali commenti nel campo "commenti" .

    Fai clic su Salva e chiudi .

  • Poiché desideri avviare solo un browser Web (suppongo firefox), puoi rimuovere il seguente elenco di programmi dall'elenco delle applicazioni di avvio:

    -Bluetooth manager -Deja Dup -Gnome Do -Gnome Login Sound -Indicator Workspaces -Ubuntu One -Visual Assistance -Remote Desktop -Pulseaudio

    ma spetta sicuramente a te.


    12
    Penso che la domanda riguardi l'avvio di applicazioni all'avvio senza un ambiente desktop . La tua risposta riguarda le applicazioni di avvio dopo l'avvio di DE.
    gertvdijk,
    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.