New Projects - Fresh from the Labs

Q4Wine—GUI Front End for Wine (q4wine.brezblock.org.ua)

There have been plenty of GUI front ends for Wine over the years, and to be honest, I've hated pretty much all of them. However, this one has turned me around, and I recommend it to you as well.

To quote the Web site: “Q4Wine is a Qt4 GUI for W.I.N.E. It will help you manage Wine prefixes and installed applications.” Also according to the Web site, Q4Wine includes the following general features (and more):

  • It can export the Qt color theme into Wine color settings.

  • It can work with different Wine versions easily at the same time.

  • It's easy to create, delete and manage prefixes (WINEPREFIX).

  • It's easy to control Wine processes.

  • It supports autostart icons.

  • It provides easy CD image use.

  • You can extract icons from PE files (.exe, .dll).

  • It provides easy backup and restore for managed prefixes.

  • It includes Winetriks support.

A key feature of Q4Wine is its Processes tab, which acts as a built-in system guard for misbehaving programs, but only for Wine-specific programs—simple, but very clever.

Q4Wine's real talent lies in letting you define Wine settings for one program without affecting the whole system.

Installation

Binaries are provided for Debian, Ubuntu, Fedora, FreeBSD, Gentoo, openSUSE, openmamba and Slackware, as well as the usual source tarball. For those running with the source, the documentation says you need the following libraries:

  • sudo

  • wine

  • >=sqlite-3.5.6

  • >=which-2.19

  • >=icoutils-0.26.0

  • >=qt-4.4.0

  • >=qt-sql-4.4.0 (note: qt-sql might have sqlite driver support)

  • >=qt-gui-4.4.0

  • >=qt-core-4.4.0

  • >=qt-network-4.4.0

  • >=qt-dbus-4.4.0

  • wget

FuseISO is listed as an optional dependency, but I thoroughly recommend it. I also had to install qt4-qmake and libqt4-dev.

Grab the latest tarball, extract it, open a terminal in the new folder, and enter the following commands:

$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
$ make

If your distro uses sudo:

$ sudo make install

If your distro uses root:

$ su 
# make install

To run the program, enter:

$ q4wine

Usage

Before you can begin using Q4Wine, you'll be taken through a first startup wizard. You'll be asked where the paths are for four Wine components, with the first three most likely filled in already, and the last, wine libs, empty, needing to be defined. This was /usr/lib32/wine on my system, which is perhaps left empty for 32-/64-bit reasons?

Next is a similar screen for System utils paths (which thankfully come pre-filled with defaults), followed by another page of settings also pre-filled, but feel free to tweak them if you know what you're doing. Network settings are next, followed by a very important step: a quick mount profile.

This allows you to mount or unmount without root privileges, and hopefully, it will let you eject a disc during multi-CD installations. FuseISO was the default choice with my installation (although I deliberately chose to install FuseISO for this purpose), but those without it may choose from sudo or gui sudo.

Now that you're in the main GUI, look under the Setup tab. The Current prefix: drop-down box gives you the brilliant option of choosing between Wine versions if you have multiple versions installed.

If you click on the Programs tab, you're presented with a series of default system programs, including wordpad, winecfg, explorer and so on. The important thing for me, however, was the eject program, which let me get through Valve's two-disc installation of The Orange Box, on which I previously got stuck on disc one (either I couldn't eject it before, or couldn't get disc two to read). So any Half-Life fans out there may want to give this a go if you've also been having trouble.

Now, let's move on to actually adding programs.

Still under the Programs tab is a current prefixes list, which under my new installation was pretty spartan. I added a games folder by right-clicking in the left pane and then clicking New. This brings up a dialog box prompting you to enter a new directory name. Type in a name and click OK.

Now that you have a new folder, click on this folder, and in the right pane, right-click and choose New. This adds a new icon, but first brings up a window with a slew of options; this is where some of the clever stuff lies.

The first two sections are pretty basic: the General section is where you tell Q4Wine where the program is, and the Icon options is where you give the icon a name and description. Thankfully, the General section has a Browse button for both the program and working directory fields, which saves you from having to enter these paths manually. For those advanced users who want to add some arguments to the command, a specific field is provided here.

One of my favorite parts is the Virtual desktop section at the bottom of this tab. Here you can choose whether to have no virtual desktop at all, or you can select from specific resolutions in the drop-down box. This option is a piece of genius, as you don't have to go into winecfg and pick different settings every time you run another program.

Go into the Override DLL tab, and you can choose specific DLLs to override the default options, whether native or built-in. This option will be familiar to anyone who's done this in winecfg, but with the added benefit of applying a DLL override to just one program, without affecting the rest of your system.

Back in the main screen, there's a Wine AppDB tab. Those who are new to Wine may not realize there's a vast database on the Wine Web site of Windows applications and how well they run under Wine. The aging Web site and its database always has been somewhat cumbersome, but this tab lets you skip the middleman and search the database from within the Q4Wine itself.

A fear of mine when it comes to GUI front ends is that you can't always terminate an errant program the way you can with a basic terminal. The Q4Wine team has been extremely canny in that they've included a Processes tab, where you have a system-monitor-style interface, but only with Wine-specific processes. This is a game-changer for me.

Wine has many extensions based around it, but until now, they've mostly been obscure projects that one had to seek out. Q4Wine integrates the important extensions, and by the look of things, it will continue to integrate more of these projects and extensions as they emerge. I know that other GUIs have done this sort of thing in the past, but Q4Wine really has the best interface.

I've been using Wine for about a decade now, and I've seen many GUIs come and go. Either they've been too rudimentary in their features and interface, or they've been slow and clunky, making one give up on the whole process. Q4Wine is none of these. It's sleek, quick, intuitive and packed with features. I'll no longer stick to a terminal and do these things manually. In fact, I just made a Q4Wine desktop shortcut. I'm converted.

______________________

John Knight is the New Projects columnist for Linux Journal.

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState