ฉันกำลังตั้งค่า openbox บนแล็ปท็อปที่ใช้ Linux Mint 13 ฉันต้องการให้ปุ่ม Caps Lock ของฉันทำหน้าที่เป็นปุ่มควบคุมเพิ่มเติม ฉันใส่การตั้งค่าที่จำเป็นใน~/.Xmodmap
ไฟล์ของฉันและตรวจสอบด้วยการเปิด
xmodmap ~/.Xmodmap
มันทำงานได้อย่างถูกต้อง
อย่างไรก็ตามเมื่อฉันเข้าสู่เซสชัน openbox ของฉันการเปลี่ยนแปลงที่สำคัญเหล่านี้จะไม่ปรากฏ การรันxmodmap
คำสั่งด้านบนทำให้มันทำงานอีกครั้ง แต่ฉันต้องการให้มันเกิดขึ้นโดยอัตโนมัติเมื่อเริ่มต้น
สิ่งที่น่าสนใจคือฉันเพิ่มzenity
คำสั่งทดสอบดังต่อไปนี้ใน~/.config/openbox/autostart
ไฟล์ของฉัน
zenity --info --text=Hello
สิ่งนี้จะสร้างหน้าต่างข้อความขนาดเล็กและออกหลังจากปิดกล่องโต้ตอบเท่านั้น
ตอนนี้เมื่อฉันเข้าสู่เซสชัน openbox ของฉัน Caps Lock จะทำหน้าที่เป็นปุ่ม Ctrl จนกระทั่งไดอะล็อก zenity ถูกปิด เมื่อปิดกล่องโต้ตอบนั้น Caps Lock จะกลับไปสู่การทำงานเริ่มต้น
ฉันไม่ได้พบสิ่งนี้กับ google ดังนั้นฉันจึงขอความช่วยเหลือที่นี่ พวกคุณมีความคิดเกี่ยวกับสิ่งที่อาจจะผิดหรือเปล่า?
ปรับปรุง:
ฉันพยายามคิดออกและในการทดลองของฉันฉันคัดลอก/usr/bin/xmodmap
ไฟล์ของฉันไป/usr/bin/xmodmap_
และแทนที่/usr/bin/xmodmap
ไฟล์ด้วยสคริปต์ทุบตีต่อไปนี้
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
ดังนั้นทุกครั้งที่สคริปต์ใด ๆ ในระบบทำงานxmodmap
ฉันก็จะรู้
ด้วยสิ่งนี้ฉัน relogin และฉันพบเพียงหนึ่งรายการใน~/xmodmap-calls
ไฟล์ของฉันซึ่งเป็นรายการที่ทำงานของฉัน~/.Xmodmap
ซึ่งคาดว่า ดังนั้นฉันคิดว่าไม่ใช่สิ่งxmodmap
ที่เขียนทับการเปลี่ยนแปลงของฉัน
ถัดไป googling เล็กน้อยแนะนำให้ฉันรู้จักกับsetxkbmap
คำสั่งซึ่งเห็นได้ชัดว่าสามารถทำสิ่งเดียวกันได้ ฉันแทนที่ไฟล์ปฏิบัติการนั้นคล้ายกับ xmodmap ด้านบน และฉันได้รับคำสั่งผู้ร้าย!
setxkbmap -option terminate:ctrl_alt_bksp
ฉันไม่รู้ว่ามันทำอะไร แต่หลังจากทำงานxmodmap ~/.Xmodmap
(ซึ่งใช้การตั้งค่าของฉันอย่างถูกต้อง) ถ้าฉันเรียกใช้คำสั่งด้านบนการเปลี่ยนแปลงของฉันจะถูกรีเซ็ต! แก้ไข : นี่เป็นเรื่องตลกที่แท้จริง เพียงแค่setxkbmap
คำสั่งโดยไม่มีข้อโต้แย้งใด ๆ เขียนทับการเปลี่ยนแปลงของฉันอย่างมีความสุขด้วยxmodmap ~/.Xmodmap
คำสั่ง
ตอนนี้ฉันมีสองสิ่งที่ต้องรู้ว่าสิ่งนี้setxkbmap
ถูกเรียกใช้จากสาเหตุใดและจะแก้ไขได้อย่างไร ฉันยังอยู่ระหว่างตรวจสอบ แต่สามารถใช้ความช่วยเหลืออย่างจริงจัง :)
อัปเดต 2
xmodmap
ไปลงนรกด้วย ฉันไม่สามารถทราบได้ว่าsetxkbmap
มีการโทรจากที่ไหนแต่ฉันคิดวิธีใช้setxkbmap
คำสั่งเพื่อให้ Caps Lock ของฉันทำงานเป็น Ctrl
setxkbmap -option ctrl:nocaps
ก่อนที่จะเริ่ม openbox ใช้งานได้ยอดเยี่ยม ปุ่ม caps lock ยังคงทำหน้าที่เป็นปุ่ม ctrl xmodmap
ไม่เคยวิ่ง
ฉันจะเก็บคำถามนี้ไว้ที่นี่เพื่อคนที่รู้ว่าสิ่งเหล่านี้สามารถให้ข้อมูลเชิงลึกได้ นอกจากนี้สำหรับผู้ที่เผชิญปัญหานี้หลังจากฉัน :)
อัปเดต 3
นี่คือเนื้อหาของฉัน.config/openbox/autostart
ตามที่ pedrosaurio ร้องขอ
#!/bin/bash
# Set the wallpaper.
feh --bg-scale /wall.png
# Set default brightness.
xbacklight -time 1 '=40'
# Compositing.
xcompmgr &
# The panel.
tint2 &
# Start a terminal too.
roxterm &
นี่ไม่เกี่ยวอะไรกับแป้นพิมพ์เท่าที่ฉันจะบอกได้ และนี่คือสคริปต์ที่เริ่มเซสชันของฉัน: (ดำเนินการโดย lightdm)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
autostart
ไฟล์ของคุณ?