summary refs log tree commit diff stats
path: root/packages.el
diff options
context:
space:
mode:
Diffstat (limited to 'packages.el')
-rw-r--r--packages.el129
1 files changed, 129 insertions, 0 deletions
diff --git a/packages.el b/packages.el new file mode 100644 index 0000000..42d8eeb --- /dev/null +++ b/packages.el
@@ -0,0 +1,129 @@
1;;; packages.el --- my Emacs packages -*- lexical-binding: t; -*-
2
3(use-package scule
4 :load-path "~/src/scule.el/"
5 :bind-keymap ("M-c" . scule-map)
6 :init
7 ;; Use M-u for prefix keys
8 (keymap-global-set "M-u" #'universal-argument)
9 (keymap-set universal-argument-map "M-u" #'universal-argument-more))
10
11(use-package frowny
12 :load-path "~/src/frowny.el/"
13 :hook ((jabber-chat-mode . frowny-mode)))
14
15(use-package hippie-completing-read
16 :load-path "~/src/hippie-completing-read.el/"
17 :bind (("M-/" . hippie-completing-read)))
18
19(use-package mode-line-bell
20 :load-path "~/src/mode-line-bell.el/"
21 :config
22 (setq mode-line-bell-flash-time 0.25)
23 (mode-line-bell-mode))
24
25(use-package titlecase
26 :load-path "~/src/titlecase.el/"
27 :preface
28 (defun +titlecase-sentence-style-dwim (&optional arg)
29 "Titlecase a sentence.
30With prefix ARG, toggle the value of
31`titlecase-downcase-sentences' before sentence-casing."
32 (interactive "P")
33 (let ((titlecase-downcase-sentences (if arg (not titlecase-downcase-sentences)
34 titlecase-downcase-sentences)))
35 (titlecase-dwim 'sentence)))
36 (defun +titlecase-org-headings ()
37 (interactive)
38 (require 'org)
39 (save-excursion
40 (goto-char (point-min))
41 ;; See also `org-map-tree'. I'm not using that function because I want to
42 ;; skip the first headline. A better solution would be to patch
43 ;; `titlecase-line' to ignore org-mode metadata (TODO cookies, tags, etc).
44 (let ((level (funcall outline-level))
45 (org-special-ctrl-a/e t))
46 (while (and (progn (outline-next-heading)
47 (> (funcall outline-level) level))
48 (not (eobp)))
49 (titlecase-region (progn (org-beginning-of-line) (point))
50 (progn (org-end-of-line) (point)))))))
51 :config
52 (with-eval-after-load 'scule
53 (keymap-set scule-map "M-t" #'titlecase-dwim)))
54
55;;; Jabber
56
57(use-package jabber
58 :load-path "~/src/jabber.el"
59 :defer t
60 :bind-keymap (("C-c j" . jabber-global-keymap))
61 :preface nil
62 (setq-default jabber-chat-buffer-format "*%n*"
63 jabber-browse-buffer-format "*%n*"
64 jabber-groupchat-buffer-format "*%n*"
65 jabber-muc-private-buffer-format "*%n*")
66 :custom-face
67 (jabber-activity-face ((t :inherit jabber-chat-prompt-foreign
68 :foreground unspecified
69 :weight normal)))
70 (jabber-activity-personal-face ((t :inherit jabber-chat-prompt-local
71 :foreground unspecified
72 :weight bold)))
73 (jabber-chat-prompt-local ((t :inherit minibuffer-prompt
74 :foreground unspecified
75 :weight normal
76 :slant italic)))
77 (jabber-chat-prompt-foreign ((t :inherit warning
78 :foreground unspecified
79 :weight normal)))
80 (jabber-chat-prompt-system ((t :inherit font-lock-doc-face
81 :foreground unspecified)))
82 (jabber-rare-time-face ((t :inherit font-lock-comment-face
83 :foreground unspecified
84 :underline nil)))
85 :config
86 (require 'jabber-httpupload nil t)
87 (setopt jabber-auto-reconnect t
88 jabber-last-read-marker "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"
89 jabber-muc-decorate-presence-patterns
90 '(("\\( enters the room ([^)]+)\\| has left the chatroom\\)$" . nil)
91 ("Mode #.*" . jabber-muc-presence-dim)
92 ("." . jabber-muc-presence-dim))
93 jabber-activity-make-strings #'jabber-activity-make-strings-shorten
94 jabber-rare-time-format
95 (format " - - - - - %%H:%d %%F"
96 (let ((min (string-to-number (format-time-string "%M"))))
97 (* 5 (floor min 5))))
98 jabber-muc-header-line-format '(" " jabber-muc-topic))
99
100 (setopt jabber-groupchat-prompt-format "%n. "
101 jabber-chat-local-prompt-format "%n. "
102 jabber-chat-foreign-prompt-format "%n. "
103 jabber-muc-private-foreign-prompt-format "%g/%n. ")
104
105 (keymap-global-set "C-c C-SPC" #'jabber-activity-switch-to)
106 (map-keymap (lambda (key command)
107 (define-key jabber-global-keymap (vector (+ key #x60)) command))
108 jabber-global-keymap)
109 (keymap-global-set "C-x C-j" #'dired-jump)
110
111 (add-hook 'jabber-post-connect-hooks #'jabber-enable-carbons)
112 (remove-hook 'jabber-alert-muc-hooks 'jabber-muc-echo)
113 (remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)
114 (add-hook 'jabber-chat-mode-hook 'visual-line-mode)
115 (add-hook 'jabber-chat-mode-hook (defun jabber-no-position ()
116 (setq-local mode-line-position nil)))
117
118 (add-hook 'jabber-alert-muc-hooks
119 (defun jabber@highlight-acdw (&optional _ _ buf _ _)
120 (when buf
121 (with-current-buffer buf
122 (let ((regexp (rx word-boundary
123 "acdw" ; maybe get from the config?
124 word-boundary)))
125 (hi-lock-unface-buffer regexp)
126 (highlight-regexp regexp 'jabber-chat-prompt-local))))))
127
128 (when (fboundp 'jabber-chat-update-focus)
129 (add-hook 'window-configuration-change-hook #'jabber-chat-update-focus)))