O
Debian LXDE vem com o
Openbox instalado nativamente, mas o uso puro da interface do window manager Openbox não apresenta muitas facilidades de uso em comparação ao LXDE e o seu menu de programas é bem tosco, onde ao escolher utilizar o Openbox pelo gestor de login, será apresentado um desktop completamente limpo sem painel, ícones e para exibir o menu de programas tem que clicar com botão direito do mouse sobre o desktop conforme o shot abaixo.
O Openbox traz muita leveza ao iniciar pois consome pouca RAM, mas como o seu sistema vem nativamente com o Desktop LXDE, e se não for desabilitado todos ou pelo menos a maioria dos apps que iniciam junto com o seu desktop LXDE, o ganho de mais memória livre ao iniciar será muito pouco, pois mesmo iniciando diretamente no Openbox, todos os apps que tiverem arquivos .desktop em ~/.config/autostart serão iniciados automaticamente no Openbox.
Na minha instalação sem desabilitar a maioria dos apps que iniciam automaticamente por um arquivo .desktop que estão localizados em ~/.config/autostart o ganho foi de apenas 40 MB a mais livre, mas desabilitado todos o ganho foi de 100 MB livres.
Procure soluções mais leves de apps para substituir os padrão da instalação para algumas funcionalidades, como proteção de tela, travar a tela, nível e popup da bateria, clipboard, botão do volume de som e outros.
Os arquivos .desktop padrão do LXDE que ficam em ~/.config/autostart podem ser desabilitados tranquilamente ou excluídos sem perder as configurações já realizadas anteriormente e de qualquer forma caso precise você pode chamar os apps destes arquivos pelo menu de programa ou através do terminal.
Arquivos como light-locker.desktop, geoclue-demo-agent.desktop, pulseaudio.desktop, xdg-user-dirs.desktop, at-spi-dbus-bus.desktop, notify-osd.desktop, wicd-tray.desktop, xfce4-power-manager.desktop, im-launch.desktop, lxrandr-autostart.desktop podem ser desabilitados tranquilamente sem precisar excluir (estes são apenas os arquivos padrões da instalação, se você instalou manualmente muito outros apps, você pode ter muitos outros arquivos em ~/.config/autostart).
Para desativar os apps dos arquivos .desktop que estão em ~/.config/autostart de iniciar automaticamente na inicialização do Openbox, basta incluir ou editar a linha
NotShowIn= no arquivo seguindo pelo nome do desktop, acrescentando depois do ; o nome do desktop desejado para não ser executado.
Exemplos:
NotShowIn=GNOME;Unity;OPENBOX; # linha já existente com outros desktop configurados, para não ser iniciados neles
NotShowIn=OPENBOX; # incluindo a linha, caso ela não exista; para funcionar OPENBOX, deve ser escrito em maiúsculo
Começando a personalização
No repositório do Debian Buster não existe o pacote
obmenu-generator que servirá para da uma turbinada no menu de programas do Debian, mas antes de baixar e instalar o obmenu-generator, precisaremos instalar as dependências necessárias para poder executar o mesmo.
Preferencialmente numa janela de terminal, torna-se root usando o comando su e digite sua senha de root.
Execute este comando no prompt root:
# perl -MCPAN -e shell
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
Autoconfiguration complete.
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v2.20)
Enter 'h' for help.
cpan[1]>
No prompt do CPAN: cpan[nº]>
Digite os dois comandos abaixo nesta ordem, aguarde o término de cada um deles.
install Data::Dump
install Linux::DesktopFiles
Digite "quit" para encerrar o cpan.
# exit
(digite para sair do modo root)
Fazendo download do obmenu-generator
Para baixar o obmenu-generator do repositório GitHub é necessário ter o pacote git instalado em seu sistema.
git clone git://github.com/trizen/obmenu-generator
cd obmenu-generator/
./obmenu-generator
./obmenu-generator: schema file `/home/nando/.config/obmenu-generator/schema.pl' does not exists!
Solução:
cp -v schema.pl ~/.config/obmenu-generator/
ls -l ~/.config/obmenu-generator/
total 12
-rw-r--r-- 1 nando nando 3530 ago 15 20:05 config.pl
-rw-r--r-- 1 nando nando 4986 ago 15 20:09 schema.pl
./obmenu-generator
(com isto foi criado o cache.db em ~/.config/obmenu-generator/)
Copiando o comando obmenu-generator para /usr/bin.
sudo cp -v obmenu-generator /usr/bin
Agora vamos gerar o menu de programas de melhor qualidade.
obmenu-generator -p -i
:: A dynamic menu has been successfully generated!
Instalando alguns apps
Instalando o painel tint2 e outros apps leve para turbinar o Openbox
sudo apt install tint2 gsimplecal volumeicon-alsa wmctrl numlockx feh gmrun
Onde:
- tint2 = painel com lançador, apps abertos, system tray e relógio.
- gsimplecal = calendário pra o relógio do painel tint2.
- volumeicon-alsa = botão de volume de som, permite uso das teclas multimídia de volume do teclado.
- wmctrl = para configurar a exibição de botão do Menu e botão Exibi desktop no painel.
- numlockx = ligar o teclado numérico na inicialização.
- feh = para usar papel de parede no arquivo autostart do openbox.
- gmrun = caixa executar podendo ser adicionada ao menu do Openbox, no painel e ser acionada por tecla de atalho.
Iniciando apps automaticamente ao iniciar o Openbox
Crie o arquivo ~/.config/openbox/autostart com permissão x para inicialização automática de apps ao iniciar o Openbox com o conteúdo abaixo seguindo com o caractere & no final.
tint2 &
volumeicon-alsa &
numlockx on
Notas: todo app que utiliza uma janela gráfica ou uma interface gráfica é obrigatório utilizar o caractere & no final do mesmo para enviar para o segundo plano e liberando assim o sistema. Já apps de linha de comando para o modo gráfico que saem sozinhos automaticamente como numlockx, xset, setxkbmap e outros não é necessário ter o caractere & no final.
Alternativamente pode-se criar ou copiar arquivos .desktop para o diretório ~/.config/autostart que eles serão executados automaticamente na inicialização do Openbox.
Fazendo ajustes no Openbox
Mudando o editor padrão
Mudar o editor de texto padrão que edita as configurações do openbox como tint2rc, rc.xml, config.pl, schema.pl e .conkyrc ao utilizar pelo menu de programas para isto.
No arquivo
~/.config/obmenu-generator/config.pl edite o mesmo com seu editor de texto favorito e basta trocar geany por leafpad ou outro de sua preferência e se você tiver utilizando menu dinâmico não precisa reiniciar o openbox ou usar o comando openbox --reconfigure que será aplicada no mesmo instante.
Na sessão our $CONFIG = { e na linha "editor" troque geany por leafpad.
Configurando atalhos de teclados manualmente
Para configurar atalhos de teclado manualmente, você tem que editar o arquivo
~/.config/openbox/rc.xml.
Procedimento para criar atalho:
Antes de copiar e colar as linhas aqui dos exemplos, examine como é separado cada atalho diferente do arquivo rc.xml entre si, pois se houver códigos duplicados no atalho colado ou faltado algum código o atalho criado não funcionará.
Atenção para que não exista duas linhas iguais seguidas da </keybind> tanto da parte de cima como da parte de baixo do atalho tem que ser apenas uma vez a linha </keybind> entre cada atalho diferente, senão não funcionará o atalho é será exibido uma mensagem de erro ao atualizar a configuração feita ao usar o comando openbox --reconfigure.
Atalho para o pcmanfm via teclado
Por padrão vem o konqueror configurado para usar o atalho tecla Windows + tecla e, onde provavelmente o mesmo não deve esta instalado no seu sistema se você não tem as aplicações do KDE instalado no PC, troque o nome Konqueror por Pcmanfm reaproveitado estas linhas e na parte de comando troque kfmclient openProfile por pcmanfm.
Linhas originais para o Konqueror que vem por padrão
<!-- Keybindings for running applications --> (esta linha é um comentário, deve ficar sempre acima do atalho de tecla)
<keybind key="W-e">
<action name="Execute"> (comando interno do Openbox"
<startupnotify>
<enabled>true</enabled>
<name>Konqueror</name> (descrição)
</startupnotify>
<command>kfmclient openProfile filemanagement</command> (o executável do Linux que fica entre </command>)
</action>
Com a alteração para o pcmanfm, como fica então:
<!-- Keybindings for running applications -->
<keybind key="W-e">
<action name="Execute">
<startupnotify>
<enabled>true</enabled>
<name>Pcmanfm</name>
</startupnotify>
<command>pcmanfm</command>
</action>
Criando atalho para caixa tipo Executar:
<!-- Keybindings para caixa tipo Executar -->
<keybind key="W-g">
<action name="Execute">
<command>gmrun</command>
</action>
O atalho para chamar a caixa executar é a tecla Windows + tecla g.
Criando atalho para janela de terminal:
<!-- Keybindings para janela de terminal -->
<keybind key="W-t">
<action name="Execute">
<command>lxterminal</command>
</action>
O atalho para chamar o lxterminal é a tecla Windows + tecla t.
Criando atalho para o menu de programa:
<keybind key="W-m">
<action name="ShowMenu">
<menu>root-menu</menu>
</action>
A opção root-menu é a parte do menu de programas, também conhecido como menu iniciar.
O atalho para chamar o menu de programa é a tecla Windows + tecla m.
Criando atalho para maximizar e minimizar somente a janela ativa:
<!-- Atalho para maximizar somente a janela ativa -->
<keybind key="W-Up"> # Maximize
<action name="ToggleMaximize"/>
</keybind>
<!-- Atalho para minimizar somente a janela ativa -->
<keybind key="W-Down"> # Minimize
<action name="Iconify"/>
</keybind>
O W-Up maximiza a janela atual utilizando a tecla Windows + tecla de seta acima, e o segundo atalho W-Down minimiza a janela atual usando o atalho tecla Windows + tecla de seta abaixo.
Terminado a criação dos atalhos no terminal use o comando openbox --reconfigure para atualizar a configuração.
PS: o recomendável é que você use o comando "openbox --reconfigure" sempre após cada atalho adicionando, pois se você criar várias atalhos de uma vez só e rodar o openbox --reconfigure somente no final, caso tenha algum erro de código como linha duplicada ou faltando ficará mais difícil de descobrir onde está o erro.
Gui gráfica para criar atalhos de teclado facilmente no Openbox
Existem 2 aplicações gráficas para criar atalho de teclado das ações internas do openbox e comandos externos que são o obkey (exclusivo para openbox) e o lxhotkey (este é feito para o LXDE, mas pode ser usado no openbox se for instalado o pacote lxhotkey-plugin-openbox e mesmo tendo o LXDE instalado, a configuração feita no Openbox não interfere na configuração feita no LXDE, podendo usar a mesma combinação de teclas com ação diferente nos dois ambientes gráficos).
Das duas aplicações o lxhotkey é a melhor, mais fácil, intuitiva e funcional do que o obkey, além de se encontrado facilmente no repositório de muitas distros Linux.
Downloads:
https://github.com/luffah/obkey
Você pode baixar o source para compilação ou um arquivo binário genérico em formato .deb.
Já o lxhotkey pode ser baixado através do repositório da sua distro.
Traduzir o menu do Openbox
Para tradução do menu editar o arquivo
~/.config/obmenu-generator/schema.pl.
Procurar a linha onde contém:
our $SCHEMA = [
# COMMAND LABEL ICON
Na coluna LABEL tem os nomes das categorias do menu em inglês, substitui-a pela nomenclatura correta em português.
Como ficou depois das alterações:
# NAME LABEL ICON
{cat => ['utility', 'Accessórios', 'applications-utilities']},
{cat => ['development', 'Desenvolvimento', 'applications-development']},
{cat => ['education', 'Educação', 'applications-science']},
{cat => ['game', 'Jogos', 'applications-games']},
{cat => ['graphics', 'Gráficos', 'applications-graphics']},
{cat => ['audiovideo', 'Multimedia', 'applications-multimedia']},
{cat => ['network', 'Internet', 'applications-internet']},
{cat => ['office', 'Office', 'applications-office']},
{cat => ['other', 'Outros', 'applications-other']},
{cat => ['settings', 'Configurações', 'applications-accessories']},
{cat => ['system', 'Sistema', 'applications-system']},
Não é necessário reiniciar o Openbox, ao salvar o arquivo os grupos de menu já estarão em português automaticamente.
Mesmo que você volte a executar o comando obmenu-generator -p -i para gerar um novo menu de programa, a tradução feita no arquivo ~/.config/obmenu-generator/schema.pl não será pedida, permanecendo intacta.
Alterando os nomes das opções Lock e Exit do menu Iniciar
No final do arquivo ~/.config/obmenu-generator/schema.pl tem as linhas responsáveis por estas duas opções do menu criado pelo obmenu-generator:
{sep => undef},
## The xscreensaver lock command
{item => ['xscreensaver-command -lock', 'Lock', 'system-lock-screen']},
## This option uses the default Openbox's "Exit" action
{exit => ['Exit', 'application-exit']},
## This uses the 'oblogout' menu
# {item => ['oblogout', 'Exit', 'application-exit']},
]
Para trocar o nome de Lock por Travar, edite a linha {item => ['xscreensaver-command -lock', 'Lock', 'system-lock-screen']}, e troque Lock por Travar ficando assim:
{item => ['xscreensaver-command -lock', 'Travar', 'system-lock-screen']},
Trocando o nome Exit do menu
Para trocar o nome de Exit por Sair, edite a linha {exit => ['Exit', 'application-exit']},
e troque o Exit por Sair ficando assim:
{exit => ['Sair', 'application-exit']},
Pronto, a alteração no menu é na hora assim que o arquivo for salvo.
Fazendo ajustes no painel do tint2
Criando o botão Mostrar Desktop
Crie o script showdesktop salva em /usr/local/bin com permissão x.
Conteúdo:
#!/bin/sh
if wmctrl -m | grep "mode: ON"; then
exec wmctrl -k off
else
exec wmctrl -k on
fi
# chmod a+x showdesktop
Agora criamos o arquivo .desktop em /usr/share/applications
sudo mousepad showdesktop.desktop
Conteúdo:
[Desktop Entry]
Version=1.0
Name[pt_BR]=Mostrar o desktop
Exec=/usr/local/bin/showdesktop
Icon=/caminho/desktop.png
Terminal=false
Type=Application
Editamos o arquivo
~/.config/tint2/tint2rc manualmente com um editor de texto ou pelo app gráfico tint2conf na sessão LAUNCHER incluímos uma linha com o caminho do arquivo .desktop caso seja feito via editor de texto.
#------------------------------------------
#LAUNCHER
#------------------------------------------
launcher_icon_theme = areao43
launcher_padding = 4 4
launcher_background_id = 1
launcher_icon_size = 40
launcher_item_app = /usr/share/applications/showdesktop.desktop
Pronto, é necessário reiniciar o tint2 para aparecer o botão caso foi feito utilizando um editor de texto.
Para reiniciar o tint2 em uma janela de terminal execute os comandos abaixo:
killall tint2
tint2 &
Criando o botão para exibi o menu de programa
Para isto você precisa ter o pacote xdotool instalado no seu sistema. Em /usr/share/applications crie o arquivo menuopenbox.desktop com o conteúdo abaixo:
[Desktop Entry]
Encoding=UTF-8
Name=Openbox Menu
Comment=Openbox Menu
Exec=xdotool key Super+m
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/caminho/box.png
Categories=Menu;
StartupNotify=false
NoDisplay=true
Onde Super+m são as teclas de atalho configuradas no arquivo ~/.config/openbox/rc.xml que corresponde a tecla "Windows" + a tecla "m".
Agora edite o arquivo ~/.config/tint2/tint2rc e na sessão "# Launcher" adicione a linha abaixo:
launcher_item_app = /usr/share/applications/menuopenbox.desktop
Salve o arquivo, depois é necessário reiniciar o tint2 para exibir o botão no painel.
Agora quando você clicar com o botão direito do mouse sobre o botão do menu de programas no painel, o menu será exibido.
Adicionando o gsimplecal ao relógio do painel tint2
Clique no ícone "Gerenciador do Painel" ou execute manualmente o comando tint2conf, na guia Clock no item "Right click command" digite gsimplecal depois clique em Aplicar.
Agora quando você clicar com o botão direito do mouse sobre o relógio o calendário será exibido, basta clicar novamente com o botão direito do mouse para desaparecer o calendário.
Utilizando o clique do botão esquerdo do mouse sobre o relógio para mostrar o desktop
Você pode atribuir uma segunda ação com o mouse sobre o clique no relógio; como foi usando o clique com botão direito sobre o relógio para exibir o calendário, você pode atribuir outra ação para o clique com o botão esquerdo como exemplo Mostrar o desktop (minimizar todas as janelas).
Colocando esta linha "xdotool key --clearmodifiers Super+d" sem as aspas na guia Clock no item "Left click command" quando você clicar com o botão esquerdo do mouse sobre o relógio todas as janelas serão minimizadas de uma vez exibindo o seu desktop.
xdotool key --clearmodifiers Super+d
Onde Super+d é combinação de teclas configurada no openbox (arquivo ~/.config/openbox/rc.xml) para mostrar o desktop.
A tecla Super é a tecla Windows (logotipo).
Notas:
Você pode fazer o mesmo procedimento editando manualmente o arquivo ~/.config/tint2/tint2rc indo na sessão Clock.
No xdotool a sintaxe das teclas é diferente da utilizada nos atalhos do Openbox, por exemplo para mostrar o desktop no Openbox o formato do código das teclas de atalho é W-d e no xdotool é Super+d mas ambos corresponde a mesma combinação da tecla Windows (logotipo) + a tecla d.
Sobre atalhos padrões já existente na sessão # Launcher (default da instalação):
A sessão Launcher do painel tem vários atalhos que já vem configurados, mas os botões dos mesmos não são exibidos no painel, devido que o nome do arquivo desktop declarado não existe, mesmo que você tenha a aplicação do mesmo instalado no sistema, no qual darei o exemplo do firefox.desktop abaixo.
launcher_item_app = /usr/share/applications/firefox.desktop (atalho que veio configurado por padrão) mas não existe este arquivo em /usr/share/applications e sim o firefox-esr.desktop por isto você não tem o atalho do firefox no painel, então basta remover o atalho firefox.desktop e colocar firefox-esr.desktop escolhendo pela aplicação gráfica Firefox ESR (na guia Launcher) que o mesmo aparecerá no painel, ou editando manualmente o arquivo ~/.config/tint2/tint2rc.
Meu arquivo
~/.config/openbox/autostart:
# *** feh opções para usar imagem como papel de parede ***
# feh --bg-fill = preserva proporção, ampliando a imagem até caber na tela.
# feh --bg-scale = não mantêm a proporção, a imagem sairá cortada ser for maior que a resolução da tela do monitor.
# feh --bg-tile = Mosaico, repete a imagem varias na tela.
# feh --bg-center = Centraliza a imagem.
#
feh --bg-scale /home/nando/Imagens/openbox-wallpaper1.jpg &
tint2 &
clipit &
volumeicon &
conky -c /home/nando/.conkyrc-openbox1 -x 85 -y 40 &
compton -cCfF
numlockx on
xscreensaver -no-splash &
Nota: o conky em modo desktop com fundo transparente, deve ser iniciado antes do compton, senão ele não aparecerá na inicialização pelo arquivo autostart.
O consumo de RAM com toda minha personalização ao ligar o computador, fazer o login gráfico e entrar no Openbox é de 278 MB no monitor conky.
PS: foi desabilitando a inicialização automática de todos os apps que utilizam um arquivo .desktop para isto em ~/.config/autostart.
Também foi desabilitado o serviço winbindd pelo systemctl, onde este serviço não é necessário se você tem compartilhamento simples de pastas com senha na sua rede local, utilizando a linha valid users = na configuração do compartilhamento, pois a mesma será solicitada igualmente sem este serviço.
Screenshot da minha personalização
No screenshot abaixo temos agora o menu do Openbox mais elegante e prático do que o tradicional, um painel tint2 personalizado com o botão para o menu de programas e o botão mostrar desktop sendo os 2 primeiros da esquerda e os botões, gmrun, terminal, pcmanfm e firefox todos na parte do lançador do painel e efeitos de transparências com o compton.