ฉันออกแบบเลย์เอาต์ของแป้นพิมพ์สำหรับตัวเองหลังจากฉันรันxmodmap
มันใช้งานได้ดี แต่หลังจากที่สแตนด์บายหรือรีบูตเค้าโครงก็เปลี่ยนกลับเป็น qwerty
ฉันจะตั้งเป็นค่าเริ่มต้นได้อย่างไร ระบบปฏิบัติการของฉันคือ Debian Wheezy ด้วย XFCE4
ฉันออกแบบเลย์เอาต์ของแป้นพิมพ์สำหรับตัวเองหลังจากฉันรันxmodmap
มันใช้งานได้ดี แต่หลังจากที่สแตนด์บายหรือรีบูตเค้าโครงก็เปลี่ยนกลับเป็น qwerty
ฉันจะตั้งเป็นค่าเริ่มต้นได้อย่างไร ระบบปฏิบัติการของฉันคือ Debian Wheezy ด้วย XFCE4
คำตอบ:
ตรวจสอบฟอรั่มนี้ ArchLinux xmodmap รีเซ็ตหลังจากระงับแรม มีหลายตัวอย่างในชุดข้อความที่จะให้คุณเริ่มต้นและแสดงวิธีตั้งค่าตะขอซึ่งจะถูกเรียกผ่านระบบย่อยการจัดการพลังงานที่จะเรียกใช้xmodmap
การตั้งค่าของคุณทุกครั้งที่คุณออกจากการระงับ
บางอย่างเช่นสคริปต์ต่อไปนี้ถูกบันทึกไว้เป็น/etc/pm/sleep.d/11suspend
(เปลี่ยนme
ใน /bin/su - me
ชื่อผู้ใช้ที่เกิดขึ้นจริงของคุณ):
#!/bin/bash
case $1 in
hibernate)
echo "Hey guy, we are going to suspend to disk!"
;;
suspend)
echo "Oh, this time we're doing a suspend to RAM. Cool!"
;;
thaw|resume)
echo "oh, suspend is over, we are in $1 phase..."
# Set Display #
DISPLAY=:0.0 ; export DISPLAY
/bin/su - me -c "sleep 3; /usr/bin/xmodmap /home/me/.xmodmaprc" &
;;
*) echo "somebody is calling me totally wrong."
;;
esac
บันทึกล่วงหน้า: คุณไม่ควรใช้xmodmap
คำสั่งล้าสมัยแต่เป็น XKB ( xkbcomp
)
จากนั้นคุณสามารถเปลี่ยนการตั้งค่าจาก~/.xsession
สคริปต์ของคุณ ส่วนตัวฉันมี:
setxkbmap -types local -print | \
sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
ใน~/.xsession
ไฟล์ของฉันและการตั้งค่า XKB ของฉันจะถูกใส่~/.xkb/symbols/local
และ~/.xkb/types/local
ไฟล์ สิ่งนี้จะเปลี่ยนการตั้งค่าหลังจากลงชื่อเข้าใช้ X แต่ละครั้ง
แต่น่าเสียดายที่การตั้งค่าเหล่านี้จะหายไปหลังจากระงับ / ประวัติ มีวิธีแก้ไข: บันทึกไว้และเรียกคืนผ่าน pm-utils ด้วยสคริปต์ใน/etc/pm/sleep.d
ไดเรกทอรี คุณอาจต้องการ
xhost +si:localuser:root
ใน~/.xsession
สคริปต์ของคุณเนื่องจากรูทไม่มีข้อมูล xauth ของคุณ ฉันได้ยกตัวอย่าง (สำหรับ XKB): https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92
~/.xsession
ไม่ได้ถูกเรียกหลังจากดำเนินการต่อที่นี่ คุณรู้ไหมว่าทำไม?
~/.xsession
ไม่ถูกดำเนินการหลังจากดำเนินการต่อเมื่อเริ่มเซสชัน X คุณต้องทำxhost +si:localuser:root
ในเวลานี้เท่านั้น
xmodmap
ในการโหลดคีย์แผนที่ที่กำหนดเอง ดูเหมือนว่าจะทำงานได้ดีขึ้นมากเช่นกัน ในกรณีของฉัน (XUbuntu 18.04) ดูเหมือนว่าจะอยู่รอดระงับ / ดำเนินการต่อด้วย