Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-01-16 01:22:28

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

[SOLVED] xdg-open błędnie dobiera typy MIME

Tak próbuje ogarnąć sobie typy MIME, by wszystkie programy bez względu na środowisko graficzne odpalały te aplikacje, które im się określi jako domyślne w pliku  ~/.config/mimeapps.list . Mam porobione dowiązania z tych przestarzałych lokalizacji i z tych, które mają odpowiadać różnym środowiskom graficznym.

Weźmy sobie przykładowy film o linuxie pobrany w qbottorencie. Jeśli w okienku qbittorenta kliknę 2x na pliku linux.avi, to qbittorrent inicjuje xdg-open. Z kolei xdg-open powinien otworzyć to co jest określone w ~/.config/mimeapps.list .

Z testów wynika coś takiego:

Kod:

$ xdg-mime query filetype linux.avi
video/x-msvideo

$ xdg-mime query default video/x-msvideo
smplayer.desktop;

Zatem ten film, powinien się odpalić w smplayer, bo to jego plik jest ustawiony domyślnie. W SpaceFM wszystko działa tak jak powinno, natomiast w qbittorrent jak wywołam ten plik, to mi się on odpala w kodi. xD

Sprawdziłem jak wygląda ręczne odpalenie tego pliku przez xdg-open i faktycznie ten plik jest odpalany w kodi, a nie w smplayer, więc to nie jest wina qbittorrenta.

Poczytałem trochę i wychodzi na to, że problem tkwi w zmiennej DE. Standardowo ona nie jest ustawiona w openboxie. [url=https://wiki.archlinux.org/index.php/Environment_variables]Tu piszą[/url], że ta zmienna może powodować problemy z xdg-open oraz, że rozpoznawane są następujące wartości: gnome, kde, xfce, lxde oraz mate. Sprawdziłem jak się zachowa xdg-open na każdej z nich i wychodzi, że po ustawieniu tej zmiennej na xfce, film z linuxem odpalany jest za pomocą xdg-open w tej aplikacji co potrzeba, w oparciu o domyślny typ ustawiony w pliku ~/.config/mimeapps.list .

Pytanie, czy idzie jakoś inaczej ten xdg-open zmusić do współpracy, czy ta zmienna jest wymagana do poprawnego działania xdg-open i musi ona być obecna w środowisku?

Ostatnio edytowany przez morfik (2016-01-17 23:43:29)

Offline

 

#2  2016-01-17 21:45:22

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Jak nie ma pomysłów, to zostawię jak jest. Niby wszystko działa jak trzeba. No i można mieć także zmienną GNOME_DESKTOP_SESSION_ID. xD

Offline

 

#3  2016-01-17 21:48:52

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

O widzisz, ja mam durne Mate na strasznym Gentusiu, konfiguracje jeszcze ze starego Gnome-2.32,  wszystko bryka, jak powinno.

Ostatnio edytowany przez Jacekalex (2016-01-17 21:49:42)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2016-01-17 22:06:53

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Pewnie brakuje mi jakiegoś pakietu. W końcu po wyczyszczeniu, system schudł z prawie 8G do 5,5G. xD

Offline

 

#5  2016-01-17 22:09:14

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

To zobacz, co wyleciało, może po nazwie dojdziesz.
Możesz też xdg-open strace'm potraktować pod kątem "No such file or directory".

Zależności toto zbyt wiele nie ma:

Kod:

 * dependency graph for x11-misc/xdg-utils-1.1.1
 `--  x11-misc/xdg-utils-1.1.1  amd64 
   `--  app-text/xmlto-0.0.26-r1  (>=app-text/xmlto-0.0.26-r1) amd64  [text(+)]
   `--  sys-devel/automake-1.15  (>=sys-devel/automake-1.15) amd64 
   `--  sys-devel/autoconf-2.69  (>=sys-devel/autoconf-2.69) amd64 
   `--  sys-devel/libtool-2.4.6  (>=sys-devel/libtool-2.4) amd64 
   `--  dev-util/desktop-file-utils-0.22  (dev-util/desktop-file-utils) amd64 
   `--  x11-misc/shared-mime-info-1.4  (x11-misc/shared-mime-info) amd64 
   `--  x11-apps/xprop-1.2.2  (x11-apps/xprop) amd64 
   `--  x11-apps/xset-1.2.3  (x11-apps/xset) amd64 
   `--  dev-perl/File-MimeInfo-0.270.0  (dev-perl/File-MimeInfo) amd64

Ostatnio edytowany przez Jacekalex (2016-01-17 22:12:37)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2016-01-17 22:13:56

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

W sumie, to ja z okazji nowego roku wgrałem świeżego sida. No i instalowałem go via debootstrap z apt.conf praktycznie ustawionym zaraz po zakończeniu instalacji tego minimalnego debiana, a tam były wyłączone zalecane i sugerowane pakiety. Także zainstalowało mi się ich mniej niż poprzednio, bo wtedy te ustawienia były aplikowane trochę później, xD A na strace mogę popatrzeć w sumie.

Offline

 

#7  2016-01-17 23:07:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Minimalnego Debiana przez debootstrap?

Właśnie leci debootsrap Strecha u mnie, i minimalnie to on ciągnie jakiegoś boosta, vima,  całkiem sporo tego, jak na miniaturkę.

Ciekawe tylko, czy w iptables znajdę cgroup, czy znowu  będzie trzeba latki kombinować i kompilować dziada.
Niestety:

Kod:

Can't find library for match `cgroup'

Ostatnio edytowany przez Jacekalex (2016-01-18 01:21:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2016-01-17 23:43:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Z analizy strace wyszło, że ten xdg-open to zwykły skrypt. xD Zajrzałem do niego i tam jest funkcja o bardzo wymownej nazwie detectDE() . Tam jest z kolei sprawdzana zmienna XDG_CURRENT_DESKTOP i na jej podstawie ustawiana zmienna DE. Później w oparciu o DE jest dobierane narzędzie. Jeśli nie ustawiono zmiennej DE, w wyniku braku jej w środowisku albo w wyniku braku XDG_CURRENT_DESKTOP , to wtedy jest seria fallbacków:

Kod:

    if [ x"$DE" = x"" ]; then
      # classic fallbacks
      if [ x"$KDE_FULL_SESSION" != x"" ]; then DE=kde;
      elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
      elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate;
      elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
      elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
      elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce
      elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=enlightenment;
      fi
    fi

I tu już widać, czemu ustawienie GNOME_DESKTOP_SESSION_ID wpływało na wyniki. xD Żadne z tych powyższych jednak nie aplikuje się do mojego środowiska. Dalsze fallbacki w skrypcie również nie pasują. Także wychodzi na to, że ten xdg-open nie jest w stanie ustalić środowiska i przechodzi do:

Kod:

$ /usr/bin/file --brief --dereference --mime-type linux.avi
video/x-msvideo

A następnie do:

Kod:

$ /usr/bin/xdg-mime query default video/x-msvideo
smplayer.desktop;

Więc czemu się kodi odpala? xD Przeglądając dalej ten cały strace, zauważyłem coś takiego:

Kod:

49023 faccessat(AT_FDCWD, "/usr/share//applications//smplayer.desktop;", R_OK) = -1 ENOENT (No such file or directory)

Może i nie ma [b]/usr/share//applications//smplayer.desktop;[/b] ale jest [b]/usr/share//applications//smplayer.desktop[/b] . Skasowałem zatem w tym powyższym ten ostatni średnik i... zadziałało bez zmiennej DE. xD

Choć po tym co zobaczyłem w tym strace, to ustawie sobie te zmienną DE na xfce. Taki overhead tam jest w poszukiwaniu tej domyślnej aplikacji, że to głowa mała. xD Dla porównania, przy ustawionej zmiennej to smplayer jest wywoływany w 1604 linijce, a przy braku to doszedłem póki co do prawie 10k linii i jeszcze nic się nie dzieje. xD Ta zmienna definitywnie zostaje.

Tak na przyszłość, nie zostawiajcie ostatniego średnika w pliku  ~/.config/mimeapps.list przynajmniej w sekcji z domyślnymi aplikacjami. Ciekawe czy to bug czy ficzer. :]

Właśnie leci debootsrap Strecha u mnie, i minimalnie to on ciągnie jakiegoś boosta, vima,  całkiem sporo tego, jak na miniaturkę[/quote]
Vima? Ja to musiałem u siebie sam instalować. xD

Offline

 

#9  2016-01-18 00:07:47

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Ja w ~/.config/mimeapps.list w sekcji [Default Applications] nie mam ani jednego średnika.

Za to w [Added Associations] wszystkie niepuste linie kończą się średnikami.

Ciekawe, dlaczego.

Ostatnio edytowany przez Jacekalex (2016-01-18 00:08:55)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2016-01-18 00:30:56

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Spacefm dodaje standardowo te średniki na końcu każdej pozycji w defaults jeśli za jego pomocą określa się domyślne aplikacje. Zgłosiłem to przed chwilą: https://github.com/IgnorantGuru/spacefm/issues/618

Offline

 

#11  2016-01-18 00:32:01

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

2573

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:31:32)

Offline

 

#12  2016-01-18 00:35:24

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Być może to tylko spacefm tak ma, zobaczymy co powiedzą. xD

Offline

 

#13  2016-01-18 01:29:40

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

U mnie działało dlatego:

Kod:

echo $MATE_DESKTOP_SESSION_ID
this-is-deprecated

W ~/.xinitrc dodałem:

Kod:

elif [ -x /usr/bin/mate-session ];
then
export DE="mate";
exec /usr/bin/ck-launch-session /usr/bin/dbus-launch --sh-syntax --exit-with-session  /usr/bin/mate-session 2>/dev/null

Zobaczymy, czy to coś zmieni.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2016-01-18 11:38:23

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

W sumie, to u ciebie aż takiego boosta przy odpalaniu domyślnych aplikacji raczej nie będzie, bo ty tą zmienną i tak miałeś ustawianą, tylko, że w 3 podejściu. U mnie ona w ogóle nie była ustawiana, a prób to tam było chyba paręnaście, z tym, że też robiło kilka dodatkowych obiegów z bliżej mi nie znanego powodu. xD

A jeszcze taka sprawa co do tych domyślnych typów. Jeśli ustawicie inną aplikację jako domyślą, to czy ona przepisuje tę, która już została ustawiona wcześniej w pliku ~/.config/mimeapps.list ? Bo w spacefm pod tym względem też coś jest nie tak.

Jeśli jest ustawiona domyślna aplikacja, przykładowo:

Kod:

[Default Applications]
...
video/x-msvideo=smplayer.desktop

Nie ma znaczenia czy tam będzie średnik czy też nie. Jeśli teraz spróbuję wybrać w spacefm inną aplikację i ustawić ją jako default, to ta powyższa linijka zmienia się na taką:

Kod:

[Default Applications]
...
video/x-msvideo=vlc.desktop;smplayer.desktop;

następne ustawienie domyślnej aplikacji daje:

Kod:

[Default Applications]
...
video/x-msvideo=mpv.desktop;vlc.desktop;smplayer.desktop;

Jak widać, teraz są trzy domyślne typy dla tej aplikacji. Oczywiście przy ustawionej zmiennej DE, to nie ma znaczenia i poprawnie jest wybierany mpv. Ten wpis z tymi trzema aplikacjami niekoniecznie musi być błędy, może jak nie ma tego pierwszego pliku, to system przejdzie do następnego, itd. Niemniej jednak, usunięcie z tej linijki tego ostatniego średnika, nie poprawia xdg-open i ten dalej wywołuje ten typ MIME w kodi.

Coś te narzędzia z xfce radzą sobie o wiele lepiej z przetwarzaniem tego pliku ~/.config/mimeapps.list niż ten xdg-open. xD

Offline

 

#15  2016-01-18 18:18:05

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

A kto Ciebie zmusza do SpaceFM?

Thunar gryzie?
Caja gryzie?

Chcesz walnięty SpaceFM, to Twój wybór, nie znam żadnego dobrego psychologa (którego mogę polecić) w Twojej okolicy. ;D

Ja bym na Twoim miejscu odpoczął od SpaceFm do czasu, aż poprawią tego babola, którego zgłosiłeś.

Pozdro
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#16  2016-01-18 18:23:13

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

No bo ten spacefm jest zajebiście konfigurowalny. xD W sumie, to ten problem tylko tyczy się tego średnika w środowiskach bez zmiennej DE. Moje już ma i nie ma problemów. Tam pisali, że to ten xdg-open ssie i nie przestrzega specyfikacji i dlatego są problemy. xD Poza tym, to wszędzie działa ze średnikami.

Offline

 

#17  2016-01-18 18:43:42

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Xdg-utils ssie? To są zwykłe skrypty, pewnie da się jakoś to poprawić,
żeby ignorowały średnik na końcu ścieżki.

Poza tym, skoro to ssie, i nie przestrzega specyfikacji, to ciekawe, która wersja SystemD to cudo zastąpi. :P

Ostatnio edytowany przez Jacekalex (2016-01-18 18:49:19)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#18  2016-01-18 19:12:13

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Nie xdg-utils, tylko samo xdg-open. Poza tym, przecie każde środowisko ma swoje własne "xdg-open" i te potrafią se radzić jakoś. xD

Ostatnio edytowany przez morfik (2016-01-18 19:13:08)

Offline

 

#19  2016-01-18 19:31:07

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: [SOLVED] xdg-open błędnie dobiera typy MIME

Każde środowisko ma support do API XDG, to prawda.

Np w  Xfce masz exo-open.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.016 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00020 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00193 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.225.149.232' WHERE u.id=1
0.00142 UPDATE punbb_online SET logged=1716128113 WHERE ident='18.225.149.232'
0.00087 SELECT * FROM punbb_online WHERE logged<1716127813
0.00075 SELECT topic_id FROM punbb_posts WHERE id=295847
0.00223 SELECT id FROM punbb_posts WHERE topic_id=28119 ORDER BY posted
0.00089 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28119 AND t.moved_to IS NULL
0.00009 SELECT search_for, replace_with FROM punbb_censoring
0.00143 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28119 ORDER BY p.id LIMIT 0,25
0.00114 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28119
Total query time: 0.011 s