Fórum Root.cz

Hlavní témata => Desktop => Téma založeno: K> 18. 09. 2015, 13:56:23

Název: Rozpoznání typu souboru v KDE
Přispěvatel: K> 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.
Název: Re:rozponani typu souboru - přípony, MIME
Přispěvatel: Ondrej Nemecek 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.
Název: Re:rozponani typu souboru - přípony, MIME
Přispěvatel: Ondrej Nemecek 18. 09. 2015, 14:14:15
PS: KDE nepoužívám, mám MATE desktop.
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: jmeno00 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.
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: Kit 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 (https://docs.kde.org/trunk5/en/kde-workspace/klipper/actions-page.html)
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: ByCzech 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 (https://docs.kde.org/trunk5/en/kde-workspace/klipper/actions-page.html)

Co má s tématem společného utilitka Klipper?  :o
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: Kit 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 (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?"
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: nobody 19. 09. 2015, 18:59:33
Kit: hele to neokecas ;) Klipper (https://userbase.kde.org/Klipper) je nastroj pro pristup k historii clipboardu ;)
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: Kit 19. 09. 2015, 21:52:52
Kit: hele to neokecas ;) Klipper (https://userbase.kde.org/Klipper) je nastroj pro pristup k historii clipboardu ;)

No a? Nikde nevidím tvoji odpověď k tématu, takže jsi také zcela mimo.
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: nobody 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...
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: nobody 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?
Název: Re:Rozpoznání typu souboru v KDE
Přispěvatel: K> 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.