Per-account RuneLite profiles using plain Linux users

3 minute read Published: 2019-10-11

The current Old School RuneScape metagame is pretty heavily dependant on the use of alt accounts. Efficient skilling needs a lot of money, and it's a waste of time to do money makers on your main account if you could be making money on an alt at the same time. RuneLite, the most popular client, does not support multiple profiles for having persistent settings for different accounts.

Thankfully, those using a decent operating system (i.e. Linux) can get around this pretty easily.

So on Linux, RuneLite stores its settings in ~/.config/runelite, so there's user-level granularity. I want to be able to have different settings for different accounts, so I can have separate launchers for each account that remember that account's username, and (for example) have lower fidelity graphics on my alt than my main.

Let's just do this my making a new user with its own home directory (obviously make more than one user if you want):

sudo useradd -m alt

Next, we want to make it so that our non-root user can run RuneLite as the alt user.

sudo visudo

Now append the following to the file, assuming your main Linux user is ruscur and your RuneLite client is at /usr/bin/RuneLite:

ruscur ALL=(alt) NOPASSWD: /usr/bin/RuneLite *

This allows the user ruscur to use sudo to run the /usr/bin/RuneLite command without a password. Note that a password hasn't been set for alt, so there's no way to log into that user.

Now you can make a launcher that runs

sudo -u alt /usr/bin/RuneLite

and you're set...almost.

The issue that we're still faced with is that the alt user does not have permission to use our user's X display, which is fair enough. So, we need to allow this.

xhost si:localuser:alt

Install xorg-xhost if you don't already have it, run the above, and you've given the alt user permission to use your X display. This will reset if the X server restarts, so you might want to add it to your launcher script.

If you still have issues, make sure both the DISPLAY and XAUTHORITY environment variables are set (DISPLAY should almost certainly be). Here's an example script putting everything together:

#!/bin/sh
# Launch RuneLite as the alt user
export XAUTHORITY=~/.Xauthority
xhost si:localuser:alt
sudo -u alt /usr/bin/RuneLite

Repeat for as many alts as you want, and they now have their own settings, not just for RuneLite but for jagexcache too, which stores your username and local client settings like Fixed/Resizable mode. You can set up separate Google accounts for each alt too, so if you use multiple computers they can have their RuneLite settings sync.

If anyone tries this and has issues (or can suggest an easier method), feel free to reach out. I decided that I'd much rather do it the simple UNIX way rather than mess around with containers.