startx para um único aplicativo falha por causa do xterm

1

Estou tentando executar o epiphany diretamente usando o startx em um pi de framboesa. A ideia é executar epifania no modo quiosque apontando para um site. O comando que eu gostaria de executar é:

startx epiphany -a --profile ~/.profile google.com

Ele falha. E sim, testei o comando em uma sessão x normal e ele funciona perfeitamente. Aqui está o erro:

/usr/bin/xterm: bad command line option "-a"

Então comecei a simplificar o problema. O seguinte funciona e eu recebo um navegador:

startx epiphany

MAS se eu tentar adicionar algum argumento ao epifania, o xorg não inicia. Por exemplo, o seguinte comando falha:

startx epiphany google.com

O erro é um pouco diferente, mas praticamente o mesmo:

/usr/bin/xterm: Explicit shell already was /usr/bin/epiphany
/usr/bin/xterm: bad command line option "google.com"

O texto acima é seguido pelo uso adequado do xterm como se eu estivesse iniciando o xterm com o google.com como argumento e não como epifania.

É como se o xterm estivesse de alguma forma lendo os argumentos da epifania como seus próprios argumentos. Eu tentei usar aspas duplas e simples ao redor do comando epiphany, mas o xterm ainda gera o mesmo erro.

O que estou perdendo aqui?

    
por Mister Tea 03.10.2015 / 03:26

1 resposta

1

De acordo com a página man do xinit (que startx usa os mesmos argumentos que),

Both the client program name and the server program name must begin with a slash (/) or a period (.). Otherwise, they are treated as an arguments to be appended to their respective startup lines. This makes it possible to add arguments (for example, foreground and background colors) without having to retype the whole command line.

Portanto, startx epiphany e startx epiphany -a --profile ~/.profile google.com estão realmente passando "epifania" como o primeiro argumento para o cliente padrão (nesse caso, xterm). Para executar o Epiphany como o cliente (e, portanto, ser capaz de especificar argumentos para o Epiphany), você precisa passar o caminho inteiro para startx:

startx /usr/bin/epiphany [arguments to epiphany]

Como o Epiphany pode estar localizado em outro lugar (por exemplo, em minha máquina do Fedora 22, ele está em / bin / epiphany), você pode querer usar:

startx 'which epiphany' [arguments to epiphany]
    
por 03.10.2015 / 04:00