我有一个 shell 脚本,其中包含应用程序的启动逻辑,这些应用程序应该在 Awesome 窗口管理器启动并运行后运行。目前,它推出了polybar和picom。 Picom 工作正常,但 Polybar 根本无法启动。
#!/bin/sh
# See https://wiki.archlinux.org/title/Awesome#Autostart
run() {
if ! pgrep -f "$1" ;
then
"$@"&
fi
}
run "~/.config/polybar/launch.sh"
run "picom --experimental-backends -b"
rc.lua
一切都初始化后,从上面触发 shell 脚本。这意味着以下代码位于我的 rc 文件的末尾。
-- See https://wiki.archlinux.org/title/Awesome#Autostart
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
~/.config/polybar/launch.sh
:
#!/bin/bash
# Terminate already running bar instances
killall -q polybar
# If all your bars have ipc enabled, you can also use
# polybar-msg cmd quit
# Launch Polybar, using default config location ~/.config/polybar/config.ini
polybar mybar 2>&1 | tee -a /tmp/polybar.log & disown
echo "Polybar launched..."
奇怪的是,当我~/.config/polybar/launch.sh
从终端运行时,它运行得很好。为什么从我的窗口管理器(rc.lua
确切地说是从文件)启动时它不启动?
答案1
通过更新到修复它autorun.sh
:
#!/bin/sh
# See https://wiki.archlinux.org/title/Awesome#Autostart
run() {
if ! pgrep -f "$1" ;
then
"$@"&
fi
}
run "$HOME/.config/polybar/launch.sh"
exec picom --experimental-backends &
我从别人的点文件中复制了这个,但我仍然不知道为什么我的初始代码不起作用......