Substituindo um executável para adicionar um sinalizador padrão

4

Aqui está o meu boggle. Eu uso gmplayer para reproduzir todos os meus vídeos. 99,9% das vezes tudo funciona bem, mas nesse caso de 1 em 1000, um vídeo pode estar corrompido. gmplayer reproduz o vídeo, mas chora como um bebê zangado e faminto, abrindo as janelas para a esquerda, para a direita e para o centro. Em vídeos realmente ruins, isso realmente desacelera todo o sistema, pois gera centenas de janelas de erro (o compiz aplica efeitos, etc.). Ele também rouba o foco e ocasionalmente cancela o Natal.

Na linha de comando mplayer , essas mensagens são apenas descartadas para a linha de comando. Usar mplayer -proper pode ser uma opção se eu não puder usar gmplayer , mas não é tão bom para minhas necessidades.

Eu encontrei uma solução alternativa. Se você adicionar -msglevel all=0 à chamada gmplayer , os erros serão suprimidos. Inútil de uma perspectiva de depuração, mas não estou tentando depurar vídeos aqui, apenas observe-os.

O que eu quero fazer é "alias" ou "proxy", o comando gmplayer , então quando você executa gmplayer a partir da linha de comando ou por associação, ele executa gmplayer -msglevel all=0 . Eu entendo que apenas adicionando um apelido bash não funcionará para jogos associados (como em um duplo clique em um vídeo no gnome).

Quais são as minhas opções para fazer um proxy complexo no comando. Isso só precisa funcionar para um usuário, mas também estou aberto a alterações em todo o sistema.

    
por Oli 25.08.2010 / 16:29

6 respostas

8

Você pode definir esta opção em um dos arquivos de opções do mplayer, então este será o comportamento padrão. Para o sistema, mude o /etc/mplayer/mpplayer.conf apenas para esse usuário, crie ~ / .mplayer / mplayer.conf e coloque-o lá.

Adicionando isso a ~/.mplayer/mplayer.conf works:

msglevel=all=0
    
por Stuart 25.08.2010 / 17:15
3

Você pode editar o arquivo /usr/share/applications/mplayer.desktop para adicionar a maneira como o comando gmplayer é chamado no menu. Não se esqueça de usar dpkg-divert para tornar essa alteração consistente localmente:

$ sudo dpkg-divert /usr/share/applications/mplayer.desktop

Isso dirá a dpkg para manter sua versão modificada do arquivo em futuras atualizações de pacotes.

    
por ℝaphink 25.08.2010 / 23:16
1

Eu não tenho certeza de como fazer isso. além de escrever um script que chama seu executável com sinalizadores. Mas eu sei que no Eclipse há um arquivo eclipse.ini no mesmo diretório que o exequível que permite que você passe flags. Talvez investigando que você pode escrever um arquivo semelhante para gmplayer

Espero que isso ajude. :)

    
por myusuf3 25.08.2010 / 16:44
0

A maneira mais fácil de fazer isso é provavelmente a seguinte:

  1. renomeie o executável em /usr/bin
  2. coloque em seu lugar um script que irá chamar o executável sob o novo nome, que adiciona seu argumento.

    #!/bin/bash
    original-gmplayer -msglevel all=0 $@
    

Como alternativa, você pode colocar esse script no diretório bin da sua casa e certificar-se de que esse diretório bin esteja em seu caminho (precisa ser configurado em todo o sistema para trabalhar em aplicativos que não são chamados do terminal)

    
por txwikinger 25.08.2010 / 16:45
0

Como uma solução diferente, use smplayer , que tem a diferença de ser realmente mantido, e funciona muito bem (o que você não pode dizer do gmplayer).

    
por loevborg 26.08.2010 / 17:18
-2

Você pode criar um link simbólico para o seu comando. Crie um comando chamado mygmplayer e, em seguida, verifique onde está o seu comando gmplayer real com whereis ou qual, em seguida, crie um link simbólico para seu comando. Aqui um exemplo

 $ echo '#!/bin/bash' > /home/user/mygmplayer
 $ echo "gmplayer -msglevel all=0" >> /home/user/mygmplayer
 $ chmod a+x mygmplayer
 $ which gmplayer
 /usr/bin/gmplayer
 $ sudo mv /usr/bin/gmplayer /usr/bin/gmplayer.old
 $ sudo ln -s /home/user/mygmplayer /usr/bin/gmplayer

Tchau.

    
por lcipriani 25.08.2010 / 16:49