xmodmap: nie można otworzyć wyświetlacza ''

9

Mam następujący wiersz w moim .bashrc

xmodmap -e "keycode 116 = slash"

kiedy SSH do tej maszyny, dostaję

xmodmap:  unable to open display ''

i nie trzeba dodawać, że chcę tego stamtąd. Czy ktoś może dać mi znać, jak usunąć ten błąd?

OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 paź 2007

Dziękuję za pomoc

Dervin Thunk
źródło
1
przy obu podanych odpowiedziach możesz wyleczyć objaw, ale imho głównym problemem jest to, że wywołanie xmodmap nie należy do .bashrc. jest to coś, co powinno być ustawione raz dla bieżącej sesji X11 .. a nie za każdym razem, gdy otwierana jest powłoka. więc imho xmodmap-call należy do .xinitrc lub .xsession, zanim zadzwonisz do menedżera okien.
akira
Dobra uwaga, akira. Nawet o tym nie myślałem, odpowiadając. Dervin: Próbowałeś czegoś takiego? help.ubuntu.com/community/MultimediaKeys
innaM

Odpowiedzi:

9

Możesz zmienić .bashrcopcję uruchamiania tylko xmodmapwtedy, gdy dostępny jest wyświetlacz:

if [ -n "${DISPLAY+x}" ]; then
    xmodmap -e "keycode 116 = slash"
fi
innaM
źródło
xmodmap, nie xmodpmap, ale działało wspaniale. przyjęty.
Dervin Thunk,
Poprawiono mnie.
innaM
Niepowiązane, ale [ -n "${DISPLAY+x}" ]można je zastąpić prostszym [ "$DISPLAY" ]lub [[ $DISPLAY ]].
user1686,
O dziwo, nadal pojawia się komunikat o błędzie, gdy mam tę instrukcję if.
byxor
1

Ten błąd jest prawdopodobnie spowodowany tym, że nie włączyłeś przekazywania X11. Wystarczy uruchomić ssh z opcją -X (tj

ssh -X -l user server.tld

lub w kitach kliknij opcję goto SSH -> X11 -> Włącz przekazywanie X11.

Oczywiście najpierw musisz uruchomić Xserver przed SSH, Linux ma to domyślnie, a jeśli używasz Windowsa, możesz użyć Xming.

Jeśli nie korzystasz z sesji X11 za każdym razem, gdy korzystasz z SSH, skorzystaj z rozwiązania Manniego.

Natalie Adams
źródło