přejít na obsah přejít na navigaci

Linux E X P R E S, Asociace přípon ve Wine

Asociace přípon ve Wine

Wine

Jak ve Wine zajistit otevírání souborů v nativních linuxových programech přímo poklepáním na soubor? Není to sice úplně triviální, ale také ne složité. Pojďme se podívat, jak na to. 


Wine umí, ale potřebuje trochu pomoci

Před pár lety jsem řešil, kterak otevírat ve Wine nativní linuxové programy. Stál jsem konkrétně před úkolem, jak v CD se školskými dokumenty (např. „202 dokumentů ředitele školy“) spouštěného ve Wine zajistit asociaci pro tehdy OpenOffice a Evince. CD je totiž určeno pro spouštění v OS Windows, kde kromě komentářů a doporučených postupů obsahuje také příslušné tiskopisy a formuláře v různých formátech (.doc, .docx, .xls, .xlsx, .pdf .. aj.).

Problém není ve spuštění CD ve Wine, ale v záludnosti, spočívající v odkazu pro otevření příslušného tiskopisu nebo formuláře k vyplnění a následnému tisku. Příslušný odkaz totiž ukazuje na dokument ve struktuře CD, což v OS Windows je triviální záležitost – prostým poklepáním na odkaz je volán program asociovaný podle přípony dokumentu a ten zajistí jeho otevření.

Ve Wine je tohle trošku problém, protože LibreOffice bývá instalováno v „linuxové části desktopu“, nikoliv ve Wine. problém jsem dostal k vyřešení znova, neboť nová edice CD přestala korektně fungovat ve virtualizovaných Windows 7 … takže nezbývá než Wine v linuxovém hostovi.

Dobrá zpráva je, že asociace přípon ve Wine je snadná záležitost, špatná pak je, že návod na wiki.winehq.org není funkční. Další dobrá zpráva je, že lenost IT admina je matkou pokroku, protože líný admin hledá nejefektivnější cestu, jak problém vyřešit. Můj původní návod z roku 2012 byl o celé DVA kroky delší než ten dnešní …. takže pokrok.

Teď k principu – zůstává stejný. V registrech Wine se provede záznam pro jednotlivé formáty, přesněji, co má Wine podniknout, narazí-li na ně. Aktuálně jsem to vyřešil tak, že záznam v registrech volá velmi jednoduchý skript v „linuxové části desktopu“, který volá příslušný program a předá mu cestu, na které se požadovaný dokument k otevření nalézá.

Jak na to?

Vše pochopíte z popisu postupu.

  • V /usr/bin/ vytvoříme spustitelný soubor wine-libreoffice, wine-pdf a wine-vlc. Nazvat si je můžete jakkoliv, pokud použijete jiný název, musíte upravit i příslušný záznam v klíči registru wine. Z názvů souboru je patrné, které asociace se bude týkat.

    • obsah wine-libreoffice

		#!/bin/bash
		#/usr/bin/wine-libreoffice
		# chcete-li otevírat v jiném programu než LO, proveďte jednoduše změnu za libreoffice
		set -x
		libreoffice "`wine winepath -u "$1"`"
		exit 0;
    • obsah wine-pdf

		#!/bin/bash
		#/usr/bin/wine-pdf
		# chcete-li otevírat . pdf v jiném programu než evince, proveďte jednoduše změnu za evince
		set -x
		evince "`wine winepath -u "$1"`"
		exit 0;
    • obsah wine-vlc

		#!/bin/bash
		#/usr/bin/wine-vlc
		# chcete-li otevírat .mp4 v jiném přehrávači, proveďte jednoduše změnu za vlc
		set -x
		vlc "`wine winepath -u "$1"`"
		exit 0;
  • Zbývá import klíčů registrů Wine. Kdekoliv, např. v ~/Plocha, si vytvoříme prázdný soubor s názvem např. wine-association.reg a zkopírujeme do něj následující :

	[HKEY_CLASSES_ROOT\.doc]
	@="DOCfile"
	"Content Type"="application/msword"
	[HKEY_CLASSES_ROOT\DOCfile\Shell\Open\command]
	@="C:\\windows\\command\\start.exe /Unix /usr/bin/wine-libreoffice \"%1\""

	[HKEY_CLASSES_ROOT\.docx]
	@="DOCXfile"
	"Content Type"="application/vnd.openxmlformats-	officedocument.wordprocessingml.document"
	[HKEY_CLASSES_ROOT\DOCXfile\Shell\Open\command]
	@="C:\\windows\\command\\start.exe /Unix /usr/bin/wine-libreoffice \"%1\""

	[HKEY_CLASSES_ROOT\.xls]
	@="XLSfile"
	"Content Type"="application/vnd.ms-excel"
	[HKEY_CLASSES_ROOT\XLSfile\Shell\Open\command]
	@="C:\\windows\\command\\start.exe /Unix /usr/bin/wine-libreoffice \"%1\""

	[HKEY_CLASSES_ROOT\.xlsx]
	@="XLSXfile"
	"Content Type"="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
	[HKEY_CLASSES_ROOT\XLSXfile\Shell\Open\command]
	@="C:\\windows\\command\\start.exe /Unix /usr/bin/wine-libreoffice \"%1\""

	[HKEY_CLASSES_ROOT\.pdf]
	@="PDFfile"
	"Content Type"="application/pdf"
	[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
	@="C:\\windows\\command\\start.exe /Unix /usr/bin/wine-pdf \"%1\""

	[HKEY_CLASSES_ROOT\.mp4]
	@="MP4file"
	"Content Type"="video/mp4"
	[HKEY_CLASSES_ROOT\MP4file\Shell\Open\command]
	@="C:\\windows\\command\\start.exe /Unix /usr/bin/wine-vlc \"%1\""

Klíče naimporujeme příkazem wine regedit wine-association.reg

Toť vše …

David Dvořák

Všechny výše uvedené soubory si můžete stáhnout v zazipovaném balíčku. Přečtěte si také článek s původním postupem.

Nahoru

Příspěvky

Asociace přípon ve Wine
kamowski 4. 11. 2017, 07:36:05
Odpovědět  Odkaz 
dobrééé, možno sa bude niekomu hodiť
odkaz na článok som posunul ďalej :)
Asociace přípon ve Wine
D.A.Tiger 26. 08. 2018, 23:54:38
Odpovědět  Odkaz 
Hodne dobre, tohle jsem ani neznal. Diky

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

externí



Geotronic

Public Relations

Český startup umožňuje automatické investování

PortuPortu je první online automatizovaná investiční platforma v Česku. Sestaví vám portfolio na míru a vy se nemusíte o nic starat – jen sledovat, jak vaše peníze pracují za vás.

Pokračování ...


Redakční blog

Pavel Fric

Pavel Fric, 26. leden

MuseScore 3

První aktualizace třetí řady notačního editoru MuseScore


Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Všechny blogy »

eXo space