blob: 70c6a10e89d6c4e0e72f64e03398962400b1d145 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
;;;; SPDX-FileCopyrightText: Atlas Engineer LLC
;;;; SPDX-License-Identifier: BSD-3-Clause
(in-package :nyxt)
(-> ring-insert-clipboard (containers:ring-buffer-reverse) (maybe string))
(export-always 'ring-insert-clipboard)
(defun ring-insert-clipboard (ring)
"Check if clipboard-content is most recent entry in RING.
If not, insert clipboard-content into RING.
Return most recent entry in RING."
(let ((clipboard-content (handler-case (trivial-clipboard:text)
(uiop:subprocess-error ()
nil))))
(when clipboard-content
(unless (string= clipboard-content (unless (containers:empty-p ring)
(containers:first-item ring)))
(containers:insert-item ring clipboard-content)))
(unless (containers:empty-p ring)
(string (containers:first-item ring)))))
(export-always 'copy-to-clipboard)
(defun copy-to-clipboard (input)
"Save INPUT text to clipboard, and ring."
(containers:insert-item
(clipboard-ring *browser*)
(trivial-clipboard:text input)))
|