Skip to content

Latest commit

 

History

History
396 lines (246 loc) · 13.8 KB

Configuration-Options.asciidoc

File metadata and controls

396 lines (246 loc) · 13.8 KB

Note: In progress

General Settings

These are the top level settings of the configuration object.

E.g.

{
    ...
}

language

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"

plugins

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”}]
]

windowTitle

The title of the Kiwi webpage.

E.g. ”windowTitle”: ”Kiwi IRC”

useMonospace

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

theme

The name of the default theme. This theme must exist in the available themes.

E.g. ”theme”: “Default”

themes

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”}
]

restricted

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

showRaw

If enabled, the raw traffic to and from the IRC servers will be shown in a *raw buffer tab.

hide_advanced

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

startupScreen

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”

kiwiServer

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/”

warnOnExit

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

showAutoComplete

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

showSendButton

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

sidebarDefault

If set, the sidebar will be shown at start-up with the specified panel.

Available options:

  • about

  • nicklist

  • settings

E.g. ”sidebarDefault”: "nicklist"

aliases

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”

showColorPicker

Show or hide the colour palette icon to add colours to messages.

showEmojiPicker

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,

showAwayStatusIndicators

Show or hide away status indicators on user avatars, defaults to true.

E.g. "showAwayStatusIndicators": true,

emojis

An object to replace emoticon strings with emoji characters. The emoji character is represented by its Unicode value.

E.g.

“emojis”: {
    “-__-”: “1f611”,
    “:-D”: “1f605”
}

emojiLocation

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”

presetNetworks

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 }
]

embedly

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” }

noticeActiveBuffer

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,

Buffer Settings

The following settings must be within the buffer object of the configuration.

E.g.

“buffers”: {
    ...
}

messageLayout

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”

alert_on

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”

timestamp_format

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”

timestamp_full_format

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

show_timestamps

If enabled, the time when a message was received will be shown.

E.g. “show_timestamps”: true

scrollback_size

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

show_hostnames

If enabled, show users hostnames when they join or leave a channel.

E.g. show_hostnames: false

show_joinparts

If enabled, show when users join or leave a channel.

E.g. ”show_joinparts”: true

show_topics

If enabled, show the new topic as a message when a channel topic changes.

E.g. ”show_topics”: true

show_nick_changes

If enabled, show when users change their nickname as a message.

E.g. ”show_nick_changes”: true

show_mode_changes

If enabled, show channel mode changes as a message when they change.

E.g. ”show_mode_changes”: true

traffic_as_activity

If enabled, include traffic messages (joins, parts, quits) in the unread message counters.

E.g. ”traffic_as_activity”: false,

coloured_nicklist

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

colour_nicknames_in_messages

If enabled, highlight nicknames found in messages with the colour they have been auto generated with.

E.g. ”colour_nicknames_in_messages”: true

block_pms

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

show_emoticons

If enabled, emojis and simple emoticon characters such as :) will be replaced with images.

E.g. ”show_emoticons”: true

extra_formatting

If enabled, basic markdown will be supported in messages.

E.g. ”extra_formatting”: true

mute_sound

If enabled, sounds will be muted when an alert is shown.

E.g. ”mute_sound”: false

hide_message_counts

If enabled, unread message counters next to the channel names will be hidden.

E.g. ”hide_message_counts”: false

show_realnames

If enabled, show the users real name field next to their nick on supported message layouts.

E.g. show_realnames: false

default_ban_mask

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”

default_kick_reason

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.”

shared_input

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

show_message_info

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

who_loop

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

share_typing

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_title

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"

nicklist_avatars

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"

Startup screen options

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”: {
    ...
}

server

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”

port

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

tls

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

channel

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”

nick

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”

direct

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

direct_path

If the direct option is enabled, the websocket connection will be made to this path.

E.g. "direct_path": "/path/to/websocket"

state_key

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”

nick_format

If set, a user can only click the connect button if the nickname matches this regex pattern.

E.g. "nick_format": "/[a-z_][a-z_0-9]/"