![如何在 i3 中通过一个键绑定启动两个应用程序?](https://linux22.com/image/114382/%E5%A6%82%E4%BD%95%E5%9C%A8%20i3%20%E4%B8%AD%E9%80%9A%E8%BF%87%E4%B8%80%E4%B8%AA%E9%94%AE%E7%BB%91%E5%AE%9A%E5%90%AF%E5%8A%A8%E4%B8%A4%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我正在尝试想出一个将cmus
在终端及其projectM-pulseaudio
旁边启动的命令(我正在使用 i3 窗口管理器)。
当我尝试时
projectM-pulseaudio && cmus
cmus
直到我关闭 ProjectM 后才开始。当我尝试时
cmus && projectM-pulseaudio
然后 ProjectM 不会启动,直到我退出cmus
。
据我所知,这cmus
是一个基于命令行的工具,而 ProjectM 不是。我想知道这是否就是它不起作用的原因,或者是否还有其他原因。有什么想法吗?
答案1
当您输入时
utility1 && utility2
这意味着直到以零退出状态终止(但不是其他情况)utility2
才会开始。utility1
同样地,
utility1 || utility2
意味着如果以非零退出状态终止utility2
则将运行(但否则不会)。utility1
和
utility1 & utility2 &
这与以下相同
utility1 &
utility2 &
您将这两个实用程序作为后台进程启动(两者将彼此独立启动),并使用
utility1 & utility2
这与以下相同
utility1 &
utility2
您首先utility1
作为后台进程,然后utility2
作为前台进程。
巧合的是,这意味着您的问题标题是正确的:
cmus & projectM-pulseaudio
或者可能
projectM-pulseaudio & cmus
(但我不知道这些程序的作用,所以我不确定将其中一个或两个程序作为后台进程运行是否有意义)。
答案2
我正在尝试想出一个命令将在终端中启动 cmus 并在其旁边启动 projectM-pulseaudio (我使用的是 i3 窗口管理器)。
不是这样i3
的。我想你想要的是这样的,
bindsym $mod+v exec projectM-pulseaudio, exec kitty cmus
请注意,您必须了解终端的工作原理。虽然我建议你使用kitty
,因为它很容易成为功能最差的终端,具有连字和图形支持 - 它会在帧缓冲区上使用 Ranger 渲染图片。
如果除了 cmus 之外您还想要一个 shell(这样当您完成后它不会退出)
bindsym $mod+v exec projectM-pulseaudio, exec kitty bash -c'cmus'