These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Linux

 
  • Topic is locked indefinitely.
 

How I run eve on Linux (Linux Mint 13 + MDM + Compiz) Multiple clients.

Author
Orcarina
Council of Human Urban Meatshield Paratroopers
#1 - 2012-08-11 02:08:50 UTC
I've been playing eve on Linux for quite a while.

Now I've finally got a setup I like, I'll share it so you don't have to spend hours trying to fix the same issues I've had.

I use Linux Mint 13 now which is binary compatible with Ubuntu, just without a lot of the massive UI changes Ubuntu has been making in each release. I'm using Gnome / Compiz without a ton of effects.

I have a few clients that I run concurrently but only 2 monitors. I'm using Xinerama to make use of both as one desktop. My monitors are 1920x1080 and 1920x1200. I like to have each client as large as possible, so I've removed window decorations for those windows only via Compiz window decorator settings.

My launch script moves the Wine virtual desktop to exactly where I want each, without me having to maually position it each time I launch eve.

I'll detail all the steps to achieve this as well as I can:


Installing Eve:
Follow the instructions at winehq for the current version.

You need to pay attention to configuring a WINEPREFIX for EVE, but first read ahead about WINEDLLOVERRIDES.

Currently you need to override a few DLL's for the launcher and for the patcher. I recommend NOT running winecfg and overriding them in the Library tab. Instead use the following at the command line to run the patcher:
WINEDLLOVERRIDES="msvcr80,msvcr90,msvcr100=n,b;d3dx9_36=n" wine explorer "c:\program files\ccp\eve\eve.exe"

To run the client after the patch WINEDLLOVERRIDES needs to be changed to:
WINEDLLOVERRIDES="msvcr80,msvcr90,msvcr100=b,n;d3dx9_36=n"

Setting this variable at the command line only works if you have not configured these settings in the GUI (winecfg)


Running the client in a window:
Launch the client with something like this to configure the size of a Wine virtual desktop:
wine explorer /desktop=$WINDOWTITLE,1920x1176 "c:\program files\ccp\eve\eve.exe"
This gives me space for my Gnome panel under the Wine virtual desktop. Change the size (WxH) as needed for your configuration. Notice the $WINDOWTITLE variable. replace that with whatever you want to have displayed in the title bar of the resulting window. More on that later.


Running multiple clients:
Hopefully you have learned about WINEPREFIX at WineHQ by now. A separate wine prefix for each Eve account is nice, to preserve settings changed in each.

To establish a separate WINEPREFIX I copied ~/.wine to ~/.wine.account1 (cp -r ~./wine ~./wine.account1). This uses a lot of disk space as you now have two copies of EVE. Delete the EVE directory in the copy (rm -rf ~/.wine.account1/drive_c/Program\ Files/CCP/EVE) then create a symbolic link to the matching directory (ln -s ~/.wine/drive_c/Program\ Files/CCP/EVE ~/.wine.account1/drive_c/Program\ Files/CCP/EVE)

You also need to specify two different Virtual desktops, one for each client. This is one place where $WINDOWTITLE comes in. Either replace $WINDOWTITLE with a name for the window like the name of the account, or the name of the character you will use it for, or a random number, etc. replace it with $$ and the window title will start with the unique PID of the virtual desktop. Which comes in handy for killing it manually should something go wrong.

To start the clients you use two separate commands now.
WINEPREFIX=~/.wine wine explorer /desktop=$WINDOWTITLE,1920x1176 "c:\program files\ccp\eve\eve.exe"
WINEPREFIX=~/.wine.account1 wine explorer /desktop=$WINDOWTITLE,1920x1176 "c:\program files\ccp\eve\eve.exe"

Starting both at the same time yields bad results because the launcher can't be running twice on the same machine. So I use a script that starts with:
while [ $(ps -C launcher.exe | grep launcher.exe | wc -l) != 0 ]; do sleep 1 ; done
each script waits for any running launcher.exe to stop before running another.
Orcarina
Council of Human Urban Meatshield Paratroopers
#2 - 2012-08-11 02:09:20 UTC  |  Edited by: Orcarina
Removing Window decorations:
This gives you a cleaner look, as if running full-screen, and give you a little more usable space. I do this by adding a special title to my virtual desktops that Compiz recognizes and does not decorate.
WINDOWTITLE=nontitle-CHARNAME-`date +%R`
wine explorer /desktop=$WINDOWTITLE,1920x1176 "c:\program files\ccp\eve\eve.exe"

Now fire up CompizConfig Settings Manager and scroll down to Effects. Make sure you have Window Decoration enabled. Then click Window Decoration to configure it. Change Decoration Windows from "any" to "!title=^nontitle". This tells Compiz to simply not decorate any window with a title that starts with the word "nontitle" Check the Compiz Window Matching page for more information on other rules.

Immediately after setting this window decorations should disappear from any matching windows.



Moving windows into place with a script:
This requires a little utility called "wmctrl" This should work in most window managers and will be present in default repositories of most Debian based Linux distributions. Install it with your package manager. (apt-get install wmctrl)
I use:
wmctrl -r $WINDOWTITLE -e 100,1920,0,1920,1176
Which finds a window on the current desktop with a title matching $WINDOWTITLE and moves the upper left corner to 1920x0 (the start of my right monitor) and re-sizes it to 1920x1176 (no change)



My actual script for starting one of my clients:

#!/bin/bash

# Make sure there is not a launcher running somewhere else
while [ $(ps -C launcher.exe | grep launcher.exe | wc -l) != 0 ]; do sleep 1 ; done

# Set the name of the window to be used a few times
WINDOWTITLE=nontitle-Account1-`date +%R`

# Start eve in a virtual desktop
WINEDLLOVERRIDES="msvcr80,msvcr90,msvcr100=b,n;d3dx9_36=n" WINEDEBUG=-all WINEPREFIX=~/wine_games/wine-eve.account1 wine explorer /desktop=$WINDOWTITLE,1920x1176 "c:\program files\ccp\eve\eve.exe" &

# Wait until the window is actually open
while [ $(wmctrl -l | grep $WINDOWTITLE | wc -l) = 0 ]; do sleep 1 ; done

# Move the window and resize to exactly where I want it then bring it to focus
wmctrl -r $WINDOWTITLE" - Wine desktop" -e 100,1920,0,1920,1176
wmctrl -r $WINDOWTITLE" - Wine desktop" -R $WINDOWTITLE" - Wine desktop"
Orcarina
Council of Human Urban Meatshield Paratroopers
#3 - 2012-08-11 02:20:10 UTC
I'd love some advice on scaling down each client window below 1024x768 so I can watch my miners without having to over lap their windows horribly on my 1920x1080 monitor.

I've been attempting to use Compiz Shelf (plugin broken) and Freely Transformable Windows (still in development) plugins. With no real luck yet.