Inicie o ubuntu sem um ambiente de desktop, mas inicie um aplicativo X

29

Quero fazer um pequeno computador apenas para navegar na Internet. Não quero carregar um ambiente de área de trabalho para manter o uso de RAM, CPU e GPU o mais baixo possível. O computador está sendo executado em uma CPU ARM. Eu não me importo com o Distro que uso, pensei no bom e velho Debian.

RaverTiny
fonte
Então eu gostaria de sugerir o ubuntu minimal iso e instalar o blackbox DE
Tachyons
Eu não sou realmente um especialista, mas sugiro dar uma olhada na configuração do xsession (há uma página de manual para o xsession). Se você deseja apenas esse comportamento para um usuário, crie um arquivo no diretório inicial do usuário chamado .xsession e insira o comando que deseja executar. Então você provavelmente precisará usar um gerenciador de login que permita efetuar login na xsession padrão em vez de em algum outro ambiente de área de trabalho (ou desativar o gerenciador de login e usar startx). No entanto, eu recomendaria o uso de um gerenciador de janelas para salvar recursos (os Tachyons sugeriram uma caixa preta e existem muitos outros).
soulsource
Se você não carregar o ambiente da área de trabalho, como abrir o navegador da Internet?
DLIN
5
@ Nick Você pode. Com um servidor X simples como 'sessão' sem um gerenciador de janelas, você pode executar exatamente um aplicativo em tela cheia (sem bordas ou outras decorações). É assim que essas distribuições XBMC mínimas funcionam, por exemplo. Fiz isso com o Chromium uma vez há alguns anos, na versão 10.04 - mas não salvei a configuração exata.
gertvdijk
"Pensei no bom e velho Debian." Se você está pensando em outras distribuições além do Ubuntu, deve perguntar isso no Unix e Linux StackExchange . Este site Ask Ubuntu é apenas para Ubuntu - perguntas não relacionadas a Ubuntu são consideradas fora de tópico aqui.
gertvdijk

Respostas:

26
  1. Em /usr/share/xsessions/criar um arquivo no formato ".desktop" para criar o seu costume, sessão mínima. Para executar o Google Chrome como o único aplicativo após o login, faça o seguinte:

    [Desktop Entry]
    Type=Application
    Exec=google-chrome
    Name=Google Chrome
    Comment=Testing
    
  2. Reinicie seu gerenciador de exibição, por exemplo

    sudo restart lightdm  # or kdm, gdm, etc.
    

    Ou simplesmente saia.

  3. O "Google Chrome" deve aparecer na lista de sessões para selecionar (ao lado do Unity comum ou de outros DEs que você instalou).

    Entre e aproveite.

opcional

  • O XDM é um gerenciador de exibição muito mínimo - LightDM, GDM e KDM são bastante "grandes". Instale isso usando o pacote xdmInstale o xdm e reconfigure o padrão para quando o sistema inicializar usando

    sudo dpkg-reconfigure lightdm
    
  • Configure seu gerenciador de exibição para efetuar login automaticamente em um usuário específico. Consulte a documentação do seu gerente de exibição.

gertvdijk
fonte
1
Se for necessário trazer toda a área de trabalho, basta excluir o arquivo .desktop e reiniciar?
enthusiasticgeek
1
@enthusiasticgeek Não há necessidade. No gerenciador de login basta selecionar a área de trabalho completa para fazer login no, como explicado no passo 3.
gertvdijk
Alguém sabe como mudar o idioma de entrada do sistema no modo de aplicativo único?
fnc12
Alguém enfrenta o problema quando o ponteiro do mouse está ausente no modo de aplicativo único?
fnc12
Eu iniciei o google-chrome --kiosk, mas ele não ocupa a tela completa .. alguma maneira de maximizá-lo ..?
tumbudu
24

Sei que este está desatualizado, mas não consegui ver a resposta correta para a solicitação como a entendo, então aqui vai:

Eu tive um projeto para criar um sistema incorporado executando um aplicativo java gráfico específico em um computador simples com um processador Atom e uma tela sensível ao toque. Minha decisão foi evitar o uso de gerenciadores de janelas como tal, para mantê-lo a) simples, b) leve, ec) evitar todo tipo de mensagem do sistema sendo exibida na tela.

O sistema fica assim:

  1. Instalando o sistema Ubuntu básico, a variante mais leve do 12.04 (ainda perto de 1 GB, mas ok para mim, mesmo em um disco flash de 2 GB). Você pode torturá-lo um pouco para fazer uma instalação menor, é claro, existem várias maneiras para isso. Além disso, você não precisa usar o Ubuntu, mas minhas instruções abaixo devem ser revisadas - há diferenças entre as distribuições, especialmente nos arquivos de configuração e seus locais.

  2. Instalando o xorg e outros softwares úteis, como o calibrador xinput da minha tela sensível ao toque resistiva, o ifplugd para detecção de conexão Ethernet ao vivo, o acid para detecção de operação do botão liga / desliga e assim por diante.

  3. Abra /etc/init/tty1.conf e altere a exec /sbin/getty -8 -i 38400 tty1linha para algo como exec /sbin/getty -8 -i 38400 tty1 -a username, onde "nome de usuário" é o nome do usuário que você deseja fazer login automaticamente.

  4. Para iniciar a sessão X automaticamente, abra o arquivo .bashrc do usuário ~/.bashrce adicione algo assim ao final do arquivo:

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

    (O material -nocursor é para telas sensíveis ao toque, remova-o para a tela normal para ver o ponteiro do mouse) Isso reaparecerá o servidor X, portanto, se o aplicativo sair por algum motivo, reiniciará o servidor X automaticamente.

  5. Agora, no arquivo .xsession do usuário ~/.xsession, escreva algo assim (lembre-se de que cada comando aqui é executado em série, portanto, use o símbolo & no final da linha, se você deseja iniciar um servidor):

    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

Há muitas outras coisas a considerar em um sistema como esse; essa é apenas a configuração básica. Espero que ajude alguém. Boa sorte.

tolerante a falhas
fonte
1

Antigamente, você podia simplesmente correr X, e o X começava com uma tela em branco. Então você pode definir DISPLAY=:0e executar algo lá. Talvez isso ainda funcione? A partir de um shell, você desejará X&usá-lo em segundo plano.

Examine o -geometryparâmetro padrão da linha de comando X para ajustar o posicionamento da janela, pois você não terá um gerenciador de janelas para ajudá-lo.

Para executar algo como não raiz, você precisará xauthconfigurar a autorização X para o usuário não raiz.

Robie Basak
fonte
-3

Antes de tudo, não entendo como você deve abrir o navegador da Web sem carregar o Ambiente de Área de Trabalho. É como querer cozinhar uma refeição sem ligar o forno. . Ok, isso é possível com o X Server, entendi a pergunta errado.

O que você está procurando é escolher quais aplicativos serão iniciados durante o processo de inicialização.

  • No Ubuntu / Unity:

    Clique no ícone de roda dentada no canto superior direito do painel superior. Selecione Aplicativos de inicialização .

    Uma vez aberto, você verá uma lista de aplicativos que o seu sistema inicia quando o sistema operacional é inicializado.

    Clique em Adicionar no canto superior direito.

    Você verá uma caixa de diálogo.

    Na caixa de diálogo resultante:

    1) Digite o nome do programa no campo "nome" .

    2) Digite o comando para executar o programa no campo "comando" .

    3) Digite os comentários que desejar no campo "comentários" .

    Por exemplo:

    Clique em salvar e fechar .

  • No shell do Gnome:

    Pressione Alt+F2para exibir a caixa de diálogo Executar.

    Digite gnome-session-properties.

    Clique no botão "Adicionar" .

    Na caixa de diálogo resultante:

    1) Digite o nome do programa no campo "nome" .

    2) Digite o comando para executar o programa no campo "comando" .

    3) Digite os comentários que desejar no campo "comentários" .

    Clique em salvar e fechar .

  • No KDE:

    Vá para K-Menu> Computador> Configurações do sistema.

    Selecione Inicialização e Desligamento e clique no botão Adicionar Programa .

    Digite o comando para executar o programa e clique em OK .

  • No LXDE:

    Execute os seguintes comandos no terminal:

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

    Adicione esta linha ao arquivo de inicialização automática:

    @program_command
    

    Clique em salvar e fechar .

  • No LXDE / Lubuntu:

    Um arquivo de inicialização automática já existe, em ~./config/lxsession/Lubuntu/autostart.

    Basta usar esse arquivo em vez de criar um novo, da maneira descrita acima.

  • No XFCE:

    No menu Aplicativos, abra o Gerenciador de configurações e selecione Sessão e inicialização .

    Na guia Início automático do aplicativo, clique no botão Adicionar .

    1) Digite o nome do programa no campo "nome" .

    2) Digite o comando para executar o programa no campo "comando" .

    3) Digite os comentários que desejar no campo "comentários" .

    Clique em salvar e fechar .

  • Como você deseja iniciar apenas um navegador da Web (acho o firefox), você pode remover a seguinte lista de programas da sua lista de aplicativos de inicialização:

    -Gerenciador de Bluetooth -Deja Dup -Gnome -Som de login -Gnome -Espaços de trabalho do indicador -Ubuntu One -Assistência visual -Remote Desktop -Pulseaudio

    mas definitivamente é com você.

    dlin
    fonte
    12
    Eu acho que a pergunta é sobre iniciar aplicativos na inicialização sem um ambiente de desktop . Sua resposta é sobre aplicativos de inicialização após o DE ter sido iniciado.
    gertvdijk