53 lines
2.2 KiB
Bash
Executable file
53 lines
2.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set_fzf_theme() {
|
|
local appearance="$1"
|
|
# Detect the current system appearance (Light or Dark mode) for Linux and macOS
|
|
if [ -z "$appearance" ]; then
|
|
if [ "$(uname)" = "Darwin" ]; then
|
|
# macOS
|
|
appearance=$(defaults read -g AppleInterfaceStyle 2>/dev/null)
|
|
elif [ "$(uname)" = "Linux" ]; then
|
|
# Linux - try multiple desktop environments
|
|
if command -v gsettings >/dev/null 2>&1; then
|
|
# GNOME/GTK
|
|
appearance=$(gsettings get org.gnome.desktop.interface gtk-theme 2>/dev/null)
|
|
elif command -v kreadconfig5 >/dev/null 2>&1; then
|
|
# KDE Plasma
|
|
appearance=$(kreadconfig5 --file kdeglobals --group General --key ColorScheme 2>/dev/null)
|
|
elif [ -f "$HOME/.config/xsettingsd/xsettingsd.conf" ]; then
|
|
# Check xsettingsd for theme
|
|
appearance=$(grep -i "theme" "$HOME/.config/xsettingsd/xsettingsd.conf" 2>/dev/null | head -1)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# If still empty, check environment variables as fallback
|
|
if [ -z "$appearance" ]; then
|
|
if [ -n "$GTK_THEME" ]; then
|
|
appearance="$GTK_THEME"
|
|
elif [ -n "$QT_STYLE_OVERRIDE" ]; then
|
|
appearance="$QT_STYLE_OVERRIDE"
|
|
else
|
|
# Default to Dark mode if the system is not recognized
|
|
appearance="Dark"
|
|
fi
|
|
fi
|
|
|
|
# Set FZF theme based on appearance
|
|
if echo "$appearance" | grep -qi "dark" || [ -n "$TMUX" ]; then
|
|
# High Contrast Dark Theme - Much more readable than original Monokai
|
|
# Background: Dark gray (#1c1c1c) instead of Monokai green-tinted
|
|
# Foreground: Light gray (#d0d0d0) for better readability
|
|
# Selected line: Slightly lighter background (#262626) with bright white text (#ffffff)
|
|
# Highlights: Bright cyan (#5fd7ff) stands out clearly
|
|
FZF_DEFAULT_OPTS="--color=bg+:#262626,bg:#1c1c1c,spinner:#af5fff,hl:#5f87af,fg:#d0d0d0,header:#87afaf,info:#afaf87,pointer:#af5fff,marker:#87ff00,fg+:#ffffff,prompt:#d7005f,hl+:#5fd7ff,border:#585858,gutter:#1c1c1c"
|
|
else
|
|
# Solarized Light with better contrast for readability
|
|
FZF_DEFAULT_OPTS="--color=bg+:#fdf6e3,bg:#fdf6e3,spinner:#d33682,hl:#cb4b16,fg:#586e75,header:#d33682,info:#268bd2,pointer:#859900,marker:#859900,fg+:#002b36,prompt:#eee8d5,hl+:#b58900"
|
|
fi
|
|
echo "$FZF_DEFAULT_OPTS"
|
|
}
|
|
# Call the function if executed directly
|
|
if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
|
|
set_fzf_theme "$1"
|
|
fi
|