适用于 Linux 的 Windows 子系统 - Bash.exe 键盘热键

适用于 Linux 的 Windows 子系统 - Bash.exe 键盘热键

我想通过键盘热键启动 Windows Subsystem for Linux (WSL) 中包含的 Bash shell。

我最近了解到,可以通过在应用程序的快捷方式的属性对话框中分配组合键来为应用程序分配键盘热键。

这对于常规应用程序非常有效。例如,我将终端应用程序的热键指定为ctrl+f11。按下相应的组合键后,应用程序就会启动。

截图:工作应用程序的快捷方式属性:

编辑:该快捷方式位于开始菜单文件夹中

在此处输入图片描述

如果我为位于C:\Windows\System32\bash.exebash shell 的 Bash.exe 文件创建的快捷方式分配一个热键,则按下分配的组合键时它不会像我预期的那样运行。

截图:Bash.exe 快捷方式属性:

编辑:该快捷方式位于 D:\ Drive 上的子目录中

在此处输入图片描述

我想知道造成这种情况的原因是什么,以及是否有办法在不安装第三方应用程序(如“AutoHotKey”)的情况下解决此限制。

感谢您,

答案1

这个谜团比你想象的还要深: 有些键盘快捷键有效,但有些则无效

无效的示例:F12

有效做法的例子:

  • F10
  • Ctrl+ Alt+O
  • Ctrl+ F12(有时)

此外,在使用一个热键成功一次后,它似乎与其他热键配合得更好。例如,您的Ctrl+快捷键F12一开始不起作用。但在F10我成功一次后,我又回到了它,这次成功了。然而, 快捷键F12本身对我来说从来没有起作用。

进一步说,包含的快捷方式似乎Ctrl 更有可能起作用。

结论:WSL 的实现很有趣。只有微软的 WSL 开发人员才有可能解开这个谜团。

笔记:

  • 我使用的是 WSL 1,而不是 WSL 2
  • 的启动时间bash.exe很长,因此请等待几秒钟再决定某些快捷方式是否起作用。

我想知道您是否可以在您这边重现这些发现。

答案2

根据 Microsoft 支持网站,快捷热键的行为描述如下:

“快捷键仅适用于桌面或“开始”菜单层次结构中的快捷方式”

来源:快捷方式的快捷键不起作用

据称,快捷键热键的行为根据其所在位置而不同。

  • 如果快捷方式位于桌面文件夹或开始菜单层次结构中Windows\Start Menu,则Windows\Start Menu\Programs热键将用于启动相应的应用程序。

  • 如果快捷方式不在桌面上或“开始”菜单层次结构中,则热键将用于将焦点切换到指定的应用程序仅当它已在运行

  • 快捷键也被描述为无法对某些程序起作用,例如快速启动栏中的项目

在这种情况下,bash.exe 有一个快捷方式,位于 D:\ Drive 上的子目录中。如上所述,这将不起作用。

相反,通过将 固定bash.exe到开始菜单,会在

C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs文件夹。

通过将热键应用到该快捷方式,bash shell 将使用其各自的热键启动。

相关内容