Remove obsolete "Qutebrowser userscript" section

This commit is contained in:
Gerard Vermeulen 2024-06-14 15:00:05 +02:00
parent f30a790b01
commit 17a25a336c
2 changed files with 3 additions and 41 deletions

1
.gitignore vendored
View File

@ -19,7 +19,6 @@ example.py
init.el init.el
latexmkrc latexmkrc
nuggy.py nuggy.py
org-store-link
property-syntax-demonstration.org property-syntax-demonstration.org
pyproject.toml pyproject.toml
variables.el variables.el

View File

@ -1118,12 +1118,9 @@ Listing [[lst:configure-keycast]] configures =keycast=.
Emacs can act as a server that listens to a socket to share its state (for Emacs can act as a server that listens to a socket to share its state (for
instance buffers and command history) with other programs by means of a shell instance buffers and command history) with other programs by means of a shell
command =emacsclient=. Section [[#sec:latexmk-save-compile-display-loop]] and command =emacsclient=. Section [[#sec:latexmk-save-compile-display-loop]] how to
[[#sec:qutebrowser-userscript]] show how to use ~emacsclient~ to: use ~emacsclient~ to install an asynchronous (or background) loop of saving a
1. Install an asynchronous (or background) loop of saving a LaTeX file, LaTeX file, compiling it, and redisplaying the output in Emacs.
compiling it, and redisplaying the output in Emacs.
2. Make [[https://qutebrowser.org][qutebrowser]] send html links with document titles to Emacs.
The code in listing [[lst:start-emacs-server]] starts the Emacs server.
#+caption[Start the Emacs server]: #+caption[Start the Emacs server]:
#+caption: Start the Emacs server. #+caption: Start the Emacs server.
@ -1174,40 +1171,6 @@ sub makeglossaries {
# End: # End:
#+end_src #+end_src
** [[https://qutebrowser.org/doc/userscripts.html][Qutebrowser userscript]]
:PROPERTIES:
:CUSTOM_ID: sec:qutebrowser-userscript
:END:
The next block contains an userscript that sends a [[info:org#The store-link protocol][store-link org-protocol]]
message with the url and the title from [[https://qutebrowser.org][qutebrowser]] to =emacsclient=. The
function =urlencode= translates the url and the title for the message. The
[[info:python#Examples<22>][Python urllib examples]] show how to use =urlencode=. The final =execvp= call
deals with a [[https://qutebrowser.org][qutebrowser]] userscript requirement: the =emacsclient= process must
get the PID of the userscript that must kill itself after the take-over.
Termination of the =emacsclient= process hands control back to [[https://qutebrowser.org][qutebrowser]].
On a [[https://en.wikipedia.org/wiki/POSIX][POSIX]] system, you can run the userscript from [[https://qutebrowser.org][qutebrowser]] or from a
terminal to see whether it works. In case you try to run it from Emacs, Emacs
may hang or die.
#+caption[Tangle a qutebrowser userscript]:
#+caption: Tangle a qutebrowser userscript.
#+header: :comments no
#+header: :tangle-mode (identity #o755)
#+name: lst:qutebrowser-userscript
#+begin_src python -n :eval never :tangle org-store-link
#!/usr/bin/env python
from urllib.parse import urlencode
from os import environ, execvp
url = environ.get("QUTE_URL", "https://orgmode.org")
title = environ.get("QUTE_TITLE", "Org Mode")
parameters = urlencode({"url": url, "title": title})
print(payload := f"org-protocol://store-link?{parameters}")
execvp("emacsclient", ("-n", payload))
#+end_src
** TODO Org-protocol handling with other browser on Darwin :noexport: ** TODO Org-protocol handling with other browser on Darwin :noexport:
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: sec:org-protocol-darwin :CUSTOM_ID: sec:org-protocol-darwin