ZNHOO Whatever you are, be a good one!

Wine (staging) QQ

You cannot get rid of QQ even under Linux system. First install wine; then QQ. But a lot of extra configuration needs tunning.

  1. Install lastest Wine

    # echo "~app-emulation/wine-1.7.46 ~amd64" > /etc/portage/package.accept_keywords/wine

    Wine has many bugs and lacks features, and as such we'd better enable the staging USE flag. As Gentoo Wiki suggests, staging flag Installs the external patchset from Wine-Staging. Includes many bugfixes and features, including better performance in gaming.

    # echo "app-emulation/wine staging" » /etc/portage/package.use/wine

    # emerge -av app-emulation/wine

    Actually from Wine-Staging, we can install multiple Wine instances in parallel, for example from overlay wine-overlay which is binary package. So it won't take that long for emerge. For this case, I only choose the portage method instead. I don't want two Wine instances.

    Wines needs abi_x86_32 support. It will reminds you update package.use for wine.

    This will take around nearly 6 hours since it needs nearly 85 dependencies, we'd better emerge it at night.

  2. Wine QQ @ phpcj.org or Wine QQ @ allog.ml.

    From above two links, get wineQQ7.3L.tar.xz. Don't forget -C option.

    $ tar xvf /path/to/wineQQ7.3L.tar.xz -C ~/

    This command will extract three directories:

    .wine
    .local
    .fonts
    

    The .wine directory is actually where Wine stores user configuration and program files. This extracted .wine is fine-tuned for the our QQ 7.3.

    Though .local fonts exists in current home directory, extract command wont delete any existing files. Instead, it only add the new files to there corresponding sub-directories. Don't worry!

    We don't need the .fonts directory since fonts on my system is already configured pretty good.

    $ rm -rf ~/.fonts

  3. Attention:

    We just installed Wine, but did NOT configure it yet. Instead, we use the fine-tuned configuration .wine from wineQQ7.3L.tar.xz.

    Up to now, QQ was installed. You can check it from the Application menu -> Internet -> Wine QQ. Don't launch it at this moment.

  4. Disabling the Menubuilder before installing or lanunching any Wine applications.

    Wine will ruin your user file association. For example, on my Xfce4 and Thunar desktop, Wine sets notepad (installed along by default) as the default plain text file editor. What is more, Wine adds an right-click emnu Open with Notepad. Actually, the notepad of Wine looks ugly and does not support Chinese as well. So this step should be the very 1st thing after emerging to prevent Wine from adding menu entries and desktop links.

    1. From Gentoo Wiki for per-user bash environment.

      # File: ~/.bashrc
      # Prevent Wine from adding menu entries and desktop links. The 'd' argument means 'disable'.
      export WINEDLLOVERRIDES='winemenubuilder.exe=d'
      
    2. Froom Wine FAQ, we can achieve the same goal as in step 1. We can check the result by searching winemenubuilder.exe in ~/.wine/user.reg:

      "winemenubuilder.exe"=""

      Personally, I prefer the Wine FAQ way, though I have adopted both.

    3. We can actually apply this setting to system-wide (i.e. for root, for multiple accounts) according to the 2nd step of How to prevent Wine from adding file associations?. This will update ~/.wine/system.reg file as well.

      Attention, we would lost changes to /usr/share/wine/wine.inf if Wine were updated, while the relevant update in ~/.wine/systemreg will remain untouched.

    4. If you have already installed Wine and run App without Disabling the Menubuilder bofore, just rm -rf ~/.wine and any relevant configurations under home directory as illustrated in those references.

  5. Run QQ: Applications Menu -> Internet -> Wine QQ

    If this is the first time to launch Wine related application, then Wine reminds you waiting for updating ~/.wine directory.

    Why? Though we use the fine-tuned configuration of Wine QQ. But Wine was just installed and does not know anything about it. It carry on its own initialization. But don't worry, this initilization process will keep the previously fine-tuned config items.