Posts com Tag ‘xfce’

1. Introdução
Atualmente, Unix (ou *nix) é o nome dado a uma grande família de Sistemas Operativos que partilham muitos dos conceitos dos Sistemas Unix originais (o GNU/Linux, embora compartilhe conceitos de sistemas da família Unix, não faz parte desta família por não compartilhar de código derivado de algum sistema da família Unix e não possuir o mesmo objetivo e filosofia no qual o Unix se originou). Um sistema Unix consiste, basicamente, de duas partes:

Estrutura do Unix

A estrutura do sistema Unix.

  • Núcleo – o núcleo do sistema operacional, a parte que relaciona-se diretamente com o hardware, e que executa num espaço de memória privilegiado. Agenda processos, gerencia a memória, controla o acesso a arquivos e a dispositivos de hardware.
  • Programas de sistema – são aplicações, que executam em espaços de memória não privilegiados, e que fazem a interface entre o usuário e o núcleo. Consistem, principalmente, de:

    – conjunto de biblioteca C (libc);
    – shell – um ambiente que permite que o usuário digite comandos;
    – programas utilitários diversos – são programas usados para manipular arquivos, controlar processos etc;
    – ambiente gráfico (GUI – graphics user interface), onde utiliza-se também deste ambiente gráfico para facilitar a interação do usuário com o sistema.

O servidor X é um simpático nome para se referir genericamente a quaisquer das implementações do padrão X11 do X-Window System definida na década de 80 pelo MIT. O X11 é o padrão adotado para ser responsável pelo ambiente de operação gráfica do S.O. GNU/Linux.

1.1 Ambiente gráfico
O S.O. GNU/Linux, através de suas diversas distribuições (inclusive o Debian), suporta vários tipos de ambientes gráficos de forma totalmente funcional. São ambientes gráficos: o KDE, Gnome, BlackBox e Xfce, entre outros. O ambiente gráfico utiliza uma combinação de tecnologias e dispositivos para fornecer uma plataforma com a qual o usuário pode interagir com a máquina. Mas, essencialmente, o ambiente gráfico Linux é considerado uma combinação entre um “display server” (servidor gráfico) e um “window manager” (gerenciador gráfico ou gerenciador de janelas), que juntos proporcionam ao usuário uma interface gráfica rica (ambiente desktop). São exemplos de cada um destes:
display servers (servidor gráfico baseado no padrão X11): X.Org Server, XFree86.
window manager (gerenciador gráfico ou gerenciador de janelas): Awesome, Compiz, OpenBox, KWin (“window manager” para o KDE), Mutter (“window manager” padrão para o GNOME 3), xfwm4 (“window manager” padrão para o Xfxe).

O “display server” utilizado atualmente em todas as distribuições GNU/Linux é o X.Org Server, uma das implementações do X-Window System.

GUI

Camadas da GUI: no X, o “window manager” e o “display server” são programas distintos.

1.2 Display server (servidor gráfico)
X client serverOs “display servers” utilizados no ambiente Unix-like são implementações do X-Window System (ou X11, X, e as vezes informalmente X-Windows) que têm a responsabilidade de fazer toda a interface direta com o hadware da placa de vídeo, do dispositivo de apontamento (geralmente o mouse) e do teclado. Além disso, dá suporte a uma interface com o usuário e fornece outros elementos básicos, como as fontes gráficas. Em termos simples, o X-Window System fornece uma interface gráfica de usuário (GUI) que permite dar suporte a um ambiente de Desktop. O que o servidor gráfico X-Window System gerencia:

  • configuração da placa de vídeo e do driver correspondente;
  • configuração do teclado;
  • configuração da porta e do tipo do mouse;
  • configuração das características do monitor (frequências de varredura, resolução, quantidade cores….)

O X fornece a estrutura básica para um ambiente gráfico de usuário (GUI): desenhar e mover as janelas na tela e interação com um mouse e teclado. No entanto, no servidor gráfico não há a visualização de ícones, menus ou quaisquer outros recursos mais elaborados que determinam uma boa interface de usuário. Esses recursos mais avançados são providos pelos “window managers” (gerenciadores gráficos ou gerenciadores de janelas). Como tal, o estilo visual de ambientes baseados no X pode variar muito.

Ao contrário de muitos outros ambientes GUI de sistemas operacionais, o X se comporta como um servidor. Isto significa que cada programa GUI de usuário que é executado é um cliente do X e há uma instância do servidor X em execução na máquina.

O X-Window System tem sua funcionalidade conseguida através da cooperação de componentes separados, em vez de tudo estar compactado em uma única e enorme codificação. O melhor exemplo desta situação é o conceito de “window manager” (gerenciador gráfico ou gerenciador de janelas) que é, essencialmente, o componente que controla a aparência das janelas e proporciona os meios pelos quais o usuário pode interagir com elas. Praticamente tudo o que aparece na tela no X está dentro de janelas, e um “window manager” faz o gerenciamento delas.

XOrg

Comunicação do X.Org Server com seus clientes através do protocolo X11.

Como dito anteriormente, o “display server” utilizado atualmente em todas as distribuições GNU/Linux é o X.Org Server.

Um pouco de história da especificação do X-Window System
Vários termos são usados para se referir ao X-Window System: “X”, “X-Window”, “X Version 11″, “X11″, “X11R6″ ou “X11R7″. O X-Window System é uma especificação de servidor gráfico com o conceito de janelas, originalmente chamado simplesmente de X, desenvolvido no MIT em 1984. Desde setembro de 1987 o protocolo contido no X está na sua versão 11 e por isso carrega no seu nome este número. Os ambientes gráficos Gnome, KDE, Xfce, Window Maker, Flux Box, etc, todos necessitam de uma implementação do X para funcionar.

Antes de 2004, o projeto XFree86 era uma implementação do X-Window System. Foi originalmente escrito para sistemas operacionais Unix-like em computadores IBM PC compatível e tornou-se disponível para muitos outros sistemas operacionais e plataformas. Durante a maior parte da década de 1990 e meados de 2000, o projeto XFree86 foi a fonte de maior inovação do X. Até início de 2004, ele era quase universal em máquinas com GNU/Linux e BSD. Em fevereiro de 2004, com a versão 4.4.0, o projeto XFree86 adotou uma mudança na licença que a Free Software Foundation considerou incompatível com a GPL. A maioria dos desenvolvedores XFree86, que já estavam incomodados com outras questões no projeto, migraram para um outro projeto, o X.Org, que logo se tornou dominante no mundo Linux. Assim, criou-se a X.Org Foundation em 2004 fruto da junção de forças entre um organismo que supervisionava as normas X e os ex-desenvolvedores XFree86. Isso fez com que atualmente o “display server” utilizado em todas as distribuições GNU/Linux seja o X.Org Server.

O projeto X.Org passou a ser desde 2004 a referência da implementação do X-Window System. Chama-se de X.Org Server (geralmente abreviado para Xorg Server, XServer ou apenas Xorg) as liberações de pacotes do servidor X gerenciadas pela X.Org Foundation. A primeira versão do X.Org Server foi um “fork” do XFree86 versão 4.4 RC2. O servidor X.Org tem dado suporte a maioria dos dispositivos gráficos modernos dos mais diversos fornecedores, o que tem tornado obsoleto o servidor XFree86.

Dessa forma, pode-se dizer que quando um aplicativo tem a referência de ser executado no Linux X11, isto quer dizer que ele se integra tanto no Gnome, KDE, Xfce ou outros ambientes gráficos sem problemas.

1.3 Window manager (gerenciador gráfico ou gerenciador de janelas)
O GNU/Linux possui diversos gerenciadores gráficos diferentes. Alguns muito simples e outros mais complexos e cheio de recursos. O “window manager” proporciona ao ambiente gráfico a aparência e as funcionalidades esperadas incluindo as bordas das janelas, botões, truques de mouse, menus etc. Como no sistema Linux o “display server” (X-Window System) é separado do “window manager”, dizemos que seu ambiente gráfico é do tipo cliente-servidor. O “display server” funciona como servidor e interage diretamente com o mouse, o teclado e o vídeo. Já “window manager” funciona como cliente e se aproveita dos recursos disponibilizados pelo “window manager”.

O X-Window System não especifica um gerenciador de janelas em particular. A aparência e preferência do X-Window System é deixada para o usuário. São exemplos de gerenciadores de janelas disponíveis para o Linux: Awesome, Compiz, OpenBox, Twm, fvwm2, AfterStep, Window Maker, Blackbox, Enlightment, kwm e outros.

1.4 O X no Debian
Atualmente a versão do X adotada no Debian é derivada da versão lançada pela X.Org Foundation, e é frequentemente também chamada de “X.Org”. Todos os termos para se referir ao X-Window System citados acima são funcionalmente intercambiáveis num sistema Debian. É fácil identificar a versão do X.Org em utilização:
$ apt-cache show xserver-xorg | grep Version
Version: 1:7.7+3~deb7u1

Pela resposta acima, a versão é 7.7

Após instalado, a pasta onde se encontra seus arquivos é a /etc/X11/ .
Para configurar o X.Org, um bom guia pode ser encontrado em Debian Xorg.
Para entender detalhes sobre os arquivos de configuração do Xorg X server, utilize:
$ man xorg.conf.d
$ man intel

Em princípio não há necessidade de existir o arquivo /etc/X11/xorg.conf, pois o X.Org lerá o hardware cada vez de sua iniciação, possuindo excelente sistema de reconhecimento de hardware e autoconfiguração. Assim, normalmente não haverá qualquer necessidade de configuração manual. Mas é importante registrar estes arquivos:
/root/xorg.conf.new     (gerado quando do comando manual Xorg -configure)
/var/log/Xorg.0.log         (gerado a cada iniciação do Xorg)
/var/log/Xorg.0.log.old

OBS: quando for necessário criar um arquivo xorg.conf, é necessário parar o X e executar alguns comandos. Exemplificaremos aqui os passos necessários:
a) Mudar para um console de comandos como root (não através de um emulador de terminal no X, utilize-se, por exemplo, de <Ctrl><Alt>F1 ou <Ctrl><Alt>F2).
b) Parar o X (aqui vamos fazê-lo parando o serviço de “display manager” em uso):
# /etc/init.d/gdm stop && /etc/init.d/gdm3 stop && /etc/init.d/kdm stop && /etc/init.d/xdm stop && /etc/init.d/lightdm stop
OBS: para saber o gerenciador de log in em uso basta executar o comando:
$ cat /etc/X11/default-display-manager
c) Em seguida, executar:
# X -configure
o que fará a criação do arquivo xorg.conf.new na pasta /root.
d) Para fazer valer este arquivo, faça sua cópia para a pasta /etc/X11 conforme o comando abaixo:
# mv /root/xorg.conf.new /etc/X11/xorg.conf
e) Agora reiniciar o X (aqui vamos fazê-lo através do serviço de “display manager”, onde estamos utilizando o lightdm):
# service lightdm start

O servidor X é executado em um terminal virtual atribuído pelo Linux. Esse terminal é o sétimo terminal virtual e que pode ser alcançado através da combinação de teclas Ctrl+Alt+F7 do teclado. Os outros terminais (do primeiro ao sexto terminal) tem-se shell puro e podem ser alcançados através da combinação de teclas Ctrl+Alt+Fx, onde “x” representa o número do terminal virtual desejado. Outra forma de se ter acesso a um terminal é através de um aplicativo de emulação de terminal através do próprio X, as chamadas sessões xterm. Xterm fornece uma sessão de terminal Linux/UNIX que permite ao usuário executar comandos shell e ver a saída.

2. O gerenciador de janelas – ambiente Desktop

2.1 Os icons dos programas
Quando um programa é instalado, ele pode criar um arquivo “nome_programa.desktop” na pasta /usr/share/applications. Isto é suficiente para obter um lançador no painel desktop e no menu do desktop independentemente do gerenciador de janelas em uso (Xfce, GNOME ou KDE).

3. X RandR e xrandr
X RandR (X “resize and rotate” extension) é usado para configurar quais portas de “displays” estão habilitadas (por exemplo, LCD, VGA e DVI), e configurar os seus modos e as propriedades, tais como orientação, reflexão e DPI de exibição. Esta é a maneira mais simples e poderosa para obter sistemas multi-monitor funcionando usando versões recentes do Linux com chipsets gráficos, tais como o Intel 945GM/GMS e ATI Radeon. X RandR é um protocolo de comunicação escrito como uma extensão do protocolo X11 para “display servers”. X RandR provê capacidade de redimensionar, girar, atualizar e refletir a janela raiz de uma tela.

Já xrandr é uma ferramenta oficial baseada em linha de comandos destinada a fazer a configuração da extensão X RandR, o qual permite a (re)configuração do servidor X em tempo de execução (ou seja, sem reiniciá-lo). Para obter auxílio desta ferramenta:
$ xrandr --help
$ man xrandr

Para Intel graphics: $ man intel
Para ATI graphics: $ man radeon

No momento deste post a versão da ferramenta randr em uso era a 1.3, como pode-se ver:
$ xrandr -v
xrandr program version 1.3.5

3.1 A tela (“screen”) virtual
É necessária uma entrada na subseção “Monitor” da de xorg.conf para determinar o tamanho da reserva de memória necessária ao quadro em que os monitores devem caber. Sem ela, o tamanho máximo virtual será limitado ao tamanho do maior display que foi ligado quando o X foi iniciado. O tamanho máximo virtual não pode ser alterado uma vez que o X tenha iniciado, assim precisa ser grande o suficiente para acomodar a maior combinação de monitores que se deseja conectar sem ter que reiniciar X. Quanto maior a área virtual, maior a quantidade de memória necessária.

Virtual Screen

4. Comandos
Uma maneira fácil de utilizar comandos para o X é através da interface de linha de comando com xrandr. A xrandr permite controle dinâmico sobre as saídas de vídeo, resoluções, orientação … e adicionar novos monitores on-the-fly, sem reiniciar o servidor X. Mas nem todos os drivers são suportados. Os que fazem são: Intel, ATI (driver OpenSource), radeonhd (OpenSource driver), nv (nvidia driver 2D) e nouveau (OpenSource driver nvidia). No momento deste post, NVidia não suportava xrandr. A opção é utilizar a própria tecnologia da NVidia chamada TwinView

Vejamos dois exemplos de uso da ferramenta xrandr, consultando o hardware sobre saídas vídeo:


$ xrandr -q
Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192
LVDS-1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
   1600x900       60.0*+
   1152x864       60.0  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
   720x400        59.6  
   640x400        60.0  
   640x350        59.8  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)


$ xrandr -q
Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192
LVDS-1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
   1600x900       60.0*+
   1152x864       60.0  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
   720x400        59.6  
   640x400        60.0  
   640x350        59.8  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected (normal left inverted right x axis y axis)
   1920x1080      60.0 +   50.0     25.0     30.0  
   1680x1050      60.0  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       60.0  
   1280x720       50.0     60.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   720x576        50.0  
   720x480        59.9  
   640x480        72.8     75.0     66.7     60.0     59.9  
   720x400        70.1

Já pela primeira resposta acima, observa-se a existência de 3 saídas de vídeo na máquina: LVDS, VGA e HDMI. LVDS representa a própria tela interna do laptop. As saídas VGA e HDMI estão sem conexão a qualquer monitor externo, enquanto a saída LVDS está conectada e suporta 8 modos a 60 Hz. Na segunda resposta, a diferença está no fato da saída HDMI passar a estar conectada a um monitor externo. Esta saída HDMI possui 13 modos em diversas frequências de atualização do vídeo.

Pelo exemplo acima podemos ver todas as resoluções suportadas pelos monitores, e até mesmo o tamanho físico destes (no caso da tela do laptop, esta tem tamanho 345mm de largura x 194mm de altura). Para a tela interna de LCD, saída LVDS, vê-se que sua proporção é de 16:9, o que é hoje de certa forma um padrão. Esta proporção é confortável para filmes em DVD, jogos e exibição de múltiplas janelas lado a lado. Veja o cálculo:
194mm x 16/9 = 345mm

O modo marcado com um asterisco (*) é o modo de corrente. O marcado com um sinal positivo (+) é o modo preferido (também chamado modo padrão). A maioria dos monitores relatam um modo preferido para o driver. E o servidor/driver geralmente escolherá este modo por padrão. O modo preferido é automaticamente selecionado quando utiliza-se o comando xrandr com a opção “--auto“.

Exemplos de comandos:
a) Mudar a resolução da tela do laptop para 1152×864:
$ xrandr --output LVDS-1 --mode 1152x864

b) Para configurar a área de trabalho estendida, no caso a HDMI, em 1600×1200 abaixo e à direita da LVDS:
$ xrandr --output HDMI-1 --mode 1600×1200 --above LVDS-1

c) Iniciar o monitor HDMI usando a resolução 1280×1024 e sua colocação é à direita da tela LVDS:
$ xrandr --output HDMI-1 --mode 1280x1024 --right-of LVDS-1

d) Desabilitar o display VGA externo:
$ xrandr --output VGA-1 --off

e) Consultar todas as saídas e habilitá-las com seu modo preferido:
$ xrandr --auto

f) outros exemplos de comandos:

$ xrandr --output LVDS-1 --mode 1600x900 --pos 0x0 --output HDMI-1 --mode 1280x1024 --pos 800x0
$ xrandr --output LVDS-1 --mode 1600x900 --output HDMI-1 --mode 1920x1080 --right-of LVDS-1
$ xrandr --output LVDS-1 --mode 1600x900 --output HDMI-1 --mode 1280x1024 --right-of LVDS-1
$ xrandr --output LVDS-1 --mode 1600x900 --output HDMI-1 --mode 1280x1024 --pos 1800x0
$ xrandr --output LVDS-1 --auto --output HDMI-1 --auto --right-of LVDS-1
$ xrandr --output LVDS-1 --mode 1600x900 --output HDMI-1 --mode 1280x1024 --above LVDS-1
$ xrandr --output HDMI-1 --mode 1920x1080 --rate 60 --right-of LVDS-1
$ xrandr --output HDMI-1 --auto --right-of LVDS-1
$ xrandr --output LVDS-1 --primary --auto --output VGA-1 --right-of LVDS-1 --auto

OBS:
– opções para localização relativa das saídas: --right-of/--left-of/--above/--below.

4.1 Entendendo um pouco mais os parâmetros de respostas
Vejamos um comando xrandr da seguinte forma, e os parâmetros de status dos monitores:
$ xrandr --output LVDS-1 --mode 1600x900 --output HDMI-1 --mode 1280x1024 --pos 1800x0


$ xrandr -q
Screen 0: minimum 320 x 200, current 3080 x 1024, maximum 8192 x 8192
LVDS-1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
   1600x900       60.0*+
   1152x864       60.0  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
   720x400        59.6  
   640x400        60.0  
   640x350        59.8  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected 1280x1024+1800+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080      60.0 +   50.0     25.0     30.0  
   1680x1050      60.0  
   1280x1024      75.0*    60.0  
   1440x900       59.9  
   1280x960       60.0  
   1280x720       50.0     60.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   720x576        50.0  
   720x480        59.9  
   640x480        72.8     75.0     66.7     60.0     59.9  
   720x400        70.1

Observamos:
– o tamanho máximo da tela virtual (“virtual screen”) continua sendo uma matriz máxima de 8192 x 8192;
– em uso corrente, uma matriz de 3080 x 1024. Ou seja, 1600 (para a tela do LVDS) + 1280 (para a tela do monitor da interface HDMI) + 200 (distância entre as 1600 posições da tela do LVDS e o início da tela do HDMI – que se inicia em 1800).

4.2 GUIs

Várias interfaces gráficas estão disponíveis para o X RandR (todas utilizando GTK):
Grandr
URandR
ARandR
Zarfy
LXrandr

5. Refresh rate
As células de um monitor se apagam muito rapidamente, por isso a imagem precisa ser atualizada várias vezes por segundo, processo chamado “refresh”. Quanto mais alta a taxa de atualização melhor para os olhos humanos. Se essa taxa for pequena, o olho humano perceberá uma certa cintilição luminosa da tela, efeito este chamado “flicker”. Na prática, níveis de refresh de tela acima de 60Hz são desejáveis.

Como calcular o refresh rate? Depende de duas variáveis: a frequência horizontal de varredura e o número de linhas da tela. Por exemplo, um monitor que trabalha com frequência horizontal de 71KHz (71 mil linhas por segundo), ao atualizar um um vídeo com resolução de 1280×1024 (onde teríamos 1024 linhas horizontais) teria uma taxa de refresh de 69Hz (ou seja, a tela seria atualizada 69 vezes em 1 segundo):
71000/1024 = 69,3

6. Trocar o Window Manager padrão
É possível trocar o window manager padrão em utilização no ambiente desktop por um outro de preferência do usuário.

6.1 Como usar o KWin window manager no ambiente desktop Xfce
Sabemos que o window manager padrão do Xfxce é o Xfwm4. Que é um bom gerenciador de janelas, pequeno, mas com funcionalidades e efeitos bastante limitados. O KWin pode ser usado com outros ambientes de desktop além do KDE, apesar de que na prática termos que instalar quase todo ambiente KDE (KDE libraries) e gerar certo “inchaço” de recursos do KDE no ambiente. Se não for desejado isso, melhor não fazer a instalação do Kwin. Mas a combinação Xfce + Kwin tem funcionado muito bem.

Para trocar o xfwm4 pelo kwin deve-se:

a) Instalar o Kwin
# apt-get install kde-window-manager
O pacote “kde-window-manager” contém alguns dos programas e bibliotecas básicas do KDE, incluindo o próprio KWin.

b) Passar a utilizar o Kwin manualmente
Uma vez estando o Kwin instalado, pode-se testá-lo com um simples comando a partir do terminal:
$ kwin --replace &

Com este comando provavelmente vai se ter um segundo ou dois de cintilações, mas se tudo funcionar bem, já se deve ter as fronteiras originais das janelas Xfce substituídas pelo estilo padrão Oxygen KDE e uma sombra azul clara sob suas janelas. Tendo isso, tem-se o KWin funcionando!

Se desejar voltar ao Xfwm4, basta executar:
$ xfwm4 --replace &

c) Limpar o cache de log in
Em algumas situações pode acontecer que ao iniciar o Xfce o window manager escolhido seja o Kwin automaticamente. Isso se deve ao cache de iniciação em ~/.cache/sessions/. Limpe o cache de iniciação:
$ rm ~/.cache/sessions/*
OBS: para ter certeza da limpeza do cache, faça este procedimento quando tiver na tela o seu gerenciador de login. Para isto, abra um terminal (por exemplo, Ctrl+Alt+F1) e realize o comando. Após isto, volte (Ctrl+Alt+F7) e faça o log in.

d) Toda vez que iniciar o ambiente desktop Xfce e desejar trocar o window manager padrão Xfwm4 pelo Kwin, basta executar novamente este comando. Mas se desejar eliminar este trabalho de executar esse comando cada vez que o Xfce for reiniciado, observe os passos a seguir para automatizar esse processo (iniciar automaticamente KWin quando o Xfce for inicializado).

Opção 1: fazer autostart de aplicação Xfce (a maneira fácil)

Isso provavelmente também é a maneira mais segura e recomendada. O KWin será diretamente iniciado quando o usuário fizer log in (evitando que o Xfwm4 comece em primeiro lugar e fosse substituído posteriormente pelo Xfwm4). O usuário também ganha em conforto pois evita-se aquela ligeira cintilação quando da substituição do Xfwm4 pelo KWin.

Para isso, deve-se abrir o “Gerenciador de Configurações” do Xfce, ir para “Sessão e Inicialização”, conforme mostra a figura abaixo:

Kwin replace

Então clique na aba “Início Automático de Aplicativo”, e clique no botão “Adicionar” (botão que tem o “sinal mais”) para adicionar um novo programa na lista de autostart. Na janela de diálogo que se abrirá, preencha os campos:

Name: pode-se colocar qualquer nome aqui. Por exemplo: Kwin Autostart.
Description: novamente, qualquer coisa que se queira.
Command: aqui é a parte importante. Deve-se colocar o comando usado auteriormente: “kwin --replace“.

Então clique no botão OK, e tudo estará preparado. De agora por diante, KWin será autoinicializado quando o usuário fizer log in no Xfce!

Para voltar para a configuração inicial de forma a utilizar o “window manager” Xfwm4, tudo que se tem que fazer é desmarcar a caixa e fazer novamente log in no Xfce. OBS: por prudência, recomenda-se limpar o cache de log in na forma colocada mais acima neste post.

Opção 2: editar xfce4-session.xml
Editar um arquivo de configuração XML utilizado pelo Xfce na inicialização:
# vim /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
Obs: é recomendado fazer o backup do arquivo para o caso de desejar voltar à configuração original.

Uma vez com o arquivo aberto, encontre a linha abaixo:
<value type="string" value="xfwm4"/>

Xfce arquivo de configuração

Observe a figura acima. Agora altere “xfwm4” por “kwin”:

Salve o arquivo e é só isso. Agora só iniciar o Xfce novamente.

A vantagem deste método é que Xfwm4 também nunca irá começar quando do log in no Xfce, tornando a partida do KWin parecer mais perfeita. Por outro lado, se este método falhar ao iniciar KWin, o Xfwm4 também não vai ser iniciado e nã teremos um “window manager” ativo no ambiente. Isso fará com que as janelas se apresentem sem as suas bordas, nem ícones e nem botões de controle, o que não é agradável.
Obs: por prudência, novamente recomenda-se limpar o cache de log in na forma colocada mais acima neste post.

e) Definindo espaços de trabalhos do Xfce com kwin
Pressione Ctrl+F8 e clique na tecla “+” até se ter o número de desejado de espaços de trabalho. Para diminuir os espaços de trabalho, Ctrl+F8 e clique na tecla “-“.

7. OpenGL Tech Demos
Filmes demonstrativos, visualmente deslumbrantes, com códigos escritos seguindo a especificação OpenGL (várias versões). Para aqueles que desejassem executar estas demonstrações em tempo real seria recomendado usarem uma placa gráfica NVIDIA GeForce GTX 780 … ou uma NVIDIA GeForce TITAN Preto para um ótimo desempenho destas demos.
Unreal Engine 4 with OpenGL on Linux
the timeless by mercury @ Revision 2014
OpenGL vs DirectX 11 on Unigine Heaven Benchmark 4.0 MSI TF GTX660
Outros OpenGL e DirectX, visualmente deslumbrantes:
Unigine “Heaven” DX11 benchmark

8. Jogos Linux com renderização de imagens deslumbrantes
Steam

9. Problemas
Tive problemas no uso do xrandr quando trabalhava o seguinte ambiente:

Laptop Toshiba Satellite, com controladora VGA Intel 82852/855GM.
Linux distribuição Debian (Debian 8 – geany)
Ambiente de trabalho gráfico Xfce (versão 4.10), com gerenciador de janelas Xfwm4 ( que é o window manager padrão do Xfxce)
Xrandr versão 1.4.2 (server RandR versão 1.4)

Descrição do problema:
Desejava trabalhar com múltiplos displays (o próprio do laptop e mais outro através de sua saída VGA). E o xrandr se destina exatamente para controlar múltiplos monitores, mas infelizmente não estava funcionando bem. As situações:
a) quando iniciava a máquina com o segundo monitor já conectado na interface VGA do laptop, toda a tela era direcionada ao segundo monitor ficando a tela do laptop apagada. E não havia forma de ativar esta tela (seja através do uso de comando CLI xrandr ou de configurações disponíveis através do ambiente gráfico Xfce). Mesmo desconectando o segundo monitor, a tela do laptop não voltava.

b) iniciando a máquina sem a conexão do segundo monitor, tinha a tela do laptop normalmente. Após conectar o cabo VGA ao segundo monitor, não conseguia ativar o segundo monitor: sua tela ficava sempre escura.

Solução:
Devem existir várias soluções alternaticas para o problema acima, o que é uma característica comum do mundo Linux. O que percebí é que este hardware mais antigo apresenta problemas para trabalhar com dois monitores.


$ xrandr -q
Screen 0: minimum 320 x 200, current 2048 x 768, maximum 2048 x 2048
LVDS1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00*+
   800x600       60.32    56.25  
   640x480       59.94  
VGA1 connected 1024x768+1024+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080     60.00 +
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x720      59.97  
   1024x768      75.08*   70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    60.00  
   720x400       70.08

Mas ao final tudo funcionou bem, onde fiz os seguintes procedimentos:
a) fazer a iniciação da máquina com o cabo VGA conectado ao segundo monitor. Assim, toda saída de vídeo foi para o segundo monitor ficando a tela do laptop escura;
b) abrir um terminal (utilizando a tela do segundo monitor), e executar os dois comandos a seguir:
$ xrandr --output LVDS1 --off
$ xrandr --output LVDS1 --auto

Neste instante tem-se as duas telas funcionando normalmente (as telas estarão clonadas). Daí por diante os comandos através do xrandr funcionarão normalmente. Um comando interessente neste momento pode ser:
$ xrandr --output VGA1 --mode 1024x768 --right-of LVDS1

Obs: LVDS1 e VGA1 são os nomes das saídas de vídeo na forma como o X enxerga.

10. Dicionário de termos

    • Ambiente Desktop

O termo “ambiente desktop” é uma combinação de facilidades consistindo ícones, janelas, barras de ferramentas, pastas, papéis de parede e desktop widgets. Uma GUI também pode fornecer funcionalidades de arrastar e soltar e outras características que tornam o ambiente desktop mais completo. São exemplos de ambientes desktop GNOME, KDE, Xfce, e LXDE

    • Dispositivo

Uma placa gráfica de computador ou um chipset gráfico integrado numa placa mãe de computador.

    • Monitor

Um dispositivo físico (tal como um CRT ou uma tela plana de computador), semelhante ao que vocês está sentado em frente neste momento.

    • Terminal

Um local de trabalho com um monitor físico, teclado físico e mouse físico.

    • Tela (“screen”)

A tela é algo onde o Xorg pode exibir seu material. A tela tem um monitor e uma placa gráfica que lhe são atribuídos. Telas intercambiáveis ​​são muitas vezes criadas para estarem ficticiamente a esquerda e a direita entre si, chaveando de um para o outro tão logo o ponteiro do mouse atinja a borda do monitor.

    • Tela virtual (“virtual screen”)

Dois significados diferentes estão associados a este termo:
– uma técnica que permite deslizar um monitor em torno de uma tela que está executando numa resolução maior do que o monitor está corrrentemente sendo mostrado;
– um efeito simulado por um “window manager” mantendo a informação da posição da janela em um sistema de coordenadas maior que a tela e permitindo deslizar através da simples movimentação das janelas em resposta ao usuário.

    • “Display”

Uma coleção de telas, muitas vezes envolvendo vários monitores, geralmente configurados para permitir ao mouse apontar para qualquer posição dentro delas. Estações de trabalho baseados em Linux são geralmente capazes de ter múltiplos displays, entre os quais o usuário pode alternar com uma combinação de teclas especiais através do teclado, tais como “control-alt-F1″….”control-alt-F7”, chaveando entre os monitores e mostrando as diversas telas de cada display.

Referências
1- Debian: the X Window System
2- Using Multiple Screens
3- Xorg RandR 1.2
4- XSF / How to use xrandr
5- RandR
6- The X Window System and Virtual Consoles
7- Máquina Debian com ambientes gráficos simultâneos
8- Gerenciadores de login no Debian
9- Placa de vídeo e GPU: principais características
10- Tutorial: How to use the KWin Window Manager with Xfce

Anúncios

1. O ambiente
Quando preparamos este post, o ambiente existente continha as seguintes versões de software:
– GNU/Linux Debian 7 (wheezy);
– KDE 4.4.8;
– Xfce 4.8.0.

2. Instalar o Linux com o primeiro ambiente gráfico
Instalar normalmente a máquina, com o primeiro ambiente gráfico (podendo ser o Xfce ou o kde). Quando deste post, instalamos primeiro o Xfce.
Após a instalação, fazer as configurações complementares de sua preferência no ambiente instalado: verificar se tudo está funcionando corretamente, os aplicativos preferenciais foram instalados, os firmwares,etc.

3. Instalar o segundo ambiente gráfico
No caso deste post, fizemos a instalação do KDE.

3.1 Um pouco sobre os pacotes KDE existentes
Existem opções de pacotes KDE a serem instalados: uns mais completos outros mais minimalistas. Observe:

  • pacote kde-plasma-desktop: para uma instalação mínima do KDE. Instalará poucos programas KDE: browser, file manager, text editor, system settings, panel, etc, além de bilbiotecas e dados importantes;
  • pacote kde-workspace: idêntico ao pacote kde-plasma-desktop;
  • pacote kde-standard: instala o “kde-plasma-desktop” e diversos outros aplicativos (Akregator, Ark, Dragonplayer, gnupg, Kaddressbook, Kate, KDE wallpapers, Kmail, etc).

Obs: se desejar listar com detalhes quais pacotes serão instalados e as dependências, utilize o comando apt-cache. Por exemplo:
$ apt-cache showpkg kde-plasma-desktop

3.2 Instalando o ambiente gráfico KDE mínimo

# aptitude install kde-plasma-desktop kde-l10n-ptbr

Obs:

    • o pacote kde-l10n-ptbr traz a traduação do KDE para o português brasileiro;
    • caso ainda não tenha sido realizado a instalação do pacote “xorg”, faça conjuntamente a sua instalação. Mas entendemos que ele já deve ter sido instalado quando da instalação do primeiro gerenciador gráfico;
    • caso ainda não tenha sido realizada a instalação de um gerenciador de login (chamado também de “display manager”), faça conjuntamente a sua instalação. Mas entendemos que ele já deve ter sido instalado quando da instalação do primeiro ambiente gráfico. O gerenciador de login mais comum numa instalação Xfce é o “lightDM”, enquanto numa instalação KDE é o “kdm”. Não há necessidade de instalar mais que um gerenciador de login. Tanto o “lighdm” como o “kdm” gerenciam uma coleção de servidores X em execução em máquinas locais ou remotas. Eles permitem que os usuários entrem facilmente em seu ambiente de área de trabalho preferido;
    • na tela do gerenciador de login (kdm ou o lightdm), o usuário poderá escolher qual o ambiente gráfico a ser carregado (através do menu “sessões”);
    • é muito fácil instalar e desinstalar gerenciadores de login, a qualquer momento. Veja exemplos de comandos para isto:

# aptitude install lightdm
# aptitude install kdm
# apt-get purge lightdm

  • desta forma, tanto o Xfce como os pacotes KDE serão automaticamente atualizados pelo “update manager” se estiver instalado.

4. Acesso ao ambiente gráfico sem gerenciador de login
Caso opte por não instalar nenhum gerenciador de login, o acesso ao ambiente gráfico Xfce ou KDE ainda poderá ser feito através de comandos diretamente através do terminal, como exemplificado a seguir:
$ startx /usr/bin/startkde
$ startx /usr/bin/startxfce4

Se foi realizada a instalação do ambiente kde, seu gerenciador de login padrão “kdm” foi instalado. O mesmo acontece com o metapacote do gnome e seu gerenciador de login padrão o “gdm3”. Para desinstalar estes gerenciadores de login, fazer:
# apt-get purge kdm gdm3

OBS: nunca se deve iniciar um ambiente gráfico como root. Devido a questões de segurança.

Referências
1- Gerenciadores de login no Debian
2- Debian KDE
3- Como criar entradas no Menu dos gerenciadores gráficos Gnome, KDE e Xfce
4- O ambiente gráfico Linux

1. Introdução
Xfce é um ambiente de trabalho leve para sistemas operacionais Unix-like. Destina-se a ser rápido e leve, bem como visualmente atraente e fácil de usar. Uma das prioridades do Xfce é a adesão a padrões, especialmente aqueles definidos através do freedesktop.org. Isso permite que o Xfce interopere perfeitamente com programas escritos para outros ambientes de trabalho, se esses programas também seguirem os padrões especificados.

Xfce é composto de uma série de componentes que juntos fornecem uma funcionalidade completa para um ambiente desktop. Eles são empacotados separadamente e o usuário pode escolher dentre aqueles pacotes disponíveis o melhor para seu ambiente de trabalho pessoal.

Xfce é uma das opções de DesktopEnvironment na DebianDesktopHowTo.

A versão Debian Wheezy (cognome para o Debian 7) contém o Xfce 4.8 empacotado e disponível em seu repositório.

2. O ambiente gráfico Linux

Antes de instalar o gerenciador gráfico Xfce, vale a pena compreender um pouco melhor o servidor gráfico X-Window através do post o ambiente gráfico Linux.
 

3. Instalar o Xfce no Debian a partir de uma instalação nova
A instalação padrão é com o gerenciador gráfico Gnome.  Mas quando da instalação de um novo sistema operacional a partir do zero, podemos instalar outros gerenciadores como o Xfce ou o KDE. Resumidamente, os procedimentos são os seguintes:
a) Quando estiver com o prompt do boot do Debian Installer, selecione “Advanced Options” se não desejar usar o GNOME. Observe a figura:
Tela inicial de instalação do Debian

Selecione “Alternative desktop environments”, conforme figura a seguir:
Tela 2 da instalação do Debian

Selecione Xfce e tecle “Enter”, conforme figura a seguir:
Tela 3 instalação Debian

4.2 A partir de uma instalação GNOME já existente
a) Desinstalar primeiro o GNOME e suas dependencias:
# aptitude purge `dpkg --get-selections | grep gnome | cut -f 1`
# aptitude -f install
# aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1`
# aptitude -f install

b) Instalar o Xfce
# apt-get install xfce4

Isto irá instalar um metapacote, que irá instalar os módulos do núcleo do Xfce e os scripts para fazê-lo funcionar.

Há muitos utilitários que vêm com o Xfce. Se desejar instalá-los (é opcional e pode ser feito posteriormente caso a caso a partir de necessidades concretas):
# apt-get install xfce4-goodies

Pronto! Reinicar a máquina e usar o Xfce.

5. Outras dicas:
a) Outros pacotes podem ser encontrados pelo comando:
# apt-cache search xfce4

b) Para instalar todos os pacotes xfce4:
# apt-get install `apt-cache search xfce | cut -d ' ' -f1`

Links:
1- Xfce – debian Wiki
2- Website Xfce
3- Debian 7 with Xfce

1. Configurar Icone

No Linux, a pasta padrão para os icones está em /usr/share/icons/
Embaixo desta pasta há um conjunto de outras pastas com os nomes dos temas. Quando se utiliza o gerenciador xfce, os icons das aplicações ficam em /usr/share/app-install/icons/
Por exemplo, em /usr/share/icons/gnome/24x24/actions/ ficam os icones do tema padrão do Gnome.

Partindo de um problema concreto: no menu principal existe a aplicação “SAGA GIS” sem um icone associado. Como associar um icone a esta aplicação?

Resposta:
passo-1: primeiro, colocar o novo icone na pasta /usr/share/app-install/icons/
passo-2: associar a aplicação ao icone, onde a maneira mais fácil para isto é editar o Menu Principal e fazer a associação. O Menu Principal, se estiver usando a interface xfce, é obtida via Menu de Aplicativos -> Configurações -> Menu Principal.

2. Usar novos temas no Xfce

a) Instalar o novo tema na área do usuário
É uma opção interessante pois cada usuário poderá utilizar seus temas favoritos, sem necessitar de privilégios de administrador para instalar os temas.

Criar a pasta .themes abaixo do diretório raiz:
$ mkdir ~/.themes

Baixar os temas e colocar nesta pasta. Por exemplo, se fizer o download do arquivo de tema 136162-Crunchy-themes.tar.gz (descompactar via comando tar -zxvf 136162-Crunchy-themes.tar.gz). Após isto, mover o conteúdo do pacote para a pasta .themes:
$ cp -r endereco/onde/desempacotou/* ~/.themes/.

Logo, a pasta .themes deve ficar com as seguintes subpastas:
03-Crunchy-blue
04-Crunchy-grey
05-Crunchy-green

OBS: para casos de arquivos .tgz o comando de descompactação é semelhante: tar xvzf nome_arquivo.tgz).

Pronto, agora é só tulizar os novos temas, que é obtido através de Menu de Aplicativos -> Configurações -> Gerenciador de Configurações -> Aparência.

b) Instalar o novo tema na área de root
A vantagem é que ficará disponível para todos os usuários. Os arquivos de temas devem ficar na pasta /usr/share/themes. Após baixar o tema (normalmente vem em um arquivo compactado contendo vários arquivos e pastas), transfira seu conteúdo para a pasta de temas:
/usr/share/themes# cp -r endereco/onde/desempacotou/* .

Pronto, agora é só tulizar os novos temas, que é obtido através de Menu de Aplicativos -> Configurações -> Gerenciador de Configurações -> Aparência.

3. Papéis de parede (“wallpapers”)
Normalmente as pessoas gostam de usar papéis de parede diferentes. Isso é muito fácil de se alterar tanto no Xfce como no gnome ou KDE, bastando clicar com botão direito do mouse na área de trabalho.

a) Usando Xfce
Para selecionar o novo papel de parede disponibilizado, use o botão direito do mouse sobre a área de trabalho (Desktop), e das opções do menu selecionar a “Configurações da área de trabalho”. Aí é só clicar sobre a imagem que será utilizada como papel de parede.
Para novos papéis de parede, fazer uso de um terminal e colocar todos os arquivos em /usr/share/xfce4/backdrops/.

b) Usando Gnome
Após clicar com o botão direito do mouse na área de trabalho(desktop), escolher “alterar plano de fundo”. Depois usar a opção adicionar. Para o caso de se desejar adicionar uma coleção grande de wallpapers, e ter todas elas disponíveis em um só lugar, coloque-as na pasta padrão do sistema /usr/share/pixmaps/backgrounds . Só é possível fazer isso como administrador e através do console do terminal, ou usando o nautilus como root.

c) Usando o KDE
No KDE, os wallpapers estão organizados a partir da pasta /usr/share/wallpapers. Existe uma “regrinha” quando a disponibilização dos wallpapers, conforme pode ser observado em Criando wallpapers para o KDE. Essa regra para gerenciamento dos wallpapers do K Desktop Environment – KDE possibilita ao sistema selecionar automaticamente uma imagem com a resolução mais adequada para o computador do usuário evitando que ela se apresente distorcida, bem como permite a inserção de alguns dados importantes sobre o wallpaper.

Uma boa ideia é instalar um conjunto de wallpapers padrão para o KDE:
# aptitude install kde-wallpapers-default kde-wallpapers

Um outro conjunto de wallpapers para o KDE pode se encontrado em KDE-Look.org

Após instalar uma nova aplicação, você espera que uma nova entrada seja criada no menu suspenso do gerenciador gráfico em uso (Gnome, KDE ou Xfce serão tratados neste post). Mas se a instalação de um pacote tiver sido realizada de forma manual, muitas vezes isto não ocorre. A aplicação pode aparecer no menu suspenso mas exigirá alguns procedimentos manuais.

Todas as entradas no menu do Gnome, KDE e do Xfce estão depositadas na pasta /usr/share/applications/. Por exemplo, a entrada do ‘gvsig’ está armazenada em /usr/share/applications/gvsig.desktop.

Tanto os ambientes de desktop KDE, Gnome como o Xfce adotaram um formato semelhante para “entradas desktop”, ou arquivos de configuração que descrevem como um determinado programa deve ser lançado, como ele aparece em menus, etc. Isto é para o maior benefício de todos que um padrão unificado esteja acordado por todas as partes de tal forma que a interoperação entre os três ambientes, e na verdade para qualquer ambiente adicional que implemente a especificação, se torna muito mais simples.

Algumas explicações quanto aos atributos dentro deste arquivo ‘.desktop’:

Name: o nome que aparecerá no menu (para o caso da língua inglesa sendo utilizada – que é a default). Caso não seja, use outro parâmetro de acordo com a lingua em uso, como por exemplo:
Name[pt]
Name[pt_BR]
Comment: um comentário para quando se passa o mouse sobre o item do menu a ser criado. É um parâmetro opcional.
Exec: contém o caminho para o arquivo executável
Icon: contém o o caminho do icon que deve aparecer no menu de entrada (preferencialmente um arquivo .png ou .xpm)
Type: o tipo da entrada do menu. Se for uma aplicação utilize ‘Application’.
Terminal: ‘true’ se a aplicação deve rodar em uma janela de terminal. A maioria das apps GUI não tem necessidade de serem executadas em um terminal. Então marque ‘false’.
Categories: é crucial. Mas existe uma restrição a certas palavras chaves. Use ponto e vírgula para mais de uma categoria. A primeira palavra indicará onde a aplicação aparecerá no menu. As categorias possíveis:

Accessories –> Utility;
Edutainment –> Education;
Games –> Game;
Graphics –> Graphics;
Internet –> Network;
Office –> Office;
Programming –> Development;
Sound & Video –>AudioVideo;
System Tools –> System;
Others –> Other;

Exemplo de um arquivo:

[Desktop Entry]
Version=1.0
Name=gvSIG
Name[pt]=gvSIG
Name[pt_BR]=gvSIG
Comment[pt]=Ferramenta SIG GPL
Comment[pt_BR]=Ferramenta SIG GPL
GenericName=Ferramenta SIG
GenericName[pt]=Ferramenta SIG
GenericName[pt_BR]=Ferramenta SIG
Exec=/home/minhapasta/gvSIG_1.9/bin/gvSIG.sh %u
Terminal=false
Type=Application
Icon=/usr/share/icons/hicolor/32×32/apps/ico-gvSIG.png
Categories=Education;


Veja também:

1- Desktop Entry Specification
2- http://www.stchman.com/menu_entry.html
Veja também:
3- Máquina Debian com ambientes gráficos simultâneos