about summary refs log tree commit diff
path: root/emacs/.emacs.d/wpc/clipboard.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/wpc/clipboard.el')
-rw-r--r--emacs/.emacs.d/wpc/clipboard.el44
1 files changed, 44 insertions, 0 deletions
diff --git a/emacs/.emacs.d/wpc/clipboard.el b/emacs/.emacs.d/wpc/clipboard.el
new file mode 100644
index 000000000000..0688c9d87fe0
--- /dev/null
+++ b/emacs/.emacs.d/wpc/clipboard.el
@@ -0,0 +1,44 @@
+;;; clipboard.el --- Working with X11's pasteboard -*- lexical-binding: t -*-
+;; Author: William Carroll <wpcarro@gmail.com>
+
+;;; Commentary:
+;; Simple functions for copying and pasting.
+;;
+;; Integrate with bburns/clipmon so that System Clipboard can integrate with
+;; Emacs's kill-ring.
+;;
+;; Wish list:
+;; - Create an Emacs integration with github.com/cdown/clipmenud.
+
+;;; Code:
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Dependencies
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'prelude)
+(require 'ivy-clipmenu)
+
+(prelude/assert (prelude/executable-exists? "clipmenu"))
+(prelude/assert (prelude/executable-exists? "clipmenud"))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Library
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(cl-defun clipboard/copy (x &key (message "[clipboard.el] Copied!"))
+  "Copy string, X, to X11's clipboard."
+  (kill-new x)
+  (message message))
+
+(cl-defun clipboard/paste (&key (message "[clipboard.el] Pasted!"))
+  "Paste contents of X11 clipboard."
+  (yank)
+  (message message))
+
+(defun clipboard/contents ()
+  "Return the contents of the clipboard as a string."
+  (substring-no-properties (current-kill 0)))
+
+(provide 'clipboard)
+;;; clipboard.el ends here