Делаем из Vim IDE
В стародавние времена когда деревья были большими, трава зеленее, а мороженное стоило по 10 копеек, на Земле жили динозавры, и эти динозавры программировали в Vim.
( читать дальше... )
В стародавние времена когда деревья были большими, трава зеленее, а мороженное стоило по 10 копеек, на Земле жили динозавры, и эти динозавры программировали в Vim.
( читать дальше... )
Есть у меня пара файлов — .mailcap
и .mime.types
, и существует эта пара файлов уже почти 20 лет, и тиражируется на все машины.
И уже лет 20 я запускаю run-mailcap %s
. И у меня даже есть возможность конфигурировать некую простую логику выбора нужной программы в случае, если есть несколько альтернатив (самый примитивный случай — это разные обработчики в X Window и в консоли), напр.:
text/plain; nedit %s; test=test -n "${VAR}" -a ${VAR} -eq 0
text/plain; vim %s; test=test -n "${VAR}" -a ${VAR} -eq 1
text/plain; gvim %s; test=test -n "${VAR}" -a ${VAR} -eq 2
text/plain; emacs %s; test=test -n "${VAR}" -a ${VAR} -eq 3
text/plain; emacs -nw %s; test=test -n "${VAR}" -a ${VAR} -eq 4
text/plain; mcedit %s;
(Сама форма записи ; test=
описана в RFC 1524.)
И работает эта штука достаточно быстро.
Но вот уже лет пять как продвигается альернатива — xdg-open
. Которая прекрасна всем:
*.desktop
-файлов в /usr/share/applications
.
thunar
(inode/directory; thunar %s; test=test -n "${DISPLAY}"
)), но вот xdg-open
, с*ка, решил, что разумнее запустить git-cola
, а затем — audacious
(видимо, потому, что в обычных каталогах git-cola
возвращает ненулевой код).
*.desktop
-файлы, таковые приходится создавать вручную, что однозначно дольше добавления одной строки в .mailcap
. Короче, снова приходится настраивать то, что уже годы работало.
Проблема в том, что всё больше инструментов пытаются использовать xdg-open
вместо run-mailcap
, а сам xdg-open
попытается запустить run-mailcap
только в случае, если сам не придумает какой-нибудь глупости. Снести xdg-open
не получится — от него зависит chromium и ещё куча софта.
Посему вопрос: как сделать, чтобы run-mailcap
запускался всегда, и запретить всякие странные эвристики и танцы с бубном?
Для Midnight Commander всё (пока) решается просто:
export MC_XDG_OPEN='run-mailcap'
Для всего остального я, увы, пока вижу лишь
dpkg-divert --divert /usr/bin/xdg-open.orig --local --rename /usr/bin/xdg-open
ln -s run-mailcap /usr/bin/xdg-open
Есть менее радикальные решения?
UPD: Временно решил проблему, создав run-mailcap.desktop
след. содержания:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=run-mailcap %u
Name=run-mailcap
Comment=run-mailcap
и прописав его в качестве обработчика для всех типов в ~/.config/mimeapps.list
, но как-то это всё равно через задницу.