Feature request: Name game window on spawn

Running xprop on the game window on the character selection screen gives me the following:

_NET_WM_NAME(UTF8_STRING) = "EVE"
WM_ICON_NAME(STRING) = "EVE"
WM_NAME(STRING) = "EVE"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "exefile.exe", "Wine"

After logging in a character:

_NET_WM_NAME(UTF8_STRING) = "EVE - Sanjo Okimura"
WM_ICON_NAME(STRING) = "EVE - Sanjo Okimura"
WM_NAME(STRING) = "EVE - Sanjo Okimura"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "exefile.exe", "Wine"

The window identifies itself based on the currently active character, but does not identify itself at all before logging a specific char in.

I don’t know if there are similar tools on Windows, but on Linux there are window managers with some “auto sorting” capabilities that can do things to windows based on the information above. Put all the game stuff on desktop 5. Browser on desktop 3. That kind of thing.

This can be pretty useful when you’re running half a dozen EVE clients. Put each client on its own desktop space, then use window manager hotkeys to flip between them.

The sorting needs something to hook into, and the window doesn’t identify itself when it spawns, but when you log a character.

So how about this: Use the account ID or login name to identify the window before logging in a character.

This topic has been moved to the Linux SubForum

In the meantime, if you use i3, you can run this after logging in all of your clients.

#!/usr/bin/env bash
set -euo pipefail

declare -A CHARS
CHARS['Derp Derpston']='Derp'
CHARS['Herp Herpston']='Herp'
CHARS['Foo Foobarsson']='Foo'
CHARS['Bar Foobarsson']='Bar'

i3dump="$(i3-msg -t get_tree)"

for c in "${!CHARS[@]}"; do
    id=$(echo "$i3dump" | jq -c "recurse(.nodes[]) | select(.window_properties.title==\"EVE - $c\") | .id")
    i3-msg "[con_id=\"$id\"] move to workspace ${CHARS[$c]}"
done