#!/usr/bin/env bash # Generates an alacritty color config from currently loaded X resources. xrdb_grep() { xrdb -query | grep -E '^\*'"$1"':' } color_from_line() { read -r line && readonly line echo "${line/\#/0x}" | tr -d '[:space:]' | cut -d ':' -f 2 } readonly color_idx=(black red green yellow blue magenta cyan white) # Begin to print alacritty config. printf 'colors:\n' printf ' primary:\n' printf ' background:\t%s\n' "$(xrdb_grep 'background' | color_from_line)" printf ' foreground:\t%s\n' "$(xrdb_grep 'foreground' | color_from_line)" printf ' normal:\n' declare -i i=0 while read -r line; do if [[ $i == 8 ]]; then printf ' bright:\n' fi printf ' %s:\t%s\n' \ "${color_idx[((i % 8))]}" \ "$(echo "$line" | color_from_line)" i+=1 done < <(xrdb_grep 'color[[:digit:]]+' | sort -V)