Skip to content

Commit

Permalink
Make it possible to auto-create a new perspective for IRC (#1097)
Browse files Browse the repository at this point in the history
  • Loading branch information
ksinkar authored and bbatsov committed Aug 13, 2017
1 parent 9fb83df commit 57e0cf3
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 18 deletions.
49 changes: 34 additions & 15 deletions modules/doc/prelude-erc.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,49 @@

## 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

``` emacs-lisp
(setq my-fav-irc '( "irc.freenode.net"
"irc.oftc.net"
"irc.mozilla.org"
"irc.gnome.org"))
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
(setq my-fav-irc '("irc.freenode.net"
"irc.oftc.net"
"irc.mozilla.org"
"irc.gnome.org"))
```

## 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
(setq bye-erc-message "adios")
``` emacs-lisp
(setq bye-erc-message "adios")
```

## 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
(setq erc-prompt-for-password nil)
``` emacs-lisp
(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)
```
18 changes: 15 additions & 3 deletions modules/prelude-erc.el
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,16 @@ that can occur between two notifications. The default is


(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"
"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)
"Connects securely to IRC SERVER over TLS at port 6697."
Expand All @@ -129,6 +135,8 @@ that can occur between two notifications. The default is
"Connect to IRC?"
(interactive)
(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)))

(defun filter-server-buffers ()
Expand All @@ -140,10 +148,14 @@ that can occur between two notifications. The default is
(defun stop-irc ()
"Disconnects from all irc servers."
(interactive)
(when prelude-new-irc-persp
(persp-switch "IRC"))
(dolist (buffer (filter-server-buffers))
(message "Server buffer: %s" (buffer-name 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)

Expand Down

0 comments on commit 57e0cf3

Please sign in to comment.