fix have_external_monitor() return value

return $? explicitly so it's evaluated correctly
minor improvements, comment edits