Montando um ambiente minimalista com Debian Linux 

1024x768_scrotINTRODUÇÃO

Nesse texto explicarei como ajustar um ambiente minimalista e de alta performance com o Debian.
Consegui um sistema altamente estável, leve e funcional, consumindo menos de 130M de RAM quando ocioso.

Tive o cuidado de testar todos os passos e compartilhar as configurações usadas pelos principais programas.

As dicas expostas podem ser ridiculamente fáceis ou extremamente complicadas para algumas pessoas, especialmente para as não habituadas ao Linux.

O texto considera que o aventureiro tenha feito uma instalação limpa do Debian, sem ter selecionado a coleção de software indicada como Debian desktop evironment durante o procedimento; Os utilitários standard de sistema são aconselháveis.

seleção de software debian

SUPER USUÁRIO

Antes de tentar algo configure o comando sudo. Considero perigoso ficar como root por muito tempo, tenho receio de assumir privilégios de super usuário e esquecer de abandona-los.

# apt-get install sudo

Descrição do pacote:

Provide limited super user privileges to specific users Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. The basic philosophy is to give as few privileges as possible but still allow people to get their work done.

Após a instalação abra o visudo para editar o arquivo /etc/sudoers de forma segura. É só digitar visudo como root.

# visudo

Com o arquivo aberto adicione a seguinte linha:

usuário ALL=(ALL:ALL) ALL

Mude a palavra “usuário” pelo nome do utilizador, salve as modificações pressionando Ctrl+o; sair é Ctrl+x.

É recomendado adicionar no local destacado para manter o layout do sudoers organizado.

# User privilege specification
root ALL=(ALL:ALL) ALL 
--ADICIONAR AQUI--

MEDO DA ESCURIDÃO

thumb_6206_34

Se um gerenciador de janelas não foi escolhido durante a instalação é provável que o sistema careça do Xorg e seus afins.

Afinal, o que é o Xorg ?
Também conhecido como Xserver, trata-se da implementação aberta do X window system version 11, vital para correr aplicações GUI (Graphical User Interface). O pacote traz um conjunto de ferramentas e bibliotecas responsáveis por desenhar as aplicações na tela, sejam elas feitas com GTK, Qt ou outra toolkit.

Instalando:

$ sudo apt-get install xorg

GERENCIADOR DE JANELAS, ARQUIVOS E LOGIN.

obmenu thunar icones fazenza 9752_large

Execute:

$ sudo apt-get install openbox obconf obmenu menu thunar thunar-archive-plugin slim
openbox Gestor de janelas.
obconf Utilitário gráfico para configurar as preferências do openbox.
obmenu Ferramenta gráfica para editar menus do Openbox
menu Gera e sincroniza menus de programas para todas as aplicações sensíveis a menu
thunar Gerenciador de arquivos.
thunar-archive-plugin Plugin de extração e criação de arquivos para o Thunar.
slim Login manager

Escreva startx para subir o modo gráfico ou reinicie o sistema com o comando “sudo shutdown -r now”.

O primeiro contato com a área de trabalho pode chocar, é perceptível a crueza do sistema, não existe nada além do menu principal do Openbox. Mas calma, não é hora de desesperar, o esforço vai valer a pena.

A falta de um sub-menu dinâmico abrigando atalhos para os softwares é perceptível, o menu padrão não é muito organizado. Tal contratempo pode ser resolvido com o openbox-menu (A fast and lightweight pipe-menu for Openbox).

openbox-menu

Obtendo os sources:

$ wget https://mimarchlinux.googlecode.com/files/openbox-menu-0.3.6.7.tar.bz2

Certamente você precisará resolver algumas dependências para gerar o binário:

$ sudo apt-get install build-essential libgtk2.0-dev libmenu-cache1-dev

Descompactando, compilando e instalando:

$ tar -jxvf openbox-menu-0.3.6.7.tar.bz2
$ cd openbox-menu-0.3.6.7
$ make
$ sudo make install

É opcional, mas é possível construir um pacote Debian e facilitar futuras instalações:

$ sudo apt-get install checkinstall
$ sudo checkinstall -D --install=no --pkgarch=all
$ sudo dpkg -i openbox-menu_0.3.6.7-1_all.deb

Isso vai recompilar o programa.

Depois da instalação crie um novo pipe-menu através do programa obmenu (instalado anteriormente), é só clicar sobre o botão add nele e escolher Pipemenu. O campo id deve ser preenchido com o valor “desktop-app-menu”, enquanto o campo execute recebe o comando “/usr/bin/openbox-menu /etc/xdg/menus/xfce-applications.menu”. Ambos sem aspas.

Nada impede a inserção do novo pipe-menu diretamente no documento ~/.config/openbox/menu.xml:

<menu id="desktop-app-menu" label="Applications" execute="/usr/bin/openbox-menu /etc/xdg/menus/xfce-applications.menu" />

O Openbox deve ser reiniciado em caso de erro.

BARRA DE TAREFAS, SYSTRAY, VOLUME E CONEXÕES DE REDE

O sistema ainda não possui barra de tarefas e systray (área de notificação). Instale:

$ sudo apt-get install tint2 trayer

tint2:
tint2-example

Para deixar semelhante ao da imagem acima as linhas ulteriores deverão ser copiadas para ~/.config/tint2/tint2rc

# Tint2 config file
# Generated by tintwizard (http://code.google.com/p/tintwizard/)
# For information on manually configuring tint2 see http://code.google.com/p/tint2/wiki/Configure
 
# Background definitions
# ID 1
rounded = 0
border_width = 0
background_color = #000000 100
border_color = #414140 100
 
# ID 2
rounded = 0
border_width = 0
background_color = #1F262E 100
border_color = #232426 100
 
# ID 3
rounded = 0
border_width = 0
background_color = #000000 100
border_color = #232426 1000
 
# Panel
panel_monitor = all
panel_position = bottom center horizontal
panel_size = 100% 26
panel_margin = 0 0
panel_padding = 7 0 7
panel_dock = 0
wm_menu = 0
panel_layer = top
panel_background_id = 1
 
# Panel Autohide
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 2
autohide_height = 2
strut_policy = follow_size
 
# Taskbar
taskbar_mode = single_desktop
taskbar_padding = 2 3 2
taskbar_background_id = 0
taskbar_active_background_id = 0
 
# Tasks
urgent_nb_of_blink = 8
task_icon = 1
task_text = 1
task_centered = 1
task_maximum_size = 140 35
task_padding = 6 2
task_background_id = 3
task_active_background_id = 2
task_urgent_background_id = 2
task_iconified_background_id = 3
task_tooltip = 0
 
# Task Icons
task_icon_asb = 70 0 0
task_active_icon_asb = 100 0 0
task_urgent_icon_asb = 100 0 0
task_iconified_icon_asb = 70 0 0
 
# Fonts
task_font = sans 10
task_font_color = #FFFFFF 68
task_active_font_color = #FFFFFF 83
task_urgent_font_color = #FFFFFF 83
task_iconified_font_color = #FFFFFF 68
font_shadow = 0
 
# System Tray
systray = 1
systray_padding = 0 4 5
systray_sort = ascending
systray_background_id = 0
systray_icon_size = 16
systray_icon_asb = 70 0 0
 
# Clock
time1_format = %H:%M
time1_font = sans 10
time2_format = %A %d %B
time2_font = sans 8
clock_font_color = #FFFFFF 74
clock_padding = 1 0
clock_background_id = 0
clock_rclick_command = orage
 
# Tooltips
tooltip_padding = 2 2
tooltip_show_timeout = 0.7
tooltip_hide_timeout = 0.3
tooltip_background_id = 1
tooltip_font = sans 10
tooltip_font_color = #000000 80
 
# Mouse
mouse_middle = none
mouse_right = close
mouse_scroll_up = toggle
mouse_scroll_down = iconify
 
# Battery
#battery = 0
#battery_low_status = 10
#battery_low_cmd = notify-send "battery low"
#battery_hide = 98
#bat1_font = sans 8
#bat2_font = sans 6
#battery_font_color = #FFFFFF 74
#battery_padding = 1 0
#battery_background_id = 0
 
# End of config

Leia a documentação da tint2 AQUI.

Penso que você também queira aplicações para controlar o volume e gerir as conexões de rede

$ sudo apt-get install alsa-base volumeicon-alsa wicd-gtk

Instalei tudo, mas a barra de tarefas não apareceu ?
Calma. Não vai aparecer automaticamente, adiante ensino como resolver.

FIXANDO OS APLICATIVOS PARA ABRIREM NA INICIALIZAÇÃO DO OPENBOX

Antes de sair invocando tint2, trayer e volumeicon pelo terminal, saiba, existe a possibilidade de despertá-los junto ao Openbox.

Durante o carregamento do Openbox é executado o script autostart.sh, nele é inserido comandos que correrão paralelamente ao carregamento sessão.

Para editá-lo:

$ nano ~/.config/openbox/autostart.sh

O conteúdo depende da necessidade pessoal, todavia, esse serve de base:

# thunar no modo daemon
thunar --daemon &

# barra de tarefas
tint2 &&

# systray
trayer --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request &&

# controle de volume
volumeicon &

Dê permissão:

$ chmod 755 ~/.config/openbox/autostart.sh

A sessão deve ser reiniciada para surgir efeito. O comando “openbox –exit” forçaria a retomada para a tela de login, mas não é o mais recomendado. Você pode contemplar os novos ajustes executando o script manualmente.

PAPEL DE PAREDE

O plano de fundo é setado com o Nitrogen:

$ sudo apt-get install nitrogen

Abra utilitário gráfico e escolha o papel de parede.

A fim de exibir a imagem durante a inicialização acrescente no começo do seu script ~/.config/openbox/autostart.sh:

nitrogen --restore &

ATALHOS DE TECLADO

Os atalhos vão dentro de ~/.config/openbox/rc.xml

Exemplo para abrir o Thunar pressionando Alt+F

<keybind key="A-F">
	<action name="execute">
		<execute>thunar</execute>
	</action>
</keybind>

PERSONALIZANDO O SISTEMA COM TEMAS GTK, ÍCONES, CURSORES E FONTES.

Os temas e cursores baixados manualmente devem ficar na pasta ~/.themes, os ícones na ~/.icons, enquanto as fontes vão para ~/.fonts

Comece as personalizações com os utilitários:

$ sudo apt-get install lxappearance gtk2-engines
lxappearance Ferramenta para auxiliar na customização das GTK+ themes, ícones, fontes, cursor, esquema de cor. lxappearance
gtk2-engines Este pacote contém o motor (“engine”) que se esconde por trás dos temas para GTK+ e aplicações Gnome. Ele redefine o modo como as widgets do GTK+ são desenhadas. O pacote inclui os seguintes motores: Clearlooks, Crux, High contrast, Industrial, LighthouseBlue, Metal, Mist, Redmond95, ThinIce.

NA UNHA

O lxappearance fornece uma GUI muito intuitiva para customizar o Desktop, mas acredito que a configuração manual contribui para o conhecimento do fuçador.

Segue o esquema para as configurações manuais:

No terminal:

$ touch ~/.gtkrc-2.0
$ touch ~/.gtkrc-2.0.mine

O meu ~/.gtkrc-2.0 guarda as linhas:

include "/home/fm4lloc/.themes/Bridge/gtk-2.0/gtkrc"
include "/home/fm4lloc/.gtkrc-2.0.mine"

Mude os caminhos para as correspondências equivalentes no seu computador.

A substituição dos ícones e fontes limita-se em tecer dentro do ~/.gtkrc-2.0.mine uma estrutura próxima de:

style "Sans"
{
	font_name = "Sans 13"
}
widget_class "*" style "Sans" 

gtk-font-name = "Sans 12"
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-button=13,13"
gtk-fallback-icon-theme = "Faenza"
gtk-icon-theme-name = "Faenza-Darkest"
gtk-toolbar-style   = GTK_TOOLBAR_ICONS	#Only icons
gtk-toolbar-style   = GTK_TOOLBAR_TEXT	#Only text
gtk-toolbar-style   = GTK_TOOLBAR_BOTH	#Both icons and text; default, used if nothing is specified.
gtk-toolbar-style   = GTK_TOOLBAR_BOTH_HORIZ	#Icons and text next to the icons

Faça as modificações necessárias. O pacote de ícones usado no exemplo é o Faenza, o nome colocado nos campos pertinentes aos ícones é o mesmo das respectivas pastas situadas em ~/.icons.

Exemplo:
~/.icons/Faenza
~/.icons/Faenza-Darkest

Você não terá muita dificuldade, a sintaxe do documento é instrutiva.

Para mudar o tema dos cursores abra o documento .Xresources

$ nano ~/.Xresources

E escreva nele:

Xcursor.theme: DMZ-White
Xcursor.size:  16

O tema do cursor definido no exemplo faz parte do pacote dmz-cursor-theme.

Para pesquisar outros estilos de cursor presentes na maquina:

$ find /usr/share/icons -type d -iname "*cursors*"
$ find ~/.icons -type d -iname "*cursors*"

Exemplo de saída:
/usr/share/icons/Adwaita/cursors
/usr/share/icons/DMZ-White/cursors
/usr/share/icons/DMZ-Black/cursors

DESLIGAR, REINICIAR E HIBERNAR COM OBSHUTDOWN

Não gosto de desligar o computador escrevendo shutdown ou halt, prefiro encerrar as sessões usando o obshutdown, ele mostra uma tela limpa e intuitiva para apagar a maquina.

obshutdown-scrot

Infelizmente ele não existe no repositório estável, será preciso compila-lo.

As dependências:

$ sudo apt-get install libgtk2.0-dev git automake autoconf

Obtenha os sources e deixe o processador com o trabalho duro.

$ git clone https://github.com/panjandrum/obshutdown.git
$ cd obshutdown
$ ./configure
$ make
$ sudo make install

Lembrando, para criar um .deb:

$ sudo checkinstall -D --install=no --pkgarch=all
$ sudo dpkg -i obshutdown_0.1-rc1-1_all.deb

Copie a configuração default para $HOME:

$ mkdir -p ~/.config/obshutdown/
$ cp /usr/local/share/obshutdown/example.rc ~/.config/obshutdown/obshutdown.rc

A configuração do meu Obshutdown com os botões em português:

#
# Openbox shutdown dialog
# This is example obshutdown rc file
# Copy this file to ~/.obshutdown.rc and customise
#
 
[general]
version =        0.1-rc1
verbose =        false
default_action = shutdown
composite =      false
theme =          oxygen
buttons =        cancel logout shutdown restart
#buttons =        cancel logout shutdown restart suspend hibernate
 
[actions]
logout =         openbox --exit
shutdown =       dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
restart =        dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
lock =
switch =
suspend =        dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
hibernate =      dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
custom = 
 
[shortcuts]
logout =         l
shutdown =       s
restart =        r
lock =
switch =
suspend =        u
hibernate =      h
custom = 
 
[labels]
cancel =         CANCELAR
logout =         LOGOUT
restart =        RESETAR
shutdown =       DESLIGAR
lock =           TRAVAR
switch =         TROCAR USUARIO
suspend =        SUSPENDER
hibernate =      HIBERNAR

Não esqueça de incluir o obshutdown ao menu do openbox.

MONITOR DE SISTEMA

Quando se pensa em monitor de sistema altamente configurável, a palavra que galga na cabeça dos usuários Linux é a conky.

$ sudo apt-get install conky

Conky é um caso a parte no texto, não vou me aprofundar nele, a página dos desenvolvedores fornece vários tutoriais de como configurá-lo. Porém, como é de praxe, disponibilizarei o meu:

conkyshot

Salvar o conteúdo para ~/.conkyrc

# Minimalist conkyrc
# used font
#---------------------------------------------------------------------#
# PF Tempesta Seven	=> http://www.dafont.com/pf-tempesta-seven.font
#---------------------------------------------------------------------#

#avoid flicker
double_buffer yes

#own window to run simultanious 2 or more conkys
own_window  yes
own_window_transparent true
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Contour
draw_outline no

# Shades
draw_shades no
default_shade_color 000000

# Position
gap_y 10
gap_x 10

# Alignment
alignment top_left
# alignment botton_left

# Interval
update_interval 2

# Colors
default_color FFFFFF
color1 1793D1
color2 535353
color3 F0F0F0
color4 D9D9D9
color5 1793D1

# Font
use_xft yes
xftfont PF Tempesta Seven:pixelsize=8

# Text alpha when using Xft
#xftalpha 0.10

# to prevent window from moving
use_spacer none
minimum_size 1024 0

TEXT
${color2}CPU1: ${color3}${cpu cpu1}% \
${color2}CPU2: ${color3}${cpu cpu2}% \
${color2}CPU1: ${color3}${cpu cpu2}% \
${color2}CPU4: ${color3}${cpu cpu4}% ${color5} | \
${color2}Ram: ${color3}${mem}/${memmax} ${color5} | \
${color2}Swap: ${color3}${swapperc}% ${color5} | \
${color2}Home: ${color3}${fs_free_perc /home}% ${color4}free ${color5} | \
${color2}Root: ${color3}${fs_free_perc /root}% ${color4}free ${color5} | \
${color2}Eth0: ${color4}DOWN ${color3}${downspeed eth0} ${color4}UP ${color3}${upspeed eth0} ${color5} | \
${color2}Uptime: ${color3}${uptime}${color5} | \
${color2}Top: ${color3} ${top name 1}${top cpu 1}${top mem 1}

Pesquise mais sobre o conky e conheça as possibilidades.

OS INDISPENSÁVEIS

Para fechar, coloco os aplicativos que considero fundamentais para ter no sistema:

$ sudo apt-get install sakura volumeicon-alsa wicd-gtk evince mirage gmrun geany scrot file-roller brasero audacious vlc galculator transmission-gtk nitrogen iceweasel iceweasel-l10n-pt-br icedove icedove-l10n-pt-br xscreensaver ntfs-config gimp inkscape
sakura Emulador de terminal decente
volumeicon-alsa Indicador de volume
wicd-gtk Gestor de Redes
evince Leitor de PDF
mirage Visualizador de imagem
gmrun Lançador de aplicativo
geany Editor de texto/IDE
scrot Capturador de tela
file-roller Manipulador de arquivos compactados
brasero Gravador de CD/DVD
audacious Player MP3
vlc Player multimédia, ideal para assistir vídeos
galculator Calculadora
transmission-gtk Cliente Torrent
nitrogen Gerenciador de papéis de parede
iceweasel Navegador
iceweasel-l10n-pt-br Linguagem português para o iceweasel
icedove Cliente de e-mail
icedove-l10n-pt-br Linguagem português para o icedove
xscreensaver Protetor e travador de tela
ntfs-config Utilitário gráfico para montar partições NTFS
gimp Editor de imagens
inkscape Editor vetorial
Simples escaneador de documentos simple-scan

Libre Office em português

$ sudo apt-get install libreoffice libreoffice-l10-pt-br libreoffice-gtk