2007-09-06 05:07:05 +00:00
|
|
|
\input texinfo
|
|
|
|
@c %**start of header
|
2014-06-10 02:20:31 +00:00
|
|
|
@setfilename ../../info/rcirc.info
|
2007-09-06 05:07:05 +00:00
|
|
|
@settitle rcirc Manual
|
Fix single-quoting style in PDF manuals
The PDF versions of the GNU manuals used curved single quotes to
represent grave accent and apostrophe, which made it a pain to cut
and paste code examples from them. Fix the PDF versions to use
grave accent and apostrophe for Lisp source code, keystrokes, etc.
This change does not affect the info files, nor does it affect
ordinary uses of curved single quotes in PDF.
* doc/emacs/docstyle.texi: New file, which specifies treatment for
grave accent and apostrophe, as well as the document encoding.
* doc/emacs/emacs-xtra.texi, doc/emacs/emacs.texi:
* doc/lispintro/emacs-lisp-intro.texi:
* doc/lispref/back.texi, doc/lispref/book-spine.texi:
* doc/lispref/elisp.texi, doc/lispref/lay-flat.texi:
* doc/misc/ada-mode.texi, doc/misc/auth.texi:
* doc/misc/autotype.texi, doc/misc/bovine.texi, doc/misc/calc.texi:
* doc/misc/cc-mode.texi, doc/misc/cl.texi, doc/misc/dbus.texi:
* doc/misc/dired-x.texi, doc/misc/ebrowse.texi, doc/misc/ede.texi:
* doc/misc/ediff.texi, doc/misc/edt.texi, doc/misc/efaq-w32.texi:
* doc/misc/efaq.texi, doc/misc/eieio.texi, doc/misc/emacs-gnutls.texi:
* doc/misc/emacs-mime.texi, doc/misc/epa.texi, doc/misc/erc.texi:
* doc/misc/ert.texi, doc/misc/eshell.texi, doc/misc/eudc.texi:
* doc/misc/eww.texi, doc/misc/flymake.texi, doc/misc/forms.texi:
* doc/misc/gnus-coding.texi, doc/misc/gnus-faq.texi:
* doc/misc/gnus.texi, doc/misc/htmlfontify.texi:
* doc/misc/idlwave.texi, doc/misc/ido.texi, doc/misc/info.texi:
* doc/misc/mairix-el.texi, doc/misc/message.texi, doc/misc/mh-e.texi:
* doc/misc/newsticker.texi, doc/misc/nxml-mode.texi:
* doc/misc/octave-mode.texi, doc/misc/org.texi, doc/misc/pcl-cvs.texi:
* doc/misc/pgg.texi, doc/misc/rcirc.texi, doc/misc/reftex.texi:
* doc/misc/remember.texi, doc/misc/sasl.texi, doc/misc/sc.texi:
* doc/misc/semantic.texi, doc/misc/ses.texi, doc/misc/sieve.texi:
* doc/misc/smtpmail.texi, doc/misc/speedbar.texi:
* doc/misc/srecode.texi, doc/misc/todo-mode.texi, doc/misc/tramp.texi:
* doc/misc/url.texi, doc/misc/vhdl-mode.texi, doc/misc/vip.texi:
* doc/misc/viper.texi, doc/misc/widget.texi, doc/misc/wisent.texi:
* doc/misc/woman.texi:
Use it instead of '@documentencoding UTF-8', to lessen the need for
global changes like this in the future.
* doc/emacs/Makefile.in (EMACS_XTRA):
* doc/lispintro/Makefile.in (srcs):
* doc/lispref/Makefile.in (srcs):
Add dependency on docstyle.texi.
* doc/misc/Makefile.in (style): New macro.
(${buildinfodir}/%.info, %.dvi, %.pdf, %.html)
(${buildinfodir}/ccmode.info, ${buildinfodir}/efaq%.info, gnus_deps):
Use it.
2015-05-01 19:05:53 +00:00
|
|
|
@include docstyle.texi
|
2007-09-06 05:07:05 +00:00
|
|
|
@c %**end of header
|
|
|
|
|
|
|
|
@copying
|
2024-01-02 01:47:10 +00:00
|
|
|
Copyright @copyright{} 2006--2024 Free Software Foundation, Inc.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@quotation
|
|
|
|
Permission is granted to copy, distribute and/or modify this document
|
2008-11-19 04:29:29 +00:00
|
|
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
2007-09-06 05:07:05 +00:00
|
|
|
any later version published by the Free Software Foundation; with no
|
2014-05-07 17:34:53 +00:00
|
|
|
Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
|
2007-09-06 05:07:05 +00:00
|
|
|
and with the Back-Cover Texts as in (a) below. A copy of the license is
|
2008-06-15 02:31:43 +00:00
|
|
|
included in the section entitled ``GNU Free Documentation License''.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
2008-06-13 04:20:28 +00:00
|
|
|
(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
|
2012-12-21 18:36:41 +00:00
|
|
|
modify this GNU manual.''
|
2007-09-06 05:07:05 +00:00
|
|
|
@end quotation
|
|
|
|
@end copying
|
|
|
|
|
2011-02-18 13:57:53 +00:00
|
|
|
@dircategory Emacs network features
|
2007-09-06 05:07:05 +00:00
|
|
|
@direntry
|
Minor doc/misc/*.texi direntry fixes.
* ada-mode.texi, auth.texi, autotype.texi, calc.texi, cc-mode.texi:
* dired-x.texi, ebrowse.texi, ede.texi, edt.texi, eieio.texi:
* emacs-mime.texi, epa.texi, erc.texi, eshell.texi, eudc.texi:
* flymake.texi, gnus.texi, info.texi, mairix-el.texi, message.texi:
* newsticker.texi, org.texi, pgg.texi, rcirc.texi, reftex.texi:
* remember.texi, sasl.texi, semantic.texi, ses.texi, smtpmail.texi:
* speedbar.texi, tramp.texi, url.texi, viper.texi, widget.texi:
* woman.texi:
Start direntry descriptions in column 32, per Texinfo convention.
Make them end with a period.
2010-06-24 07:10:51 +00:00
|
|
|
* Rcirc: (rcirc). Internet Relay Chat (IRC) client.
|
2007-09-06 05:07:05 +00:00
|
|
|
@end direntry
|
|
|
|
|
|
|
|
@titlepage
|
|
|
|
@title rcirc Manual
|
|
|
|
@page
|
|
|
|
@vskip 0pt plus 1filll
|
|
|
|
@insertcopying
|
|
|
|
@end titlepage
|
|
|
|
|
2009-02-16 17:41:58 +00:00
|
|
|
@contents
|
|
|
|
|
2007-09-06 05:07:05 +00:00
|
|
|
@ifnottex
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Top
|
2007-09-06 05:07:05 +00:00
|
|
|
@top rcirc Manual
|
|
|
|
|
|
|
|
@code{rcirc} is an Emacs IRC client.
|
|
|
|
|
|
|
|
IRC (Internet Relay Chat) is a multi-user chat protocol. Users
|
|
|
|
communicate with each other in real-time. Communication occurs both in
|
|
|
|
topic channels which are collections of many users, or privately, with
|
|
|
|
just one other user.
|
|
|
|
|
2009-02-16 17:41:58 +00:00
|
|
|
@insertcopying
|
|
|
|
|
|
|
|
@end ifnottex
|
|
|
|
|
2007-09-06 05:07:05 +00:00
|
|
|
@menu
|
|
|
|
* Basics::
|
|
|
|
* Reference::
|
2007-12-20 13:28:50 +00:00
|
|
|
* Fighting Information Overload::
|
2007-09-06 05:07:05 +00:00
|
|
|
* Hacking and Tweaking::
|
|
|
|
* GNU Free Documentation License::
|
|
|
|
* Key Index::
|
|
|
|
* Variable Index::
|
|
|
|
* Index::
|
|
|
|
|
|
|
|
@detailmenu
|
|
|
|
--- The Detailed Node Listing ---
|
|
|
|
|
|
|
|
Basics
|
|
|
|
|
|
|
|
* Internet Relay Chat::
|
|
|
|
* Getting started with rcirc::
|
|
|
|
|
|
|
|
Reference
|
|
|
|
|
|
|
|
* rcirc commands::
|
|
|
|
* Useful IRC commands::
|
|
|
|
* Configuration::
|
|
|
|
|
2007-12-20 13:28:50 +00:00
|
|
|
Fighting Information Overload
|
|
|
|
|
|
|
|
* Channels::
|
|
|
|
* People::
|
|
|
|
* Keywords::
|
|
|
|
* Notices::
|
|
|
|
|
2007-09-06 05:07:05 +00:00
|
|
|
Hacking and Tweaking
|
|
|
|
|
|
|
|
* Skipping /away messages using handlers::
|
|
|
|
* Using fly spell mode::
|
|
|
|
* Scrolling conservatively::
|
|
|
|
* Changing the time stamp format::
|
|
|
|
* Defining a new command::
|
|
|
|
|
|
|
|
@end detailmenu
|
|
|
|
@end menu
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Basics
|
2007-09-06 05:07:05 +00:00
|
|
|
@chapter Basics
|
|
|
|
|
|
|
|
This chapter contains a brief introduction to IRC (Internet Relay Chat),
|
|
|
|
and a quick tutorial on @code{rcirc}.
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* Internet Relay Chat::
|
|
|
|
* Getting started with rcirc::
|
|
|
|
@end menu
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Internet Relay Chat
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Internet Relay Chat
|
|
|
|
@cindex internet relay chat
|
|
|
|
@cindex irc
|
|
|
|
|
|
|
|
@cindex channel
|
|
|
|
@dfn{Internet Relay Chat} (IRC) is a form of instant communication over the
|
|
|
|
Internet. It is mainly designed for group (many-to-many) communication
|
|
|
|
in discussion forums called channels, but also allows one-to-one
|
|
|
|
communication.
|
|
|
|
|
|
|
|
@cindex instant messaging, comparison
|
|
|
|
@cindex server
|
|
|
|
@cindex network
|
|
|
|
Contrary to most Instant Messenger (IM) systems, users usually don't
|
2007-12-21 10:05:46 +00:00
|
|
|
connect to a central server. Instead, users connect to a random
|
|
|
|
server in a network, and servers relay messages from one to the next.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
Here's a typical example:
|
|
|
|
|
|
|
|
@cindex redirection to random servers
|
2021-07-04 03:39:18 +00:00
|
|
|
When you connect to the Libera.Chat network
|
|
|
|
(@code{https://libera.chat}), you point your IRC client at the
|
|
|
|
server @code{irc.libera.chat}. That server will redirect your client
|
|
|
|
to a random server on the network, such as
|
|
|
|
@code{zirconium.libera.chat}.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@cindex channel name
|
|
|
|
@cindex # starts a channel name
|
|
|
|
Once you're connected, you can send messages to all other users
|
|
|
|
connected to the same network, and you can join all channels on the same
|
|
|
|
network. You might join the @code{#emacs} and the @code{#rcirc}
|
|
|
|
channels, for example. (Typically, channel names begin with a hash
|
|
|
|
character.)
|
|
|
|
|
|
|
|
Once you have joined a channel, anything you type will be broadcast to
|
|
|
|
all the other users on the same channel.
|
|
|
|
|
|
|
|
@cindex addressing other people
|
|
|
|
@cindex other people, addressing them
|
|
|
|
@cindex talk to other people
|
|
|
|
If you want to address someone specifically, for example as an answer to
|
|
|
|
a question, it is customary to prefix the message with the nick followed
|
|
|
|
by a colon, like this:
|
|
|
|
|
|
|
|
@example
|
|
|
|
deego: fsbot rules!
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@cindex nick completion
|
|
|
|
@cindex completion of nicks
|
2022-03-12 21:18:49 +00:00
|
|
|
@vindex rcirc-cycle-completion-flag
|
2018-02-26 08:24:39 +00:00
|
|
|
@kindex TAB
|
2007-09-06 05:07:05 +00:00
|
|
|
Since this is so common, you can use @key{TAB} to do nick completion.
|
2022-03-12 21:18:49 +00:00
|
|
|
By default rcirc will use the default completion system, but you can
|
|
|
|
enable @code{rcirc-cycle-completion-flag} to cycle nicks in place.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Getting started with rcirc
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Getting started with rcirc
|
|
|
|
@cindex getting started
|
|
|
|
@cindex connecting to a server
|
|
|
|
|
|
|
|
@cindex irc command
|
|
|
|
Use the command @kbd{M-x irc} to connect using the defaults.
|
|
|
|
@xref{Configuration}, if you want to change the defaults.
|
|
|
|
|
2012-12-05 22:27:56 +00:00
|
|
|
Use @kbd{C-u M-x irc} if you don't want to use the defaults, e.g., if you
|
2007-09-06 05:07:05 +00:00
|
|
|
want to connect to a different network, or connect to the same network
|
|
|
|
using a different nick. This will prompt you for four things:
|
|
|
|
|
|
|
|
@table @asis
|
|
|
|
@cindex server, connecting
|
2021-07-04 03:39:18 +00:00
|
|
|
@cindex Libera.Chat network
|
2007-12-21 10:05:46 +00:00
|
|
|
@item IRC Server
|
2022-09-19 19:18:18 +00:00
|
|
|
What server do you want to connect to? All the servers in a particular
|
2021-07-04 03:39:18 +00:00
|
|
|
network are equivalent. Some networks use a round-robin system where
|
|
|
|
a single server redirects new connections to a random server in the
|
|
|
|
network. @code{irc.libera.chat} is such a server for the Libera.Chat
|
|
|
|
network. Libera.Chat's purpose is ``to provide services such as a
|
|
|
|
community platform for free open-source software and peer directed
|
|
|
|
projects on a volunteer basis,'' and was chosen as the official home
|
|
|
|
of the GNU Project and the Free Software Foundation's IRC channels in
|
|
|
|
June 2021 in the aftermath of the changes in governance and policies
|
|
|
|
of the Freenode IRC network. GNU and FSF's announcements about this
|
|
|
|
are at
|
|
|
|
@uref{https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html},
|
|
|
|
@uref{https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00007.html},
|
|
|
|
and
|
|
|
|
@uref{https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html}.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@cindex port, connecting
|
|
|
|
@cindex 6667, default IRC port
|
2007-12-21 10:05:46 +00:00
|
|
|
@item IRC Port
|
2007-09-06 05:07:05 +00:00
|
|
|
All network connections require a port. Just as web servers and clients
|
|
|
|
use port 80 per default, IRC uses port 6667 per default. You rarely
|
|
|
|
have to use a different port.
|
|
|
|
|
|
|
|
@cindex nick, connecting
|
|
|
|
@cindex changing nick
|
|
|
|
@cindex name changes
|
2007-12-21 10:05:46 +00:00
|
|
|
@item IRC Nick
|
2007-09-06 05:07:05 +00:00
|
|
|
@vindex user-login-name
|
|
|
|
Every users needs a handle on-line. You will automatically be assigned
|
|
|
|
a slightly different nick if your chosen nick is already in use. If
|
|
|
|
your @code{user-login-name} is @code{alex}, and this nick is already
|
|
|
|
in use, you might for example get assigned the nick @code{alex`}.
|
|
|
|
|
|
|
|
@cindex channels, connecting
|
|
|
|
@cindex initial channels
|
|
|
|
@cindex startup channels
|
2007-12-21 10:05:46 +00:00
|
|
|
@item IRC Channels
|
2007-09-06 05:07:05 +00:00
|
|
|
A space separated list of channels you want to join when connecting.
|
|
|
|
You don't need to join any channels, if you just want to have one-to-one
|
|
|
|
conversations with friends on the same network. If you're new to the
|
2021-07-04 03:39:18 +00:00
|
|
|
Libera.Chat network, join @code{#emacs}, the channel about all things
|
2007-09-06 05:07:05 +00:00
|
|
|
Emacs, or join @code{#rcirc}, the channel about @code{rcirc}.
|
|
|
|
@end table
|
|
|
|
|
|
|
|
@cindex server buffer
|
|
|
|
When you have answered these questions, @code{rcirc} will create a server
|
2021-07-04 03:39:18 +00:00
|
|
|
buffer, which will be named something like @file{*irc.libera.chat*},
|
2007-09-06 05:07:05 +00:00
|
|
|
and a channel buffer for each of the channels you wanted to join.
|
|
|
|
|
2018-02-26 08:24:39 +00:00
|
|
|
@kindex RET
|
2007-09-06 05:07:05 +00:00
|
|
|
@cindex talking
|
|
|
|
@cindex communicating
|
2007-12-21 10:05:46 +00:00
|
|
|
To talk in a channel, just type what you want to say in a channel
|
2007-09-06 05:07:05 +00:00
|
|
|
buffer, and press @key{RET}.
|
|
|
|
|
|
|
|
@kindex C-c C-c
|
|
|
|
@cindex multiline messages
|
|
|
|
@cindex messages, multiple lines
|
|
|
|
@cindex pasting multiple lines
|
|
|
|
@cindex edit message before sending
|
|
|
|
If you want to paste multiple lines, such as source code, you can use
|
|
|
|
@kbd{C-c C-c} to edit your message in a separate buffer. Use @kbd{C-c
|
|
|
|
C-c} to finish editing. You still need to press @key{RET} to send it,
|
|
|
|
though. Generally, IRC users don't like people pasting more than around
|
|
|
|
four lines of code, so use with care.
|
|
|
|
|
2007-12-21 10:05:46 +00:00
|
|
|
@comment This section copied from the Channels section.
|
|
|
|
@comment All index markers should point to the original!
|
|
|
|
Once you are connected to multiple channels, or once you've turned you
|
|
|
|
attention to other buffers in Emacs, you probably want to be notified
|
|
|
|
of any activity in channels not currently visible. All you need to do
|
|
|
|
is switch channel tracking on using @kbd{M-x rcirc-track-minor-mode}.
|
|
|
|
To make this permanent, add the following to your init file:
|
2007-12-20 13:28:50 +00:00
|
|
|
|
|
|
|
@example
|
|
|
|
(rcirc-track-minor-mode 1)
|
|
|
|
@end example
|
|
|
|
|
2007-12-21 10:05:46 +00:00
|
|
|
Use @kbd{C-c C-@key{SPC}} to switch to these buffers.
|
|
|
|
|
2021-09-11 14:01:45 +00:00
|
|
|
@vindex rcirc-track-ignore-server-buffer-flag
|
|
|
|
If the user wishes to ignore events in the server buffer, set
|
2022-10-27 11:09:49 +00:00
|
|
|
@code{rcirc-track-ignore-server-buffer-flag} to a non-@code{nil} value.
|
2021-09-11 14:01:45 +00:00
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Reference
|
2007-09-06 05:07:05 +00:00
|
|
|
@chapter Reference
|
|
|
|
@cindex reference
|
|
|
|
|
|
|
|
This is the reference section of the manual. It is not complete. For
|
|
|
|
complete listings of @code{rcirc} features, use Emacs built-in
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* rcirc commands::
|
|
|
|
* Useful IRC commands::
|
|
|
|
* Configuration::
|
|
|
|
@end menu
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node rcirc commands
|
2007-09-06 05:07:05 +00:00
|
|
|
@section rcirc commands
|
|
|
|
@cindex rcirc commands
|
|
|
|
@cindex commands
|
|
|
|
|
|
|
|
@kindex C-h m
|
|
|
|
This is a list of commands that you may use in @code{rcirc}. It is not
|
|
|
|
complete. For a complete listing, press @kbd{C-h m} in an @code{rcirc}
|
|
|
|
buffer.
|
|
|
|
|
|
|
|
In addition to using regular Emacs key bindings, you can call them by
|
|
|
|
typing them into an @code{rcirc} buffer.
|
|
|
|
|
|
|
|
@cindex call commands
|
|
|
|
@cindex typing commands
|
|
|
|
@cindex commands
|
|
|
|
For instance, instead of using the command @kbd{C-c C-j} to join a new
|
|
|
|
channel, you may type this in an @code{rcirc} buffer, and press @key{RET}:
|
|
|
|
|
|
|
|
@example
|
|
|
|
/join #emacs
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@cindex / starts a command
|
|
|
|
@cindex messages starting with a slash disappear
|
|
|
|
@cindex disappearing messages if starting with a slash
|
|
|
|
@cindex slash hides message
|
|
|
|
This is why you cannot start a message with a slash. You will have to
|
|
|
|
precede the command with a space, or rewrite your message in order to
|
|
|
|
send it to a channel.
|
|
|
|
|
|
|
|
@cindex multiple words as parameters
|
|
|
|
@cindex string delimiters
|
|
|
|
@cindex quotes
|
|
|
|
@cindex double-quotes
|
|
|
|
Many commands take parameters. IRC commands usually ignore string
|
2015-04-11 14:47:25 +00:00
|
|
|
delimiters. Neither apostrophe nor double-quote have special meanings in
|
2007-09-06 05:07:05 +00:00
|
|
|
IRC.
|
|
|
|
|
|
|
|
@example
|
|
|
|
/nick "alex schroeder"
|
|
|
|
@end example
|
|
|
|
|
|
|
|
This will try to change your nick to @code{"alex}. Usually this will
|
2008-02-05 03:15:42 +00:00
|
|
|
fail because the double quote character is not a valid character for
|
2007-09-06 05:07:05 +00:00
|
|
|
nicks.
|
|
|
|
|
|
|
|
@cindex case insensitive commands
|
|
|
|
These commands are case insensitive.
|
|
|
|
|
|
|
|
@cindex new command
|
|
|
|
@cindex unknown command
|
|
|
|
@cindex command unknown
|
|
|
|
If a command isn't known by @code{rcirc}, it will simply be sent along to the
|
|
|
|
server. There is a list of some useful commands like that in the next
|
|
|
|
section.
|
|
|
|
|
|
|
|
@table @kbd
|
|
|
|
@item C-c C-j
|
|
|
|
@kindex C-c C-j
|
|
|
|
@cindex /join
|
|
|
|
@cindex join channels
|
|
|
|
@cindex other channels
|
|
|
|
@cindex rooms, joining
|
|
|
|
@cindex discussion, joining
|
|
|
|
This joins a channel such as @code{#rcirc} or @code{#emacs}. On most
|
|
|
|
networks, anybody can create new channels. If you want to talk with
|
|
|
|
some friends, for example, all you have to do is agree on a valid
|
|
|
|
channel name and join that channel. (Also @code{/join #emacs}.)
|
|
|
|
|
|
|
|
@item C-c C-p
|
|
|
|
@kindex C-c C-p
|
|
|
|
@cindex /part
|
|
|
|
@cindex part a channel
|
|
|
|
@cindex leave a channel
|
|
|
|
@cindex disconnect from a channel
|
|
|
|
@cindex stop talking on a channel
|
|
|
|
@cindex kill channel buffer
|
2019-05-27 00:17:38 +00:00
|
|
|
This leaves the current channel. You can optionally provide a
|
|
|
|
different channel name and reason for parting. When you kill a
|
|
|
|
channel buffer, you automatically part the corresponding channel.
|
|
|
|
(Also @code{/part #emacs you are too weird!}.)
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@item C-c C-r
|
|
|
|
@kindex C-c C-r
|
|
|
|
@cindex /nick
|
|
|
|
@cindex change name
|
|
|
|
@cindex nick changing
|
|
|
|
@cindex rename yourself
|
|
|
|
@cindex other name
|
|
|
|
This changes your nick to some other name. Your nick must be unique
|
|
|
|
across the network. Most networks don't allow too many nick changes in
|
|
|
|
quick succession, and have restrictions on the valid characters in nick
|
|
|
|
names. (Also @code{/nick alex-test})
|
|
|
|
|
|
|
|
@item C-c C-w
|
|
|
|
@kindex C-c C-w
|
|
|
|
@cindex /whois
|
|
|
|
@cindex who are these people
|
|
|
|
@cindex identifying people
|
|
|
|
@cindex channels other people are on
|
|
|
|
@cindex what channels people are on
|
|
|
|
Gives you some basic information about a nick. This often includes what
|
|
|
|
other channels people are on. (Also @code{/whois fsbot}.)
|
|
|
|
|
|
|
|
@item C-c C-q
|
|
|
|
@kindex C-c C-q
|
|
|
|
@cindex /query
|
|
|
|
@cindex starting a private conversation
|
|
|
|
@cindex one-to-one conversation
|
|
|
|
@cindex talk privately
|
|
|
|
@cindex private conversation
|
|
|
|
@cindex contact one person only
|
|
|
|
@cindex query a person
|
|
|
|
Starts a one-to-one conversation with another person on the same
|
|
|
|
network. A new buffer will be created for this conversation. It works
|
|
|
|
like a channel with only two members. (Also @code{/query fsbot}.)
|
|
|
|
|
|
|
|
@item C-c @key{RET}
|
2018-02-26 08:24:39 +00:00
|
|
|
@kindex C-c RET
|
2007-09-06 05:07:05 +00:00
|
|
|
@cindex /msg
|
|
|
|
@cindex single message
|
|
|
|
@cindex message sending
|
|
|
|
This sends a single message to a nick. Like with @kbd{C-c C-q}, a new
|
|
|
|
buffer is created, where the response from the other party will show
|
|
|
|
up. (Also @code{/msg nickserv identify secret}.)
|
|
|
|
|
|
|
|
@item C-c C-x
|
|
|
|
@kindex C-c C-x
|
|
|
|
@cindex /quit
|
|
|
|
@cindex quit
|
|
|
|
@cindex disconnect
|
|
|
|
@cindex kill connection
|
|
|
|
@cindex connection end
|
|
|
|
@cindex part all channels
|
|
|
|
@cindex end connection
|
|
|
|
@cindex server buffer killing
|
|
|
|
@cindex reason for quitting
|
|
|
|
This disconnects from the server and parts all channels. You can
|
|
|
|
optionally provide a reason for quitting. When you kill the server
|
|
|
|
buffer, you automatically quit the server and part all channels. (Also
|
|
|
|
@code{/quit ZZZzzz...}.)
|
2017-12-11 00:56:48 +00:00
|
|
|
|
|
|
|
@item /reconnect
|
|
|
|
@cindex /reconnect
|
|
|
|
@cindex reconnect
|
|
|
|
@cindex lost connection
|
|
|
|
@cindex disconnecting servers, reconnecting
|
|
|
|
This reconnects after you have lost the connection.
|
|
|
|
|
|
|
|
If you're chatting from a laptop, then you might be familiar with this
|
|
|
|
problem: When your laptop falls asleep and wakes up later, your IRC
|
|
|
|
client doesn't realize that it has been disconnected. It takes several
|
|
|
|
minutes until the client decides that the connection has in fact been
|
|
|
|
lost. The simple solution is to use @kbd{M-x rcirc}. The problem is
|
|
|
|
that this opens an @emph{additional} connection, so you'll have two
|
|
|
|
copies of every channel buffer, one dead and one live.
|
|
|
|
|
2021-09-14 17:05:12 +00:00
|
|
|
One option therefore, is the @code{/reconnect} command.
|
|
|
|
|
|
|
|
An other approach is to set @code{rcirc-reconnect-delay} to a value
|
|
|
|
greater than 0, and allow rcirc to reconnect when it detects that the
|
|
|
|
connection has been closed. By default it will try to do this three
|
|
|
|
times (as specified by @code{rcirc-reconnect-attempts}), before giving
|
|
|
|
up.
|
2007-09-06 05:07:05 +00:00
|
|
|
@end table
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Useful IRC commands
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Useful IRC commands
|
|
|
|
@cindex irc commands
|
|
|
|
@cindex commands
|
|
|
|
|
|
|
|
As mentioned, if a command isn't known by @code{rcirc}, it will simply be sent
|
|
|
|
along to the server. Some such commands are available on nearly all IRC
|
|
|
|
servers, such as:
|
|
|
|
|
|
|
|
@table @code
|
|
|
|
@item /away
|
|
|
|
@cindex /away
|
|
|
|
@cindex away status
|
|
|
|
@cindex pause status
|
|
|
|
@cindex unavailable status
|
|
|
|
@cindex set away status
|
|
|
|
This sets your status as ``being away'' if you provide a reason, or sets
|
|
|
|
your status as ``being back'' if you do not. People can use the
|
|
|
|
@kbd{C-c C-w} command to check your status. Example: @code{/away food}.
|
|
|
|
@end table
|
|
|
|
|
|
|
|
@cindex irc resources
|
|
|
|
@cindex help about irc
|
|
|
|
Typical IRC servers implement many more commands. You can read more
|
|
|
|
about the fantastic world of IRC online at
|
2021-12-09 15:22:17 +00:00
|
|
|
@uref{https://www.irchelp.org/, the Internet Relay Chat (IRC) help
|
2007-09-06 05:07:05 +00:00
|
|
|
archive}.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Configuration
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Configuration
|
|
|
|
@cindex configuring rcirc
|
|
|
|
|
|
|
|
These are some variables you can change to configure @code{rcirc} to your
|
|
|
|
liking.
|
|
|
|
|
|
|
|
@table @code
|
2007-12-20 21:47:16 +00:00
|
|
|
@item rcirc-server-alist
|
|
|
|
@vindex rcirc-server-alist
|
|
|
|
@cindex channels, configuration
|
|
|
|
@cindex initial channels, configuration
|
|
|
|
@cindex startup channels, configuration
|
|
|
|
@cindex servers, configuration
|
|
|
|
@cindex initial servers, configuration
|
|
|
|
@cindex startup servers, configuration
|
2007-12-21 10:05:46 +00:00
|
|
|
This variable contains an alist of servers to connect to by default
|
|
|
|
and the keywords parameters to use. The keyword parameters are
|
|
|
|
optional. If you don't provide any, the defaults as documented below
|
|
|
|
will be used.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
2007-12-21 10:05:46 +00:00
|
|
|
The most important parameter is the @code{:channels} parameter. It
|
2007-12-20 21:47:16 +00:00
|
|
|
controls which channels you will join by default as soon as you are
|
|
|
|
connected to the server.
|
|
|
|
|
|
|
|
Here's an example of how to set it:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(add-to-list 'rcirc-server-alist
|
|
|
|
'("otherworlders.org"
|
|
|
|
:channels ("#FUDGE" "#game-design")))
|
|
|
|
@end example
|
|
|
|
|
|
|
|
By default you will be connected to the @code{rcirc} support channel:
|
2021-07-04 03:39:18 +00:00
|
|
|
@code{#rcirc} on @code{irc.libera.chat}.
|
2007-12-20 21:47:16 +00:00
|
|
|
|
|
|
|
@table @code
|
|
|
|
@item :nick
|
|
|
|
This overrides @code{rcirc-default-nick}.
|
|
|
|
|
|
|
|
@item :port
|
|
|
|
This overrides @code{rcirc-default-port}.
|
|
|
|
|
|
|
|
@item :user-name
|
|
|
|
This overrides @code{rcirc-default-user-name}.
|
|
|
|
|
|
|
|
@item :full-name
|
|
|
|
This overrides @code{rcirc-default-full-name}.
|
|
|
|
|
|
|
|
@item :channels
|
2007-12-21 10:05:46 +00:00
|
|
|
This describes which channels to join when connecting to the server.
|
|
|
|
If absent, no channels will be connected to automatically.
|
2007-12-20 21:47:16 +00:00
|
|
|
|
|
|
|
@end table
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@item rcirc-default-nick
|
|
|
|
@vindex rcirc-default-nick
|
2007-12-21 10:05:46 +00:00
|
|
|
This variable is used for the default nick. It defaults to the login
|
2007-12-20 21:47:16 +00:00
|
|
|
name returned by @code{user-login-name}.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@example
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-default-nick "kensanata")
|
2007-09-06 05:07:05 +00:00
|
|
|
@end example
|
|
|
|
|
2007-12-20 21:47:16 +00:00
|
|
|
@item rcirc-default-port
|
|
|
|
@vindex rcirc-default-port
|
|
|
|
@cindex port
|
2007-12-21 10:05:46 +00:00
|
|
|
This variable contains the default port to connect to. It is 6667 by
|
2007-12-20 21:47:16 +00:00
|
|
|
default and rarely needs changing.
|
|
|
|
|
|
|
|
@item rcirc-default-user-name
|
|
|
|
@vindex rcirc-default-user-name
|
|
|
|
@cindex user name
|
2007-12-21 10:05:46 +00:00
|
|
|
This variable contains the default user name to report to the server.
|
|
|
|
It defaults to the login name returned by @code{user-login-name}, just
|
|
|
|
like @code{rcirc-default-nick}.
|
2007-12-20 21:47:16 +00:00
|
|
|
|
2011-06-28 10:18:02 +00:00
|
|
|
@item rcirc-default-full-name
|
|
|
|
@vindex rcirc-default-full-name
|
2007-09-06 05:07:05 +00:00
|
|
|
@cindex full name
|
|
|
|
@cindex real name
|
|
|
|
@cindex surname
|
2012-12-05 22:27:56 +00:00
|
|
|
This variable is used to set your ``real name'' on IRC@. It defaults
|
2007-12-21 10:05:46 +00:00
|
|
|
to the name returned by @code{user-full-name}. If you want to hide
|
|
|
|
your full name, you might want to set it to some pseudonym.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@example
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-default-full-name "Curious Minds Want To Know")
|
2007-09-06 05:07:05 +00:00
|
|
|
@end example
|
|
|
|
|
2007-12-20 21:47:16 +00:00
|
|
|
@item rcirc-authinfo
|
2007-09-06 05:07:05 +00:00
|
|
|
@vindex rcirc-authinfo
|
2011-12-14 21:05:20 +00:00
|
|
|
@cindex authentication
|
2007-09-06 05:07:05 +00:00
|
|
|
@cindex identification
|
|
|
|
@cindex nickserv
|
|
|
|
@cindex login
|
2007-12-20 21:47:16 +00:00
|
|
|
This variable is an alist used to automatically identify yourself on
|
2007-12-21 10:05:46 +00:00
|
|
|
networks. Each sublist starts with a regular expression that is
|
|
|
|
compared to the server address you're connecting to. The second
|
|
|
|
element in the list is a symbol representing the method to use,
|
|
|
|
followed by the arguments this method requires.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
Here is an example to illustrate how you would set it:
|
|
|
|
|
|
|
|
@example
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-authinfo
|
|
|
|
'(("Libera.Chat" nickserv "bob" "p455w0rd")
|
|
|
|
("Libera.Chat" chanserv "bob" "#bobland" "passwd99")
|
|
|
|
("bitlbee" bitlbee "robert" "sekrit")))
|
2007-09-06 05:07:05 +00:00
|
|
|
@end example
|
|
|
|
|
|
|
|
And here are the valid method symbols and the arguments they require:
|
|
|
|
|
|
|
|
@table @code
|
|
|
|
@item nickserv
|
2011-12-14 21:05:20 +00:00
|
|
|
@cindex nickserv authentication
|
2007-09-06 05:07:05 +00:00
|
|
|
Use this symbol if you need to identify yourself as follows when
|
|
|
|
connecting to a network: @code{/msg nickserv identify secret}. The
|
|
|
|
necessary arguments are the nickname you want to use this for, and the
|
|
|
|
password to use.
|
|
|
|
|
|
|
|
Before you can use this method, you will have to register your nick and
|
|
|
|
pick a password for it. Contact @code{nickserv} and check out the
|
|
|
|
details. (Using @code{/msg nickserv help}, for example.)
|
|
|
|
|
|
|
|
@item chanserv
|
2011-12-14 21:05:20 +00:00
|
|
|
@cindex chanserv authentication
|
2007-09-06 05:07:05 +00:00
|
|
|
Use this symbol if you need to identify yourself as follows if you want
|
|
|
|
to join a particular channel: @code{/msg chanserv identify #underground
|
|
|
|
secret}. The necessary arguments are the nickname and channel you want
|
|
|
|
to use this for, and the password to use.
|
|
|
|
|
|
|
|
Before you can use this method, a channel contact must tell you about
|
|
|
|
the password to use. Contact @code{chanserv} and check out the details.
|
|
|
|
(Using @code{/msg chanserv help}, for example.)
|
|
|
|
|
|
|
|
@item bitlbee
|
2011-12-14 21:05:20 +00:00
|
|
|
@cindex bitlbee authentication
|
2007-09-06 05:07:05 +00:00
|
|
|
Use this symbol if you need to identify yourself in the Bitlbee channel
|
|
|
|
as follows: @code{identify secret}. The necessary arguments are the
|
|
|
|
nickname you want to use this for, and the password to use.
|
2021-06-24 16:45:08 +00:00
|
|
|
|
2007-09-06 05:07:05 +00:00
|
|
|
@cindex gateway to other IM services
|
|
|
|
@cindex instant messaging, other services
|
|
|
|
@cindex Jabber
|
|
|
|
@cindex AIM
|
|
|
|
@cindex ICQ
|
|
|
|
@cindex MSN
|
|
|
|
@cindex Yahoo!
|
|
|
|
Bitlbee acts like an IRC server, but in fact it is a gateway to a lot of
|
|
|
|
other instant messaging services. You can either install Bitlbee
|
|
|
|
locally or use a public Bitlbee server. There, you need to create an
|
|
|
|
account with a password. This is the nick and password you need to
|
2011-12-14 21:05:20 +00:00
|
|
|
provide for the bitlbee authentication method.
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
Later, you will tell Bitlbee about your accounts and passwords on all
|
|
|
|
the other instant messaging services, and Bitlbee will log you in. All
|
|
|
|
@code{rcirc} needs to know, is the login to your Bitlbee account. Don't
|
|
|
|
confuse the Bitlbee account with all the other accounts.
|
2007-12-20 13:28:50 +00:00
|
|
|
|
2021-11-15 17:33:51 +00:00
|
|
|
@item sasl
|
|
|
|
@cindex sasl authentication
|
|
|
|
Use this symbol if you want to use @acronym{SASL} authentication. The
|
|
|
|
necessary arguments are the nickname you want to use this for, and the
|
|
|
|
password to use.
|
|
|
|
|
2021-11-15 17:40:58 +00:00
|
|
|
@item certfp
|
|
|
|
@cindex certfp authentication
|
|
|
|
Use this symbol if you want to use CertFP authentication. The
|
2022-07-01 08:50:19 +00:00
|
|
|
necessary arguments are the path to the key and to the client
|
|
|
|
certificate associated with the account. The CertFP authentication
|
|
|
|
requires a @acronym{TLS} connection.
|
2021-11-15 17:40:58 +00:00
|
|
|
|
2007-09-06 05:07:05 +00:00
|
|
|
@end table
|
|
|
|
|
2007-12-20 21:47:16 +00:00
|
|
|
@end table
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Fighting Information Overload
|
2007-12-20 13:28:50 +00:00
|
|
|
@chapter Fighting Information Overload
|
|
|
|
@cindex information overload
|
|
|
|
|
|
|
|
This is the section of the manual that caters to the busy person
|
2007-12-21 10:05:46 +00:00
|
|
|
online. There are support channels with several hundred people in
|
|
|
|
them. Trying to follow a conversation in these channels can be a
|
|
|
|
daunting task. This chapters tells you how @code{rcirc} can help.
|
2007-12-20 13:28:50 +00:00
|
|
|
|
|
|
|
@menu
|
|
|
|
* Channels::
|
|
|
|
* People::
|
|
|
|
* Keywords::
|
|
|
|
* Notices::
|
|
|
|
@end menu
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Channels
|
2007-12-20 13:28:50 +00:00
|
|
|
@section Channels
|
|
|
|
@cindex channels
|
|
|
|
@cindex modeline
|
|
|
|
|
2007-12-21 10:05:46 +00:00
|
|
|
@comment This section copied to the Getting started with rcirc section
|
2018-02-26 08:24:39 +00:00
|
|
|
@kindex C-c C-SPC
|
2007-09-06 05:07:05 +00:00
|
|
|
@vindex rcirc-track-minor-mode
|
|
|
|
@cindex switching channels
|
|
|
|
@cindex tracking activity
|
|
|
|
@cindex active channel
|
|
|
|
@cindex abbreviated channel names
|
|
|
|
@cindex modeline tracks activity
|
|
|
|
Most people want a notification when something is said on a channel they
|
|
|
|
have joined, particularly if they have been addressed directly. There
|
|
|
|
is a global minor mode that will do this kind of tracking for you. All
|
|
|
|
you need to do is switch it on using @kbd{M-x rcirc-track-minor-mode}.
|
|
|
|
To make this permanent, add the following to your init file:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(rcirc-track-minor-mode 1)
|
|
|
|
@end example
|
|
|
|
|
|
|
|
When other people say things in buffers that are currently buried (no
|
|
|
|
window is showing them), the mode line will now show you the abbreviated
|
|
|
|
channel or nick name. Use @kbd{C-c C-@key{SPC}} to switch to these
|
|
|
|
buffers.
|
|
|
|
|
2022-12-16 06:49:17 +00:00
|
|
|
@cindex rcirc-track-abbreviate-flag
|
2021-09-11 14:40:18 +00:00
|
|
|
By default the channel names are abbreviated, set
|
2022-12-16 06:49:17 +00:00
|
|
|
@code{rcirc-track-abbreviate-flag} to a non-@code{nil} value. This
|
|
|
|
might be interesting if the IRC activities are not tracked in the mode
|
|
|
|
line, but somewhere else.
|
2021-09-11 14:40:18 +00:00
|
|
|
|
2007-09-06 05:07:05 +00:00
|
|
|
@vindex rcirc-mode-hook
|
|
|
|
If you prefer not to load @code{rcirc} immediately, you can delay the
|
|
|
|
activation of this mode:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(add-hook 'rcirc-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(rcirc-track-minor-mode 1)))
|
|
|
|
@end example
|
|
|
|
|
2007-12-20 13:28:50 +00:00
|
|
|
@cindex busy channels
|
|
|
|
If you've joined a very active support channel, tracking activity is
|
2007-12-21 10:05:46 +00:00
|
|
|
no longer useful. The channel will be always active. Switching to
|
2007-12-20 13:28:50 +00:00
|
|
|
active channels using @kbd{C-c C-@key{SPC}} no longer works as
|
|
|
|
expected.
|
|
|
|
|
|
|
|
@kindex C-c C-l
|
|
|
|
@cindex low priority channels
|
2009-02-20 12:36:50 +00:00
|
|
|
The solution is to mark this channel as a low priority channel.
|
2007-12-21 10:05:46 +00:00
|
|
|
Use @kbd{C-c C-l} to make the current channel a low-priority channel.
|
|
|
|
Low priority channels have the modeline indicator ``LowPri''.
|
2007-12-20 13:28:50 +00:00
|
|
|
@kbd{C-c C-@key{SPC}} will not switch to low priority channels unless
|
|
|
|
you use the @kbd{C-u} prefix.
|
|
|
|
|
2018-02-26 08:24:39 +00:00
|
|
|
@kindex C-c TAB
|
2007-12-20 13:28:50 +00:00
|
|
|
@cindex ignored channels
|
|
|
|
If you prefer a channel to never show up in the modeline, then you
|
2007-12-21 10:05:46 +00:00
|
|
|
have to ignore it. Use @kbd{C-c @key{TAB}} to ignore the current
|
2007-12-20 13:28:50 +00:00
|
|
|
channel.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node People
|
2007-12-20 13:28:50 +00:00
|
|
|
@section People
|
|
|
|
@cindex people, how to ignore
|
|
|
|
@cindex nicks, how to ignore
|
|
|
|
@cindex friends
|
|
|
|
@cindex buddies
|
|
|
|
@cindex trolls
|
|
|
|
|
|
|
|
The most important command available to the discerning IRC user is
|
2007-12-21 10:05:46 +00:00
|
|
|
@code{/ignore}. It's the big equalizer online: If people aggravate
|
2007-12-20 13:28:50 +00:00
|
|
|
you, just ignore them.
|
|
|
|
|
|
|
|
This is of course a crude all-or-nothing solution. Fear not,
|
|
|
|
@code{rcirc} offers alternatives: You can ``brighten'' your buddies
|
|
|
|
and ``dim'' certain other nicks that you don't want to ignore
|
|
|
|
altogether.
|
|
|
|
|
|
|
|
@table @code
|
|
|
|
@item /ignore
|
|
|
|
@cindex /ignore
|
|
|
|
@cindex ignoring other people
|
|
|
|
@cindex trolls, ignoring
|
|
|
|
@cindex hide some posts
|
|
|
|
@cindex idiots online
|
|
|
|
This command toggles the ignore status of a nick, if you provide one.
|
|
|
|
If you don't provide a nick, the command lists all the nicks you are
|
|
|
|
ignoring. All messages by ignored nicks are---you guessed it---ignored.
|
|
|
|
Since only ``operators'' can kick people from channels, the
|
|
|
|
ignore command is often the only way to deal with some of the more
|
2007-12-21 11:33:54 +00:00
|
|
|
obnoxious fellows online. Example: @code{/ignore rudybot}.
|
2007-12-20 13:28:50 +00:00
|
|
|
|
|
|
|
@item /bright
|
|
|
|
@cindex /bright
|
|
|
|
@cindex highlight other people
|
|
|
|
@cindex friends, highlight
|
|
|
|
@cindex buddies, highlight
|
|
|
|
@cindex nicks, highlight
|
|
|
|
@cindex brighten nicks
|
|
|
|
This command toggles the bright status of a nick, if you provide one.
|
|
|
|
If you don't provide a nick, the command lists all the ``brightened''
|
|
|
|
nicks. All messages by brightened nicks are---you guessed
|
2007-12-21 10:05:46 +00:00
|
|
|
it---brightened. Use this for your friends. Example: @code{/bright
|
2007-12-20 13:28:50 +00:00
|
|
|
rcy}.
|
|
|
|
|
|
|
|
@item /dim
|
|
|
|
@cindex /dim
|
|
|
|
@cindex soft-ignore other people
|
|
|
|
@cindex obnoxious people online
|
|
|
|
@cindex rabble online
|
|
|
|
This command toggles the dim status of a nick, if you provide one. If
|
|
|
|
you don't provide a nick, the command lists all the ``dimmed'' nicks.
|
|
|
|
All messages by dimmed nicks are---you guessed it---dimmed. Use this
|
2007-12-21 10:05:46 +00:00
|
|
|
for boring people and bots. If you are tracking channel activity,
|
|
|
|
messages by dimmed nicks will not register as activity. Example:
|
2007-12-20 13:28:50 +00:00
|
|
|
@code{/dim fsbot}.
|
|
|
|
@end table
|
|
|
|
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Keywords
|
2007-12-20 13:28:50 +00:00
|
|
|
@section Keywords
|
|
|
|
@cindex keywords
|
|
|
|
|
|
|
|
On a busy channel, you might want to ignore all activity (using
|
2007-12-21 10:05:46 +00:00
|
|
|
@kbd{C-c @key{TAB}}) and just watch for certain keywords. The
|
2007-12-20 13:28:50 +00:00
|
|
|
following command allows you to highlight certain keywords:
|
|
|
|
|
|
|
|
@table @code
|
|
|
|
@item /keyword
|
|
|
|
@cindex /keyword
|
|
|
|
This command toggles the highlighting of a keyword, if you provide
|
2007-12-21 10:05:46 +00:00
|
|
|
one. If you don't provide a keyword, the current keywords are
|
|
|
|
listed. Example: @code{/keyword manual}.
|
2007-12-20 13:28:50 +00:00
|
|
|
@end table
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Notices
|
2007-12-20 13:28:50 +00:00
|
|
|
@section Notices
|
2009-02-20 12:36:50 +00:00
|
|
|
@cindex part notices, how to omit
|
2007-12-20 13:28:50 +00:00
|
|
|
@cindex join notices, how to omit
|
|
|
|
@cindex quit notices, how to omit
|
|
|
|
@cindex nick notices, how to omit
|
|
|
|
|
|
|
|
@kindex C-c C-o
|
|
|
|
@cindex low priority channels
|
|
|
|
In busy channels you might not be interested in all the joining,
|
2007-12-21 10:05:46 +00:00
|
|
|
parting, quitting, and renaming that goes on. You can omit those
|
2007-12-20 13:28:50 +00:00
|
|
|
notices using @kbd{C-c C-o}.
|
|
|
|
|
|
|
|
@vindex rcirc-omit-responses
|
|
|
|
@cindex away notices, how to omit
|
|
|
|
You can control which notices get omitted via the
|
2007-12-21 10:05:46 +00:00
|
|
|
@code{rcirc-omit-responses} variable. Here's an example of how to
|
|
|
|
omit away messages:
|
2007-12-20 13:28:50 +00:00
|
|
|
|
|
|
|
@example
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY"))
|
2007-12-20 13:28:50 +00:00
|
|
|
@end example
|
|
|
|
|
|
|
|
@vindex rcirc-omit-threshold
|
|
|
|
Notice that these messages will not be omitted if the nick in question
|
2007-12-21 10:05:46 +00:00
|
|
|
has recently been active. After all, you don't want to continue a
|
|
|
|
conversation with somebody who just left. That's why @code{rcirc}
|
2007-12-20 13:28:50 +00:00
|
|
|
checks recent lines in the buffer to figure out if a nick has been
|
2007-12-21 10:05:46 +00:00
|
|
|
active and only omits a message if the nick has not been active. The
|
2007-12-20 13:28:50 +00:00
|
|
|
window @code{rcirc} considers is controlled by the
|
|
|
|
@code{rcirc-omit-threshold} variable.
|
|
|
|
|
2021-09-30 14:25:48 +00:00
|
|
|
@vindex rcirc-omit-unless-requested
|
|
|
|
Certain messages can be omitted by default, unless the user manual
|
2024-07-21 14:33:08 +00:00
|
|
|
requests them. For example, if you don't want to display @code{TOPIC}
|
2021-09-30 14:25:48 +00:00
|
|
|
and @code{NAMES} messages, after reconnecting, you can configure
|
|
|
|
@code{rcirc-omit-unless-requested} to hide:
|
|
|
|
|
|
|
|
@example
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-omit-unless-requested '("TOPIC" "NAMES"))
|
2021-09-30 14:25:48 +00:00
|
|
|
@end example
|
|
|
|
|
|
|
|
Now NAMES will only be displayed, after it has been requested via the
|
|
|
|
@code{rcirc-cmd-name} command.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Hacking and Tweaking
|
2007-09-06 05:07:05 +00:00
|
|
|
@chapter Hacking and Tweaking
|
|
|
|
@cindex hacking and tweaking
|
|
|
|
|
|
|
|
Here are some examples of stuff you can do to configure @code{rcirc}.
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* Skipping /away messages using handlers::
|
|
|
|
* Using fly spell mode::
|
|
|
|
* Scrolling conservatively::
|
|
|
|
* Changing the time stamp format::
|
|
|
|
* Defining a new command::
|
2021-09-13 17:08:28 +00:00
|
|
|
* Using rcirc with bouncers::
|
2022-09-19 19:15:04 +00:00
|
|
|
* Dealing with Bridge Bots::
|
2007-09-06 05:07:05 +00:00
|
|
|
@end menu
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Skipping /away messages using handlers
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Skipping @code{/away} messages using handlers
|
|
|
|
@cindex /away messages
|
|
|
|
|
|
|
|
@cindex handlers
|
|
|
|
@cindex status codes
|
|
|
|
The IRC protocol specifies how certain events are signaled from server
|
|
|
|
to client. These events have numbers and are dealt with using so-called
|
|
|
|
handlers. You can override existing handlers by exploiting the naming
|
|
|
|
convention adopted for @code{rcirc}.
|
|
|
|
|
|
|
|
Here's how to stop @code{rcirc} from printing @code{/away} messages.
|
|
|
|
Since @code{rcirc} doesn't define a 301 handler, you don't need to
|
|
|
|
require @code{rcirc} before defining the handler:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(defun rcirc-handler-301 (process cmd sender args)
|
|
|
|
"/away message handler.")
|
|
|
|
@end example
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Using fly spell mode
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Using fly spell mode
|
|
|
|
@cindex fly spell
|
|
|
|
@cindex spelling
|
|
|
|
@cindex spell-checking as you type
|
|
|
|
@cindex automatic spelling
|
|
|
|
@vindex rcirc-mode-hook
|
|
|
|
|
|
|
|
The following code activates Fly Spell Mode
|
|
|
|
for @code{rcirc} buffers:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(add-hook 'rcirc-mode-hook (lambda ()
|
|
|
|
(flyspell-mode 1)))
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@xref{Spelling, , Flyspell mode, emacs, The GNU Emacs Manual},
|
|
|
|
for details.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Scrolling conservatively
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Scrolling conservatively
|
|
|
|
@cindex input line
|
|
|
|
@cindex scrolling
|
|
|
|
@vindex scroll-conservatively
|
|
|
|
@vindex rcirc-mode-hook
|
|
|
|
|
|
|
|
IRC buffers are constantly growing. If you want to see as much as
|
|
|
|
possible at all times, you would want the prompt at the bottom of the
|
|
|
|
window when possible. The following snippet uses a local value for
|
|
|
|
@code{scroll-conservatively} to achieve this:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(add-hook 'rcirc-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(set (make-local-variable 'scroll-conservatively)
|
|
|
|
8192)))
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@xref{Scrolling, , Scrolling conservatively, emacs, The GNU Emacs
|
|
|
|
Manual}, for details.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Changing the time stamp format
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Changing the time stamp format
|
|
|
|
@cindex time stamp
|
|
|
|
@cindex date time
|
|
|
|
@cindex format time stamp
|
|
|
|
@vindex rcirc-time-format
|
2023-12-19 12:14:33 +00:00
|
|
|
@vindex rcirc-log-time-format
|
2007-09-06 05:07:05 +00:00
|
|
|
|
|
|
|
@code{rcirc-time-format} is the format used for the time stamp. Here's
|
|
|
|
how to include the date in the time stamp:
|
|
|
|
|
|
|
|
@example
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-time-format "%Y-%m-%d %H:%M ")
|
2007-09-06 05:07:05 +00:00
|
|
|
@end example
|
|
|
|
|
2023-12-19 12:14:33 +00:00
|
|
|
For log files, a different time format can be specified using the
|
|
|
|
@code{rcirc-log-time-format} user option.
|
|
|
|
|
2022-01-06 13:55:59 +00:00
|
|
|
@findex rcirc-when
|
|
|
|
If you don't wish to use verbose time formatting all the time, you can
|
2022-01-06 16:53:45 +00:00
|
|
|
use the @code{rcirc-when} command to display a complete timestamp for
|
2022-01-06 13:55:59 +00:00
|
|
|
the message at point.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Defining a new command
|
2007-09-06 05:07:05 +00:00
|
|
|
@section Defining a new command
|
|
|
|
@cindex defining commands
|
|
|
|
@cindex commands, defining
|
|
|
|
@cindex new commands, defining
|
|
|
|
|
|
|
|
Here's a simple new command, @code{/sv}. With it, you can boast about
|
2021-09-11 14:43:56 +00:00
|
|
|
your IRC client. It shows how you can use @code{rcirc-define-command} to
|
2007-09-06 05:07:05 +00:00
|
|
|
define new commands.
|
|
|
|
|
2021-09-11 14:43:56 +00:00
|
|
|
@findex rcirc-define-command
|
2007-09-06 05:07:05 +00:00
|
|
|
We're waiting for the definition of this command until @code{rcirc} is loaded
|
2021-09-11 14:43:56 +00:00
|
|
|
because @code{rcirc-define-command} is not yet available, and without
|
2007-09-06 05:07:05 +00:00
|
|
|
@code{rcirc} loaded, the command wouldn't do us much good anyway.
|
|
|
|
|
|
|
|
@smallexample
|
2016-04-30 17:20:12 +00:00
|
|
|
(with-eval-after-load 'rcirc
|
2021-09-11 14:43:56 +00:00
|
|
|
(rcirc-define-command sv ()
|
2016-04-30 17:20:12 +00:00
|
|
|
"Boast about rcirc."
|
|
|
|
(interactive "i")
|
2021-09-11 14:43:56 +00:00
|
|
|
(rcirc-send-message process target "I use " rcirc-id-string)))
|
2007-09-06 05:07:05 +00:00
|
|
|
@end smallexample
|
|
|
|
|
2021-09-11 14:37:42 +00:00
|
|
|
@node Using rcirc with bouncers
|
|
|
|
@section Using rcirc with bouncers
|
|
|
|
@cindex bouncer
|
|
|
|
|
|
|
|
Some bouncers multiplex connections to various servers, but have to
|
2022-09-19 19:18:18 +00:00
|
|
|
modify nicks and channel names to make this work. The channel
|
2021-09-11 14:37:42 +00:00
|
|
|
@code{#emacs} on @code{irc.libera.chat} becomes
|
|
|
|
@code{#emacs/irc.libera.chat}.
|
|
|
|
|
|
|
|
@vindex rcirc-nick-filter
|
|
|
|
@vindex rcirc-channel-filter
|
|
|
|
The options @code{rcirc-nick-filter} and @code{rcirc-channel-filter}
|
2022-09-19 19:18:18 +00:00
|
|
|
can be used to make this feel more natural. When set to functions,
|
2021-09-11 14:37:42 +00:00
|
|
|
these will be used to change how nicks and channel names are
|
2022-09-19 19:18:18 +00:00
|
|
|
displayed. A simple configuration to fix the above example might be:
|
2021-09-11 14:37:42 +00:00
|
|
|
|
|
|
|
@smallexample
|
|
|
|
(defun my/rcirc-remove-suffix (STR)
|
|
|
|
"Remove suffixes from STR."
|
|
|
|
(save-match-data
|
|
|
|
(if (string-match "/[[:alpha:]]+?\\'" str)
|
|
|
|
(substring str 0 (match-beginning 0))
|
|
|
|
str)))
|
|
|
|
|
2022-09-20 08:32:26 +00:00
|
|
|
(setopt rcirc-nick-filter #'my/rcirc-remove-suffix
|
|
|
|
rcirc-channel-filter #'local/rcirc-soju-suffix)
|
2021-09-11 14:37:42 +00:00
|
|
|
@end smallexample
|
|
|
|
|
2022-09-19 19:15:04 +00:00
|
|
|
@node Dealing with Bridge Bots
|
|
|
|
@section Dealing with Bridge Bots
|
|
|
|
@cindex bridge
|
|
|
|
|
|
|
|
It is increasingly common for IRC channels to be ``bridged'' onto
|
|
|
|
other networks such as XMPP, Matrix, etc. Sometimes the software does
|
|
|
|
a good job at mapping each non-IRC user into an IRC user, but more
|
|
|
|
often than not it doesn't. In that case you might receive a message
|
|
|
|
like:
|
|
|
|
|
|
|
|
@example
|
|
|
|
@verbatim
|
|
|
|
09:47 <bridge> <john> I am not on IRC
|
|
|
|
@end verbatim
|
|
|
|
@end example
|
|
|
|
|
|
|
|
where @samp{bridge} is a bot responsible for sending messages back and
|
|
|
|
forth between networks, and @samp{john} is the user name of someone on
|
|
|
|
a different network. Note that the bot indicates this within the
|
|
|
|
message (@verb{|<john> I am not on IRC|}) that appears in your chat
|
|
|
|
buffer.
|
|
|
|
|
|
|
|
@vindex rcirc-bridge-bot-alist
|
|
|
|
If this annoys you, the user option @code{rcirc-bridge-bot-alist} may
|
|
|
|
be of use. It consists of descriptions of what users are these kinds
|
|
|
|
of ``bridge bots'' and how they format their messages. To handle the
|
|
|
|
above example, we might set the user option to:
|
|
|
|
|
|
|
|
@example
|
|
|
|
(setopt rcirc-bridge-bot-alist
|
|
|
|
'(("bridge" . "<\\(.+?\\)>[[:space:]]+")))
|
|
|
|
@end example
|
|
|
|
|
|
|
|
If there is an entry for the current user, @code{rcirc} will take the
|
|
|
|
associated regular expression and try to find a match in the message
|
|
|
|
string. If it manages to find anything, the matching expression is
|
|
|
|
deleted from the message. The regular expression must contain at
|
|
|
|
least one group that will match the user name of the bridged message.
|
|
|
|
This will then be used to replace the username of the bridge bot.
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node GNU Free Documentation License
|
2007-09-06 05:07:05 +00:00
|
|
|
@appendix GNU Free Documentation License
|
|
|
|
@include doclicense.texi
|
|
|
|
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Key Index
|
2007-09-06 05:07:05 +00:00
|
|
|
@unnumbered Key Index
|
|
|
|
@printindex ky
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Variable Index
|
2007-09-06 05:07:05 +00:00
|
|
|
@unnumbered Variable Index
|
|
|
|
@printindex vr
|
|
|
|
|
2012-12-22 19:49:54 +00:00
|
|
|
@node Index
|
2007-09-06 05:07:05 +00:00
|
|
|
@unnumbered Index
|
|
|
|
@printindex cp
|
|
|
|
|
|
|
|
@bye
|