Per-account RuneLite profiles using plain Linux users
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.