Chromium не открывает magnet, steam и другие подобные ссылки

Недавно я заметил, что мой Chrome (Chromium) неправильно обрабатывает magnet, steam и другие подобные ссылки. После непродолжительной отладки xdg-open выяснилось, что проблема возникает в open_generic. В популярных DE этой ошибки нет, ибо для открытия файлов там используются свои решения, но те, кто не использует DE (я использую Awesome WM), проблеме подвержены.

В чём проблема

Как оказалось, проблема заключается в том, что по умолчанию обработка события браузером стоит выше, чем запуск заданным приложением для открываемого x-scheme-handler.

Решение

Как стало очевидно, чтобы решить проблему нужно обработать событие заданным приложением для x-scheme-handler перед браузером, поэтому решение выглядит так (файл xdg-open):

-    if [ -n "$BROWSER" ]; then
-        open_envvar "$1"
-    fi
-
     if [ -n "$DISPLAY" ]; then
         open_generic_xdg_x_scheme_handler "$1"
     fi
 
+    if [ -n "$BROWSER" ]; then
+        open_envvar "$1"
+    fi
+

Ссылки

Чтобы не редактировать файл напрямую (так делать очень плохо), я собрал пакет с применённым патчем для Arch Linux: xdg-utils-patched. Буду поддерживать в актуальном состоянии.

Также доступен GitHub репозиторий с патчем.

Перейти к верхней панели