I3wm 配置随机运行(或不运行)脚本

I3wm config randomly runs (or not) scripts

在我的 i3 配置文件中,我有许多脚本,我想在 i3 启动时 运行,包括 select 壁纸的脚本和 运行 polybar 的脚本。这两个脚本在一年多的时间里都运行良好,但突然它们开始表现得很奇怪:有时 none 个 运行,有时只有一个 运行 有时只有一半的脚本运行s (wtf).

我所说的只有 运行 一半脚本的意思是,例如,polybar 可能会杀死 polybar 的所有实例(第一行)但不会 运行 my bar(第二行) ,或者 wal 脚本可能会按预期更改颜色,但不会设置墙纸。

配置中的所有其他脚本 运行 都很好,除了这两个。 运行 它们在终端中单独运行总是有效。

这是 .config/i3/config 的一部分:

exec_always --no-startup-id /usr/bin/change-wallpaper
exec_always --no-startup-id $HOME/.config/polybar/launch.sh

这是换壁纸(我用的是pywal):

#!/bin/sh
files=(/home/marlon/Pictures/Wallpapers/*)
wal -i "${files[RANDOM % ${#files[@]}]}"

这是启动 polybar 的脚本:

#!/usr/bin/env bash
killall -q polybar
polybar bar1 >>/tmp/polybar1.log 2>&1 &

如果我从配置中删除更改壁纸,polybar 运行一直都很好。

我已经尝试过使用完整路径、更改顺序、仅使用一个脚本来完成这两项操作,但到目前为止没有任何效果。

如果像你说的那样,只有一半的脚本运行s。最有可能的是,那些显然没有 运行 的部分,它们实际上 运行,但由于某种原因失败了,你看不到这些命令通常具有的效果。

在这些情况下,程序通常会编写某种错误消息。所以这主要是一个调试问题。 对于 polybar,您已经将输出重定向到位于 /tmp/polybar1.log 的日志文件。此文件很可能包含有关栏无法启动的原因的信息。

我建议你对你的 pywal 脚本做同样的事情,看看为什么它无法设置壁纸。