From 817c0ae001a1ea6cc2775e1e2898931b3ff12d8a Mon Sep 17 00:00:00 2001
From: Case Duckworth
Date: Tue, 4 Jan 2022 00:41:12 -0600
Subject: Add +crux.el

Oops, missed this with a previous commit
---
 lisp/+crux.el | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 lisp/+crux.el

diff --git a/lisp/+crux.el b/lisp/+crux.el
new file mode 100644
index 0000000..b87ec7e
--- /dev/null
+++ b/lisp/+crux.el
@@ -0,0 +1,46 @@
+;;; +crux.el -*- lexical-binding: t; -*-
+
+;;; Code:
+
+(require 'crux)
+
+(defgroup +crux nil
+  "Extra crux customizations."
+  :group 'crux
+  :prefix "+crux-")
+
+(defun +crux-kill-ring-save (begin end arg)
+  "Copy region to the kill-ring, possibly indenting it first.
+Copy from BEGIN to END using `kill-ring-save' if no argument was
+passed, or with `crux-indent-rigidly-and-copy-to-clipboard' if
+one was."
+  (interactive "r\nP")
+  (call-interactively (if arg #'kill-ring-save
+                        #'crux-indent-rigidly-and-copy-to-clipboard)))
+
+(defcustom +crux-default-date-format "%c"
+  "Default date format to use for `+crux-insert-date-or-time'.
+Should be a format parsable by `format-time-string'."
+  :type 'string)
+
+(defcustom +crux-alternate-date-format "%FT%T%z"
+  "Alternate date format to use for `+crux-insert-date-or-time'.
+Should be a format parsable by `format-time-string'."
+  :type 'string)
+
+(defun +crux-insert-date-or-time (arg)
+  "Insert current date or time.
+Called without a prefix ARG, insert the time formatted by
+`+crux-default-date-format'.  When called with \\[universal-argument],
+format the time with `+crux-alternate-date-format'.  Otherwise,
+prompt for the time format."
+  (interactive "*P")
+  (let ((time (current-time)))
+    (insert (cond
+             ((null arg) (format-time-string +crux-default-date-format time))
+             ((eq (car-safe arg) 4)
+              (format-time-string +crux-alternate-date-format time))
+             (t (format-time-string (read-string "Time Format: ") time))))))
+
+(provide '+crux)
+;;; +crux.el ends here
-- 
cgit 1.4.1-21-gabe81