summaryrefslogtreecommitdiff
path: root/modules/wip.el
blob: 0fae57e32f71b786e4a29f23a4a90cdfeab0883b (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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
;;; wip.el --- test code -*- lexical-binding: t; coding: utf-8; -*-
;; author: Craig Jennings <c@cjennings.net>

;;; Commentary:

;; This is where to put config code you're working on before it's tested and stable.
;; Include this at the very end of your init.el. This way, if something does break,
;; and it will, most of your Emacs config is loaded.

;; Once you've tested (and time-tested) the code here, graduate it into the proper
;; section of your config above.

;;; Code:

(require 'user-constants)


;; --------------------------- Org Upcoming Modeline ---------------------------

;; (use-package org-upcoming-modeline
;;   :after org
;;   :load-path "~/code/org-upcoming-modeline/org-upcoming-modeline.el"
;;   :config
;;   (setq org-upcoming-modeline-keep-late 300)
;;   (setq org-upcoming-modeline-ignored-keywords '("DONE" "CANCELLED" "FAILED"))
;;   (setq org-upcoming-modeline-trim 30)
;;   (setq org-upcoming-modeline-days-ahead 5)
;;   (setq org-upcoming-modeline-format (lambda (ms mh) (format "📅 %s %s" ms mh)))
;;   (org-upcoming-modeline-mode))

;; ----------------------------------- Efrit -----------------------------------
;; not working as of Wednesday, September 03, 2025 at 12:44:09 AM CDT

;; (add-to-list 'load-path "~/code/efrit/lisp")
;; (require 'efrit)

;; ------------------------------ Buffer Same Mode -----------------------------

(defun cj/buffer-same-mode (&rest modes)
  "Pop to a buffer with a mode among MODES, or the current one if not given."
  (interactive)
  (let* ((modes (or modes (list major-mode)))
         (pred (lambda (b)
                 (let ((b (get-buffer (if (consp b) (car b) b))))
                   (member (buffer-local-value 'major-mode b) modes)))))
    (pop-to-buffer (read-buffer "Buffer: " nil t pred))))
(global-set-key (kbd "C-x B") 'cj/buffer-same-mode)

;; ;; --------------------------------- Easy Hugo ---------------------------------

;; (use-package easy-hugo
;;   :defer .5
;;   :init
;;   (setq easy-hugo-basedir "~/code/cjennings-net/")
;;   (setq easy-hugo-url "https://cjennings.net")
;;   (setq easy-hugo-sshdomain "cjennings.net")
;;   (setq easy-hugo-root "/var/www/cjennings/")
;;   (setq easy-hugo-previewtime "300")
;;   (setq easy-hugo-postdir "content")
;;   (setq easy-hugo-server-flags "-D --noHTTPCache --disableFastRender")
;;   (setq easy-hugo-default-ext ".md")
;;   :bind ("C-c H" . easy-hugo)
;;   :config
;;   (easy-hugo-enable-menu))

;; ------------------------------------ Pomm -----------------------------------

(use-package pomm
  :defer .5
  :bind ("M-p" . pomm)
  :commands (pomm pomm-third-time))

;; ------------------------------ Mouse Trap Mode ------------------------------

(defvar mouse-trap-mode-map
  (let* ((prefixes '("" "C-" "M-" "S-" "C-M-" "C-S-" "M-S-" "C-M-S-")) ; modifiers
         (buttons  (number-sequence 1 5))                             ; mouse-1..5
         (types    '("mouse" "down-mouse" "drag-mouse"
                     "double-mouse" "triple-mouse"))
         (wheel    '("wheel-up" "wheel-down" "wheel-left" "wheel-right"))
         (map (make-sparse-keymap)))
    ;; clicks, drags, double, triple
    (dolist (type types)
      (dolist (pref prefixes)
        (dolist (n buttons)
          (define-key map (kbd (format "<%s%s-%d>" pref type n)) #'ignore))))
    ;; wheel
    (dolist (evt wheel)
      (dolist (pref prefixes)
        (define-key map (kbd (format "<%s%s>" pref evt)) #'ignore)))
    map)
  "Keymap for `mouse-trap-mode'. Unbinds almost every mouse event.

Disabling mouse prevents accidental mouse moves modifying text.")

(define-minor-mode mouse-trap-mode
  "Globally disable most mouse and trackpad events.

When active, <mouse-*>, <down-mouse-*>, <drag-mouse-*>,
<double-mouse-*>, <triple-mouse-*>, and wheel events are bound to `ignore',
with or without C-, M-, S- modifiers."
  :global t
  :lighter " 🐭"
  :keymap mouse-trap-mode-map)
(global-set-key (kbd "C-c M") #'mouse-trap-mode)
(mouse-trap-mode 1)

;; --------------------- Debug Code For Package Signatures ---------------------
;; from https://emacs.stackexchange.com/questions/233/how-to-proceed-on-package-el-signature-check-failure


;; Set package-check-signature to nil, e.g., M-: (setq package-check-signature nil) RET.
;; Download the package gnu-elpa-keyring-update and run the function with the same name, e.g., M-x package-install RET gnu-elpa-keyring-update RET.
;; Reset package-check-signature to the default value allow-unsigned, e.g., M-: (setq package-check-signature 'allow-unsigned) RET.

;; (setq package-check-signature nil)
;; (setq package-check-signature 'allow-unsigned)


(provide 'wip)
;;; wip.el ends here.