.bash_profile 不会在登录时运行

.bash_profile 不会在登录时运行

我正在尝试设置我的计算机,以便 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在其中选择 。

相关内容