Added font detection for ConEmu
This commit is contained in:
parent
2b70a8b983
commit
f481d9f59c
43
neofetch
43
neofetch
|
@ -3202,6 +3202,49 @@ END
|
|||
# Default fallback font hardcoded in terminal-preferences.c
|
||||
[[ -z "$term_font" ]] && term_font="Monospace 12"
|
||||
;;
|
||||
|
||||
"conemu-"*)
|
||||
local ce_arg_list
|
||||
local ce_arg_idx
|
||||
local ce_conf
|
||||
|
||||
# Could have used `eval set -- "$ConEmuArgs"` instead for arg parsing but eval is evil...
|
||||
readarray -t ce_arg_list < <(xargs -n1 printf "%s\n" <<< "${ConEmuArgs-}")
|
||||
|
||||
for ce_arg_idx in "${!ce_arg_list[@]}"; do
|
||||
# Search for "-LoadCfgFile" arg
|
||||
[[ "${ce_arg_list[$ce_arg_idx]}" != -LoadCfgFile ]] && continue
|
||||
|
||||
# Conf path is the next arg
|
||||
((++ce_arg_idx))
|
||||
ce_conf="${ce_arg_list[$ce_arg_idx]}"
|
||||
break
|
||||
done
|
||||
|
||||
# https://conemu.github.io/en/ConEmuXml.html#search-sequence
|
||||
local ce_seq=(
|
||||
"$ce_conf"
|
||||
"$ConEmuDir\ConEmu.xml"
|
||||
"$ConEmuDir\.ConEmu.xml"
|
||||
"$ConEmuBaseDir\ConEmu.xml"
|
||||
"$ConEmuBaseDir\.ConEmu.xml"
|
||||
"$APPDATA\ConEmu.xml"
|
||||
"$APPDATA\.ConEmu.xml"
|
||||
)
|
||||
|
||||
for ce_conf in "${ce_seq[@]}"; do
|
||||
# Search for first conf file available
|
||||
[[ ! -f "$ce_conf" ]] && continue
|
||||
|
||||
# Very basic XML parsing
|
||||
term_font="$(awk '/name="FontName"/ && match($0, /data="([^"]*)"/) {print substr($0, RSTART+6, RLENGTH-7)}' "$ce_conf")"
|
||||
break
|
||||
done
|
||||
|
||||
# Null-terminated contents in /proc/registry files triggers a Bash warning. Use read instead
|
||||
[[ -z "$term_font" ]] && \
|
||||
read -r term_font < /proc/registry/HKEY_CURRENT_USER/Software/ConEmu/.Vanilla/FontName
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue