Я пытаюсь написать bash-скрипт, который будет использовать pywal для установки пользовательской темы для моего xfce4-терминала на основе фонового изображения, на котором отображается окно xfce4-терминала. В настоящее время я использую xfconf-query, чтобы вручную получить фоновое изображение рабочего стола на основе моих дисплеев, но я хотел бы иметь возможность динамически получать эту информацию, чтобы я мог перейти к новым установкам или распространить среди других людей. Я также хотел бы, чтобы скрипт обнаруживал, когда я перемещал свой терминал на другой монитор (у которого были бы другие обои). Это то, что в настоящее время используется, чтобы получить обои только для моего основного дисплея:
wallpaper="$(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDP-4/workspace0/last-image)"
Эта часть - то, что я хотел бы получить динамически в зависимости от того, в каком окне отображается терминал:
/backdrop/screen0/monitorDP-4/workspace0/last-image
Это то, чтоможно сделать относительно легко? Полный код ниже на случай, если это поможет
#!/bin/bash
#background_monitor.sh
#runs pywal when xfce background changes
#to do:
#1. figure out how to find what window terminal is running on then adjust for that
#2. figure out how to dynamically get /backdrop/screen0/ part so it works on other installs
wallpaper2=""
#I think I'll eventually need to get the terminal PID maybe?
#terminalPID=$(ps -ef | grep xfce4-terminal | grep -v grep | awk '{print $2}')
#this part is for passing arguments if you want to run the script from cmdline only
if [ "$1" = "1" ]
then
wallpaper="$(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDP-4/workspace0/last-image)"
break
elif [ "$1" = "2" ]
then
wallpaper="$(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorHDMI-0/workspace0/last-image)"
break
fi
#this part is for running it from .bashrc so it is running when I open a term window
#currently defaults to my main display. Maybe there's a better way than infinite while loop and running from bashrc?
while :
do
wallpaper="$(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDP-4/workspace0/last-image)"
##get which monitor terminal is currently running on would go here
#run pywal to change terminal theme to match current desktop background
while [ "$wallpaper" != "$wallpaper2" ]
do
wal -i $wallpaper -n -q
wallpaper2="$(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDP-4/workspace0/last-image)"
done
sleep 3
done