Rozpoznání typu souboru v KDE

K>

Rozpoznání typu souboru v KDE
« kdy: 18. 09. 2015, 13:56:23 »
Prosím o pomoc, nějak to nemůžu vygooglit. Jak linuxový stroj (Kubuntu, KDE 4) rozpoznává typ souboru? Kde jsou pro to uložená pravidla? Příklad:

Když textový soubor bez přípony obsahuje jako první znak %, pak je pochopen jako texovský zdroják.
Pokud začíná slovem "function", pak to chápe jako textový soubor.
Pokud má příponu .py, tak je to vždy nezávisle na obsahu pochopeno jako pythonovský zdroják.
Pokud má příponu .m, tak je to pochopeno jako octave skript, ale jen když nezačíná znakem "%" nebo slovem "function".

Někde v systému musí být sada pravidel. Já bych potřeboval, aby všechny soubory, co mají příponu .m, byly chápány jako octave skript nezávisle na obsahu. V KDE system settings jde změnit, které přípony patří jakému MIME typu, ale to se zdá nefunguje.
« Poslední změna: 18. 09. 2015, 16:48:43 od Petr Krčmář »


Re:rozponani typu souboru - přípony, MIME
« Odpověď #1 kdy: 18. 09. 2015, 14:13:15 »
Záleží, jak definujete ""rozpoznání souboru"? To, v čem se otevře po dvojkliku? Mime typ, které je vidět v informacích o souboru v manažeru souhorů? Jinak?

Je potřeba rozlišit rozpoznání mime-typu a přidělení aplikaci k mime typu, což jsou dva různé procesy. Rozpoznání mime typu se děje podle souborů mime.types a magic souborů, přičemž jich může být v systému víc (a každý program může používat jiný, což působí zmatek). Přidělení aplikace k mime řeší obvykle desktopové prostředí, nejčastěji správce souborů daného desktopového prostředí. Standardizovat se to na desktopu snaží freedesktop standards (alespoň myslím). Výsledek ale není podle mých zkušeností ideální. Mám tušení, že se nastavení ukládá do .desktop souborů, což je kapitola sama pro sebe.

Tolik globálně pro představu - snad bude někdo fundovanější a poradí konkrétněji.

Re:rozponani typu souboru - přípony, MIME
« Odpověď #2 kdy: 18. 09. 2015, 14:14:15 »
PS: KDE nepoužívám, mám MATE desktop.

jmeno00

Re:Rozpoznání typu souboru v KDE
« Odpověď #3 kdy: 18. 09. 2015, 17:18:17 »
Je to tak, jak rika kolega - tedy detekce typu souboru je jedna vec a mapovani co s danym typem souboru vec druha. Viz. XDG specifikace (co googlit lze zjistit z vypisu: env | grep XDG). Prvni misto jsou *.desktop soubory (napr. v /usr/share/applications/ nebo "$XDG_DATA_HOME"/applications a dalsich mistech), ktere obsahuji asociace. Dalsi mapovani je napr. v "$XDG_DATA_HOME"/applications/mimeapps.list a neco dalsiho by mohlo byt i jinde - doporucuji dukladne precist XDG standardy (alespon http://standards.freedesktop.org/desktop-entry-spec/latest/ a http://portland.freedesktop.org/xdg-utils-1.0/xdg-mime.html) a pripadne prolezt ruzne utilitky, ktere resi bugy a spatny navrh xdg-utils, tedy napr. xdg-utils-mimeo.

Kit

Re:Rozpoznání typu souboru v KDE
« Odpověď #4 kdy: 18. 09. 2015, 17:35:10 »
Pokud si dobře pamatuji, tak kdysi KDE rozpoznávalo typy souborů primitivním způsobem - podle přípony. Zřejmě někomu vadilo, že je to moc "windosácké řešení" a tak použil utilitu file, která to dělá podle magic numbers. Někde v konfiguraci by to však mělo jít přepnout.
https://docs.kde.org/trunk5/en/kde-workspace/klipper/actions-page.html


ByCzech

Re:Rozpoznání typu souboru v KDE
« Odpověď #5 kdy: 19. 09. 2015, 03:07:56 »
Pokud si dobře pamatuji, tak kdysi KDE rozpoznávalo typy souborů primitivním způsobem - podle přípony. Zřejmě někomu vadilo, že je to moc "windosácké řešení" a tak použil utilitu file, která to dělá podle magic numbers. Někde v konfiguraci by to však mělo jít přepnout.
https://docs.kde.org/trunk5/en/kde-workspace/klipper/actions-page.html

Co má s tématem společného utilitka Klipper?  :o

Kit

Re:Rozpoznání typu souboru v KDE
« Odpověď #6 kdy: 19. 09. 2015, 06:38:14 »
Pokud si dobře pamatuji, tak kdysi KDE rozpoznávalo typy souborů primitivním způsobem - podle přípony. Zřejmě někomu vadilo, že je to moc "windosácké řešení" a tak použil utilitu file, která to dělá podle magic numbers. Někde v konfiguraci by to však mělo jít přepnout.
https://docs.kde.org/trunk5/en/kde-workspace/klipper/actions-page.html

Co má s tématem společného utilitka Klipper?  :o

Nevím - vyhodil mi to Google a našel jsem v tom "Enable MIME-based actions", které je zřejmě zapnuté i tam, kde být nemá. Předpokládal jsem, že to u plochy bude podobné nebo že si tazatel dokáže v dokumentaci KDE najít analogii právě podle toho textu v uvozovkách. Někdy k řešení problému vede i jeho správné pojmenování.

Co má s tématem společného dotaz: "Co má s tématem společného utilitka Klipper?"

nobody

Re:Rozpoznání typu souboru v KDE
« Odpověď #7 kdy: 19. 09. 2015, 18:59:33 »
Kit: hele to neokecas ;) Klipper je nastroj pro pristup k historii clipboardu ;)

Kit

Re:Rozpoznání typu souboru v KDE
« Odpověď #8 kdy: 19. 09. 2015, 21:52:52 »
Kit: hele to neokecas ;) Klipper je nastroj pro pristup k historii clipboardu ;)

No a? Nikde nevidím tvoji odpověď k tématu, takže jsi také zcela mimo.

nobody

Re:Rozpoznání typu souboru v KDE
« Odpověď #9 kdy: 19. 09. 2015, 23:41:04 »
No a? Nikde nevidím tvoji odpověď k tématu, takže jsi také zcela mimo.

Nech toho... ma odpoved vyvracuje tvoji spatnou odpoved, aby tazatel s ni neztracel zbytecne cas, tedy je k tematu vic nez dost...

nobody

Re:Rozpoznání typu souboru v KDE
« Odpověď #10 kdy: 19. 09. 2015, 23:48:54 »
[...]
Já bych potřeboval, aby všechny soubory, co mají příponu .m, byly chápány jako octave skript nezávisle na obsahu.
[...]

Potrebujes aby byli chapany kde? V dolphinu/plose pri poklepani na ikonu soubor.m aby se pustil tebou asociovanej program?

K>

Re:Rozpoznání typu souboru v KDE
« Odpověď #11 kdy: 23. 09. 2015, 12:12:24 »
hm, zkusim to jinak.
Napriklad dolphin mi zobrazi mime typ souboru, nebo se muzu na mime typ zeptat pomoci xdg-mime. napriklad pro dva ruzne soubory se stejnou priponou:
$xdg-mime query filetype adev.m
text/x-matlab
$xdg-mime query filetype allan_modified.m
text/x-modelica
Dolphin ukazuje stejny mime-typ.
oba soubory jsou octave/matlab skripty, akorat prvni zacina znaky "##", druhy slovem "function"

kolem xdg-mime uz jsem zkousel googlit, ale vzdy v prikladech jen resi nejaky desktop soubor a v nem definuji priponu. v systemu musi byt neco, co se diva na obsah souboru. Co se diva na obsah souboru, aby urcil mime typ?

ted se mi to povedlo to vygooglit:
http://superuser.com/questions/596302/how-does-linux-know-what-is-the-mimetype-of-a-file

- poznava se to pomoci "magic bytes", ktere generuje libmagic. Ta knihovna si data uklada do binarky v /etc/magic. man magic.
Buuu to je komplikovane. To jsem fakt cekal neco jednodussiho.