From 82c41cc2f714c928b9651e785ea547432be313de Mon Sep 17 00:00:00 2001 From: Frantisek Bohacek Date: Sat, 27 Jul 2024 12:54:39 +0200 Subject: [PATCH] fix: add missing emacs-anywhere.el --- .../profiles/desktop/dwl/emacs-anywhere.el | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 home/modules/profiles/desktop/dwl/emacs-anywhere.el diff --git a/home/modules/profiles/desktop/dwl/emacs-anywhere.el b/home/modules/profiles/desktop/dwl/emacs-anywhere.el new file mode 100644 index 0000000..4ea5557 --- /dev/null +++ b/home/modules/profiles/desktop/dwl/emacs-anywhere.el @@ -0,0 +1,51 @@ +(require 'server) + +(server-eval-at "server" '(let + ((frame (make-frame-command)) + (buffer (generate-new-buffer "*emacs-anywhere*"))) + + (defun my-emacs-anywhere-capture () + "Open a buffer called *emacs-anywhere*, wait for user input, and return the buffer content when C-c C-c is pressed." + (interactive) + (let ((buffer-name "*emacs-anywhere*")) + (with-current-buffer (get-buffer-create buffer-name) + (erase-buffer) + (local-set-key (kbd "C-c C-c") 'my-emacs-anywhere-finish-capture) + (local-set-key (kbd "C-c C-k") 'my-emacs-anywhere-abort-capture) + (message "Type your input. Press C-c C-c to finish.") + (switch-to-buffer buffer-name)))) + + + (defvar my-emacs-anywhere-content nil + "Variable to store the content captured from *emacs-anywhere* buffer.") + + (defun my-emacs-anywhere-finish-capture () + "Finish capturing input and return the content of the *emacs-anywhere* buffer." + (interactive) + (let ((content (buffer-string))) + (setq my-emacs-anywhere-content content) + (kill-buffer buffer) + (delete-frame frame))) + + (defun my-emacs-anywhere-abort-capture () + "Finish capturing input and return the content of the *emacs-anywhere* buffer." + (interactive) + (setq my-emacs-anywhere-content t) + (kill-buffer buffer) + (delete-frame frame)) + + (select-frame frame) + (switch-to-buffer buffer) + (erase-buffer) + (my-emacs-anywhere-capture) + (setq my-emacs-anywhere-content nil) + t)) + +(while (let ((my-emacs-anywhere-content (server-eval-at "server" 'my-emacs-anywhere-content))) + (or (not my-emacs-anywhere-content) + (and + (with-temp-buffer + (insert my-emacs-anywhere-content) + (write-region (point-min) (point-max) "/dev/stdout")) + f))) + (sit-for 0.1)) -- 2.48.1