![.bash_profile 不会在登录时运行](https://linux22.com/image/1362465/.bash_profile%20%E4%B8%8D%E4%BC%9A%E5%9C%A8%E7%99%BB%E5%BD%95%E6%97%B6%E8%BF%90%E8%A1%8C.png)
我正在尝试设置我的计算机,以便 Esc 键执行 Caps Lock 功能,Caps Lock 执行 Esc 键功能。我有一个小脚本,可以使用 xmodmap 交换 Esc 和 Caps Lock。在我的主目录中的 .bash_profile 中,我输入了以下行:
xmodmap ~/.capsswap
据我所知,当我登录时,应该运行.capsswap,它也在我的主目录中。
.capsswap 的内容是
1 ! Swap caps and Escape
2
3 remove Lock = Caps_Lock
4 keysym Escape = Caps_Lock
5 keysym Caps_Lock = Escape
6 add Lock = Caps_Lock
我正在运行 Ubuntu 12.04.1 LTS。
基本上这不起作用,因为当我登录时什么都没有发生。我对使用 bash 和 xmodmap 还很陌生,我所做的可能完全是错的,所以如果有人知道如何解决这个问题,或者可以建议一种更好的方法来交换 Esc 和 Caps Lock,请告诉我。
答案1
搬去~/.capsswap
~/.Xmodmap
~/.Xmodmap
由 读/etc/gdm/Xsession
。
如果您不使用 gdm,您可以添加一个名为的脚本:91xmodmap
在/etc/X11/Xsession.d/
包含:
XMODMAP="$(which xmodmap)"
SYSMODMAP="/etc/X11/Xmodmap"
USRMODMAP="$HOME/.Xmodmap"
if [ -x $XMODMAP ]; then
if [ -f "$SYSMODMAP" ]; then
$XMODMAP "$SYSMODMAP"
fi
if [ -f "$USRMODMAP" ]; then
$XMODMAP "$USRMODMAP"
fi
fi
您输入的命令~/.bash_profile
没有运行,因为 gnome-terminal 默认不作为登录 shell 运行。
右键单击 gnome-terminal 的屏幕并转到Profiles -> Profile Preferences
。
然后在 下Title and Command
检查Run command as a login shell
。
答案2
Ubuntu 有一个用于更改 CapsLock 行为的 GUI
打开Keyboard Layout
设置并点击Options
。您可以Caps Lock key behavior
在其中选择 。