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 ต.ค. 2550

ขอขอบคุณสำหรับความช่วยเหลือของคุณ.


1
ด้วยคำตอบที่ได้รับทั้งคู่คุณสามารถแก้อาการได้ แต่ imho ปัญหาหลักคือการที่ xmodmap-call ไม่ได้อยู่ใน. bashrc มันเป็นสิ่งที่ควรตั้งค่าหนึ่งครั้งสำหรับ X11 เซสชั่นปัจจุบันและไม่ใช่ทุกครั้งที่เปิดเชลล์ ดังนั้น imho xmodmap-call เป็น. xinitrc หรือ. xsession ก่อนที่คุณจะเรียก windowmanager ของคุณ
akira

จุดที่ดีอากิระ ฉันไม่ได้คิดเรื่องนี้เมื่อตอบ Dervin: คุณเคยลองแบบนี้บ้างไหม? help.ubuntu.com/community/MultimediaKeys
innaM

คำตอบ:


9

คุณสามารถเปลี่ยน.bashrcเป็นทำงานได้เฉพาะxmodmapเมื่อมีจอแสดงผลเท่านั้น:

if [ -n "${DISPLAY+x}" ]; then
    xmodmap -e "keycode 116 = slash"
fi

xmodmap ไม่ใช่ xmodpmap แต่ใช้งานได้อย่างยอดเยี่ยม ได้รับการยอมรับ
Dervin Thunk

ฉันยืนแก้ไขแล้ว
innaM

ที่ไม่เกี่ยวข้องกัน แต่[ -n "${DISPLAY+x}" ]สามารถถูกแทนที่ด้วยง่ายหรือ[ "$DISPLAY" ] [[ $DISPLAY ]]
user1686

แปลกมากฉันยังคงได้รับข้อความแสดงข้อผิดพลาดเมื่อฉันมีคำสั่ง if
byxor

1

ข้อผิดพลาดนั้นอาจเป็นเพราะคุณไม่ได้เปิดใช้งานการส่งต่อ X11 เพียงเรียกใช้ ssh ด้วยตัวเลือก -X (เช่น

ssh -X -l user server.tld

หรือในการฉาบคลิกตัวเลือก goto SSH -> X11 -> เปิดใช้งานการส่งต่อ X11

แน่นอนว่าคุณต้องใช้งาน Xserver เป็นอันดับแรกก่อนที่คุณจะใช้ SSH, Linux มีสิ่งนี้ตามค่าเริ่มต้นซึ่งหากคุณใช้ Windows คุณสามารถใช้ Xming ได้

หากคุณไม่ได้ใช้เซสชัน X11 ทุกครั้งที่คุณเข้า SSH ให้ใช้วิธีแก้ปัญหาของ Manni

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.