{ pkgs, }: pkgs.writeShellScriptBin "chscheme" '' selected_scheme=$(/usr/bin/env ls "$(nix-build '' -A base16-schemes)"/share/themes | \ sed 's/\.yaml//g' | \ fzf --preview 'cat $(nix-build "" -A base16-schemes)/share/themes/{}.yaml | \ while IFS=": " read -r key value; do \ if [[ $key =~ base0[0-9A-F] ]]; then \ clean_value=$(echo $value | tr -d "\""); \ r=$((16#''${clean_value:0:2})); \ g=$((16#''${clean_value:2:2})); \ b=$((16#''${clean_value:4:2})); \ printf "\033[48;2;%d;%d;%dm %-20s %s \033[0m\n" $r $g $b $key $clean_value; \ fi; \ done') if [[ -z "$selected_scheme" ]]; then echo "Aborting color scheme change." exit 1 fi echo "$selected_scheme" | xargs -I {} sed -i '/base16scheme\s*=\s*"/s/"[^"]*"/"{}"/' "$FLAKEPATH"/flake.nix if [ $? -ne 0 ]; then echo "Failed to change color scheme." exit 1 fi echo "Successfully changed system color scheme. Rebuild now?" select choice in "Yes" "No"; do case $choice in "Yes") rebuild exit 0 ;; "No") echo "Exiting..." exit 0 ;; esac done ''