Tuesday, February 15, 2011

Papan kekunci rosak!!! Apa nak buat?

Saya mengalami masalah di mana SATU kekunci pada papan kekunci saya telah tercabut dan tidak dapat dibaiki (setelah berkunjung ke Plaza Low Yat, buy a new keyboard, such a nice advice from the shoppers, and it will costs me around RM135, very helpful indeed) dan perlu diganti keseluruhannya. Huruf yang berkenaan ialah huruf "L", di mana kadang-kadang untuk urusan "chat" saya perlu tukar huruf ini dengan kekunciu "|" yang seolah-olah seperti "l".

Sahabat saya telah mengesyorkan cara key remap, di mana kita boleh menukar pemetaan aksara kepada kekunci lain yang jarang digunakan.

Saya pun tidak pernah terfikir tentang perkara ini. Tiba-tiba saya teringat peristiwa semasa saya menjalani latihan Honeynet semasa seminar FIRST di mana juru ajar kami menggunakan mapping "English Britain" walhal kebiasaannya kita di Malaysia kita menggunakan US Keyboard. Yang demikian menyebabkan kesukaran di kalangan kami untuk menaip aksara-aksara yang diingini.

Untuk Ubuntu, saya menemui solusi di Internet yang akan saya sampaikan di bawah:

Baik, katakan untuk huruf "r"

1) Mula-mula, kita kena kenalpasti, apa kod bagi huruf "r" menggunakan arahan "xev"


KeyRelease event, serial 33, synthetic NO, window 0x6e00001,
    root 0xac, subw 0x0, time 30688496, (793,491), root:(795,563),
    state 0x0, keycode 27 (keysym 0x72, r), same_screen YES,
    XLookupString gives 1 bytes: (72) "r"
    XFilterEvent returns: False

dan saya mahu tetapkan pada "Ctrl" pada sebelah kanan papan kekunci:



KeyRelease event, serial 33, synthetic NO, window 0x6e00001,
    root 0xac, subw 0x0, time 30787011, (850,361), root:(852,433),
    state 0x4, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False



pada paparan di atas, huruf "r" ditetapkan pada kod kekunci 27
manakala "Ctrl" pada sebelah kanan pada kod kekunci 105


2) Kemudian, kita akan gunakan padankan kekunci Ctrl kanan supaya apabila ia ditekan ia akan memaparkan "r" pada skrin;

Taip

 xmodmap -e 'keycode 105=R'

keycode 105 merujuk kod kekunci Ctrl pada sebelah kanan papan kekunci yang jarang digunakan.

Sekarang kita periksa semula "mapping" kekunci ini;

KeyPress event, serial 33, synthetic NO, window 0x6e00001,
    root 0xac, subw 0x0, time 31111455, (931,429), root:(933,501),
    state 0x0, keycode 105 (keysym 0x72, r), same_screen YES,
    XKeysymToKeycode returns keycode: 27
    XLookupString gives 1 bytes: (72) "r"
    XmbLookupString gives 1 bytes: (72) "r"
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x6e00001,
    root 0xac, subw 0x0, time 31111572, (931,429), root:(933,501),
    state 0x4, keycode 105 (keysym 0x72, r), same_screen YES,
    XKeysymToKeycode returns keycode: 27
    XLookupString gives 1 bytes: (12) ""
    XFilterEvent returns: False

sekarang anda boleh cuba pada komputer anda, ia berfungsi dengan baik di dalam komputer saya.

Sekiranya tetapan ini hilang sebaik anda "reboot" komputer anda, boleh letak di dalam $HOME/.bashrc anda

Rujukan asal, di sini

No comments: