org-clock checks for the 'x window-system in order to use the program set up by org-clock-x11idle-program-name. Recent Emacs versions use the 'pgtk instead of 'x and as such will default to using org-emacs-idle-seconds in org-user-idle-seconds.
The following patch provides a crude workaround. I'm using a python program (included below) to report idletime in wayland, using the idle-time module. It can be used for org-clock-x11idle-program-name. --8<---------------cut here---------------start------------->8--- modified lisp/org-clock.el @@ -1196,7 +1196,7 @@ If `only-dangling-p' is non-nil, only ask to resolve dangling (defvar org-x11idle-exists-p ;; Check that x11idle exists - (and (eq window-system 'x) + (and (or (eq window-system 'pgtk) (eq window-system 'x)) (eq 0 (call-process-shell-command (format "command -v %s" org-clock-x11idle-program-name))) ;; Check that x11idle can retrieve the idle time @@ -1213,7 +1213,7 @@ This routine returns a floating point number." (cond ((eq system-type 'darwin) (org-mac-idle-seconds)) - ((and (eq window-system 'x) org-x11idle-exists-p) + ((and (or (eq window-system 'x) (eq window-system 'pgtk)) org-x11idle-exists-p) (org-x11-idle-seconds)) (t (org-emacs-idle-seconds)))) --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- #!/usr/bin/env python3 from idle_time import IdleMonitor monitor = IdleMonitor.get_monitor() print(f"{1000*monitor.get_idle_time():.0f}") --8<---------------cut here---------------end--------------->8--- -- Julien Cubizolles