Ok, then it looks like that may be something terminal related.
I use allacrity which reloads colors from its config file every time there is a change and wal modifies this config → therefore it works for me.
For you, as you mentioned, you use Kitty terminal.
This link mentiones something about theming for the terminal.
Basicaly you can create your own theme
~/.config/kitty/kitty_wal_theme.conf
and switch to that theme kitty_wal_theme
in Kitty terminal.
I have no idea what should be in that file but perhaps there is a template file somewhere in the .config
directory.
From that you can create a template file for wal
like
~/.config/wal/templates/kitty_wal_theme.conf
The template has to substitute colors with {colorX}
flag.
For example if the final kitty theme file should look like this
click here for kitty config file
primary:
background: '#161e16'
foreground: '#dce3e5'
# Normal colors
normal:
black: '#161e16'
red: '#8EB890'
green: '#9DBEA3'
yellow: '#9EC1A3'
blue: '#A2C1A4'
magenta: '#B2D3DA'
cyan: '#B6D5E1'
white: '#dce3e5'
# Bright colors
bright:
black: '#9a9ea0'
red: '#8EB890'
green: '#9DBEA3'
yellow: '#9EC1A3'
blue: '#A2C1A4'
magenta: '#B2D3DA'
cyan: '#B6D5E1'
white: '#dce3e5'
The template should look like this
click here for wal template file
primary:
background: '{background}'
foreground: '{foreground}'
# Normal colors
normal:
black: '{color0}'
red: '{color1}'
green: '{color2}'
yellow: '{color3}'
blue: '{color4}'
magenta: '{color5}'
cyan: '{color6}'
white: '{color7}'
# Bright colors
bright:
black: '{color8}'
red: '{color9}'
green: '{color10}'
yellow: '{color11}'
blue: '{color12}'
magenta: '{color13}'
cyan: '{color14}'
white: '{color15}'
wal
will generate the file somewhere in .cache
every time you run wal -i
command.
You just have to copy it to the kitty config directory and switch to that theme.
It is best to use a little script for that.
A script ~/.config/wal/wal_theme.sh
(do not forget to set chmod +x flag on it so it can execute)
#!/bin/bash
case "$1" in
--set_new)
# update theme with new wallpaper
wal -i "$2"
# copy kitty theme
cp -f ~/.cache/wal/kitty_wal_theme.conf ~/.config/kitty/kitty_wal_theme.conf
# set new theme in kitty
kitty +kitten themes --reload-in=all kitty_wal_theme
;;
--reload)
# reload theme from cache
wal -R
# copy kitty theme
cp -f ~/.cache/wal/kitty_wal_theme.conf ~/.config/kitty/kitty_wal_theme.conf
# set new theme in kitty
kitty +kitten themes --reload-in=all kitty_wal_theme
;;
esac
You should be able to test this script from the terminal.
~/.config/wal/wal_theme.sh` --set_new "path/to/your/wallpaper"
And in your i3wm config you can have this line to reload theme on every i3wm restart.
exec_always --no-startup-id "~/.config/wal/wal_theme.sh --reload"
Please note that I did not thest these scripts so I do not know if they are correct.
One more option is to load colors in bash
## theme options
shopt -q login_shell
if [[ $? != 0 ]]; then
[[ -f "${HOME}/.cache/wal/sequences" ]] && cat "${HOME}/.cache/wal/sequences"
fi
[[ -f "${HOME}/.cache/wal/colors-tty.sh" ]] && source "${HOME}/.cache/wal/colors-tty.sh"
I used to use this approach some time ago but I have no idea what will id do to your termianls.
It also sets the color theme for tty but I found it somewhat problematic because when I have to do something in tty it means i3wm is broken and most likely theme may be broken as well → tty becomes problematic to use.