Quando o Rhythmbox, famoso player de músicas do ambiente GNOME, lançou a versão 2.90, o
recurso de minimizar e
controlar ele a partir da bandeja do sistema desapareceu misteriosamente.
E este é um recurso que considero particularmente útil, já que costumo alternar entre janelas abertas através da combinação de
teclas ALT+TAB e
não clicando diretamente no ícone da barra de tarefas.
Em situações como essa, qualquer janela desnecessariamente aberta costuma incomodar. Por esse motivo, decidi escrever um
pequeno plugin que
tenta resgatar essa funcionalidade, permitindo minimizar e controlar esse player através da bandeja do sistema.
Já havia um plugin desse tipo, o Rhythmbox Tray Icon,
antes de eu começar a
escrever um. No entanto, não me identifiquei muito com ele. Além de desejar alguns recursos adicionais, queria que outros
presentes nele não
existissem ou fossem diferentes.
E essa foi a motivação para escrever o meu próprio plugin, ao qual chamei de rhythmbox-systray e você pode
conferir na imagem
abaixo:
Este menu foi inspirado no menu do player Clementine, mas com algumas
alterações onde achei
que fossem convenientes. Alguns recursos interessantes dele, são:
A capacidade de fechar a janela do player sem que ele se encerre, mas seja minimizado para a bandeja do sistema
(systray);
Controlar alguns recursos básicos do player (é claro!);
Deixa-lo mudo, se assim você desejar;
Você pode solicitar que ele pare assim que a música atual terminar;
Pode-se aumentar ou diminuir o volume do player, bastando para isso rolar a rodinha do mouse para cima ou baixo,
estando com o ponteiro
sobre o ícone dele na systray.
OK, mas chega de papo! Vamos ver como instalar este plugin em sua máquina. Ah sim, o plugin possui tradução para o
português, então, não se
preocupe com isso. ;)
Pré-requisitos e instalação
Para que você possa instalar e utilizar este plugin, os seguintes pacotes são necessários:
intltool;
Rhythmbox 2.90 ou superior;
python-distutils (provavelmente já distribuído junto com o Python).
A instalação é muito simples, vá até a página de donwload do plugin:
Baixe a última versão disponível e descompacte o arquivo baixado. Vou supor aqui que esta seja a versão 1.0, a que estava
disponível quando esta
dica foi escrita. Se quiser baixar via terminal:
A seguir, entre no diretório descompactado e, como root ou através do sudo, execute o script
setup.py com a opção
install para que a instalação inicie:
cd rhythmbox-systray-1.0
$ sudo python setup.py install --prefix=/usr
Isso deverá ser suficiente.
Habilitando o plugin
Abra ou reinicie o Rhythmbox e vá em: Editar → Plug-ins → Ícone de bandeja do sistema.
Habilite-o e você deverá notar que um ícone surgiu na bandeja do seu sistema. Pronto, plugin habilitado.
Feche a janela do Rhythmbox e notará que o player não é encerrado, mas minimizado para a bandeja. Clique com o botão
esquerdo no ícone de
bandeja para que ela apareça novamente. Clique com o botão direito sobre o ícone para ver o menu.
No caso de problemas
No caso de algum problema durante a instalação ou o uso deste plugin, utilize os comentários abaixo para me informar a
respeito.
Sugestões de melhoria também são bem-vindas. Não sou nenhum expert e a ideia não foi fazer nada complicado, mas apenas
trazer de volta alguns
recursos que antes existiam no Rhythmbox. :)
[2] Comentário enviado por eldermarco em 10/01/2013 - 10:46h
Fala Fábio!
Em inglês você o encontrará em "System Tray Icon".
Mas há algo que não comentei na dica que poderia ser útil. O script setup.py considera que o diretório de plugins do Rhythmbox se encontra em /usr/lib64/rhythmbox/plugins se você estiver em um sistema de 64 bits e em /usr/lib/rhythmbox/plugins, se você estiver em um sistema de 32 bits. Se isso não for verdade, altere a linha
LIBDIR = os.uname ()[-1] == 'x86_64' and 'lib64' or 'lib'
E coloque somente:
LIBDIR = 'lib'
ou
LIBDIR = 'lib64'
Se for realmente necessário. Mas acho pouco provável que seja.
[3] Comentário enviado por fabio em 10/01/2013 - 10:58h
Elder,
Notei que aqui ele fez a instalação em /usr/local/lib/rhythmbox/plugins, quando na verdade deveria ser /usr/lib/rhythmbox/plugins. Copiei os arquivos da instalação para a pasta correta, mas mesmo assim não aparece.
Fora o diretório systray dentro de plugins, quais são os demais arquivos necessários?
[5] Comentário enviado por eldermarco em 10/01/2013 - 12:22h
Felipe, legal! :)
Fábio,
Nesse caso, você pode utilizar a opção --prefix para fazer com que ele seja instalado em /usr/lib e não /usr/local/lib:
$ sudo python setup.py --prefix=/usr
Mas agora que você já copiou, existem mais dois arquivos:
/usr/share/rhythmbox/plugins/systray/systray-menu.ui - Ele define o layout do menu. Ele é necessário.
/usr/share/locale/pt_BR/LC_MESSAGES/rhythmbox-systray.mo - Tradução para o português brasileiro. Não é necessário, mas ele irá ficar em inglês se esse não estiver por lá.
O primeiro arquivo está no diretório data/, dentro do tarball descompactado. O segundo é gerado a partir do .po presente no diretório po/ E deverá estar dento do diretório build, se você não apagou ele quando instalou.
Mova esses arquivos para o lugar adequado e abra o rhythmbox pela linha de comando para ver se ele mostra algum erro, caso de não aparecer de novo ou quando você tentar habilitar ele. Se aparecer, poste aqui que irei tentar corrigir.
[6] Comentário enviado por eldermarco em 10/01/2013 - 17:51h
Enviei um e-mail para o Izaias solicitando algumas alterações na dica. A saber, adicionar o intltool na lista de dependências, conforme o Felipe disse aqui nos comentários e também a opção --prefix=/usr na hora de instalar o plugin, conforme o Fábio disse. Aqui no fedora 17, ele já instala diretamente em /usr e não /usr/local. Por isso, acabei nem me dando conta de que isso poderia não acontecer em outra máquina. E por último, a correção de alguns erros gramaticais que cometi sem perceber :)
[9] Comentário enviado por eldermarco em 01/02/2013 - 22:07h
Opa, beleza lucas! Na próxima versão, o sistema de instalação deverá ser diferente. Migrei para o autotools (aquele do ./configure && make && make install). Achei ele melhor do que o python-distutils, além de ser tão fácil quanto para implementar. =)
[10] Comentário enviado por removido em 26/03/2013 - 21:29h
Tentei instalar no meu Arch com Lxde e apareceu isso aqui:
sudo python setup.py install --prefix=/usr
Traceback (most recent call last):
File "setup.py", line 195, in <module>
'build_i18n' : build_i18n }
File "/usr/lib/python3.3/distutils/core.py", line 122, in setup
dist.parse_config_files()
File "/usr/lib/python3.3/distutils/dist.py", line 363, in parse_config_files
val = parser.get(section,opt)
File "/usr/lib/python3.3/configparser.py", line 791, in get
d)
File "/usr/lib/python3.3/configparser.py", line 392, in before_get
self._interpolate_some(parser, option, L, value, section, defaults, 1)
File "/usr/lib/python3.3/configparser.py", line 441, in _interpolate_some
"found: %r" % (rest,))
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: "%libdir/rhythmbox/plugins/systray', ('systray.plugin.in',))]"
[11] Comentário enviado por eldermarco em 29/03/2013 - 11:32h
Fala Lucas!
Desculpe a demora. Tenho estado super ocupado ultimamente. Mas já faz algum tempo que eu queria trocar o sistema de instalação do plugin. Não gostei muito do distutils nesse caso. Foi aí que decidi migrar para o autotools. Fiz algumas outras pequenas correções no plugin e lancei uma nova versão com elas:
$ ./configure --prefix=/usr --libdir=<libdir> && make && sudo make install
As opções --prefix e --libdir são importantes. O valor <libdir> é o diretório /usr/lib64 ou /usr/lib, dependendo de onde o diretório de plugins do Rhythmbox se encontra. No caso do Fedora 64 bits (onde fiz os testes), esse diretório é o /usr/lib64. Dá uma olhada aí no Arch. Qualquer problema, poste aqui que vamos tentando resolver :)
Assim que me sobrar um tempo irei pedir ao Izaias para atualizar a dica com o novo esquema de instalação.