Tata letak keyboard khusus diatur ulang ke default setelah standby atau reboot

11

Saya mendesain tata letak keyboard untuk diri saya sendiri, setelah saya menjalankannya xmodmapberfungsi dengan baik, tetapi setelah standby atau reboot, tata letak kembali ke qwerty.

Bagaimana saya bisa mengaturnya sebagai default? OS saya adalah Debian Wheezy dengan XFCE4.

Vincent Zhang
sumber
Saya memiliki masalah yang sama, debian jessie dengan xfce4.
John Lawrence Aspden

Jawaban:

6

Lihatlah thread forum archlinux ini Xmodmap Reset setelah Suspend to RAM . Ada beberapa contoh di utas yang akan membantu Anda memulai dan menunjukkan kepada Anda cara menyiapkan kait yang akan dipicu melalui subsistem manajemen daya yang akan menjalankan xmodmappengaturan Anda setiap kali Anda keluar dari penundaan.

Sesuatu seperti script berikut, disimpan sebagai /etc/pm/sleep.d/11suspend(mengubah medalam /bin/su - meuntuk nama pengguna yang sebenarnya):

#!/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
slm
sumber
3

Catatan Premilinary: Anda seharusnya tidak menggunakan xmodmapperintah yang sudah usang , tetapi XKB ( xkbcomp).

Kemudian Anda dapat mengubah pengaturan dari ~/.xsessionskrip Anda . Secara pribadi saya punya:

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

di ~/.xsessionfile saya , dan pengaturan XKB saya dimasukkan ~/.xkb/symbols/localdan ~/.xkb/types/localfile. Ini akan mengubah pengaturan setelah setiap X login.

Sayangnya pengaturan ini hilang setelah penangguhan / melanjutkan . Ada solusinya: simpan dan kembalikan melalui pm-utils dengan skrip di /etc/pm/sleep.ddirektori; Anda mungkin perlu

xhost +si:localuser:root

dalam ~/.xsessionskrip Anda karena root tidak memiliki informasi xauth Anda. Saya telah memberikan contoh (untuk XKB): https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92

vinc17
sumber
~/.xsessiontidak dipanggil setelah resume di sini. apa kamu tahu kenapa?
brauliobo
@brauliobo ~/.xsessiontidak pernah dijalankan setelah resume, hanya ketika sesi X dimulai. Yang perlu Anda lakukan xhost +si:localuser:roothanya saat ini.
vinc17
Terima kasih banyak untuk informasi ini. Saya tidak tahu ada metode yang lebih baru daripada xmodmapmemuat keymaps kustom. Tampaknya bekerja jauh lebih baik juga. Dalam kasus saya (XUbuntu 18.04) tampaknya juga dapat bertahan menunda / melanjutkan.
Tobia