diff options
Diffstat (limited to 'packages.el')
-rw-r--r-- | packages.el | 129 |
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. | ||
30 | With 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))) | ||