malte70.blog()

Pimp my Wine-Prefix

In der Praxis kann ein unangepasster Default-Prefix für Wine leider immer wieder Probleme verursachen.

Neben einigen nicht zeitgemäsen Einstellungen wie die emulierte Windows-Version und fehlenden Schriften sollten verschiedene Anwendungen jeweils einen eigenen Prefix haben, insbesondere wenn zusätzliche Bibliotheken benötigt werden.

Umgebungs­variablen/Wine­prefix erstellen

Das Verhalten von Wine zur Laufzeit sowie beim Erzeugen eines Prefix kann über diverse Umgebungsvariablen angepasst werden:

$WINEPREFIX
Statt dem Default-Prefix unter ~/.wine/ wollen wir pro Anwendung einen eigenen Prefix, um keine Probleme mit kollidierenden Einstellungen und Abhängigkeiten zu bekommen. Wir nutzen hier ~/.local/opt/wine-$WINE_APP.
$WINEARCH
Die Architektur der Windows-Umgebung. Auch wenn Wine schon lange 64-Bit unterstützt, sind manche Bibliotheken noch nicht mit einem 64-Bit-Wine-Prefix kompatibel, weshalb auch unter x86_64 ein 32-Bit-Prefix erzwungen wird.
$WINEDEBUG
Kontrolliert die Terminal-Ausgabe von Wine. Um Probleme wie fehlende Bibliotheken zu erkennen sollte diese nie ganz stumm geschaltet werden, lediglich die im Alltag unnötigen FIXME-Meldungen deaktivieren wir.

Wir setzen hier auch einige Variablen für später vorgenommene Einstellungen:

# App-Name als Teil des Prefix-Pfades
WINE_APP="MyApp"
# Grundlegende Windows-Einstellungen
#  - Echter Name des aktuellen Benutzers aus /etc/passwd
WINE_REGISTERED_OWNER="$(getent passwd $USER | cut -d: -f5 | cut -d, -f1)"
WINE_REGISTERED_ORGANIZATION=""
#  - Internet Explorer Homepage
WINE_IE_HOMEPAGE="about:blank"
#  - Font für wineconsole und Notepad
WINE_TERMINAL_FONT="Consolas"

# Wine-Prefix
export WINEPREFIX="${HOME}/.local/opt/wine-${WINE_APP}"

# Wine-Architektur auf x86_32 setzen
export WINEARCH="win32"

# Keine FIXME-Meldungen, die das Terminal voll spammen!
export WINEDEBUG="+all-fixme"

Nun initialisieren wir den Prefix:

wineboot -u

Einstellungen/Windows-Fonts

Bevor mit dem Wine-Prefix gearbeitet wird, sollten einige Einstellungen geändert werden sowie grundlegende Windows-Fonts installiert werden:

# Keine MIME-Typen registrieren, keine Absturzdialoge und kein Wine-Debugger
winetricks -q \
	mimeassoc=off \
	nocrashdialog \
	autostart_winedbg=disabled

# Windows-Version
winetricks win10

# Basis-Fonts
winetricks corefonts lucida tahoma

# Antialiasing
winetricks fontsmooth=rgb

# Zusätzliche Fonts, die Teil jedes modernen Windows sind und teilweise
# von Anwendungen erwartet werden, jedoch eine gültige Windows-Lizenz
# voraussetzen
winetricks calibri comicsans consolas georgia trebuchet verdana

Wine bietet die Möglichkeit, einen virtuellen Desktop für Windows-Anwendungen in einem einzelnen Fenster bereit zu stellen, was ich persönlich gegenüber nativen Fenstern bevorzuge. Dieser sollte aber erst ganz zum Schluss aktiviert werden, da er von Winetricks sonst unzählige Male geöffnet und geschlossen wird:

# Optional: virtuellen Desktop aktivieren
winetricks vd=1280x1024

Windows-Einstellungen

Es folgen einige Windows-Einstellungen über die Anfangs erstellten $WINE_*-Variablen:

# Set computer owner/organization
wine reg ADD \
	"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" \
	/V "RegisteredOwner" /T REG_SZ /F \
	/D "$WINE_REGISTERED_OWNER"
wine reg ADD \
	"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" \
	/V "RegisteredOrganization" /T REG_SZ /F \
	/D "$WINE_REGISTERED_ORGANIZATION"

# Internet Explorer start page
wine reg ADD \
	"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" \
	/V "Start Page" /T REG_SZ /F /D "$WINE_IE_HOMEPAGE"

# Console/Notepad font
wine reg ADD \
	"HKEY_CURRENT_USER\Console" \
	/V "FaceName" /T REG_SZ /F \
	/D "$WINE_TERMINAL_FONT"
wine reg ADD \
	"HKEY_CURRENT_USER\Software\Microsoft\Notepad" \
	/V "lfFaceName" /T REG_SZ /F \
	/D "$WINE_TERMINAL_FONT"