diff --git a/neofetch b/neofetch index 5414f86f..475f22ae 100755 --- a/neofetch +++ b/neofetch @@ -1584,6 +1584,28 @@ get_term_font() { "sakura"*) term_font="$(awk -F '=' '/^font=/ {a=$2} END{print a}' "${XDG_CONFIG_HOME}/sakura/sakura.conf")" ;; + + "konsole"*) + # Use Process ID from get_term(). + # The variable can include 'PPid:' and also whitespace + # so we get rid of it here. + parent="$(trim "${parent/PPid:}")" + + # Get PID of current child window / tab + child="$(get_ppid "$$")" + + # Get all konsole sessions of the parent (all child windows and tabs) + konsole_sessions=($(qdbus org.kde.konsole-"${parent}" | awk '/Sessions\//')) + + # Get profile of current session (window / tab) + for session in "${konsole_sessions[@]}"; do + if ((child == "$(qdbus org.kde.konsole-"${parent}" "${session}" processId)")); then + profile="$(qdbus org.kde.konsole-"${parent}" "${session}" environment | awk -F '=' '/KONSOLE_PROFILE_NAME/ {print $2}')" + break + fi + done + term_font="$(awk -F '=|,' '/Font=/ {print $2}' "${HOME}/.local/share/konsole/${profile}".profile)" + ;; esac }