emacs: add emacs-slack (temporary) and update swiper
[~bandali/configs] / .emacs.d / init.org
index 87ea69e..899901c 100644 (file)
@@ -146,7 +146,7 @@ If you would like a byte-compiled init file, set the following
 variable to ~t~, otherwise set it to ~nil~.
 
 #+begin_src emacs-lisp
-(defvar a/byte-compiled-init t
+(defvar a/byte-compiled-init nil
   "If non-nil, byte-(re)compile init.el on successful tangles.")
 #+end_src
 
@@ -1203,6 +1203,10 @@ There's no way I could top that, so I won't attempt to.
         (mode . haskell-mode)
         (mode . lean-mode)
         (mode . alloy-mode)))
+      ("tex"
+       (or
+        (mode . bibtex-mode)
+        (mode . latex-mode)))
       ("emacs"
        (or
         (name . "^\\*scratch\\*$")
@@ -2272,6 +2276,63 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
    org-ref-pdf-directory "~/usr/org/bibtex-pdfs/"))
 #+end_src
 
+** slack
+
+Not an "Emacs enhancement", but just so that I don't have to use the
+proprietary web interface.  Needed for interacting with the URA(s)
+this summer.
+
+#+begin_src emacs-lisp
+(use-package slack
+  :commands (slack-start)
+  :init
+  (eval-when-compile                    ; silence the byte-compiler
+    (defvar url-http-data nil)
+    (defvar url-http-extra-headers nil)
+    (defvar url-http-method nil)
+    (defvar url-callback-function nil)
+    (defvar url-callback-arguments nil)
+    (defvar oauth--token-data nil))
+  (setq slack-buffer-emojify t
+        slack-prefer-current-team t)
+  :config
+  (slack-register-team
+   :name "nday-students"
+   :default t
+   :token nday-students-token
+   :subscribed-channels '(general)
+   :full-and-display-names t)
+  (add-to-list 'swiper-font-lock-exclude 'slack-message-buffer-mode t)
+  (setq lui-time-stamp-format "[%Y-%m-%d %H:%M:%S]"
+        lui-time-stamp-only-when-changed-p t
+        lui-time-stamp-position 'right)
+  :bind
+  (("C-c s s" . slack-start)
+   ("C-c s u" . slack-select-unread-rooms)
+   ("C-c s b" . slack-select-rooms)
+   ("C-c s t" . slack-change-current-team)
+   ("C-c s c" . slack-ws-close)
+   :map slack-mode-map
+   ("M-p"     . slack-buffer-goto-prev-message)
+   ("M-n"     . slack-buffer-goto-next-message)
+   ("C-c e"   . slack-message-edit)
+   ("C-c k"   . slack-message-delete)
+   ("C-c C-k" . slack-channel-leave)
+   ("C-c r a" . slack-message-add-reaction)
+   ("C-c r r" . slack-message-remove-reaction)
+   ("C-c r s" . slack-message-show-reaction-users)
+   ("C-c p l" . slack-room-pins-list)
+   ("C-c p a" . slack-message-pins-add)
+   ("C-c p r" . slack-message-pins-remove)
+   ("@"       . slack-message-embed-mention)
+   ("#"       . slack-message-embed-channel)))
+
+(use-package alert
+  :commands (alert)
+  :init
+  (setq alert-default-style 'notifier))
+#+end_src
+
 * Email
 :PROPERTIES:
 :CUSTOM_ID: email
@@ -2523,7 +2584,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
            (concat "Hi %F,\n\n" a/message-cite-style-format)
          a/message-cite-style-format)))
     "Citation style based on Mozilla Thunderbird's. Use with message-cite-style.")
-  (setq message-cite-style 'message-cite-style-bandali
+  (setq ;; message-cite-style 'message-cite-style-bandali
         message-kill-buffer-on-exit t
         message-send-mail-function 'message-send-mail-with-sendmail
         message-sendmail-envelope-from 'header