xmodmap: невозможно открыть дисплей ''

9

У меня есть следующая строка в моем .bashrc

xmodmap -e "keycode 116 = slash"

когда я SSH к этой машине, я получаю

xmodmap:  unable to open display ''

и само собой разумеется, я хочу это оттуда. Может кто-нибудь дать мне знать, как убрать эту ошибку?

OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 октября 2007 г.

Спасибо за помощь.

Дервин Танк
источник
1
с обоими ответами вы можете вылечить симптом, но главная проблема в том, что вызов xmodmap не принадлежит .bashrc. это то, что должно быть установлено один раз для текущего сеанса X11 ... а не каждый раз, когда открывается оболочка. поэтому imho вызов xmodmap принадлежит .xinitrc или .xsession, прежде чем вы вызовете ваш менеджер окон.
Акира
Хороший вопрос, Акира. Я даже не думал об этом при ответе. Дервин: Вы пробовали что-то подобное? help.ubuntu.com/community/MultimediaKeys
innaM

Ответы:

9

Вы можете изменить свой .bashrcзапуск только xmodmapпри наличии дисплея:

if [ -n "${DISPLAY+x}" ]; then
    xmodmap -e "keycode 116 = slash"
fi
InnaM
источник
xmodmap, а не xmodpmap, но он работал чудесно. принятый.
Дервин Танк
Я стою исправлено.
ИннаМ
Несвязанный, но [ -n "${DISPLAY+x}" ]может быть заменен на более простой [ "$DISPLAY" ]или [[ $DISPLAY ]].
user1686
Как ни странно, я все еще получаю сообщение об ошибке, когда у меня есть этот if-оператор.
17
1

Вероятно, эта ошибка связана с тем, что вы не включили пересылку X11. Просто запустите ssh с опцией -X (т.е.

ssh -X -l user server.tld

или в замазке выберите опцию Перейти к SSH -> X11 -> Включить пересылку X11.

Конечно, вам нужно сначала запустить Xserver до входа в SSH, в Linux это по умолчанию, где, если вы работаете в Windows, вы можете использовать Xming.

Если вы не используете сеанс X11 всякий раз, когда используете SSH, просто воспользуйтесь решением Манни.

Натали Адамс
источник