Controlando o Rhythmbox pela bandeja do sistema

Publicado por Elder Marco em 10/01/2013

[ Hits: 7.331 ]

Blog: http://www.eldermarco.com

 


Controlando o Rhythmbox pela bandeja do sistema



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:
O 
plugin em ação
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:

wget https://bitbucket.org/elder/rhythmbox-systray/downloads/rhythmbox-systray-1.0.tar.gz
tar xfv rhythmbox-systray-1.0.tar.gz

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. :)

Outras dicas deste autor

Configurando o sudo no Fedora

Removendo kernels antigos do Fedora

Ainda sobre a pasta "Área de trabalho"

Mudando do GDM para o KDM no Fedora 10 e 11

Firefox 4 parou salvar as abas antes de fechar? Não mais!

Leitura recomendada

Programando macros para o OpenOffice.org

Instalar MS Paint no Linux

Unrar - Descompacta até arquivos .rar!

Tutorial de Introdução ao Ansible

Instalando o plugin do mplayer no Opera

  

Comentários
[1] Comentário enviado por fabio em 10/01/2013 - 10:34h

Muito bom! Só ainda não consegui habilitar.

Qual o nome do plugin em Inglês?

Instalei e aparentemente ele não consta na lista de plugins, mesmo após reiniciar o player.

[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?

[]'s

[4] Comentário enviado por felipe300194 em 10/01/2013 - 11:23h

perfeito! Só tive que instalar o intltool porque estava dando erro a instalação, mas funcionou lindo e elegante!

[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 :)

[7] Comentário enviado por eldermarco em 12/01/2013 - 11:38h

Fala Fábio! Tu conseguiu resolver esse problema?

[8] Comentário enviado por removido em 31/01/2013 - 20:07h

Funcionou!! Ótima dica.

[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:

https://bitbucket.org/elder/rhythmbox-systray/downloads

A instalação agora deve ser feita com o comando:

$ ./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.

[12] Comentário enviado por RodrigoNeves em 24/05/2013 - 12:38h

Excelente dica. está funcionando no wheezy.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts