Переопределение исполняемого файла для добавления флага по умолчанию

1110 Вот мой офигительный. Я использую gmplayer для воспроизведения всех своих видео. В 99,9% случаев все работает нормально, но в этом случае 1-в-1000 видео может быть повреждено. gmplayer воспроизводит видео, но оно плачет, как сердитый, голодный ребенок, выскакивая из окон влево, вправо и в центр. В действительно плохих видео это фактически замедляет всю систему, поскольку порождает сотни окон ошибок (compiz применяет эффекты и т. Д.). Это также крадет фокус и иногда отменяет Рождество.

В командной строке mplayer эти сообщения просто выбрасываются в командную строку. Использование mplayer -proper может быть вариантом, если я не могу использовать gmplayer, но это не совсем хорошо для моих нужд.

Я нашел обходной путь. Если вы добавите -msglevel all=0 к вызову gmplayer, ошибки будут подавлены. Бесполезно с точки зрения отладки, но я не пытаюсь отлаживать видео здесь, просто посмотрите их.

То, что я хочу сделать, это «псевдоним» или «прокси» команда gmplayer, поэтому, когда вы запускаете gmplayer из командной строки или по ассоциации, она фактически запускается gmplayer -msglevel all=0. Я понял, что просто добавление псевдонима bash не будет работать для связанных (как при двойном щелчке на видео в gnome) воспроизведении.

Каковы мои варианты для жесткого прокси команды. Это должно работать только для одного пользователя, но я открыт и для общесистемных изменений.

4
задан 25 August 2010 в 23:42

6 ответов

Вы можете установить эту опцию в одном из файлов опций mplayer, тогда это будет поведение по умолчанию. Для общесистемного изменения /etc/mplayer/mpplayer.conf просто для этого пользователя создайте ~ / .mplayer / mplayer.conf и вставьте его туда.

Добавление этого к ~/.mplayer/mplayer.conf работает:

msglevel=all=0
0
ответ дан 25 August 2010 в 23:42

Я не совсем уверен, как это сделать. кроме написания скрипта, который вызывает ваш исполняемый файл с флагами. Но я знаю, что в Eclipse есть файл eclipse.ini в том же каталоге, что и исполняемый файл, который позволяет передавать флаги. Может быть, глядя на то, что вы можете написать аналогичный файл для gmplayer

Надеюсь, это поможет. :)

0
ответ дан 25 August 2010 в 23:42

Самый простой способ сделать это, вероятно, следующий:

  1. переименовать исполняемый файл в /usr/bin
  2. поставить на его место скрипт, который будет вызывать исполняемый файл под новым именем, который добавляет ваш аргумент.

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

В качестве альтернативы, вы можете поместить этот скрипт в каталог bin у себя дома и убедиться, что этот каталог bin находится в вашем пути (необходимо настроить всю систему, чтобы работать для приложений которые не вызываются из терминала)

0
ответ дан 25 August 2010 в 23:42

Вы можете отредактировать файл /usr/share/applications/mplayer.desktop так, чтобы он вызывал команду gmplayer из меню. Обязательно используйте dpkg-divert, чтобы сделать это изменение согласованным локально:

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

Это скажет dpkg сохранить измененную версию файла в будущих обновлениях пакета.

0
ответ дан 25 August 2010 в 23:42

В качестве другого решения используйте вместо этого smplayer, который отличается тем, что поддерживается на самом деле и прекрасно работает (чего нельзя сказать о gmplayer).

0
ответ дан 25 August 2010 в 23:42

Вы можете создать символическую ссылку на вашу команду. Создайте команду с именем mygmplayer, затем проверьте, где находится ваша фактическая команда gmplayer с whereis или which, затем создайте символическую ссылку на вашу команду. Вот пример

 $ 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

Пока.

0
ответ дан 25 August 2010 в 23:42

Другие вопросы по тегам:

Похожие вопросы: