emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Samuel Wales <samologist@gmail.com>
To: Max Nikulin <manikulin@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Getting X selection reliably (Re: idea for capture anywhere in x)
Date: Thu, 27 Oct 2022 21:59:13 -0700	[thread overview]
Message-ID: <CAJcAo8sovXVdMfw1nnHNHpLBnHe7M51mSNKQpfX6bS7eyKKjuA@mail.gmail.com> (raw)
In-Reply-To: <tjd8p0$4k8$1@ciao.gmane.io>

i do not use emacs daemon or systemd.  have not tried running emacs
from cron i think.

i launch emacs from xinit or fluxbox menu.  sometimes from a shell.  i
run emacs as a cli batch thing from a shell.

[and i run emacs on linux console when nec.  it is inaccessible for
reasons like blinking cursor.]


On 10/26/22, Max Nikulin <manikulin@gmail.com> wrote:
> On 26/10/2022 11:58, Ihor Radchenko wrote:
>>
>> Yes. From org-capture-templates docstring:
>>
>>    %x          Content of the X clipboard.
>
> Ihor, I am afraid there are a couple of pitfalls with "%x" for Samuel
> since he prefers to keep Emacs hidden so can not check result.
>
> 1. If something goes wrong, e.g. some application does not put
> highlighted text to PRIMARY selection then wrong source (CLIPBOARD) or
> empty string may be silently captured. I would prefer explicit source
> however it will not protect against stale selection from the same source.
>
> Simulate empty selection:
> echo | xsel -bi ; echo | xsel -i ; killall xsel
>
> 2. Jean pointed out that Emacs ignores X selection if it does not have
> an X frame. It was almost buried in the haystack of "SQL instead of Org"
> noise. It happens if Emacs is running as a daemon. I am unsure which way
> Samuel starts Emacs (xinit, systemd user session, systemd socket
> activation, manually, etc.)
>
> What I do not like that error text is captured and no error is returned
> to emacsclient, so checks must be performed in advance.
>
> My suggestion:
> ~/examples/org/capture-daemon.el
> ---- >8 ----
> (defun nm-check-selection (selection)
>    (let ((display (org-string-nw-p (getenv "DISPLAY"))))
>      (if display
>          (server-select-display display)
>        (error "No DISPLAY")))
>    (if (org-get-x-clipboard selection)
>        t
>      (error "No %S selection" selection)))
>
> (custom-set-variables
>   '(org-capture-templates
>     '(("x" "%x (test)" entry
>        (file "/tmp/capture-test.org")
>        "* Entry
> %U
>
> %x
> "
>        :immediate-finish t)
>       ("p" "primary" entry
>        (file "/tmp/capture-test.org")
>        "* Primary
> %U
>
> %(org-get-x-clipboard 'PRIMARY)
> "
>         :immediate-finish t))))
>
> (require 'org-capture)
> ---- 8< ----
>
> emacs -Q -L ~/src/org-mode/lisp/ \
>     -L /usr/share/emacs/site-lisp/elpa/htmlize-1.55/ \
>     --daemon --load ~/examples/org/capture-daemon.el
>
> emacsclient --eval "(nm-check-selection 'PRIMARY)" \
>     --eval '(org-capture nil "p")'
>
> the latter command has non-zero exit code in the case of empty selection.
>
>
>
>


-- 
The Kafka Pandemic

A blog about science, health, human rights, and misopathy:
https://thekafkapandemic.blogspot.com


  reply	other threads:[~2022-10-28  5:03 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-08  4:22 idea for capture anywhere in x Samuel Wales
2020-09-08  5:01 ` Tim Cross
2020-09-08  5:05   ` Samuel Wales
2020-09-08  5:21     ` Tim Cross
2020-09-08  7:18       ` Maxim Nikulin
2020-09-08  8:03         ` Diego Zamboni
2020-09-08 16:08           ` Maxim Nikulin
2020-09-08  5:39     ` Maxim Nikulin
2020-09-08 22:40       ` Samuel Wales
2020-09-09  4:52         ` Maxim Nikulin
2020-09-10 14:23           ` Maxim Nikulin
2020-09-12  8:48             ` Nick Econopouly
2022-06-10  2:35               ` Samuel Wales
2022-06-10  9:59                 ` Charles Philip Chan
2022-06-11  4:11                 ` Ihor Radchenko
2022-06-13  7:46                 ` Max Nikulin
2022-06-13  9:10                 ` Michal Politowski
2022-06-13 10:04                   ` Max Nikulin
2022-06-13 14:02                     ` Michal Politowski
2022-10-12  1:09                       ` Samuel Wales
2022-10-09 14:47                 ` Jean Louis
2022-10-09 16:40                   ` Max Nikulin
2022-10-09 17:08                     ` Jean Louis
2022-10-10 17:16                       ` Max Nikulin
2022-10-10 22:06                         ` Jean Louis
2022-10-11  9:11                           ` Juan Manuel Macías
2022-10-12  1:09                             ` Samuel Wales
2022-10-15  3:40                               ` Max Nikulin
2022-10-26  4:40                                 ` Samuel Wales
2022-10-26  4:58                                   ` Ihor Radchenko
2022-10-26  5:05                                     ` Samuel Wales
2022-10-26  6:05                                       ` desktop notifications (Re: idea for capture anywhere in x) Max Nikulin
2022-10-26  6:22                                         ` Samuel Wales
2022-10-26  7:41                                           ` Max Nikulin
2022-10-26  8:07                                             ` Samuel Wales
2022-10-26  8:29                                               ` Max Nikulin
2022-10-27  6:33                                     ` Getting X selection reliably " Max Nikulin
2022-10-28  4:59                                       ` Samuel Wales [this message]
2022-10-28  5:16                                         ` Max Nikulin
2022-10-28  8:39                                           ` Dr. Arne Babenhauserheide
2022-10-28 16:38                                             ` Max Nikulin
2022-10-28 23:07                                               ` Samuel Wales
2022-10-29  3:21                                                 ` Max Nikulin
2022-10-29  2:59                                           ` Ihor Radchenko
2022-10-29  3:30                                             ` Max Nikulin
2022-10-29  6:03                                               ` Samuel Wales
2022-10-29  7:33                                                 ` Max Nikulin
2022-10-29 22:33                                                 ` Samuel Wales
2022-10-29  4:50                                             ` Samuel Wales
2022-10-29  4:59                                               ` Ihor Radchenko
2022-10-29  7:44                                                 ` desktop notifications " Max Nikulin
2022-10-29 23:07                                                   ` Samuel Wales
2022-10-30  4:49                                                     ` Ihor Radchenko
2022-11-13  4:54                                       ` Getting X selection reliably " Ihor Radchenko
2022-11-13 11:03                                         ` Max Nikulin
2022-11-14  2:06                                           ` Ihor Radchenko
2022-11-16  4:03                                             ` Samuel Wales
2022-11-16 16:46                                               ` Debugging firefox extension " Max Nikulin
2022-11-17  3:16                                                 ` Samuel Wales
2022-11-17  9:42                                                   ` Jean Louis
2022-11-17 16:12                                                   ` Max Nikulin
2022-11-17  7:18                                               ` Getting X selection reliably " Jean Louis
2022-11-17 15:30                                                 ` Reliability of org-protocol browser extensions Max Nikulin
2022-12-04  5:21                                             ` Getting X selection reliably (Re: idea for capture anywhere in x) Max Nikulin
2022-10-12 17:16                           ` idea for capture anywhere in x Max Nikulin
2022-10-12 20:06                             ` Jean Louis
2020-09-09  8:40     ` Russell Adams
2020-09-09 21:11       ` Samuel Wales
2020-09-09  1:07 ` 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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  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=CAJcAo8sovXVdMfw1nnHNHpLBnHe7M51mSNKQpfX6bS7eyKKjuA@mail.gmail.com \
    --to=samologist@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=manikulin@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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