[emacs] a few useful super bindings
[~bandali/configs] / init.org
index 058b9b0..5df8479 100644 (file)
--- a/init.org
+++ b/init.org
@@ -324,6 +324,12 @@ it it's own file. While at it, treat themes as safe.
   (setf custom-safe-themes t))
 #+end_src
 
+** Secrets file
+
+#+begin_src emacs-lisp
+(load (no-littering-expand-etc-file-name "secrets"))
+#+end_src
+
 ** Better =$PATH= handling
 
 Let's use [[https://github.com/purcell/exec-path-from-shell][exec-path-from-shell]] to make Emacs use the =$PATH= as set up
@@ -642,14 +648,17 @@ Enable =winner-mode=.
 #+begin_src emacs-lisp
 (bind-keys
  ("C-c b k" . kill-this-buffer)
- ("C-c s s" . save-buffer)
  ("C-c b s" . save-buffer)
  ("C-c S"   . save-buffer)
  ("C-c o"   . other-window)
  ("C-c q q" . save-buffers-kill-terminal)
  ("C-c F m" . make-frame-command)
  ("C-c F d" . delete-frame)
- ("C-c F D" . delete-other-frames))
+ ("C-c F D" . delete-other-frames)
+ ("s-c e b" . eval-buffer)
+ ("s-c e r" . eval-region)
+ ("s-p"     . beginning-of-buffer)
+ ("s-n"     . end-of-buffer))
 #+end_src
 
 ** Packages
@@ -701,7 +710,9 @@ In short, my favourite way of life.
 
 (use-package ox-latex
   :config
-  (setq org-latex-listings 'listings)
+  (setq org-latex-listings 'listings
+        ;; org-latex-prefer-user-labels t
+        )
   (add-to-list 'org-latex-packages-alist '("" "listings"))
   (add-to-list 'org-latex-packages-alist '("" "color"))
   (add-to-list 'org-latex-classes
@@ -718,7 +729,8 @@ In short, my favourite way of life.
 (use-package org-notmuch
   :after (:any org notmuch))
 
-(use-package orgalist)
+(use-package orgalist
+  :hook (message-mode . orgalist-mode))
 #+end_src
 
 **** asynchronous tangle
@@ -781,8 +793,7 @@ Not just how I do git, but /the/ way to do git.
 (use-package magit
   :defer t
   :bind
-  (("s-g"   . magit-dispatch-popup)
-   ("C-x g" . magit-status)
+  (("s-g" . magit-status)
    :prefix-map amin--magit-prefix-map
    :prefix "C-c g"
    ("SPC" . magit-status)
@@ -934,7 +945,10 @@ There's no way I could top that, so I won't attempt to.
       ("emacs"
        (or
         (name . "^\\*scratch\\*$")
-        (name . "^\\*Messages\\*$"))))))
+        (name . "^\\*Messages\\*$")))
+      ("slack"
+       (or
+        (name . "^\\*Slack*"))))))
   (ibuffer-formats
    '((mark modified read-only locked " "
            (name 18 18 :left :elide)
@@ -1638,6 +1652,68 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
   :hook (text-mode . typo-mode))
 #+end_src
 
+** slack
+
+Hopefully temporary.
+
+#+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 "uw-apv"
+   :default t
+   :client-id uw-apv-client-id
+   :client-secret uw-apv-client-secret
+   :token uw-apv-token
+   :subscribed-channels '(general)
+   :full-and-display-names t)
+  (slack-register-team
+   :name "watform"
+   :default nil
+   :client-id watform-client-id
+   :client-secret watform-client-secret
+   :token watform-token
+   :subscribed-channels '(general)
+   :full-and-display-names t)
+  (add-to-list 'swiper-font-lock-exclude 'slack-message-buffer-mode t)
+  :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
 
 #+begin_src emacs-lisp