我自己设计了一个键盘布局,运行后xmodmap
工作正常,但待机或重启后,布局又变回qwerty。
我怎样才能将其设置为默认值?我的操作系统是带有 XFCE4 的 Debian Wheezy。
答案1
查看这个 archlinux 论坛主题Xmodmap 挂起后重置到 RAM。该线程中有几个示例可以帮助您入门,并向您展示如何设置一个钩子,该钩子将通过电源管理子系统触发,该子系统将在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
答案2
初步说明:您不应该使用过时的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
脚本中,因为 root 没有您的 xauth 信息。我举了一个例子(对于XKB):https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92