为什么在 bashrc 中启动 tmux 会启用 ALT+LEFT / ALT-RIGHT 从而切换 tty?

为什么在 bashrc 中启动 tmux 会启用 ALT+LEFT / ALT-RIGHT 从而切换 tty?

我运行的是 Ubuntu 17.04。在我登录后,这种情况发生在 X 内部。我正在运行 Ubuntu Gnome 的默认安装https://ubuntugnome.org/

我里面有以下代码~/.bashrc

[[ -z "$TMUX" ]] && exec tmux # Launch tmux in new shells

当我重新启动并在 bashrc 中使用此登录时,ALT+LEFT 和 ALT+RIGHT 分别切换到上一个和下一个 tty。

当我删除该行后,ALT+LEFT 和 ALT+RIGHT 将恢复到在浏览器中后退和前进的通常行为。

我启动 tmux 错误吗?

答案1

我正在使用 GNOME Shell 和 X(无 Wayland)运行 Ubuntu 18.04,没有在我的 bashrc 中添加有关 tmux 的任何内容,并且我看到了同样的问题。我无法定位原因,但据我所知,关闭和打开笔记本电脑或系统进入睡眠状态似乎发生了一些奇怪的事情。当我重新启动时,问题不再存在。如果我们观察到同样的问题,我希望您的问题在重新启动后将不再存在。

答案2

正确的。此 bashrc 配置与您当前使用的其他软件不兼容。考虑以下。

  1. Linux 控制台默认实现 ALT+LEFT / ALT_RIGHT。你可以总是当您使用文本控制台登录时会看到此行为。 (例如,在 CTRL+ALT+F6 之后)。
  2. 图形系统又名。 X 服务器通过将当前 Linux 控制台(例如/dev/tty7)的键盘模式切换为“原始”来禁用此行为。

    参见例如什么是原始键盘模式?

  3. 传统上,X 总是从用户 shell 内部启动。这种传统被[滥用]用于在 shell 配置文件(如 )中设置环境变量,如 PATH(在其中查找命令的目录列表).bashrc,并将它们应用于图形会话,而不仅仅是明显使用 shell(如文本控制台或 SSH)的登录登录。

    参见例如没有~/.bash_profile设置环境变量是什么状态?

  4. 更广泛地说,如果您在 Linux 控制台上,然后在内部运行某些内容,该内容将与(通过伪终端)tmux通信,而不是直接与 Linux 控制台通信。tmux我不知道确切地在你的情况下会发生什么,但听起来 X 可能正在内部运行tmux,这导致它继续进行而没有找到当前控制台切换到原始模式。

相关内容