I have the following function, written by Peter years ago, in my .zshrc: schedprompt() { emulate -L zsh zmodload -i zsh/sched integer i=${"${(@)zsh_scheduled_events#*:*:}"[(I)schedprompt]} (( i )) && sched -$i zle && zle reset-prompt sched +30 schedprompt } It refreshes the prompt every 30 seconds, which is very nice. I also have the following little widget, which displays the current dir stack below the command line: _show_dirs() { zle -M "$(dirs -vl)" } However, the schedprompt-function makes the output from "zle -M" disappear, so that sometimes when I have used the widget to display the dir stack, it disappears because of the refresh. Is there a way to either disable the prompt refresh while the message is displayed, or, alternatively, to redisplay the message after a prompt refresh?