Fink

Executando o X11 - 4. Iniciando o X11

4.1 Darwin

No Darwin puro, o XFree86 se comporta da mesma forma que em qualquer outro Unix. A forma usual de iniciá-lo é através de startx no console, iniciando o servidor e alguns clientes iniciais como o gerenciador de janelas e um emulador de terminal com um shell. No Darwin puro não é necessário especificar quaisquer parâmetros portanto você pode digitar apenas:

startx

Você pode customizar o que é iniciado através de vários arquivos em seu diretório home. .xinitrc controla quais clientes são iniciados. .xserverrc controla opções do servidor e pode até mesmo iniciar um servidor diferente. Se você estiver tendo problema (por exemplo, a tela fica completamente em branco ou o XFree86 termina e volta direto pro console), você pode iniciar um procedimento de resolução de problemas movendo estes arquivos para outro lugar. Quando o startx não encontra esses arquivos, ele usará opções padrões seguras que devem funcionar sempre.

De forma alternativa, você pode iniciar o servidor diretamente com uma das opções XDMCP tais como:

X -query remotehost

Detalhes sobre isto podem ser encontrados na página de manual do Xserver.

Finalmente, há a opção de configurar o xdm; leia sua página de manual para detalhes.

Observação: você não pode iniciar o XFree86 a partir da janela de console do Mac OS X.

4.2 Mac OS X + XFree86 4.x.y

Há basicamente duas formas de iniciar o XFree86 no Mac OS X. Uma é dar um duplo clique no aplicativo XDarwin.app em seu diretório Aplicativos (Applications), o que lhe permitirá escolher, através de uma janela de diálogo apresentado na inicialização, dentre modo de tela cheia ou sem raiz. Você pode desabilitar a janela de diálogo e configurar o XDarwin para usar sempre o modo de sua preferência através da caixa de diálogo Preferências (Preferences).

Antes da versão 4.2.0 ele sempre abria em tela cheia e não havia como escolher o modo sem raiz através de um duplo clique na aplicação.

A outra forma de iniciar o XFree86 no Mac OS X é através de startx no Terminal.app. Se você iniciar o servidor desta forma, você precisa dizer-lhe para executar em paralelo com o Quartz. Isto é feito através da opção -fullscreen:

startx -- -fullscreen

Isto iniciará o servidor em modo de tela cheia assim como os clientes enumerados no seu arquivo .xinirc.

Observação: antes da versão 4.2, a opção -quartz era usada para o modo de tela cheia.

Você pode iniciá-lo em modo sem raiz através da opção -rootless:

startx -- -rootless

A opção -quartz não mais seleciona o modo de tela cheia mas sim usa o modo padrão definido nas preferências.

A partir da versão 4.2, você pode usar startx sem argumentos; a caixa de diálogo aparecerá na inicialização.

4.3 Iniciando o X.org

O X.org funciona de forma idêntica ao XFree86, sob todos os aspectos.

4.4 Iniciando o X11 da Apple

Funcionalmente, o X11 da Apple trabalha de forma similar ao XFree86 (por exemplo, usando um arquivo .xinitrc para controlar quais clientes são executados na inicialização). A forma usual de executá-lo é através de um duplo clique no ícone X11.app (cuja localização padrão é /Aplicativos/Utilitários (/Applications/Utilities). Você pode usar startx também mas não há uma opção de linha de comando para definir o modo de exibição; o X11.app iniciará no modo que foi previamente definido através das Preferências (Preferences).

Se você não configurou um gerenciador de janelas diferente, você estará rodando o gerenciador de janelas quartz-wm da Apple. As Preferências (Preferences) do X11.app permitem trocar entre os modos de tela cheia e sem raiz sem precisar reiniciar. Entretanto, isto não funciona para o quartz-wm; é necessário escolher um gerenciador de janelas diferente (por exemplo, no arquivo .xinitrc).

4.5 O pacote applex11tools

O pacote applex11tools do Fink permite que você use o X11.app e o quartz-wm no OS 10.3 e mais recentes com o XFree86 4.4 ou mais recentes ou o X.org.

Para instalar este pacote, você precisa habilitar a árvore unstable e ter o arquivo X11User.pkg em algum lugar dentro de /Users ou /Volumes. O X11.app será instalado no diretório Applications dentro da sua árvore do Fink. Você poderá então usar tanto X11.app quanto XDarwin.app.

4.6 O arquivo .xinitrc

Caso um arquivo chamado .xinitrc exista em seu diretório home, ele será usado para iniciar alguns clientes X iniciais, por exemplo o gerenciador de janelas e alguns xterms ou um ambiente de área de trabalho como o GNOME. O arquivo .xinitrc é um script de shell que contém os comandos para fazer isto. Não é necessário colocar o tradicional #!/bin/sh na primeira linha e ligar o bit de execução no arquivo; o xinit irá de qualquer forma executá-lo através de um shell.

Caso não exista um arquivo .xinitrc em seu diretório home, o X11 usa seu arquivo padrão, /private/etc/X11/xinit/xinitrc. Você pode usar o arquivo padrão como um ponto de partida para seu próprio .xinitrc:

cp /private/etc/X11/xinit/xinitrc ~/.xinitrc

Caso esteja usando o Fink, você precisa incluir (através do comando .) o script /sw/bin/init.sh bem no começo para garantir que o ambiente seja configurado corretamente.

Você pode colocar comandos arbitrários em um .xinitrc mas há algumas restrições. Em primeiro lugar, o shell que interpreta o arquivo possui o comportamento padrão de esperar por todo programa encerrar antes de iniciar o próximo. Se você quer que vários programas rodem em paralelo, você precisa dizer ao shell para colocá-los em segundo plano (background) através de & ao final de cada linha.

Em segundo lugar, o xinit espera pelo script .xinitrc encerrar, interpretando este evento como "a sessão terminou, posso encerrar o servidor X também". Isto significa que o último comando de seu .xinitrc não pode ser executado em segundo plano e deve ser um programa que fique em execução por bastante tempo. Normalmente o gerenciador de janelas é usado para este fim. De fato, a maior parte dos gerenciadores de janelas pressupõem que o xinit esteja esperando que eles terminem e usam isto para fazer funcionar a opção de menu "Sair" ("Log out"). (Observação: para economizar memória e ciclos de CPU, você pode colocar um exec antes da última linha como nos exemplos abaixo).

Um exemplo simples que inicia o GNOME no XFree86 ou X.org:

. /sw/bin/init.sh
exec gnome-session

Um exemplo mais complexo para usuários bash que desliga a campainha do X11, inicia alguns clientes e finalmente executa o gerenciador de janelas Enlightenment:

. /sw/bin/init.sh

xset b off

xclock -geometry -0+0 &
xterm &
xterm &

exec enlightenment

Para iniciar o GNOME 2.4 e mais recentes no X11 da Apple:

. /sw/bin/init.sh
quartz-wm --only-proxy &
exec gnome-session

Para iniciar o KDE 3.2 (versão < 3.2.2-21) no X11 da Aple:

. /sw/bin/init.sh
export KDEWM=kwin
quartz-wm --only-proxy &
/sw/bin/startkde >/tmp/kde.log 2>&1

E finalmente para iniciar a versão instável mais recente do KDE no X11 da Apple:

. /sw/bin/init.sh
/sw/bin/startkde >/tmp/kde.log 2>&1

4.7 OroborOSX

O OroborOSX é uma alternativa para servidores de exibição X11.app e XDarwin. Ele requer uma instalação do X11 pré-existente para funcionar. O X11.app ou o XDarwin.app também continuam a funcionar.

Ao ser executado, o OroborOSX inicia sem próprio gerenciador de janelas que é sempre sem raiz e não lê nem o arquivo xinitrc do sistema nem o .xinitrc do usuário. Após iniciar, ele tem uma opção de menu para executar o .xinitrc. Entretanto, ele tem seu próprio método para configurar aplicações que sejam executadas quando ele inicia. Ele também fornece um mecanismo para iniciar aplicativos X11 a partir do Finder via scripts de inicialização.

Para mais informações, visite o site do OroborOSX.

Próximo: 5. Xtools