Add article
This commit is contained in:
parent
18b8999f50
commit
ce7489f5e2
95
pages/Pywal integration with wallpaper-spmenu.md
Normal file
95
pages/Pywal integration with wallpaper-spmenu.md
Normal file
|
@ -0,0 +1,95 @@
|
|||
Pywal integration with wallpaper-spmenu
|
||||
=======================================
|
||||
|
||||
This wiki article goes through Pywal integration with
|
||||
[wallpaper-spmenu](https://git.speedie.site/speedie/wallpaper-spmenu),
|
||||
a tool used to set wallpapers on X or Wayland using spmenu (hence why
|
||||
it's on this wiki). It also assumes that all your software
|
||||
is set up to use Pywal. It will not be covered here.
|
||||
|
||||
Before you can do this, you must run `wallpaper-spmenu` once, to create
|
||||
the wallpaperrc configuration file. This file is located in
|
||||
`~/.config/wallpaper-spmenu/wallpaperrc` by default. If the file exists
|
||||
you can continue.
|
||||
|
||||
What we want to do is append some extra lines to the `set_wallpaper.sh`
|
||||
script. This script is the script that sets the wallpaper, and is usually
|
||||
autostarted by your window manager, if you've set it up to be autostarted.
|
||||
|
||||
### Creating a post_write_script() hook function
|
||||
|
||||
Open the config file up in your favorite text editor. You need to add a
|
||||
`post_write_script()` function to this file. This function as the name
|
||||
implies executes whenever the `set_wallpaper.sh` has been changed. A
|
||||
simple example function might look like this:
|
||||
|
||||
```
|
||||
post_write_script() {
|
||||
cat << EOF >> "$WALLPAPER_CONFIG_DIR/set_wallpaper.sh"
|
||||
wal -nqi "$1"
|
||||
}
|
||||
```
|
||||
|
||||
This function simply adds `wal -nqi "$1"` to it. `$1` refers to the first
|
||||
argument, which is going to be the path to the wallpaper that was set. I
|
||||
would probably add some other things to this script, such as deleting the
|
||||
Pywal cache before `wal -nqi "$1"`.
|
||||
|
||||
If you want to replicate the behaviour of the old `speedwm-swal` script,
|
||||
you might want your function to look like this:
|
||||
|
||||
```
|
||||
post_write_script() {
|
||||
cat << EOF >> "$WALLPAPER_CONFIG_DIR/set_wallpaper.sh"
|
||||
|
||||
rm -rf "$HOME/.cache/wal"
|
||||
xrdb -remove
|
||||
wal -nqi "$1"
|
||||
|
||||
xrdb ~/.cache/wal/colors.Xresources
|
||||
|
||||
command -v libspeedwm > /dev/null && \
|
||||
pidof speedwm > /dev/null && \
|
||||
libspeedwm --perform core_wm_reload
|
||||
|
||||
$WALLPAPER_CONFIG_DIR/postrun.sh
|
||||
EOF
|
||||
|
||||
command -v speedwm > /dev/null && \
|
||||
pidof speedwm > /dev/null && \
|
||||
speedwm -s "Loading"
|
||||
}
|
||||
```
|
||||
|
||||
It should be noted that some of this is speedwm specific, and as such
|
||||
should be deleted if you're using a different window manager/compositor.
|
||||
|
||||
### startpage integration
|
||||
|
||||
If you're using [startpage](https://git.speedie.site/speedie/startpage),
|
||||
and wish to copy the wallpaper, you'll need to copy the script for your
|
||||
chosen web browser to `~/.config/wallpaper-spmenu` and rename it to
|
||||
`postrun.sh`.
|
||||
|
||||
Then add `$WALLPAPER_CONFIG_DIR/postrun.sh` to your `post_write_script()`
|
||||
function before the `EOF`.
|
||||
|
||||
**NOTE: The script assumes that the startpage index is located at
|
||||
~/.config/startpage/index.html. If it isn't, you MUST change the
|
||||
PREFIX variable in the script.**
|
||||
|
||||
Do note that older versions of the startpage may set CWAL to
|
||||
`$HOME/.config/speedwm/swal/CurrentWallpaper`.
|
||||
If this is the case then you'll want to change it to
|
||||
`$HOME/.config/wallpaper-spmenu/currentwallpaper`.
|
||||
|
||||
### speedwm dynamic reloading integration
|
||||
|
||||
To reload colors automatically, you should add
|
||||
`xrdb ~/.cache/wal/colors.Xresources` and
|
||||
`libspeedwm libspeedwm --perform core_wm_reload` to
|
||||
the file. The libspeedwm line simply signals to speedwm that
|
||||
it should attempt to reload .Xresources. The xrdb line loads
|
||||
the Pywal colors, and must therefore be added before the
|
||||
libspeedwm line.
|
||||
|
Loading…
Reference in a new issue