ทำไมคำสั่ง xmodmap ของฉันจะไม่ทำงานเมื่อเริ่มต้น / เข้าสู่ระบบ?


10

ฉันต้องการเรียกใช้คำสั่งนี้ทุกครั้งที่ฉันเข้าสู่ระบบ (หรือทุกครั้งที่ฉันเริ่มขึ้นหากไม่ได้ผล): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

ฉันลองหลายอย่างแล้ว System > Preferences > Startup Applicationsฉันใส่คำสั่งใน ฉันใส่มันลงใน.shไฟล์ทำเครื่องหมายchmod +xและใส่ไฟล์System > Preferences > Startup Applicationsนั้น /etc/init.dฉันใส่สคริปต์ใน ~/.profileฉันใส่คำสั่งใน ดูเหมือนจะไม่มีอะไรทำงาน

ในที่สุดฉันก็ใส่สิ่งนี้ไว้ใน~/.profile:

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

ทั้ง test1 และ test2 ถูกสร้างขึ้น แต่ปุ่มยังคงไม่ถูกแมปใหม่ ถ้าฉันเพียงแค่คัดลอก / วางคำสั่งและเรียกใช้ด้วยตนเองมันก็ใช้ได้ดี แต่มันจะไม่ทำงานในการเข้าสู่ระบบ ความคิดใด ๆ

คำตอบ:


11

~/.profileทำงานก่อนในลำดับการเข้าสู่ระบบ หากสภาพแวดล้อมเดสก์ท็อปของคุณกำหนดค่ารูปแบบแป้นพิมพ์ก็สามารถเขียนทับการตั้งค่าที่คุณเพิ่งโหลด

ใส่การตั้งค่าของคุณในไฟล์ชื่อ~/.Xmodmap:

keysym Delete = Menu
keysym Menu = Delete

ภายใต้สภาพแวดล้อม Gnome เริ่มต้นใน Ubuntu 10.04 ในครั้งต่อไปที่คุณเข้าสู่ระบบคุณจะได้รับแจ้งว่าจะโหลด~/.Xmodmapหรือไม่ โหลดแล้วทำเครื่องหมาย“ ไม่ต้องถามฉันอีก” จากนั้นคุณ.Xmodmapจะถูกนำไปใช้หลังจากการตั้งค่าเริ่มต้น


ขอบคุณมันทำงานได้อย่างสมบูรณ์ จากความอยากรู้ฉันจะกลับไปที่กล่องโต้ตอบที่ฉันตรวจสอบว่า "ไม่ต้องถามฉันอีกครั้ง" ได้อย่างไรหากฉันต้องการเวลาในอนาคต
Matthew

1
@ Matthew: ยังไม่ทดลอง: เปิดตัวgconf-editorเรียกดู/desktop/gnome/peripherals/keyboard/generalและแก้ไขรายการที่จะลบknown_file_list .Xmodmap
Gilles 'หยุดความชั่วร้าย'

สิ่งนี้ใช้ได้กับฉันใน Ubuntu 10.10 เบต้าเมื่อคุณตอบคำถามนี้เป็นครั้งแรก ฉันเพิ่งติดตั้ง Ubuntu 10.10 ใหม่เมื่อวานนี้และใส่ไฟล์. Xmodmap ที่เหมือนกันในโฟลเดอร์บ้านของฉัน เมื่อฉันกลับเข้าสู่ระบบฉันได้รับกล่องโต้ตอบโหลด. Xmodmap และทำเครื่องหมายที่กล่องเหมือนเมื่อก่อน แต่ดูเหมือนว่าจะไม่มีการแมปคีย์ใหม่ ฉันตรวจสอบใน gconf และ. Xmodmap เป็นที่รู้จักกันในไฟล์ __file_list ความคิดใด ๆ
Matthew

สิ่งนี้ไม่ทำงานสำหรับฉันบน Gnome 3.10.1 / Archlinux ฉันสงสัยว่าบางอย่างไม่ได้ถูกปรับตามลำดับ Gnome โหลดเค้าโครงแป้นพิมพ์
แม็กเคเล็บ

สำหรับ Gnome 3.10 ไม่โหลด ~ / .xmodmap อีกต่อไปฉันพบวิธีแก้ปัญหาที่ทำงานที่bbs.archlinux.org/viewtopic.php?pid=1194968#p1194968 : ปิดการใช้งานปลั๊กอินแป้นพิมพ์ของ Gnome $ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
plnx

2

ฉันพบว่าในตำแหน่งใน Gconf-Editor ที่กล่าวถึงข้างต้นชื่อของรูปแบบแป้นพิมพ์ที่ได้รับการแก้ไขของคุณควรปรากฏสองครั้งหนึ่งครั้งภายใต้ "known_file_list" และอีกครั้งภายใต้ "update_handlers" ทำไมบางครั้งอูบุนตูก็ใส่ไว้ในรายการหลังและบางครั้งก็ไม่ดี ... มันช่วยให้คุณอยู่กับเท้าใช่ไหม?

หลังจากการวิจัยจำนวนมากฉันใช้การปรับแต่งด้านบนเพื่อกำหนดปุ่ม Windows ซ้ายอีกครั้ง ฉันใส่คำสั่งต่อไปนี้ในรูปแบบแป้นพิมพ์ของตัวเองเพื่อให้ซ้ำแป้นลูกศรซ้าย: -

keycode 133 = 0xFF51

(ตรวจสอบว่ารหัสเหล่านั้นเป็นรหัสที่ถูกต้องสำหรับคุณโดยเข้าไปที่ xev และกดปุ่มแรกก่อนจากนั้นจึงกดปุ่มอื่น)

มันเป็นเพียงจุดเล็ก ๆ น้อย ๆ แต่ในขณะที่ฉันอยู่บนอินเทอร์เน็ตมันให้คีย์ "ย้อนกลับ" ที่สะดวกสบาย - Alt + Win ด้วยมือซ้าย ฉันสามารถทำได้โดยไม่ต้องดู


1
อลันเขียนว่า: "ฉันพบว่าในสถานที่ใน Gconf-Editor ดังกล่าวข้างต้นชื่อของรูปแบบแป้นพิมพ์ที่แก้ไขของคุณควรปรากฏขึ้นสองครั้งหนึ่งครั้งภายใต้" รู้จัก _file_list "และอีกครั้งภายใต้" update_handlers " ฉันสามารถยืนยันได้ว่าอลันนั้นถูกต้อง ใน Ubuntu 10.10 เพื่อให้ไฟล์ ~ / .Xmodmap ของคุณมีผลกระทบ ".Xmodmap" จะต้องปรากฏขึ้นทั้งในรายการ "known_file_list" และ "update_handlers" ภายใต้ / desktop / gnome / อุปกรณ์ต่อพ่วง / แป้นพิมพ์ / ทั่วไปใน gconf -editor ขอบคุณอลัน

1

บางระบบค้นหาไฟล์ชื่อ~/.Xmodmapและดำเนินการคำสั่งที่พบที่นั่น ลองวางบรรทัดเหล่านี้ในไฟล์นั้น:

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