Если настройка производится через ssh -Y, раскладка 'на лету' меняется на $DISPLAY, за что авторам большое спасибо. Предлагается смотреть на $DISPLAY, и если он не локальный, не менять 'на лету' вообще.
А как отличить локальный от глобального? Возможен ведь ssh -Y localhost ;)
Ну наверно если перед ':' есть ненулевое количество символов. ssh -Y localhost тоже не очень правильно считать "локальным".
localhost скорее окажется редиректом, мне кажется. в общем, если при ненулевом содержимом перед : оно не будет делать того, чего не прошено, будет уже хорошо.