ubuntuusers.de » Wiki » Wine

Wine

logo.png Wine (Wine Is Not an Emulator) ist ein Programm, mit dem man Windowssoftware unter Linux laufen lassen kann. Man benötigt keine Windows-Installation auf seinem Computer, um mit Wine Programme starten zu können, die für Windows programmiert wurden.

Leider gibt es keine grafische Benutzeroberfläche oder Wizards. Fehlermeldungen erscheinen nur in der Konsole und für abgestürzte Programme sollte man wissen, wie der Linux-Befehl kill funktioniert.

Wie gut funktioniert Wine?

Programme, die noch aus der Windows 95/98-Ära stammen, funktionieren meistens prächtig. Je neuer und komplexer das Programm ist, desto wahrscheinlicher sind Probleme. Es funktionieren auch viele Spiele(siehe auch PlayOnLinux), insbesondere solche, die ältere DirectX-Versionen oder gar OpenGL nutzen. Die Entwicklung schreitet zur Zeit sehr schnell voran. Mit einer aktuellen Version sind viele Spiele und Programme ohne Probleme nutzbar, die noch vor wenigen Wochen nicht oder nur mit Tricks (z.B. Microsoft DLLs) liefen.

Je nach Windows-Programm, das mit Hilfe von Wine ausgeführt wird, ist der Anspruch an die Ressourcen (primär CPU-Leistung und verfügbares RAM) sehr moderat bis sehr hoch. Leider kann hier keine pauschale Aussage getroffen werden, welches Programm "flüssig" läuft und welches nicht.

Wie gut Wine für die eigenen Zwecke funktionieren müsste, kann man vor dem Testen durch Stöbern in der WineHQ-Datenbank {en} herausfinden.

Was muss man über die Interna wissen?

Wine arbeitet standardmäßig mit einem im Homeverzeichnis versteckten Ordner namens .wine. In diesem befinden sich mindestens zwei Ordner, dosdevices und drive_c. In ersterem befinden sich im Windowsstil benannte Links auf die Linuxordner. So verweist nach entsprechender Konfiguration z.B. a: auf das Diskettenlaufwerk. Mit diesem System wird Windowsprogrammen ein Windowsdateisystem vorgegaukelt. Installiert sich ein Programm also nach C:, findet man es im Homeverzeichnis unter .wine/drive_c/ wieder.

Es kann daher nützlich sein, sich nach der Installation mit

ln -s ~/.wine ~/wine 

eine leicht erreichbare Verknüpfung zum Wine-Ordner zu erstellen.

Installation

Fertige Pakete

Will man ein vorkompiliertes Paket von Wine installieren, kann man immer noch entscheiden, welche Quelle man nutzt. In den Ubuntuquellen liegt eine bei Einführung der jeweiligen Ubuntuversion aktuelle, möglicherweise gepatchte, Wineversion. Gelegentlich gibt es auch neuere Versionen in den offiziellen Backports. In den Quellen des Wine-Projektes findet sich dagegen immer die aktuellste, ungepatchte Version. Einerseits bringt diese oft entscheidende Verbesserungen, andererseits handelt es sich um Entwicklerversionen, die immer auch neue Fehler und Kompatibilitätsbrüche enthalten können. Zur Zeit wird alle zwei Wochen eine neue Version veröffentlicht. Bei der Wahl kann man keine generelle Empfehlung geben, da je nach Anwendungsziel eine andere Version mehr oder weniger Kompatibilität bietet.

Methode 1 - Ubuntu-Quellen

Es muss lediglich das folgende Paket installiert [1] werden:

  • wine (universe [2])

Wiki/Vorlagen/Installbutton/button.png

Methode 2 - Wine-PPA

Um das Programm aus dem PPA Wiki/Vorlagen/PPA/ppa.png ppa von ubuntu-wine zu installieren, muss, abhängig von der Ubuntu-Version, eine der folgenden Paketquellen eingetragen werden:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

Für Synaptic oder Softwareverwaltung KDE: ppa:ubuntu-wine/ppa (dabei wird automatisch der Schlüssel der Quelle importiert)

oder für ältere Versionen (VERSION durch den Codenamen der verwendeten Version ersetzen):

deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu VERSION main

Um die Quelle zu verwenden, sollte man den Signierungsschlüssel für diese Quelle einspielen. Dazu verwendet man folgenden Befehl:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F9CB8DB0  

Das Paket lautet bis 9.04 Jaunty Jackalope:

  • wine

Wiki/Vorlagen/Installbutton/button.png

Und ab 9.10 Karmic Koala:

  • wine1.2

Wiki/Vorlagen/Installbutton/button.png

Methode 3 - Manuell gewähltes Paket

Achtung!

Fremdpakete können das System gefährden.

Aktuelle Wineversionen brechen durch die in ihnen enthaltenen Neuerungen regelmäßig die Kompatibilität zu Programmen, die mit einer vorigen Version schon liefen. Aus diesem Grund kann es sinnvoll sein, eine ältere Version zu nutzen. Auf der Archiv-Seite von WineHQ {en} findet man eine umfassende Sammlung vorkompilierter Pakete. Das gewünschte Paket herunterladen und gemäß [4] installieren.

Alternativ: Wine kompilieren

Bevor man kompiliert, sollte man sich die Anleitung unter [5] durchgelesen und die notwendigen Pakete installiert haben. Der Vorteil ist, dass ein selbstkompiliertes Wine perfekt an den eigenen PC angepasst ist. Mit der manuellen Methode können zusätzlich gezielt Patches eingespielt werden.

Methode 1 - per apt

Wenn man möchte, kann man Wine auch einfach selbst kompilieren. Will man die neueste Version, ist Voraussetzung, dass man die Quelle

deb-src http://wine.budgetdedicated.com/apt jaunty main

zusätzlich eingetragen hat [2], wobei statt jaunty entweder gutsy, feisty, dapper, hardy oder intrepid eingesetzt werden muss, wenn eine von diesen Ubuntuversionen genutzt wird. Ansonsten kann man das gleiche Vorgehen auch mit der Version aus der Ubuntuquelle universe durchführen, dafür darf dann die oben genannte Winequelle nicht in der sources.list stehen.

Danach öffnet man ein Terminal [3] und gibt die Befehle

sudo apt-get build-dep wine
sudo apt-get --build source wine 

ein. Der erste Befehl lädt dabei alle Abhängigkeiten für das Kompilieren herunter, der zweite kompiliert Wine, was je nach PC etwas dauern kann. Am Ende hat man im gleichen Verzeichnis ein deb-Paket, welches man gemäß [4] installieren kann.

Methode 2 - manuell

Da man durch Methode 1 immer nur die neuste Wine-Version oder die aus den Ubuntuquellen bekommt, was mitunter nicht gewünscht ist, kann man sich auch alternativ hier {dl} die gewünschte Version als tar.gz herunterladen. Die Abhängigkeiten löst man, indem folgende Pakete installiert werden:

  • flex

  • bison

  • libx11-dev

  • libasound2-dev

  • libfreetype6-dev

  • fontforge

Wiki/Vorlagen/Installbutton/button.png

Paketliste zum Kopieren:

sudo apt-get install flex bison libx11-dev libasound2-dev libfreetype6-dev fontforge 

sudo aptitude install flex bison libx11-dev libasound2-dev libfreetype6-dev fontforge 

Nach dem Entpacken [7] öffnet man ein Terminal [3] und kompiliert [5] das Programm mit:

./configure --enable-opengl --disable-lib --disable-debug
make depend
make CFLAGS="-O2"
sudo checkinstall 

Wer das kompilierte Wine durch eines aus einer Quelle ersetzen will, muss zuerst das alte Paket vollständig löschen und dann das Paket aus den Quellen wieder installieren [1]. Zuletzt muss möglicherweise noch wine neukonfiguriert werden mittels dpkg-reconfigure. Nun sollte Wine wieder normal funktionieren.

Konfiguration

Beim ersten Aufruf von Wine übernimmt das Programm die Vorkonfiguration, wie die Einrichtung notwendiger Ordner, etc.

Hierfür muss man - bis einschließlich Feisty - Wine einfach einmal in einem Terminal [3] öffnen:

wine 

Ab Gutsy kann dieser Schritt übersprungen werden und direkt die Konfiguration vorgenommen werden. Hierfür bringt es von Haus aus ein kleines Installationswerkzeug mit, das sich über den Befehl

winecfg 

ausführen lässt. Der sich nun öffnende Dialog sollte so oder so ähnlich aussehen:

winecfg-about.png

Laufwerke

Laufwerk C:

Hier sollte überprüft werden, ob der Laufwerksbuchstabe c: auf ../drive_c verweist.

Achtung!

C: sollte in keinem Fall auf das Windows Laufwerk (z.B. /media/sda1) verweisen! Dadurch wird die Windows-Partition überschrieben und kann nur durch aufwändige Reparaturen oder eine Neuinstallation wieder nutzbar gemacht werden.

CD-ROM-Laufwerk einrichten

Um ein CD-ROM-Laufwerk einzurichten, zunächst auf "Laufwerke" klicken. Anschließend sieht der Dialog so aus: winecfg-drives.png

Hier auf "Hinzufügen" klicken, dann wird in der Liste der Laufwerke automatisch ein neues Laufwerk D: eingerichtet werden. Für dieses Laufwerk muss spezifiziert werden, an welchem Punkt es in das Dateisystem eingehängt ist. In einem Standard-Ubuntu-System lässt sich hier /cdrom oder /media/cdrom eintragen. Den genauen Einhängpunkt findet man in der Datei /etc/fstab.

Anschließend folgt ein Klick auf "Zeige Erweitert". Hier muss noch ausgewählt werden, dass es sich um ein CD-ROM-Laufwerk handeln soll. Der Rest sollte so gelassen werden (weitere Optionen unterscheiden sich von Version zu Version auch stark).

Das CD-ROM-Laufwerk ist nun für Windows-Anwendungen als solches sichtbar. Mit einem Klick auf "Anwenden" werden die Änderungen übernommen.

Audio einrichten

Um den Sound einzurichten, oben den Registerreiter "Audio" auswählen. Es dauert hier sehr wahrscheinlich etwas, bis der Dialog geändert wird; keine Panik, das Programm ist nicht abgestürzt, es sucht nur alle verfügbaren Audio-Treiber zusammen. Die beste Leistung bietet wohl der ALSA-Treiber. Ihn als einzigen Treiber auswählen (die anderen also abwählen) und auch hier "Anwenden".

winecfg-audio.png

Kommt es später beim Spielen zu Problemen mit dem Sound, muss man evtl. hier ein wenig herumexperimentieren. Je nach verwendeter Audio-Hardware können die Einstellungen hier sehr verschieden ausfallen.

OSS kann bei manchen Spielen und/oder bei manchen Soundkarten bessere Ergebnisse liefern. Wer nahezu latenzfreie Soundausgabe benötigt (wie bei Multiplayer-Shootern), sollte Jack installieren und als Treiber wählen.

Siehe auch Einführung in das Linux-Sound-System.

Farben anpassen

Es gibt zwei Möglichkeiten das Design von unter Wine laufenden Programmen anzupassen. Die erste (optisch schön; allerdings kann der PC dadurch langsamer werden) ist, dass man ein Windows Design in der winecfg einstellt. Dazu benötigt man ein passendes Design. Dieses erhält man unter deviantart.com. Die passendsten Designs sind Clearlooks und Human. Einfach die Datei herunterladen und mit Wine aktivieren. Danach sehen die Programme mehr nach Ubuntu aus.

Die zweite Methode ist zwar nicht die schönste aber die optimale um das Layout zu ändern. Man stellt die Farben für die Wine Umgebung einfach ein. Dies erreicht entweder über winecfg in dem man es von Hand macht oder einfach die folgende Anpassung verwendet. Dazu einfach den unten stehenden Code in eine neue Datei mit dem Namen ubuntu.reg einfügen und folgenden Befehl ausführen:

wine regedit ubuntu.reg 

Die Farben sind für Ubuntu optimiert.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
REGEDIT4

[HKEY_CURRENT_USER\Control Panel\Colors]
"ActiveBorder"="239 235 230"
"ActiveTitle"="200 130 60"
"AppWorkSpace"="102 51 51"
"Background"="0 128 128"
"ButtonAlternateFace"="180 180 180"
"ButtonDkShadow"="115 106 96"
"ButtonFace"="239 235 230"
"ButtonHilight"="239 235 230"
"ButtonLight"="248 246 244"
"ButtonShadow"="203 193 183"
"ButtonText"="0 0 0"
"GradientActiveTitle"="16 132 208"
"GradientInactiveTitle"="181 181 181"
"GrayText"="203 193 183"
"Hilight"="248 198 119"
"HilightText"="0 0 0"
"HotTrackingColor"="0 0 255"
"InactiveBorder"="239 235 230"
"InactiveTitle"="239 235 230"
"InactiveTitleText"="60 60 60"
"InfoText"="0 0 0"
"InfoWindow"="255 255 225"
"Menu"="239 235 230"
"MenuBar"="239 235 230"
"MenuHilight"="0 0 0"
"MenuText"="0 0 0"
"Scrollbar"="239 235 230"
"TitleText"="255 255 255"
"Window"="255 255 255"
"WindowFrame"="0 0 0"
"WindowText"="0 0 0"

Benutzung

Exe aufrufen

Ein installiertes Wine führt aber nicht dazu, dass Windowsprogramme automatisch funktionieren. Die gewünschte .exe muss auch mit Wine aufgerufen werden. Dazu verknüpft man sie entweder im Dateimanager mit Wine, oder aber man nutzt das Terminal [3]:

wine /Pfad/zur.exe 

Weiterführende Informationen findet man unter Windows-Programme.

Wineprefix

Da sich verschiedene installierte Programme in einer Wine-Installation gerne gegenseitig stören können, wird man bei intensiver Benutzung von Wine eventuell dazu gezwungen sein, für jedes Windows-Programm einen Wine-Ordner zu erstellen. Anstatt nun jedesmal den Ordner .wine zu verschieben, kann man für diese Aufgabe auch das Programm wineprefixcreate benutzen. Dazu das Programm mit der Option --prefix <dir> ausführen. Beispielsweise so:

wineprefixcreate --prefix ~/.wine/Half-Life 

Hinweis:

Seit der Version 1.0 von Wine ist es nicht mehr nötig, den Befehl wineprefixcreate auszuführen, um ein neues Prefix einzurichten. Es genügt, Wine mit Prefix zu starten; benötigte Ordner und Dateien werden dann automatisch angelegt.

Danach startet man Wine mit Prefix. Im Beispiel so:

WINEPREFIX=~/.wine/Half-Life wine "C:/Steam/install.exe" 

Half-Life ist in diesem Beispiel der Name des gewünschten neuen Ordners im .wine-Ordner. "C:/Steam..." ist der Pfad der Installationsdatei.

Durch diesen Befehl wird dieser Ordner im .wine-Ordner angelegt und das Installationsprogramm gestartet. Während des Installationsprozesses kannst du den Zielordner auf c:/Programme/ kürzen, damit nachher keine Probleme beim Anlegen des Starters im Panel auftauchen. Einen Startmenü-Eintrag braucht es nicht, das Desktop-Symbol schon. Nach Abschluss der Installation ziehe zum schnellen Starten das Destop-Symbol auf den Panel-Rand, lasse es los, und schon hast du das richtige Startsymbol (jedenfalls bei Hardy 8.04). Dieses kann man per rechter Maustaste noch auf den gewünschten Platz verschieben. Das Desktop-Symbol bei Bedarf wieder löschen.

Nun kannst du das installierte Programm bequem vom Panel aus starten und nutzen. (Soweit es eben mit seinen Funktionen läuft.)

Damit steht auch der intensiven Benutzung von Wine mit Hunderten von Programmen nichts mehr im Wege. Es bleibt zu erwähnen, dass Programme, die einander benötigen, natürlich in einem Wineprefix-Ordner liegen müssen. Und wenn man ein Programm nicht mehr braucht, kann man mit dieser Methode einfach den kompletten zugehörigen Wineordner löschen, ohne dass andere Programme davon beeinflusst werden.

Programme, die mit Wine laufen und aus dem Menü gestartet werden sollen, benötigen eine entsprechende .desktop-Datei im Homeverzeichnis im Ordner .local/share/applications/. Damit Programme, die mit einem WINEPREFIX installiert wurden, gestartet werden können, müssen diese Dateien modifiziert werden. Dies kann mit einem Texteditor erledigt werden. Die Änderung betrifft die Exec-Zeile. Hier ein Beispiel, wie das env-Kommando mit dem WINEPREFIX-Ordner hinzugefügt werden sollte:

Exec=env WINEPREFIX="/home/username/.quickdic" wine "C:\\Programme\\foo\\bar.exe" 

Hinweis:

Bei Verwendung von winetricks (etwa um fehlende Schriftarten oder Bibliotheken zu installieren) muss der gleiche WINEPREFIX verwendet werden.
Beispiel: WINEPREFIX=~/.winetest winetricks mfc40

Wine erweitern

Das Grundgerüst von Wine kann durch das Skript winetricks sehr einfach erweitert werden. Es lädt benötigte Laufzeit-Bibliotheken und Fonts und installiert diese automatisch.

Deinstallation von Programmen

Wenn man mit WINEPREFIX arbeitet, oder nur ein Programm installiert hat, kann man einfach in seinem Home-Verzeichnis den entsprechenden Wine-Ordner löschen, also .wine bzw. den mit wineprefixcreate angelegten Ordner.

Automatisch

Ansonsten sollte man den in Wine integrierten Uninstaller nutzen, der ganz ähnlich zu seinem Windows-Pendant arbeitet. Dazu öffnet man ein Terminal [3] und gibt folgenden Befehl ein:

wine uninstaller 

Alternativ kann man das Deinstallationsprogramm der jeweiligen Anwendung nutzen. Dieses befindet sich meist im jeweiligen Programmordner.

Manuell

Das jeweilige Programm einfach löschen ist nicht die eleganteste Methode, leider funktioniert die Deinstallation unter Wine nicht immer oder es bleiben trotz Deinstallationsprogramm Reste zurück. Mit einem Dateimanager kann man die "Reste" aus dem Ordner ~/.local/share/applications/wine löschen. Rückstände in der Registrierung kann man z.B. manuell mit dem Wine Registrierungseditor

wine regedit 

oder mit Werkzeugen wie regcleaner {de} bereinigen.

Sollten noch Menüeinträge von deinstallierten Programmen vorhanden sein, so kann man diese händisch aus dem Verzeichnis ~/.config/menus/applications-merged/ entfernen.

Batch Datei aufrufen

Um eine Windows Batch Datei auszuführen kann man so vorgehen:

wineconsole cmd 

Nun sollte sich eine Windows Konsole öffnen. Zuerst navigiert man in dieser Konsole in den Ordner der die Batch-Datei beinhaltet und führt diese anschließend aus. Das ganze könnte dann so aussehen:

cd pfad\zur\BatchDatei\
foo.bat 

.

Achtung!

Wine sollte grundsätzlich niemals als Root oder mit Root-Rechten (sudo) aufgerufen werden (siehe Wine-FAQ 7.9. {en} )!

Registry

Um die Wine-Registry einzusehen oder zu bearbeiten folgenden Befehl ins Terminal eingeben:

regedit 

Problembehebung

Falls Wine hängt

Falls Wine beim ersten Starten einfrieren sollte, und nur noch etwas wie:

wine: creating configuration directory '/home/User/.wine'...

von sich gibt, ist wahrscheinlich wineprefixcreate hängen geblieben. Um dieses Problem zu beheben, sollte man den versteckten Ordner .wine im Homeverzeichnis löschen und dann im Terminal [3]

export WINEPREFIX=~/.wine
wineprefixcreate --prefix ~/.wine 

eingeben.

MSI installieren

Um MSI (.msi) Programmdateien zu installieren gibt man folgendes ein:

msiexec Programmname.msi 

Eine .dll fehlt

Benötigt ein Programm eine bestimmte .dll, hat man zwei Möglichkeiten: Entweder man besorgt sich diese .dll von einer bestehenden Windowsinstallation aus dem system32-Ordner oder man benutzt Dienste wie dll-files {en} . Man sollte sich aber darüber im Klaren sein, dass es nicht legal ist, wenn man eine native Windows-dll nutzt, ohne eine Lizenz für Windows erworben zu haben. In beiden Fällen muss die gefundene .dll in den Ordner .wine/drive_c/windows/system32 platziert werden, der im Homeverzeichnis zu finden ist. Danach öffnent man im Terminal [3] das Programm

winecfg 

und trägt im Tabreiter "Bibliotheken" (bzw. engl. "Libraries") die DLL dann als "native" (also nicht die "builtin"-Version von Wine) ein.

CD wird nicht gefunden

Wird eine sich im Laufwerk befindende CD beim Programmstart nicht gefunden, kann das zwei Ursachen haben.
Die Lösbare: Das CD-Laufwerk ist nicht als solches eingetragen, sondern als Festplatte. Wie diese Einstellung geändert werden kann, wird im Abschnitt Konfiguration beschrieben.
Schon schlechter sieht es aus, wenn das Problem am Kopierschutz hängt. Kann man diesen nicht umgehen (was in Deutschland nicht erlaubt ist), gibt es keine Lösung, solange der Kopierschutz nicht von Wine unterstützt wird. Man beachte: Ab und an wird gerade bei älterer Software durch einen offiziellen Patch des Entwicklers der Kopierschutz entfernt bzw. ausgeschaltet.

Druckdialog öffnet sich nicht

Beim Drucken erscheint folgende Meldung:

err:commdlg:PrintDlgA GetPrinterDriverA failed, ..., fix your config for printer ...

Wenn man den genannten Drucker aus der Datei ~/.wine/system.reg entfernt, öffnet sich der Druckdialog wieder und man kann dann zumindest in eine Datei drucken.

3D-Spiele sehr langsam/ruckelig

Um unter Wine die 3D-Beschleunigung mit Hilfe von DirectX / Direct3D voll ausnützen zu können, muss man an dem Wine-internen DirectX noch einige Änderungen vornehmen.

Zum einen muss das Standard-DirectDraw-Renderer-Plugin auf OpenGL umgestellt werden. Dazu öffnet man ein Terminal [3] und gibt

wine regedit 

ein. Dann öffnet sich der Registrierungseditor für das (Wine-eigene)Windows. Dann klickt man sich zu HKEY_CURRENT_USER / Software / Wine / Direct3D durch und klickt mit der rechten Maustaste in das große weiße Feld auf der rechten Seite. Nun wählt man "Neu" und danach "Zeichenfolge" aus. Den Namen ändert man dann in "DirectDrawRenderer". Dann klickt man mit der Rechten Maustaste auf den so eben erstellten Schlüssel und drückt auf "Ändern". In dem neuem Dialog schreibt man in das Feld nach "Daten:" "opengl". Den Dialog mit "OK" schliessen.

Und zum anderen muss nun noch DirectX gesagt werden wieviel Mb RAM in eurer Grafikkarte verbaut sind. Dazu klickt man erneut rechts in den (noch offenen, wenn nicht, die Zeilen hier drüber erneut befolgen) Registrierungseditor, wählt "Neu" und danach "Zeichenfolge" aus. Diesmal ändert man den Namen in "VideoMemorySize". Auch hier klickt man mit der Rechten Maustaste auf den so eben erstellten Schlüssel und dann auf "Ändern". In dem Dialog schreibt man nun die Größe des Grafikarten-RAMs herein. Für meine ATI X1950 wäre dies dann "512". Danach den Dialog mit Klick auf "OK" schliessen, der Registrierungseditor kann nun beendet werden. Das Terminal kann nun ebenfalls geschlossen werden.

Wine startet Programme nicht in ihrem Verzeichnis

Wenn man Wine per Konsole bedient oder einen Menü Eintrag für Programme anlegt, die über Wine starten, werden diese Programme nicht in ihrem Verzeichnis sondern im Persönlichen Ordner gestartet. Das kann dazu führen, dass manche Programme ihre Dateien nicht finden können und fehlerhaft laufen. So findet Half-Life beispielsweise nicht seine Mods. Um dieses Problem zu lösen müsste man vorher in das Verzeichnis des Programms wechseln. Man kann es sich aber auch mit folgendem Script einfacher machen. Es nimmt die selben Argumente wie Wine an, startet Wine aber im richtigen Verzeichnis.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
## 
## The winer-script executes wine with the given filename and params, but first
## changes into the file directory, which is important for some Windows programs
## to run.
##
## Requires:
## 		- wine (of course)
##		- winepath to read Windows pathes like "C:\\Program Files\..."
##		  (should be part of wine)
##
## No warranty or guarantee or whatsoever!
##

if [ -f "$(which wine)" ]; then
	if [ -f "$1" ]; then
		PROGRAM_PATH="$1"
	elif [ -f "$(which winepath)" ]; then
		PROGRAM_PATH="$(winepath "$1")"
	else
		echo "$1 is not a file. Winepath could not be found."
		exit 1
	fi

	shift   # Remove program name from arguments.

	if [ -f "$PROGRAM_PATH" ]; then
		cd "$(dirname "$PROGRAM_PATH")"
		wine "$(basename "$PROGRAM_PATH")" "$*"
		exit 0  # The only exit point, where everything went fine.
	else
		echo "$PROGRAM_PATH is not a file."
	fi
else
	echo "Wine could not be found. Maybe it is not installed."
fi
exit 1

Ihr könnt euch das Script einfach in eine Text-Datei speichern und diese ausführbar machen. Danach kopiert ihr die Datei mit root Rechten nach /usr/bin. Wenn ihr das Script als winer gespeichert habt könnt ihr es nun wie folgt aufrufen:

winer /pfad/zur/datei.exe 

Fonts unlesbar

Bei manchen Windowsspielen kann es passieren, dass Text nicht mehr angezeigt wird ("verschwindet") und damit unlesbar ist. Dann kann man versuchen, am Ende der Datei ~/.wine/user.reg folgenden Text anzuhängen:

[Software\\Wine\\X11 Driver] 1210627404
"ClientSideWithRender"="N"

Allerdings scheint dieser Workaround nicht immer frei von Nebenwirkungen zu sein und sollte nicht als Universallösung verwendet werden.

In diesem Zusammenhang kann es nützlich sein (z.B. bei Texteditoren unter Wine), die Schriftdarstellung bzw. die Kantenglättung anzupassen. Obwohl sich die erforderlichen Einträge auch manuell vornehmen liessen, erleichtert folgendes Script die Sache:

#!/bin/sh
# Quick and dirty script for configuring wine font smoothing
#
# Author: Igor Tarasov <tarasov.igor@gmail.com>

WINE=${WINE:-wine}
WINEPREFIX=${WINEPREFIX:-$HOME/.wine}
DIALOG=whiptail

if [ ! -x "`which "$WINE"`" ]
then
    echo "Wine was not found. Is it really installed? ($WINE)"
    exit 1
fi

if [ ! -x "`which "$DIALOG"`" ]
then
    DIALOG=dialog
fi

TMPFILE=`mktemp` || exit 1

$DIALOG --menu \
    "Please select font smoothing mode for wine programs:" 13 51\
    4\
        1 "Smoothing disabled"\
        2 "Grayscale smoothing"\
        3 "Subpixel smoothing (ClearType) RGB"\
        4 "Subpixel smoothing (ClearType) BGR" 2> $TMPFILE

STATUS=$?
ANSWER=`cat $TMPFILE`

if [ $STATUS != 0 ]
then 
    rm -f $TMPFILE
    exit 1
fi

MODE=0 # 0 = disabled; 2 = enabled
TYPE=0 # 1 = regular;  2 = subpixel
ORIENTATION=1 # 0 = BGR; 1 = RGB

case $ANSWER in
    1) # disable
        ;;
    2) # enable
        MODE=2
        TYPE=1
        ;;
    3) # enable cleartype rgb
        MODE=2
        TYPE=2
        ;;
    4) # enable cleartype bgr
        MODE=2
        TYPE=2
        ORIENTATION=0
        ;;
    *)
        rm -f $TMPFILE
        echo Unexpected option: $ANSWER
        exit 1
        ;;
esac

echo "REGEDIT4

[HKEY_CURRENT_USER\Control Panel\Desktop]
\"FontSmoothing\"=\"$MODE\"
\"FontSmoothingOrientation\"=dword:0000000$ORIENTATION
\"FontSmoothingType\"=dword:0000000$TYPE
\"FontSmoothingGamma\"=dword:00000578" > $TMPFILE

echo -n "Updating configuration... "

$WINE regedit $TMPFILE 2> /dev/null

rm -f $TMPFILE

echo ok

Beispielsweise als ~/wine_fontsmoothing.sh speichern, ausführbar machen und mit

./wine_fontsmoothing.sh 

in einem Terminalfenster starten. Prinzipiell stehen über die Tasten 1 bis 4 vier Möglichkeiten zur Auswahl:

  • 1 "Smoothing disabled" (keine Kantenglättung)

  • 2 "Grayscale smoothing" (Kantenglättung mit Graustufen)

  • 3 "Subpixel smoothing (ClearType) RGB" (Kantenglättung für TFT- bzw. LCD-Bildschirme)

  • 4 "Subpixel smoothing (ClearType) BGR" (Kantenglättung für TFT- bzw. LCD-Bildschirme)

Das Script lässt sich auch mehrmals aufrufen, bis die eigene Wunscheinstellung gefunden ist. Die Änderung wirkt sich allerdings nicht auf bereits laufende Programme aus.

Probleme bei der Deinstallation von Programmen

Mit folgendem Befehl [3] können alle Menüeinträge in Wine gelöscht werden. Es bleiben nur die Einträge zurück, die bei der Installation von Wine angelegt wurden.

rm -f $HOME/.config/menus/applications-merged/wine* 

Diese Revision wurde am 19. Juli 2010 um 12:06 Uhr von atlanx erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: crossover, Emulation und Virtualisierung, Windows

Passwort vergessen?