Eine Windows Desktop-App für Unity
Als kleinen Spaß und für ein bisschen Windows 8-Feeling habe ich mir in Ubuntu 12.10 unter Unity eine Windows Desktop-App gebastelt. In Windows 8 scheint der Desktop eine weitere App unter vielen zu sein, die man von der Startseite aus aufrufen kann. So eine Startseite gibt es in Unity zwar nicht, dafür aber den Launcher, eine Seitenleiste, aus der man Programme aufrufen kann. Da es einen Windows-Desktop unter Ubuntu bekanntlich nicht gibt, habe ich mein altes XP in einer VirtualBox installiert. Einen Virenscanner und ähnliche Performance-Bremsen habe ich weggelassen, da ich die Netzwerkverbindung zur virtuellen Maschine gekappt habe. Der Datenaustausch erfolgt über einen gemeinsamen Ordner, den ich mit den Guest Additions eingerichtet habe. Außerdem habe ich den virtuellen Prozessor auf 80 Prozent gedrosselt und virtuellen RAM gibt es nur 256 MB. Da ich in der virtuellen Maschine nicht surfe, Filme gucke oder andere rechenintensive Sachen mache, ist das für XP in meinem Fall ausreichend.
Den virtuellen Desktop mit XP benötige ich eigentlich nur für ein paar kleinere Programme, die es für Gnu/Linux nicht gibt, oder um schnell mal die PowerShell zu starten, die ich beruflich gerne benutze.
Für den Launcher habe ich eine Datei mit folgendem Inhalt angelegt und unter .local/share/applications in meinem Home-Verzeichnis als Textdatei Windows.desktop abgespeichert:
[Desktop Entry] Type=Application Name=Windows Desktop Comment=Windows Desktop Exec=/usr/lib/virtualbox/VirtualBox --startvm "Windows XP" Icon=/home/christian/.icons/WindowsXP-Icon.png |
Den Namen und den Kommentar kann man festlegen, wie man möchte. Als Icon habe ich ein selbst gemachtes Bildschirmfoto des Windows-Desktops genommen und als 128×128 Pixel große PNG-Datei unter .icons abgespeichert. Interessant ist der Eintrag mit Exec: Hier steht der Pfad zum Kommandozeilen-Programm von VirtualBox, das gleich mit der Option „–startvm“ die virtuelle Maschine startet.
Ein Icon aus dem Launcher zu entfernen ist einfach, ein neues anzulegen schon schwieriger. Zuerst benötigt man eine Übersicht, welche Icons schon alle im Launcher sind. Dazu gibt man folgenden Befehl ein:
gsettings get com.canonical.Unity.Launcher favorites |
Anschließend erhält man folgendes Ergebnis:
['application://firefox.desktop', 'application://nautilus-home.desktop', 'application://ubuntu-software-center.desktop', 'application://gnome-control-center.desktop', 'unity://running-apps', 'application://gnome-terminal.desktop', 'unity://expo-icon', 'unity://devices'] |
Mit einem ähnlichen Befehl, aber set statt get, ergänzt man die Liste um den Eintrag ‚Windows.desktop‘:
gsettings set com.canonical.Unity.Launcher favorites "['application://firefox.desktop', 'application://nautilus-home.desktop', 'application://ubuntu-software-center.desktop', 'application://gnome-control-center.desktop', 'unity://running-apps', 'application://gnome-terminal.desktop', 'unity://expo-icon', 'unity://devices', 'Windows.desktop']" |
Außerdem muss man um die eckigen Klammern herum die Liste noch mit Anführungszeichen umschließen. Am Ende der Liste steht dann in einfachen Anführungszeichen der Eintrag ‚Windows.desktop‘. Nach der Eingabe des Befehls erscheint der Eintrag im Launcher und der Windows-Desktop kann mit einem Klick gestartet werden. Wenn man das XP nicht herunterfährt, sondern den Zustand der virtuellen Maschine speichert, hat man den Windows-Desktop nach dem nächsten Klick auf das Icon schnell wieder am Start.
Geschrieben in Gnu/Linux