запись использует utmp, чтобы определить, кто вошел в систему. Терминал x -не считается журналом -только в соединении, которое было опосредовано /bin/login (или подобным)
поэтому ssh
на локальный хост, получите новый tty
и попробуйте записать снова.
Я не уверен, что это именно то, что вы ищете, но добавление аргумента fork к setsid (-f ), кажется, отлично работает для не -терминальных команд:
urxvt -name menu -e bash -c 'cmd=$(compgen -c | sort -u | fzf); setsid -f $cmd'