-# 44 seems to be the number of color escape characters used by grep
-todo | cut -c-$((COLUMNS + 44))
+if (( $+commands[checkupdates] )); then
+ # checkupdate.service populates this db
+ pkg_count=$(CHECKUPDATES_DB=/tmp/checkup-db-0 checkupdates -n | grep -cv '\[.*\]')
+fi
+
+if (( $+commands[task] )); then
+ # this is moved after checkupdates above because it introduces enough of a delay
+ # for the terminal width calculation to have the right width stored
+ # see https://github.com/wez/wezterm/issues/5137
+ task rc.verbose:0 motd limit:5
+fi
+
+if (( ${pkg_count:-0} > 0 )); then
+ short "Outdated packages: $pkg_count"
+fi
+
+if (( $+commands[pacman] )); then
+ kercmp -q || short "linux" "$(kercmp)"
+fi
+
+if (( $+commands[systemctl] )); then
+ systemctl --system --no-pager list-units -q --failed
+ systemctl --user --no-pager list-units -q --failed
+fi
+
+# list sessions if possible
+tmux list-sessions 2>/dev/null || true