Make it possible to auto-create a new perspective for IRC (#1097)

This commit is contained in:
Koustubh Sinkar 2017-08-13 21:26:37 +05:30 committed by Bozhidar Batsov
parent 9fb83df0b6
commit 57e0cf321a
2 changed files with 47 additions and 16 deletions

View file

@ -2,30 +2,49 @@
## Customizing Server list ## Customizing Server list
If you want to join a list of servers on `M-x start-irc`, other than the default list, please redefine the variable `my-fav-irc` as follows in your personal config If you want to join a list of servers on `M-x start-irc`, other than
the default list, please redefine the variable `my-fav-irc` as follows
in your personal config
``` emacs-lisp ``` emacs-lisp
(setq my-fav-irc '( "irc.freenode.net" (setq my-fav-irc '("irc.freenode.net"
"irc.oftc.net" "irc.oftc.net"
"irc.mozilla.org" "irc.mozilla.org"
"irc.gnome.org")) "irc.gnome.org"))
``` ```
## Customizing Last Quit Message ## Customizing Last Quit Message
If you want to customize your IRC Last Quit Message from *Asta la vista* to something more funkier, please redefine `bye-irc-message` as follows If you want to customize your IRC Last Quit Message from *Asta la
vista* to something more funkier, please redefine `bye-irc-message` as
follows
``` emacs-lisp ``` emacs-lisp
(setq bye-erc-message "adios") (setq bye-erc-message "adios")
``` ```
## Reading NickServ passwords from auth-source plugin ## Reading NickServ passwords from auth-source plugin
If you want to automatically authenticate while logging into IRC servers set the `erc-prompt-for-password` to nil as follows If you want to automatically authenticate while logging into IRC
servers set the `erc-prompt-for-password` to nil as follows
``` emacs-lisp ``` emacs-lisp
(setq erc-prompt-for-password nil) (setq erc-prompt-for-password nil)
``` ```
Now you can set password in plaintext in .authinfo file in the netRC format or you it encrypted in .authinfo.gpg file after setting up gpg in emacs Now you can set password in plaintext in .authinfo file in the netRC
format or you it encrypted in .authinfo.gpg file after setting up gpg
in emacs
## Opening all ERC buffers in a new perspective
Many a time when we start IRC with the `start-irc` command, all the
channels open in our existing workspace, which can be annoying to
some; especially to those who like to organize their buffers into
separate groups (perspectives). To avoid this scenario, it is better
to group all the ERC buffers into one perspective called `IRC` when
`start-irc` is called. To enable this set the `prelude-new-irc-persp`
variable to true as follows
``` emacs-lisp
(setq prelude-new-irc-persp t)
```

View file

@ -114,10 +114,16 @@ that can occur between two notifications. The default is
(defvar my-fav-irc '( "irc.freenode.net" ) (defvar my-fav-irc '( "irc.freenode.net" )
"Stores the list of IRC servers that you want to connect to with start-irc.") "Stores the list of IRC servers that you want to connect to with start-irc.")
(defvar bye-irc-message "Asta la vista" (defvar bye-irc-message "Asta la vista"
"Message string to be sent while quitting IRC.") "Message string to be sent while quitting IRC.")
(defcustom prelude-new-irc-persp nil
"True (t) means start IRC in new perspective."
:type 'boolean
:require 'prelude-erc
:group 'prelude)
(defun connect-to-erc (server) (defun connect-to-erc (server)
"Connects securely to IRC SERVER over TLS at port 6697." "Connects securely to IRC SERVER over TLS at port 6697."
@ -129,6 +135,8 @@ that can occur between two notifications. The default is
"Connect to IRC?" "Connect to IRC?"
(interactive) (interactive)
(when (y-or-n-p "Do you want to start IRC? ") (when (y-or-n-p "Do you want to start IRC? ")
(when prelude-new-irc-persp
(persp-switch "IRC"))
(mapcar 'connect-to-erc my-fav-irc))) (mapcar 'connect-to-erc my-fav-irc)))
(defun filter-server-buffers () (defun filter-server-buffers ()
@ -140,10 +148,14 @@ that can occur between two notifications. The default is
(defun stop-irc () (defun stop-irc ()
"Disconnects from all irc servers." "Disconnects from all irc servers."
(interactive) (interactive)
(when prelude-new-irc-persp
(persp-switch "IRC"))
(dolist (buffer (filter-server-buffers)) (dolist (buffer (filter-server-buffers))
(message "Server buffer: %s" (buffer-name buffer)) (message "Server buffer: %s" (buffer-name buffer))
(with-current-buffer buffer (with-current-buffer buffer
(erc-quit-server bye-irc-message)))) (erc-quit-server bye-irc-message)))
(when prelude-new-irc-persp
(persp-kill "IRC")))
(provide 'prelude-erc) (provide 'prelude-erc)