понедельник, 12 августа 2024 г.

Ссылки в Telegram открываются в Thunderbird а не в браузере

 В какой-то момент заметил что ссылки в клиенте Telegram (telegram-desktop) открываются в Thunderbird, а не в Firefox. Первым делом проверил альтернативы для gnome-www-browser, x-www-browser и www-browser

$ update-alternatives --display gnome-www-browser
$ update-alternatives --display x-www-browser
$ update-alternatives --display www-browser

все указывают на /usr/bin/firefox.

Далее проверил настройки "Приложения по умолчанию" в Xfce4. На вкладке "Интернет" для браузера выставлен "Debian sensible browser" который запускает x-www-browser, который в свою очередь должен запустить Firefox.

А на вкладке "Другие" нашлись неверные ассоциации, указывающие на Thunderbird. Поправил чтобы всё указывало на Firefox. Для Thunderbird осталась только почта, но по факту ничего не изменилось. Ссылки всё еще открываются в нём.


Далее в ход пошёл strace которым я выловил команду открывания ссылки в Telegram:

$ strace -f -e execve -p $(pidof telegram-desktop)
strace: Process 6670 attached with 22 threads
strace: Process 8217 attached
strace: Process 8218 attached
[pid  8218] execve("/usr/lib/x86_64-linux-gnu/glib-2.0/gio-launch-desktop", ["/usr/lib/x86_64-linux-gnu/glib-2"..., "/usr/bin/thunderbird", "https://flathub.org/apps/xyz.arm"...], 0x55b12d09e310 /* 37 vars */ <unfinished ...>
[pid  8217] +++ exited with 0 +++
[pid  6670] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8217, si_uid=1000, si_status=0, si_utime=0, si_stime=2 /* 0.02 s */} ---
[pid  8218] <... execve resumed>)       = 0
strace: Process 8219 attached
strace: Process 8220 attached
[pid  8218] execve("/usr/bin/thunderbird", ["/usr/bin/thunderbird", "https://flathub.org/apps/xyz.arm"...], 0x562cb14aa2a0 /* 38 vars */) = 0

В выводе strace виден некий gio-launch-desktop, про который я не в курсе. В системе нашлась команда gio у которой есть аргумент open, которая даёт такое же поведение при открывании ссылок

$ gio open https://google.com/

Теперь нужно найти откуда gio берет конфигурацию. Для этого запускаю gio open https://google.com/ через strace и вижу обращение к базе MIME. Смотрю ассоциации для протоколов HTTP и HTTPS

$ xdg-mime query default x-scheme-handler/https
thunderbird.desktop

$ xdg-mime query default x-scheme-handler/http 
thunderbird.desktop

Этой же утилитой можно задать нужное приложение

$ xdg-mime default firefox-esr.desktop x-scheme-handler/http x-scheme-handler/https

После этого ссылки стали открываться в Firefox.

Комментариев нет:

Отправить комментарий