diff --git a/modules/app/irc/autoload/irc.el b/modules/app/irc/autoload/irc.el index 1e1f01210..a630fb61d 100644 --- a/modules/app/irc/autoload/irc.el +++ b/modules/app/irc/autoload/irc.el @@ -36,6 +36,12 @@ workspace for it." (and (+irc-setup-wconf inhibit-workspace) (call-interactively #'circe))) +;;;###autoload +(defun +irc/send-message (who what) + "Send WHO a message containing WHAT." + (interactive "sWho: \nsWhat: ") + (circe-command-MSG who what)) + ;;;###autoload (defun +irc/quit () "Kill current circe session and workgroup." diff --git a/modules/app/irc/config.el b/modules/app/irc/config.el index a32ecf355..f6d9b982e 100644 --- a/modules/app/irc/config.el +++ b/modules/app/irc/config.el @@ -125,7 +125,23 @@ playback.") (after! solaire-mode ;; distinguish chat/channel buffers from server buffers. - (add-hook 'circe-chat-mode-hook #'solaire-mode))) + (add-hook 'circe-chat-mode-hook #'solaire-mode)) + + (map! + (:localleader + (:map circe-mode-map + :desc "Next active buffer" :n "a" #'tracking-next-buffer + :desc "Join channel" :n "j" #'circe-command-JOIN + :desc "Send private message" :n "m" #'+irc/send-message + :desc "Part current channel" :n "p" #'circe-command-PART + :desc "Quit irc" :n "Q" #'+irc/quit + :desc "Reconnect" :n "R" #'circe-reconnect + + (:when (featurep! :completion ivy) + :desc "Jump to channel" :n "c" #'+irc/ivy-jump-to-channel)) + + (:map circe-channel-mode-map + :desc "Show names" :n "n" #'circe-command-NAMES))) (def-package! circe-color-nicks