Add iTerm2 debugging script
parent
b9ad552649
commit
aa26c73521
@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env zsh
|
||||
#vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8
|
||||
|
||||
if [[ "$TERM_PROGRAM" != "iTerm.app" ]]; then
|
||||
print "Your Terminal Emulator does not appear to be iTerm2!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local normalFont
|
||||
local type
|
||||
local command
|
||||
local ambiguousDoubleWidth
|
||||
local minimumContrast
|
||||
local useDifferentFont
|
||||
|
||||
# Unfortunately the profile name is not unique, but it seems to be the only thing
|
||||
# that identifies an active profile. There is the "id of current session of current window"
|
||||
# thou, but that does not match to a guid in the plist.
|
||||
# So, be warned! Collisions may occur!
|
||||
# See: https://groups.google.com/forum/#!topic/iterm2-discuss/0tO3xZ4Zlwg
|
||||
local currentProfileName=$(osascript -e 'tell application "iTerm2" to profile name of current session of current window')
|
||||
|
||||
# Warning: Dynamic profiles are not taken into account here!
|
||||
# https://www.iterm2.com/documentation-dynamic-profiles.html
|
||||
|
||||
# Count Guids in "New Bookmarks"; they should be unique
|
||||
local profilesCount=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:" ~/Library/Preferences/com.googlecode.iterm2.plist 2>/dev/null | grep -c "Guid")
|
||||
for idx in $(seq 0 "${profilesCount}"); do
|
||||
local profileName=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Name:" ~/Library/Preferences/com.googlecode.iterm2.plist 2>/dev/null)
|
||||
if [[ "${profileName}" == "${currentProfileName}" ]]; then
|
||||
# "Normal Font"
|
||||
normalFont=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Normal\ Font:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
type=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Terminal\ Type:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
command=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Command:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
ambiguousDoubleWidth=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Ambiguous\ Double\ Width:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
minimumContrast=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Minimum\ Contrast:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
|
||||
# Font for non-ascii characters
|
||||
# Only check for a different non-ascii font, if the user checked
|
||||
# the "use a different font for non-ascii text" switch.
|
||||
useDifferentFont=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Use\ Non-ASCII\ Font:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
if [[ "$useDifferentFont" == "true" ]]; then
|
||||
nonAsciiFont=$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${idx}:Non\ Ascii\ Font:" ~/Library/Preferences/com.googlecode.iterm2.plist)
|
||||
if [[ "$normalFont" != "$nonAsciiFont" ]]; then
|
||||
normalFont="$normalFont (normal) / $nonAsciiFont (non-ascii)"
|
||||
fi
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
print -P "You use %F{blue}iTerm2%f with the following settings:"
|
||||
print -P " Font: ${normalFont}"
|
||||
print -P " Terminal-Type: ${type}"
|
||||
print -P " Command: ${command}"
|
||||
|
||||
#############################
|
||||
# Analyse possible problems #
|
||||
#############################
|
||||
local problemsFound
|
||||
if [[ "${ambiguousDoubleWidth}" == "true" ]]; then
|
||||
problemsFound="${problemsFound}\n * Please uncheck 'Treat ambiguous characters as double-width'."
|
||||
fi
|
||||
if (( minimumContrast > 0 )); then
|
||||
problemsFound="${problemsFound}\n * Please set minimum contrast to zero."
|
||||
fi
|
||||
if [[ $(echo "${normalFont}" | grep -c -E "Powerline|Awesome|Nerd") -eq 0 ]]; then
|
||||
problemsFound="${problemsFound}\n * It does not seem like you use an Powerline-enabled or Awesome Terminal Font!"
|
||||
fi
|
||||
|
||||
#############################
|
||||
# Output problems #
|
||||
#############################
|
||||
if [[ -n "${problemsFound}" ]]; then
|
||||
print -P "\n"
|
||||
print -P "%F{yellow}Possible Problems found:%f"
|
||||
print -P "${problemsFound}"
|
||||
else
|
||||
print -P "%F{green}No Problems found%f. Yay!"
|
||||
fi
|
Loading…
Reference in New Issue