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
next prev parent 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).