I've seen links to X11 flag setting that sets the current windows urgent hint.
Is there a portable way to do this in Emacs? Or does it need to be handled per-platform?
This is a snippet from @arne-babenhauserheide's site for making the frame urgent in X11, while it works it's not portable.
(defun my-frame-urgent-hint-set--for-x11 (frame arg &optional source) "Set the x11-urgency hint for the frame to arg: - If arg is nil, unset the urgency. - If arg is any other value, set the urgency. If you unset the urgency, you still have to visit the frame to make the urgency setting disappear." (let* ((wm-prop "WM_HINTS") ;; Constants. (wm-flag-urgent #x100) (wm-hints (append (x-window-property wm-prop frame wm-prop source nil t) nil)) (flags (car wm-hints))) (setcar wm-hints (if arg (logior flags wm-flag-urgent) (logand flags (lognot wm-flag-urgent)))) (x-change-window-property wm-prop wm-hints frame wm-prop 32 t))) (defun my-frame-urgent-hint-set (&optional arg) "Mark the current Emacs frame as requiring urgent attention. With a prefix argument which does not equal a boolean value of nil, remove the urgency flag (which might or might not change display, depending on the window manager)." (interactive "P") (let* ( (frame (selected-frame)) (win-system (window-system frame))) (cond ((eq win-system 'x) (my-frame-urgent-hint-set--for-x11 frame (not arg))) ;; TODO, other platforms. (t (message "Urgent hint for window system %S unsupported" win-system)))))