我正在尝试想出一个将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'