tvl-depot/configs/shared/.emacs.d/wpc/clipboard.el
William Carroll 77d46eb5e1 Debug failed initialization of keybindings
Some more pains of weening off of Dropbox is that my Emacs initialization is
sensitive to dependencies and missing require statements. I'm still debugging
everything.

Some modules called `exwm-input-set-key` before the `window-manager` module
loaded, which itself requires EXWM. This broke initialization. To get around
this I could've called `(require 'exwm)` in each of those modules. I chose to
define a `keybindings.el` module to whitelist some of my EXWM keybindings. I'm
not sure if this is the best way forward, but it is *some* way forward.
2020-01-18 22:47:11 +00:00

44 lines
1.3 KiB
EmacsLisp

;;; 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