add forced theming mode for terminal

This commit is contained in:
cupcat121
2025-09-06 11:30:46 +08:00
parent ffb8e284b4
commit b53de43c95
2 changed files with 20 additions and 6 deletions
@@ -8,6 +8,7 @@ CONFIG_DIR="$XDG_CONFIG_HOME/quickshell/$QUICKSHELL_CONFIG_NAME"
CACHE_DIR="$XDG_CACHE_HOME/quickshell"
STATE_DIR="$XDG_STATE_HOME/quickshell"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SHELL_CONFIG_FILE="$XDG_CONFIG_HOME/illogical-impulse/config.json"
term_alpha=100 #Set this to < 100 make all your terminals transparent
# sleep 0 # idk i wanted some delay or colors dont get applied properly
@@ -23,11 +24,19 @@ colorvalues=()
colornames=$(cat $STATE_DIR/user/generated/material_colors.scss | cut -d: -f1)
colorstrings=$(cat $STATE_DIR/user/generated/material_colors.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1)
colorstrings_dark=$(cat $STATE_DIR/user/generated/material_colors_dark.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1)
IFS=$'\n'
colorlist=($colornames) # Array of color names
colorvalues=($colorstrings) # Array of color values
colorvalues_dark=($colorstrings_dark) # Array of color values (dark mode)
apply_term() {
local applied_colorvalues=("${colorvalues[@]}")
local terminal_force_dark_theme="jq -r '.appearance.wallpaperTheming.forceTerminalDarkMode' $SHELL_CONFIG_FILE"
if [[ $(eval "$terminal_force_dark_theme") == "true" ]]; then
applied_colorvalues=("${colorvalues_dark[@]}")
fi
# Check if terminal escape sequence template exists
if [ ! -f "$SCRIPT_DIR/terminal/sequences.txt" ]; then
echo "Template file not found for Terminal. Skipping that."
@@ -38,7 +47,7 @@ apply_term() {
cp "$SCRIPT_DIR/terminal/sequences.txt" "$STATE_DIR"/user/generated/terminal/sequences.txt
# Apply colors
for i in "${!colorlist[@]}"; do
sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$STATE_DIR"/user/generated/terminal/sequences.txt
sed -i "s/${colorlist[$i]} #/${applied_colorvalues[$i]#\#}/g" "$STATE_DIR"/user/generated/terminal/sequences.txt
done
sed -i "s/\$alpha/$term_alpha/g" "$STATE_DIR/user/generated/terminal/sequences.txt"
@@ -58,14 +67,13 @@ apply_qt() {
}
# Check if terminal theming is enabled in config
CONFIG_FILE="$XDG_CONFIG_HOME/illogical-impulse/config.json"
if [ -f "$CONFIG_FILE" ]; then
enable_terminal=$(jq -r '.appearance.wallpaperTheming.enableTerminal' "$CONFIG_FILE")
if [ -f "$SHELL_CONFIG_FILE" ]; then
enable_terminal=$(jq -r '.appearance.wallpaperTheming.enableTerminal' "$SHELL_CONFIG_FILE")
if [ "$enable_terminal" = "true" ]; then
apply_term &
fi
else
echo "Config file not found at $CONFIG_FILE. Applying terminal theming by default."
echo "Config file not found at $SHELL_CONFIG_FILE. Applying terminal theming by default."
apply_term &
fi
@@ -264,11 +264,15 @@ switch() {
fi
fi
[[ -n "$mode_flag" ]] && matugen_args+=(--mode "$mode_flag") && generate_colors_material_args+=(--mode "$mode_flag")
[[ -n "$type_flag" ]] && matugen_args+=(--type "$type_flag") && generate_colors_material_args+=(--scheme "$type_flag")
generate_colors_material_args+=(--termscheme "$terminalscheme" --blend_bg_fg)
generate_colors_material_args+=(--cache "$STATE_DIR/user/generated/color.txt")
generate_colors_material_dark_args=("${generate_colors_material_args[@]}")
generate_colors_material_dark_args+=(--mode "dark")
[[ -n "$mode_flag" ]] && matugen_args+=(--mode "$mode_flag") && generate_colors_material_args+=(--mode "$mode_flag")
pre_process "$mode_flag"
# Check if app and shell theming is enabled in config
@@ -284,6 +288,8 @@ switch() {
source "$(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate"
python3 "$SCRIPT_DIR/generate_colors_material.py" "${generate_colors_material_args[@]}" \
> "$STATE_DIR"/user/generated/material_colors.scss
python3 "$SCRIPT_DIR/generate_colors_material.py" "${generate_colors_material_dark_args[@]}" \
> "$STATE_DIR"/user/generated/material_colors_dark.scss
"$SCRIPT_DIR"/applycolor.sh
deactivate