emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Tim Cross <theophilusx@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: org-clock idle time in pgtk Emacs
Date: Tue, 24 May 2022 20:27:09 +1000	[thread overview]
Message-ID: <877d6bgqyd.fsf@gmail.com> (raw)
In-Reply-To: <875ylvnxf9.fsf@free.fr>

Julien Cubizolles <j.cubizolles@free.fr> writes:

> 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.

I"m not sure this is accurate. You should only use the pgtk build of
Emacs if your running wayland. You definitely should not use it if your
running under X.

The big issue is that some important key input facilities don't work
correctly if you run the pgtk build under X (actually, I'm not sure they
work correctly under Wayland either, but then again, Wayland is a
different beast to X and differences can be expected).

The pgtk build is not a replacement for the current xlib+gtk build,
which will remain the correct build when running under X.
Unfortunately, this does mean that if you use both X and Wayland, you
likely will need two builds of Emacs.

There was a fairly long discussion thread about this on emacs-devel
about a month or so ago. The upshot was flagging the need to update the
documentation to clarify that people should not use the pgtk build when
running under X windows.

I suspect this means the below patch will need further refinement. 

> 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.
> 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))))
> #!/usr/bin/env python3
> from idle_time import IdleMonitor
> monitor = IdleMonitor.get_monitor()
> print(f"{1000*monitor.get_idle_time():.0f}")

  reply	other threads:[~2022-05-24 10:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-24  8:32 org-clock idle time in pgtk Emacs Julien Cubizolles
2022-05-24 10:27 ` Tim Cross [this message]
2022-05-25  6:38 ` Ihor Radchenko
2023-01-31 16:24   ` Julien Cubizolles
2023-02-01 13:15     ` Ihor Radchenko
2023-02-01 15:45       ` Max Nikulin
2023-02-02  9:17         ` Ihor Radchenko
2023-02-03  5:55       ` Julien Cubizolles
2023-02-03 12:17         ` Ihor Radchenko
2023-02-03 15:07           ` Max Nikulin
2023-02-04 11:04             ` Ihor Radchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877d6bgqyd.fsf@gmail.com \
    --to=theophilusx@gmail.com \
    --cc=emacs-orgmode@gnu.org \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).