Saya mengatur openbox di laptop saya yang menjalankan Linux Mint 13. Saya ingin tombol Caps Lock saya berfungsi sebagai kunci kontrol tambahan. Saya menempatkan pengaturan yang diperlukan dalam ~/.Xmodmap
file saya dan memeriksanya dengan menjalankan
xmodmap ~/.Xmodmap
Itu bekerja dengan benar.
Namun ketika saya masuk kembali ke sesi openbox saya, perubahan kunci ini tidak ada. Menjalankan xmodmap
perintah di atas membuatnya berfungsi lagi, tetapi saya ingin itu terjadi secara otomatis saat startup.
Yang menarik adalah saya menambahkan zenity
perintah tes sebagai berikut ke ~/.config/openbox/autostart
file saya
zenity --info --text=Hello
Ini menghasilkan jendela dialog kecil dan keluar hanya setelah dialog ditutup.
Sekarang, ketika saya masuk kembali ke sesi openbox saya, Caps Lock bertindak sebagai tombol Ctrl, sampai dialog zenity ditutup. Setelah dialog itu ditutup, Caps Lock kembali ke perilaku standarnya.
Saya belum menemukan apa pun di sini dengan google, jadi saya minta bantuan di sini. Apakah kalian punya ide tentang apa yang salah?
Memperbarui:
Saya telah mencoba untuk mencari tahu ini dan dalam percobaan saya, saya menyalin /usr/bin/xmodmap
file saya ke /usr/bin/xmodmap_
dan mengganti /usr/bin/xmodmap
file dengan skrip bash berikut
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
Jadi, setiap kali ada skrip sialan pada sistem berjalan xmodmap
, saya mengenalnya.
Dengan ini, saya login kembali dan saya hanya menemukan satu entri di ~/xmodmap-calls
file saya , yang menjalankan saya ~/.Xmodmap
, yang diharapkan. Jadi, saya pikir bukan xmodmap
itu yang menimpa perubahan saya.
Selanjutnya, sedikit googling memperkenalkan saya pada setxkbmap
perintah, yang ternyata juga bisa melakukan hal yang sama. Saya mengganti executable itu juga, mirip dengan xmodmap di atas. Dan saya mendapat perintah pelakunya!
setxkbmap -option terminate:ctrl_alt_bksp
Saya sama sekali tidak tahu apa yang dilakukannya, tetapi setelah menjalankan xmodmap ~/.Xmodmap
(yang menerapkan pengaturan saya dengan benar), jika saya menjalankan perintah di atas, perubahan saya diatur ulang! Sunting : Ini ternyata sangat lucu. Hanya setxkbmap
perintah tanpa argumen, dengan senang hati menimpa perubahan saya dengan xmodmap ~/.Xmodmap
perintah.
Sekarang saya memiliki dua hal untuk mencari tahu, dari mana ini setxkbmap
dijalankan & mengapa dan bagaimana cara memperbaikinya. Saya masih dalam penyelidikan tetapi dapat dengan serius menggunakan bantuan :)
Perbarui 2
Persetan dengan xmodmap
. Saya tidak tahu dari mana setxkbmap
dipanggil, tapi saya menemukan cara untuk menggunakan setxkbmap
perintah untuk membuat Caps Lock saya berfungsi sebagai Ctrl.
setxkbmap -option ctrl:nocaps
Tepat sebelum memulai openbox. Bekerja dengan brilian. Tombol caps lock tetap berfungsi sebagai tombol ctrl. xmodmap
tidak pernah berjalan.
Saya akan membuka pertanyaan ini di sini agar seseorang yang mengetahui hal-hal ini dapat memberikan wawasan. Juga, untuk orang-orang yang menghadapi ini setelah saya :)
Perbarui 3
Inilah isinya saya .config/openbox/autostart
, seperti yang diminta oleh 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 &
Ini tidak ada hubungannya dengan keyboard, sejauh yang saya tahu. Juga, inilah skrip yang memulai sesi saya: (Dijalankan oleh lightdm)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
autostart
file Anda ?