Browse Source

Fix how slack loads in #emacs

Colin Powell 5 years ago
parent
commit
b22e7f4db7
2 changed files with 109 additions and 36 deletions
  1. 53 18
      emacs/.config/doom/config.el
  2. 56 18
      emacs/.config/doom/config.org

+ 53 - 18
emacs/.config/doom/config.el

@@ -201,7 +201,7 @@
   (other-window 1)
   (find-file +todo-file))
 
-(use-package! org-roam
+(def-package! org-roam
   :commands (org-roam-insert org-roam-find-file org-roam)
   :init
   (setq org-roam-directory "~/org/")
@@ -295,24 +295,59 @@
         :desc "Update Mastodon timeline"     "u" #'mastodon-tl--update
         :desc "Toot to Mastodon"             "t" #'mastodon-toot))
 
-(use-package slack
-  :commands (slack-start)
+(def-package! slack
+	:commands (slack-start)
+	:init
+	(setq slack-buffer-emojify t)
+	(setq slack-prefer-current-team t)
+	:config
+	(slack-register-team
+	      :name "15five"
+	      :token (auth-source-pick-first-password
+		      :host "15five.slack.com"
+		      :user "colin.powell@15five.com")
+	      :subscribed-channels '(squad-admin water-cooler))
+	(slack-register-team
+	      :name "RAB"
+	      :token (auth-source-pick-first-password
+		      :host "randomaccessbrewery.slack.com"
+		      :user "colin@onec.me")
+      :subscribed-channels '(the_taps random))
+
+  (evil-define-key 'normal slack-info-mode-map
+    ",u" 'slack-room-update-messages)
+  (evil-define-key 'normal slack-mode-map
+    ",c" 'slack-buffer-kill
+    ",ra" 'slack-message-add-reaction
+    ",rr" 'slack-message-remove-reaction
+    ",rs" 'slack-message-show-reaction-users
+    ",pl" 'slack-room-pins-list
+    ",pa" 'slack-message-pins-add
+    ",pr" 'slack-message-pins-remove
+    ",mm" 'slack-message-write-another-buffer
+    ",me" 'slack-message-edit
+    ",md" 'slack-message-delete
+    ",u" 'slack-room-update-messages
+    ",2" 'slack-message-embed-mention
+    ",3" 'slack-message-embed-channel
+    "\C-n" 'slack-buffer-goto-next-message
+    "\C-p" 'slack-buffer-goto-prev-message)
+   (evil-define-key 'normal slack-edit-message-mode-map
+    ",k" 'slack-message-cancel-edit
+    ",s" 'slack-message-send-from-buffer
+    ",2" 'slack-message-embed-mention
+    ",3" 'slack-message-embed-channel))
+
+(def-package! alert
+  :commands (alert)
   :init
-  (setq slack-buffer-emojify t) ;; if you want to enable emoji, default nil
-  (setq slack-prefer-current-team t)
-  :config
-    (slack-register-team
-    :name "15five"
-    :token (auth-source-pick-first-password
-            :host "15five.slack.com"
-            :user "colin.powell@15five.com")
-    :subscribed-channels '((squad-admin water-cooler)))
-    (slack-register-team
-    :name "RAB"
-    :token (auth-source-pick-first-password
-            :host "randomaccessbrewery.slack.com"
-            :user "colin@onec.me")
-    :subscribed-channels '((the_taps random))))
+  (setq alert-default-style 'notifier))
+
+(map! :leader
+      (:prefix "r"
+        :desc "Slack channel select"   "c" #'slack-channel-select
+        :desc "Slack IM select"        "i" #'slack-im-select
+        :desc "Slack threads"          "t" #'slack-all-threads))
 
 (load! "beancount")
 (require 'beancount)

+ 56 - 18
emacs/.config/doom/config.org

@@ -285,7 +285,7 @@ I am absolutely in love with [[https://org-roam.readthedocs.io/en/develop/][Org-
 easier. I just need to level up with Zettels and web publishing of my notes.
 
 #+BEGIN_SRC emacs-lisp
-(use-package! org-roam
+(def-package! org-roam
   :commands (org-roam-insert org-roam-find-file org-roam)
   :init
   (setq org-roam-directory "~/org/")
@@ -403,25 +403,63 @@ There's gotta be a way to get the token out of password-store for this.
         :desc "Toot to Mastodon"             "t" #'mastodon-toot))
 #+END_SRC
 * Slack
+** Configure teams
 #+BEGIN_SRC emacs-lisp
-(use-package slack
-  :commands (slack-start)
+(def-package! slack
+	:commands (slack-start)
+	:init
+	(setq slack-buffer-emojify t)
+	(setq slack-prefer-current-team t)
+	:config
+	(slack-register-team
+	      :name "15five"
+	      :token (auth-source-pick-first-password
+		      :host "15five.slack.com"
+		      :user "colin.powell@15five.com")
+	      :subscribed-channels '(squad-admin water-cooler))
+	(slack-register-team
+	      :name "RAB"
+	      :token (auth-source-pick-first-password
+		      :host "randomaccessbrewery.slack.com"
+		      :user "colin@onec.me")
+      :subscribed-channels '(the_taps random))
+
+  (evil-define-key 'normal slack-info-mode-map
+    ",u" 'slack-room-update-messages)
+  (evil-define-key 'normal slack-mode-map
+    ",c" 'slack-buffer-kill
+    ",ra" 'slack-message-add-reaction
+    ",rr" 'slack-message-remove-reaction
+    ",rs" 'slack-message-show-reaction-users
+    ",pl" 'slack-room-pins-list
+    ",pa" 'slack-message-pins-add
+    ",pr" 'slack-message-pins-remove
+    ",mm" 'slack-message-write-another-buffer
+    ",me" 'slack-message-edit
+    ",md" 'slack-message-delete
+    ",u" 'slack-room-update-messages
+    ",2" 'slack-message-embed-mention
+    ",3" 'slack-message-embed-channel
+    "\C-n" 'slack-buffer-goto-next-message
+    "\C-p" 'slack-buffer-goto-prev-message)
+   (evil-define-key 'normal slack-edit-message-mode-map
+    ",k" 'slack-message-cancel-edit
+    ",s" 'slack-message-send-from-buffer
+    ",2" 'slack-message-embed-mention
+    ",3" 'slack-message-embed-channel))
+
+(def-package! alert
+  :commands (alert)
   :init
-  (setq slack-buffer-emojify t) ;; if you want to enable emoji, default nil
-  (setq slack-prefer-current-team t)
-  :config
-    (slack-register-team
-    :name "15five"
-    :token (auth-source-pick-first-password
-            :host "15five.slack.com"
-            :user "colin.powell@15five.com")
-    :subscribed-channels '((squad-admin water-cooler)))
-    (slack-register-team
-    :name "RAB"
-    :token (auth-source-pick-first-password
-            :host "randomaccessbrewery.slack.com"
-            :user "colin@onec.me")
-    :subscribed-channels '((the_taps random))))
+  (setq alert-default-style 'notifier))
+#+END_SRC
+** Key bindings
+#+BEGIN_SRC emacs-lisp
+(map! :leader
+      (:prefix "r"
+        :desc "Slack channel select"   "c" #'slack-channel-select
+        :desc "Slack IM select"        "i" #'slack-im-select
+        :desc "Slack threads"          "t" #'slack-all-threads))
 #+END_SRC
 * Beancount
 Use Emacs and plain text files for your accounting!