LINUX.ORG.RU

GTK apps, default browser


0

1

Доброго времени! У меня в системе некоторые GTK программы считают, что браузер по-умолчанию firefox, хотя, на самом деле, это opera. В наутилусе и thunar в свойствах html файлов стоит «открывать в программе» opera. В gconf-editor свойства /desktop/gnome/url-handlers/http/command и /desktop/gnome/applications/browser/exec заданы, как opera %.

Проблема, похоже, только с приложениями, которые не являются частью gnome - как soffice, vuze и deadbeef. Вопрос, где искать эти настройки, если в самом приложении их нет? //когда-то давно все работало правильно

★★★★

Ответ на: комментарий от waker

Спасибо за ответ из первых рук! Действительно, xdg-open дергает firefox. Как оно настраивается нагуглить все равно не могу... http://tinyurl.com/6a78r7y

TuxR ★★★★
() автор топика
Ответ на: комментарий от TuxR

Какой дистрибутив? Может, что-то типа

~ % ll /etc/alternatives/x-www-browser
lrwxrwxrwx 1 root root 18 Apr  5 19:12 /etc/alternatives/x-www-browser -> /usr/bin/iceweasel

имеет приоритет?

GotF ★★★★★
()
Ответ на: комментарий от GotF

У меня gentoo. для debian-based дистрибутивов советов с /etc/alternatives действительно хватает.

Вот еще что выяснилось: локально сохраненные html теперь открываются в опере, а вот URL-адреса продолжают в firefox. Осталось только это побороть:

 $ file pda_sync.html 
pda_sync.html: HTML document text
 $ xdg-mime query default text/html
opera.desktop
 $ xdg-mime query filetype pda_sync.html
text/html; charset=iso-8859-1
 $ xdg-open pda_sync.html
Opening "pda_sync.html" with Opera  (text/html)
opera: Activated running instance
 $ xdg-open www.linux.org.ru
xdg-open: file 'www.linux.org.ru' does not exist
 $ xdg-open 'www.linux.org.ru'
xdg-open: file 'www.linux.org.ru' does not exist
 $ xdg-open 'http://www.linux.org.ru'
 $ 

TuxR ★★★★
() автор топика

Мне становится интересно, откуда-же оно конфиг берёт:

 $ strace -e trace=open  xdg-open 'http://www.linux.org.ru'
open("/etc/ld.so.cache", O_RDONLY)      = 5
open("/lib64/libncurses.so.5", O_RDONLY) = 5
open("/lib64/libdl.so.2", O_RDONLY)     = 5
open("/lib64/libc.so.6", O_RDONLY)      = 5
open("/dev/tty", O_RDWR|O_NONBLOCK)     = 5
open("/usr/lib64/locale/locale-archive", O_RDONLY) = 5
open("/proc/meminfo", O_RDONLY)         = 5
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 5
open("/usr/bin/xdg-open", O_RDONLY)     = 5
--- SIGCHLD (Child exited) @ 0 (0) ---
--- SIGCHLD (Child exited) @ 0 (0) ---
--- SIGCHLD (Child exited) @ 0 (0) ---
--- SIGCHLD (Child exited) @ 0 (0) ---
--- SIGCHLD (Child exited) @ 0 (0) ---

TuxR ★★★★
() автор топика

а гном запущен когда это происходит? чему равна переменная окружения $DE?

если она пустая — советую добавить в .bashrc: export DE=gnome

еще один вариант - прописать export BROWSER=opera

но это решит лишь одну проблему из многих :)

waker ★★★★★
()

vim /usr/bin/xdg-open (и удивись).

O, shi... :) Удивился, захардкодено значит. Странно, что strace работало.

гнома нет, $DE - пустая. Прописать в .bashrc не работает. Нужен способ глобально прописать переменные для e17. В качестве менеджера входа - gdm.


 $ BROWSER=opera xdg-open 'http://www.linux.org.ru'
opera: Activated running instance
 $ less /usr/bin/xdg-open 
 $ echo $DE

 $ xdg-settings set default-web-browser opera.desktop
xdg-settings: unknown desktop environment
 $ ps aux|grep enl
tuxr      5321  1.8  1.9 556272 80012 ?        Ssl  17:33   1:39 /usr/bin/enlightenment
TuxR ★★★★
() автор топика
Ответ на: комментарий от TuxR

> Прописать в .bashrc не работает.

должно работать. попробуй перелогиниться. не работает только если у тебя shell не bash. вобщем, надо прописывать в любой startup script.

waker ★★★★★
()
Ответ на: комментарий от tn1

... пошел путём брутфорса. Добавил export BROWSER=«opera» во все файлы, где оно может выполняться. Средой глобально переменная так и не подхватилась.

waker: конечно, это работает, когда родитель процесса шелл. А когда процесс запускает оконный менеджер, в свою очередь запущенный с помощью gdm, то переменной окружения из .bashrc или .zshrc из домашней директории приложение не получит. (проверил и это).

gdm/Xsession:export BROWSER=«opera»
gdm/PostSession/Default:export BROWSER=«opera»
gdm/PostLogin/Default:export BROWSER=«opera»
gdm/PreSession/Default:export BROWSER=«opera»
Sessions/Xsession:export BROWSER=«opera»


Вспомнил, совсем недавно тема была:
http://www.linux.org.ru/forum/desktop/6030840 , развития не получила.

TuxR ★★★★
() автор топика
Ответ на: комментарий от waker

Цитируем waker

должно работать. попробуй перелогиниться. не работает только если у тебя shell не bash. вобщем, надо прописывать в любой startup script.

не должно, .bashrc не выполняется в login-shell. Для этого служит ${HOME}/.profile. А вообще глобальные переменные можно запихать в /etc/environment (когда-то так в генту устанавливали переменную LANG и, соответственно, включали локализацию).

demidrol ★★★★★
()
Ответ на: комментарий от tn1

Всем спасибо! Я знал, что на ЛОРе помогут :)

В процессе траблшутинга дополнительно обновил gdm со стабильной 2.20.11 до замаскированной 2.32.1, может быть и зря.

Ещё есть ~/.xsession.

сам по себе файл не работает. Ни с одной строчкой экспорта, ни если его сделать скриптом с правом на выполнение. Зато я посмотрел в ~/.xsession-errors и нашел откуда происходит инициализация - /etc/gdm/Xsession: Beginning session setup... - это только в версии 2.32.1. Из /etc/gdm/Xsession заработало. В общем, решено, хотя и глобально для системы, а не per-user, впрочем остальные пользователи у меня на чистом гноме, им не важно.

TuxR ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.