- General Settings
- Buffer Settings
- messageLayout
- alert_on
- timestamp_format
- timestamp_full_format
- show_timestamps
- scrollback_size
- show_hostnames
- show_joinparts
- show_topics
- show_nick_changes
- show_mode_changes
- traffic_as_activity
- coloured_nicklist
- colour_nicknames_in_messages
- block_pms
- show_emoticons
- extra_formatting
- mute_sound
- hide_message_counts
- show_realnames
- default_ban_mask
- default_kick_reason
- shared_input
- show_message_info
- who_loop
- share_typing
- flash_title
- nicklist_avatars
- show_link_previews
- inline_link_auto_previews
- inline_link_auto_preview_whitelist
- Startup screen options
Note: In progress
These are the top level settings of the configuration object.
E.g.
{ ... }
The default language to display the client in. If set to false
, the language will be automatically determined from the users browser.
E.g. "language": "es-es"
An array of plugins to load into the client. These are loaded when the page loads and Kiwi is ready to start.
E.g.
”plugins”: [ {“name”: “my_plugin”, “url”: ”https://url/plugin.js”}, {“name”: “my_second_plugin”, “url”: ”https://url/plugin2.js”}] ]
Traditionally IRC clients use mono space fonts but more modern clients are starting to use other style fonts instead. Set this to true to enable monospace fonts if the theme supports it.
E.g. ”useMonospace”: true
The name of the default theme. This theme must exist in the available themes.
E.g. ”theme”: “Default”
The list of available themes that are available to the client.
E.g.
”themes”: [ {“name”: “Default”, “url”: “static/themes/default”}, {“name”: “Dark”, “url”: “static/themes/dark”} ]
Setting this to true restricts the client to connect only to the IRC server you configure. Effects:
-
No extra networks can be added to the client by the user
-
The network settings panel is hidden
E.g. ”restricted”: true
Setting this to true will hide the advanced settings button from the settings screen. Only the basic settings will be available to the user.
E.g. "hide_advanced": false
The name of the default startup screen. This is the first screen that the user sees on opening the client. Some are better suited for single IRC networks while others may be better suited for bouncer login interfaces. More information on startup screens can be found here (TODO: link to startup screen info)
E.g. ”startupScreen”: “welcome”
The URL to your kiwi server, or sometimes called the webircgateway server. This URL can either be relative to the client page or an absolute URL. However, if using a different host name or port than the client page then you must remember to whitelist the client address in the server config.
Additional note; This must be the direct path to the kiwiirc endpoint of the server, usually /webirc/kiwiirc/
.
E.g. ”kiwiServer”: ”https://webirc.example.com/webirc/kiwiirc/”
If enabled, the client will show a prompt to the user asking if they wanted to close the page when they try to do so. This prevents accidental page refreshes and getting disconnected from the IRC network.
E.g. ”warnOnExit”: true
If enabled, an autocomplete box will appear on pressing tab to auto complete nicknames, commands, and channels. Pressing the @ key also open the autocomplete box for nicknames.
E.g. ”showAutoComplete”: true
If enabled, the send message button will be shown allowing the user to click a button to send a message. This button is shown automatically on touch screen devices in either case.
E.g. ”showSendButton”: false
If set, the sidebar will be shown at start-up with the specified panel.
Available options:
-
about
-
nicklist
-
settings
E.g. ”sidebarDefault”: "nicklist"
Aliases allow you to create custom IRC commands that alias another or chain multiple together with pre-set variables. (TODO: link to dedicated page on aliases)
E.g. ”aliases”: “/p /part $1”
Show or hide the emoji picker, defaults to true
. This is ignored on touchscreen devices where the operating systems default keyboard usually contains a native emoji picker.
E.g. "showEmojiPicker": true,
Show or hide away status indicators on user avatars, defaults to true
.
E.g. "showAwayStatusIndicators": true,
An object to replace emoticon strings with emoji characters. The emoji character is represented by its Unicode value.
E.g.
“emojis”: { “-__-”: “1f611”, “:-D”: “1f605” }
The base URL to find the emoji images. The emoji Unicode characters will be appended to the URL followed by .png
.
E.g. ”emojiLocation”: “https://kiwiirc.com/shared/emoji”
A list of networks to show the user in the client when the user adds a new network. This will enter the server, port and any TLS option to the network.
E.g.
“presetNetworks”: [ { “name”: “freenode”, “server”: “irc.freenode.net”, “port”: 6667, “tls”: false }, { “name”: “dalnet”, “server”: “irc.dal.net”, “port”: 6667, “tls”: false } ]
When previewing links in the client it can optionally use embedly to embed any media links such as YouTube videos, soundcloud tracks and pastebin snippets. You may provide an embedly API key to remove any branding from the page. See www.embedly.com for more information on this.
E.g. ”embedly” { “key”: “my_api_key” }
If true, forward all notices to the active buffer if one exists. Otherwise, all notices will be added to the server tab.
E.g. "noticeActiveBuffer": true,
The following settings must be within the buffer
object of the configuration.
E.g.
“buffers”: { ... }
The default layout for buffers. Traditional IRC clients are more compact and less visual, while a more modern client may be more spacious and easier to read to the general public. Available options:
-
compact
-
modern
E.g. ”messageLayout”: “compact”
When the user should be alerted on receiving a message. Available options:
-
message
alert on every message. -
highlight
alert each time somebody mentions the user or any of their extra highlight words. -
never
never alert the user.
E.g. ”alert_on”: “highlight”
The format of the timestamps shown next to a message. More information on these formats can be found here (TODO: link or type up the format options)
E.g. ”timestamp_format”: “%H:%M:%S”
Like the timestamp_format
option but when a full date and time is needed. If set to false the browsers default format will be used, using the users default locale.
E.g. ”timestamp_full_format”: false
If enabled, the time when a message was received will be shown.
E.g. “show_timestamps”: true
The number of messages to keep in the window. The higher this number, the more memory will be used in the browser.
E.g. ”scrollback_size”: 250
If enabled, show users hostnames when they join or leave a channel.
E.g. show_hostnames: false
If enabled, show the new topic as a message when a channel topic changes.
E.g. ”show_topics”: true
If enabled, show when users change their nickname as a message.
E.g. ”show_nick_changes”: true
If enabled, show channel mode changes as a message when they change.
E.g. ”show_mode_changes”: true
If enabled, include traffic messages (joins, parts, quits) in the unread message counters.
E.g. ”traffic_as_activity”: false,
If enabled, the nicklist will show user nicknames in the colour that has been auto generated for them. Otherwise they will show under a single colour set by the theme.
E.g. ”coloured_nicklist”: true
If enabled, highlight nicknames found in messages with the colour they have been auto generated with.
E.g. ”colour_nicknames_in_messages”: true
If enabled, users will not receive private messages unless they have sent a private message to the sender first. Note: ircops and op’s of shared channels are exempt from this block.
E.g. ”block_pms”: false
If enabled, emojis and simple emoticon characters such as :)
will be replaced with images.
E.g. ”show_emoticons”: true
If enabled, basic markdown will be supported in messages.
E.g. ”extra_formatting”: true
If enabled, unread message counters next to the channel names will be hidden.
E.g. ”hide_message_counts”: false
If enabled, show the users real name field next to their nick on supported message layouts.
E.g. show_realnames: false
When no other automated way can be found to ban a user this user mask will be used. %n
, %i
and %h
will be replaced with the selected users nick, ident and hostname respectively.
E.g. ”default_ban_mask”: “*!%i@%h”
The default reason to give to a user if you kick them from a channel without one specified.
E.g. ”default_kick_reason”: “Your behavior is not conducive to the desired environment.”
If enabled, each buffer will share the message input history. Otherwise, each buffer will contain its own message input history that will be remembered as the user switches between buffers.
E.g. ”shared_input”: false
If enabled, on touch screen devices you can tap a message to open a menu to reply or view more information about a message.
E.g. show_message_info: true
On older IRC networks without away-notify support, repeatedly poll the server for everybodies away status. Set this to false to disable this function.
E.g. who_loop: true
If the IRC server supports IRCv3 message-tags, send and receive users typing statuses to show which users are currently typing a message.
E.g. share_typing: true
Flash the window or browser tab title when a new message arrives while a different browser tab has focus. Available options are "message" for all messages, "highlight" for highlighted messages only, or "off" to disable the flashing title entirely.
E.g. "flash_title": "message"
If a user has an available avatar (set by either a custom plugin or IRC server metadata) then display them in the nicklist.
E.g. "nicklist_avatars": true
URLs converted to links within messages will have a small icon next to it to preview the link directly in the page. This icon can be disabled by setting this to false.
E.g. "show_link_previews": true
When enabled, a preview of the link will be automatically shown underneath the message.
E.g. "inline_link_auto_previews": true
If links sent in a message match this regex pattern, a preview will be automatically shown after the message.
E.g. "inline_link_auto_preview_whitelist": "youtube.com|imgur.com"
The startup screen manages how the client starts up. It may add default networks, offer a login form, display custom HTML content or any other things. The startup screen starts the initial IRC connection before telling the client to take over and display the main client interface.
Because the startup screen kick starts the IRC connection it must know the connection details, along with any other specific settings for the screen itself which may differ between different startup screens.
The following settings must be within the startupOptions
object.
E.g.
“startupOptions”: { ... }
The IRC server address to connect to. If using a Kiwi server, the server may override this setting transparently.
E.g. ”server”: “irc.example.com”
The port number to find the IRC server on. If using a Kiwi server, the server may override this setting transparently.
E.g. ”port”: 6667
If enabled, the client will attempt to connect to the IRC server using SSL/TLS. If using a Kiwi server, the server may override this setting transparently.
E.g. ”tls”: false
The channel to join once the IRC connection has successfully be made. More than one channel may be entered being separated by a comma.
E.g. ”channel”: “#chan1,#chan2”
The nickname to use on the IRC server. If it is already in use then a random number will be automatically appended until it connects successfully. A ?
may be used to insert a random number in its place.
E.g. ”nick”: “prawnsalad”
If the IRC server supports websocket connections (TODO link to websocket spec info on webircgateway docs) you may enable this option to ignore the kiwiServer
setting and connect directly to the IRC server. This will connect to the websocket server set in the normal server
/port
/tls
options.
E.g. ”direct”: false
If the direct
option is enabled, the websocket connection will be made to this path.
E.g. "direct_path": "/path/to/websocket"
The user settings and state are saved within their browser (local storage) under a key name. This key may be changed to provide different instances of the client without impacting any existing state they may previously have. Setting to false
will disable any storage.
E.g. ”state_key”: “kiwi-state”