Pular para o conteúdo

Controlando o Rhythmbox pela bandeja do sistema

Dica publicada em Linux / Software
Elder Marco eldermarco
Hits: 8.340 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Ainda sobre a pasta "Área de trabalho"

Mudando do GDM para o KDM no Fedora 10 e 11

Renderização de fontes em monitores LCD no Fedora: como melhorar

Facilitando a vida no Fedora com o easyLife

Removendo kernels antigos do Fedora

Calc, a calculadora de linha de comando

Como instalar o player de músicas Amarok 1.4.10 no Ubuntu 20.04

Xfce4-terminal com cursor piscante e som de beep do speaker

Instalando navegador Google Chrome no Fedora 25

Krita: Corrigindo erro na inicialização e deixando o programa em português

#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

Entre na sua conta para comentar.