NAME
  snowcone - IRC client and solanum server notice console
SYNOPSIS
  snowcone MODE [--config=PATH] [key.path=value ...]

DESCRIPTION
  snowcone is a terminal IRC client for network operators. Its hub mode
  connects to any number of networks at once, chats on them, and turns
  server notices into live views of recent connections, exits, bans and
  per-server load. It runs on a scripting environment whose code and
  configuration can be reloaded without dropping connections.

MODES
  hub          Chat and server notices on many networks. This page is about
               hub mode.
  program.lua  A Lua program, given by its path. It has no terminal until it
               calls snowcone.start_ui(), and snowcone exits once the program
               has no work left.

GETTING STARTED
  hub reads ~/.config/snowcone/hub.toml. A minimal configuration names
  one network with a short id, how to reach it and a nick:

	[[networks]]
	id = 'libera'

	[networks.server]
	host = 'irc.libera.chat'
	port = 6697

	[[networks.layers]]
	type = 'tls'

	[networks.identity]
	nick = 'mynick'

  Then run snowcone hub. Add a [[networks]] table for each network. SASL,
  operator login, proxies, client certificates, features and the other
  settings are described in docs/CONFIG.md in the snowcone source.

  Settings can be overridden for one run on the command line, for example
  snowcone hub ui.profile=chat.

USING HUB
  The bottom line is the status bar: the view's name, then every network
  colored by state (green connected, yellow on the way, red idle), with
  + or ! for unseen chat or a mention. Click a network, press Meta-1 to
  Meta-9, or use /net to choose the current network. Views and commands
  act on the current network.

  Commands start with / and are typed on the bottom line. A command that
  acts on a network can name another one with @id first, for example
  /quote @oftc WHOIS someone.

  Many things on screen can be clicked: a network, a column title to
  sort by it, a connection to stage a K-Line for it, a message to inspect
  it in the detail pane, or a [+N more] button to expand a list.

  The detail pane opens above the view to show one thing in full: a
  message, a /whois or /whowas reply, or a channel's topic, modes and
  members (/chaninfo). Clicking a buffer's name in the status bar opens
  a channel's information or a nick's /whois. A status line that starts
  with ▸ opens what it summarizes. While the pane is open it takes the
  scrolling keys; Esc or its [CLOSE] closes it, and [DISCARD] also drops
  it from the status lines that would reopen it. The mouse wheel scrolls
  the pane or the view, whichever it is over.

KEYS
  /            Type a command
  t            Talk in the shown chat buffer
  a            Send an action (/me) to the shown chat buffer
  T            Send a notice to the shown chat buffer
  n, p         Next and previous chat buffer, in the buffer view
  C-s          Filter the current view, or the detail pane when it shows
               a /quote reply, a /whowas or a channel
  Esc          Close the detail pane; else leave input, clear filters and
               scrolling
  C-n, C-p     Next and previous view of the rotation
  F1..F12      A view of the rotation
  Meta-1..9    Choose a network
  Meta-a       The next buffer with unseen messages, mentions first
  Meta-p       The formatting palette: click styles and colors into the
               line being typed
  PgUp, PgDn   Scroll by a page; Up and Down by a line (the detail pane
               while it is open)
  Tab          Complete commands, channels and nicks
  C-c          Quit; a second C-c exits at once

  While typing, the usual Emacs editing keys work: C-a, C-e, C-k, C-u,
  C-w, C-y, Meta-f, Meta-b. Up and Down step through command history.
  The line shows its IRC formatting as it will be seen, with a glyph for
  each formatting code; Meta-p's palette puts them in at the cursor.

COMMANDS
  /help lists the commands you can use on the current network, grouped
  by what they are for, with the views as one row of names to click;
  C-s searches it as you type, and Meta-a shows the commands of every
  feature. To begin with:

  /talk target      Open a buffer for a channel or nick, joining the channel
  /msg target text  Send a message
  /net id          Choose the current network
  /networks        Every network's state
  /session         The current network's connection
  /status          The client's log, where errors appear
  /connect, /disconnect, /reconnect  
                   Control the current network's connection
  /quote command   Send an IRC command
  /reload [file]   Load new code and configuration, keeping connections.
                   With a file, read that configuration from then on.
  /quit            Disconnect from every network and exit

VIEWS
  Each view has a command of the same name. With the snotice feature and
  operator access:

  cliconn, cliexit     Recent connections and exits
  connload, exitload   Connection and exit load per server, and DNS rotations
  bans                 K-Lines, D-Lines and kills
  channels             New channels, flooders and spambots
  netcount             Users per address range, and connection watches

  For chat: buffer (the shown buffer) and list (/list results). For
  everyone: console (raw IRC traffic), status, networks, session, stats,
  help and plugins.

PLUGINS
  Plugins are Lua files in ~/.config/snowcone/plugins, named in the
  [plugins] modules setting. A plugin returns a function that receives
  the plugin api; the README has an example.

SIGNALS
  SIGUSR1  Reload code and configuration, like /reload.
  SIGINT, SIGTERM, SIGHUP  
           Quit, as C-c does.

FILES
  ~/.config/snowcone/hub.toml  
    The hub configuration, in TOML (or the file given with --config).
    $XDG_CONFIG_HOME replaces ~/.config when it is set.

  ~/.config/snowcone/plugins/  
    Plugin files and their saved data.

  ~/.config/snowcone/GeoLite2-ASN.mmdb  
    With the mmdb Lua library installed, used to show the network that
    owns each connecting address.

  /usr/share/snowcone/  
    The Lua sources of hub.

SEE ALSO
  https://github.com/glguy/snowcone

AUTHOR
  snowcone was written by Eric Mertens <glguy@libera.chat> and is published
  under the ISC license.
