From 54660e32d3d55986e52282cff7c0aa4ae0312820 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 26 Mar 2026 12:28:56 +0100 Subject: [PATCH] Release 0.17.0 --- guide/0170/basic.html | 180 ++ guide/0170/build.html | 219 +++ guide/0170/codeoverview.html | 164 ++ guide/0170/files.html | 118 ++ guide/0170/install.html | 229 +++ guide/0170/keybindings.html | 251 +++ guide/0170/main_fragment.html | 1921 ++++++++++++++++++++ guide/0170/omemo.html | 211 +++ guide/0170/otr.html | 377 ++++ guide/0170/pgp.html | 166 ++ guide/0170/presence.html | 137 ++ guide/0170/reference.html | 41 + guide/0170/roomconf.html | 157 ++ guide/0170/rooms.html | 141 ++ guide/0170/subscriptions.html | 199 ++ guide/0170/themes.html | 446 +++++ guide/0170/toc_fragment.html | 108 ++ guide/0170/userguide.html | 49 + guide/latest/main_fragment.html | 15 +- pagesource/userguide.xml | 1 + profanity_version.txt | 2 +- tarballs/profanity-0.17.0.tar.xz | Bin 0 -> 446068 bytes tarballs/profanity-0.17.0.tar.xz.sha256sum | 1 + tarballs/profanity-0.17.0.zip | Bin 0 -> 789652 bytes tarballs/profanity-0.17.0.zip.sha256sum | 1 + 25 files changed, 5128 insertions(+), 6 deletions(-) create mode 100644 guide/0170/basic.html create mode 100644 guide/0170/build.html create mode 100644 guide/0170/codeoverview.html create mode 100644 guide/0170/files.html create mode 100644 guide/0170/install.html create mode 100644 guide/0170/keybindings.html create mode 100644 guide/0170/main_fragment.html create mode 100644 guide/0170/omemo.html create mode 100644 guide/0170/otr.html create mode 100644 guide/0170/pgp.html create mode 100644 guide/0170/presence.html create mode 100644 guide/0170/reference.html create mode 100644 guide/0170/roomconf.html create mode 100644 guide/0170/rooms.html create mode 100644 guide/0170/subscriptions.html create mode 100644 guide/0170/themes.html create mode 100644 guide/0170/toc_fragment.html create mode 100644 guide/0170/userguide.html create mode 100644 tarballs/profanity-0.17.0.tar.xz create mode 100644 tarballs/profanity-0.17.0.tar.xz.sha256sum create mode 100644 tarballs/profanity-0.17.0.zip create mode 100644 tarballs/profanity-0.17.0.zip.sha256sum diff --git a/guide/0170/basic.html b/guide/0170/basic.html new file mode 100644 index 0000000..ffed010 --- /dev/null +++ b/guide/0170/basic.html @@ -0,0 +1,180 @@ + + + + + Profanity, a console based XMPP client - Getting Started + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Quick Start Guide

+
+
+
+

Contents

+ + +
+
+ +

Starting Profanity

+ +

To start Profanity, run the following at the command line:

+
$ profanity
+

To see options available to the command:

+
$ profanity -h
+
+
+ +

User Interface

+ +

+

The user interface is split into four main areas:

+ +

Title bar

+

+

Shows the title for the current window (usually the contact you are chatting with, or the chat room you + have joined), and your current presence.

+ +

Main window area

+

+

Used to show the current active window. The first window (1) is reserved for the 'console' where system + messages and command responses are shown.

+ +

Status bar

+

+

Shows the time, the user you are logged in as, and status of each window. If a window is used, its number + will appear, if it has new messages of any kind, the number will be highlighted. The current window is + shown as -1-.

+ +

Input area

+

+

Where commands and messages are entered. Commands and command arguments can be autocompleted with the tab + key.

+

All commands start with a / character e.g.:

+
/help
+
+
+ +

Window navigation

+ +

To make a window visible in the main window area, use any of the following:

+

+ Alt-1 to Alt-0
+ F1 to F10
+ Alt-left, Alt-right +

+

The /win command may also be used. Either the + window number may be passed, or the window title:

+
/win 4
+/win someroom@chatserver.org
+/win MyBuddy
+

To close the current window:

+
/close
+
+
+ +

Connecting

+ +

To connect to an XMPP chat service:

+
/connect user@server.com
+

You will be prompted by the status bar to enter your password.

+

See the /connect command for additional arguments that + may be used when connecting.

+
+
+ +

One to one chat

+ +

To open a new window and send a message use the /msg + command:

+

/msg mycontact@server.com Hello there!
+ +

Profanity uses the contact's nickname by default, if one exists. For example:

+
/msg Bob Are you there bob?
+ +

Once a window is opened with the contact, messages can be sent by just typing them in the input + window:

+
Hows it going?
+
+
+ +

Chat rooms

+ +

To join a chat room, use the /join command:

+

/join room@server.org
+ +

Once a window is opened for the room, messages can be sent by just typing them in the input + window:

+
Hello everyone
+ +

See the chat Chat room guide for more detail.

+
+
+ +

Adding contacts

+ +

To add someone to your roster:

+
/roster add newfriend@server.chat.com
+ +

To subscribe to a contacts presence (to be notified when they are online/offline etc):

+
/sub request newfriend@server.chat.com
+ +

To approve a contact's request to subscribe to your presence:

+
/sub allow newfriend@server.chat.com
+ +

See the /roster and /sub commands for more detail.

+
+
+ +

Changing your presence

+ +

To change your presence, use the following commands:

+
/status set away
+/status set xa
+/status set chat
+/status set online
+/status set dnd
+

Each of these commands accepts a message as a parameter, so to show the message "I'm very busy" to your + contacts when setting status to Do Not Disturb:

+
/status set dnd I'm very busy
+
+
+ +

Logging out

+ +

To log out from the current chat service:

+
/disconnect
+

To quit profanity:

+
/quit
+
+
+ + + + \ No newline at end of file diff --git a/guide/0170/build.html b/guide/0170/build.html new file mode 100644 index 0000000..baa675f --- /dev/null +++ b/guide/0170/build.html @@ -0,0 +1,219 @@ + + + + + Profanity, a console based XMPP client - Manual Building + + + + + + + + + + Profanity Illustration +
+

+ User Guide +

+

Manual Building

+ +
+
+
+

Contents

+ + +
+
+ +

Building

+ +

Profanity uses the Autotools for its build system. The Autotools consist of Autoconf and Automake. This + page doesn't go in any detail about the Autotools, but describes the commands needed to build Profanity, + and brief descriptions of the various stages. You will also need autoconf-archive.

+ +

You can either download the archive from the homepage or use git, a version control system, to get the + latest code.

+

If you want to get the latest version from git you'll have to do:

+
git clone https://github.com/profanity-im/profanity
+ +

After obtaining the source code, and extracting it, use the following commands to build and install

+

./bootstrap.sh
+./configure
+make
+make install
+

The first step is only needed if you pulled from git

+

The final step requires root privileges.

+ +

Various dependencies are required to install Profanity, the ./configure script will + fail if the minimum dependencies cannot be found.

+

The latest code in master is also kept up to date with development changes + to libstrophe, so a manual build of this library may also be needed

+
+
+ +

Dependencies

+ +

The package names below are from Ubuntu and may differ per distribution.

+ +

Build dependencies:

+
automake
+autoconf
+autoconf-archive
+libtool
+pkg-config
+ +

Required dependencies:

+ +

Profanity is using libstrophe.

+ +

Profanity also requires development packages of:

+
ncurses
+glib
+libcurl
+readline
+sqlite3
+ +

Optional dependencies:

+ +
libnotify                # Desktop notification support
+libxss                   # Desktop idle time autoaway support
+libotr                   # OTR support
+libgpgme                 # PGP support
+libsignal-protocol-c     # OMEMO support
+libgcrypt                # OMEMO support (>= 1.7)
+gtk2 or gtk3             # Desktop tray icon support
+python                   # Python plugin support
+cmocka                   # To run tests
+shared-mime-info         # Send files with the correct mime type
+gdk-pixbuf2              # Scale the image for `/avatar set`
+qrencode                 # Display OMEMO QR code
+
+
+ +

Distribution details:

+ +

To make it easier to install all the required packages in various distributions we collect copy pastes + here. These are contributed to users and might be out of date. Feel free to create pull request to improve this section.

+ +

Debian

+
apt-get install libcaca-dev libnotify-dev libgtk2.0-dev libotr5-dev libssl-dev libstrophe-dev pkg-config python3-dev libexpat1-dev libncursesw5-dev libglib2.0-dev libreadline-dev libgpgme11-dev libcurl4-gnutls-dev uuid-dev libcmocka-dev libgcrypt20-dev libsignal-protocol-c-dev libxss-dev libsqlite3-dev autoconf-archive  autoconf libgdk-pixbuf-2.0-dev libqrencode-dev
+
+ +

openSUSE

+
zypper in gcc make automake autoconf libtool glib2-devel gtk2-devel libcmocka-devel libcurl-devel libexpat-devel libgpgme-devel libstrophe-devel libnotify-devel libotr-devel libuuid-devel ncurses-devel python3-devel readline-devel autoconf-archive libsignal-protocol-c-devel libgcrypt-devel sqlite3-devel gdk-pixbuf-devel qrencode-devel
+ +

Alpine Linux (Edge)

+
apk add build-base autoconf autoconf-archive automake libtool pkgconf libmesode-dev ncurses-dev glib-dev curl-dev readline-dev libnotify-dev libxscrnsaver libotr-dev gpgme-dev libsignal-protocol-c-dev libgcrypt-dev gtk+2.0-dev python3-dev cmocka-dev
+ +

Note that some of the packages for Alpine Linux are only available in the "testing" repository

+ +

Arch Linux

+
pacman -S --needed autoconf autoconf-archive automake base-devel check cmake cmocka curl doxygen expat gcc git gpgme gtk2 libgcrypt libnotify libotr libtool libxss make openssl pkg-config python wget sqlite gdk-pixbuf2 qrencode
+ +

Fedora

+
dnf install autoconf autoconf-archive automake expect-devel gcc git glib2-devel glibc-all-langpacks gtk2-devel libXScrnSaver-devel libcmocka-devel libcurl-devel expat-devel libgcrypt-devel gpgme-devel libmicrohttpd-devel libnotify-devel libotr-devel libsignal-protocol-c-devel libtool libuuid-devel make ncurses-devel python3 python3-devel readline-devel openssl-devel sqlite-devel gdk-pixbuf2-devel qrencode-devel libstrophe-devel
+ +

Mac OS

+
brew install autoconf autoconf-archive automake libtool pkg-config glib gnutls gpgme libotr libstrophe openssl ossp-uuid readline terminal-notifier libsignal-protocol-c
+ +

Some required packages are "keg-only", which means they are not symlinked into /usr/local, therefore + pkg-config will fail when detecting the libraries and the build will fail. In order to fix this we need + to add these packages to the PKG_CONFIG_PATH.

+ +

+export PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"
+export PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:$PKG_CONFIG_PATH"
+export PKG_CONFIG_PATH="/usr/local/opt/curl/lib/pkgconfig:$PKG_CONFIG_PATH"
+export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH"
+export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig:$PKG_CONFIG_PATH"
+            
+ +

OpenBSD

+
pkg_add cmake gmake cmocka libtool automake-1.16.2 pkgconf readline python-3.8.2 autoconf-2.69p2 autoconf-archive libstrophe curl gpgme glib2 gtk+2 libotr libassuan libgpg-error libgcrypt libsignal-protocol-c sqlite3
+
+
+ +

Explanations:

+ +

Input files

+

configure.ac – Macro definitions to configure profanity for the target environment (autoconf)

+

Makefile.am – Template Makefile (automake)

+ +

These files are the inputs to generating the actual configure script and Makefile required to configure + and compile Profanity.

+ +

Generating a configure script

+ +

To generate the configure script:

+ +
./bootstrap.sh
+ +

This phase only needs to be run when changes have been made to configure.ac, however it does no harm to + run it on every build. This phase also generates other files needed to create a config.h header + (variables used in the main code), and a Makefile (used for compilation).

+

Why not just write configure yourself, instead of writing configure.ac and generating one with + bootstrap.sh? Take a look at the generated configure script and you'll see why, there's a lot of work + involved in writing a configure script.

+

The bootstrap.sh file is very simple, it just runs autoreconf --install see autoreconf

+ +

Configuring

+ +

Once the configure script has been generated, run it to configure profanity.

+ +
./configure
+ +

This will result in the following being generated, along with some other files:

+ +
src/config.h
+Makefile
+ +

Compiling

+

The following step will then compile Profanity:

+ +
make
+ +

Once you have run ./bootstrap.sh and ./configure once, if all you are doing is making code changes, then + you only need to run make to recompile your changes.

+

To perform a clean build (i.e. remove all compiled files and recompile)

+ +
make clean
+make
+ +

Tests

+

All tests (unit and functional) can be run with:

+ +
make check
+ +

Unit tests alone can be run with:

+ +
make check-unit
+ +

Install

+ +

Once you have compiled profanity with make, the executable will be available in the current directory: +

+
./profanity
+ +

To install this version on your system, i.e. to be able to run it from anywhere:

+ +
sudo make install
+ +

This step is not really necessary when doing development (i.e. you can always run the version just + compiled in the project directory), unless you want to have your development version available to any + users on your system.

+
+
+ + + + diff --git a/guide/0170/codeoverview.html b/guide/0170/codeoverview.html new file mode 100644 index 0000000..05581dd --- /dev/null +++ b/guide/0170/codeoverview.html @@ -0,0 +1,164 @@ + + + + + Profanity, a console based XMPP client - Manual Building + + + + + + + + + + Profanity Illustration +
+

+ User Guide +

+

Code Overview

+ +
+
+
+

Contents

+ + +
+
+

This page gives an overview of the code base, the various modules and their responsibilities.

+

It was originally written in 2015 and might not be up to date, but can help you navigate the profanity + codebase nevertheless.

+ +

The main loop

+

Everything in Profanity happens within a simple loop. When you run:

+
profanity
+

The main() function is called in:

+
src/main.c
+

At the end of main(), a call is made to prof_run() which can be found in:

+
src/profanity.c
+

At time of writing, this function is as follows:

+
void
+prof_run(const int disable_tls, char *log_level, char *account_name)
+{
+    _init(disable_tls, log_level);
+    _connect_default(account_name);
+    ui_update();
+
+    log_info("Starting main event loop");
+
+    char *line = NULL;
+    while(cont) {
+        log_stderr_handler();
+        _check_autoaway();
+
+        line = ui_readline();
+        if (line) {
+            ProfWin *window = wins_get_current();
+            cont = cmd_process_input(window, line);
+            free(line);
+            line = NULL;
+        } else {
+            cont = TRUE;
+        }
+
+#ifdef HAVE_LIBOTR
+        otr_poll();
+#endif
+        notify_remind();
+        jabber_process_events(10);
+        ui_update();
+    }
+}
+

The important sequence of events in the main loop are:

+ + +

- Check if the user entered a line (ui_readline() at src/ui/core.c).
+ - If they did, attempt to process the input (cmd_process_input() at + src/command.c).
+ - Check for and handle any incoming XMPP events (jabber_process_events() at + src/xmpp/connection.c).
+ - Refresh the UI (ui_update() at src/ui/core.c).
+ - Loop

+ +
+ +
+ +

Modules

+ +

Commands

+

All code related to running user entered commands, for example /who.

+

Location: src/command

+ src/command/cmd_defs.c - Command definitions.
+ src/command/cmd_ac.c - Command autocompletion rules.
+ src/command/cmd_funcs.c - Command implementation functions

+ +

Configuration

+

Code related to looking up and storing information in configuration files.

+

Location: src/config +

src/config/account.c - Data structure representing an account.
+ src/config/accounts.c - Access to the accounts config file.
+ src/config/preferences.c - Access to the profrc config file.
+ src/config/theme.c - Access to themes.

+ +

Events

+

Work in progress. The intention is to move all events that could involve a plugin hook into this + directory. Currently only a small number of functions have been moved here.

+

Location: src/event

+

src/event/client_events.c - Events initiated by Profanity, e.g. connecting, or sending a + message.
+ src/event/server_events.c - Events received from the XMPP server, e.g. an incoming + message.
+ src/event/common.c - Common functions used in both client and server events.

+ +

Off The Record Encryption

+

Code to deal with OTR encryption using the libotr library. Hides the different library version API's + from the core Profanity code.

+

Location: src/otr

+ +

OpenPGP Encryption

+

Code to handle PGP encryption.

+

Location: src/pgp + +

OMEMO Encryption

+

Code to handle OMEMO encryption.

+

Location: src/omemo + +

Common Tools

+

Basic utility functions and common code such as autocomplete implementation.

+

Location: src/tools + +

User Interface

+

All User Interface code, input handling, window rendering etc.

+

Location: src/ui

+

src/ui/buffer.c - Buffer of all output, used for redrawing the UI on + resize.
+ src/ui/console.c - Display functions for the console window.
+ src/ui/core.c - Display functions for most other operations involving the + main window area.
+ src/ui/inputwin.c - Functions to handle the input window (where the user + types).
+ src/ui/notifier.c - Desktop notification functions.
+ src/ui/occupantswin.c - Functions for rendering the Occupants panel in chat + rooms.
+ src/ui/rosterwin.c - Functions for rendering the Roster panel in the + console window.
+ src/ui/statusbar.c - Drawing the status bar (above the input line).
+ src/ui/titlebar.c - Drawing the title bar (the top line).
+ src/ui/window.c - Data structures representing different window types and + functions to manipulate them.

+ +
+ +
+ + + + \ No newline at end of file diff --git a/guide/0170/files.html b/guide/0170/files.html new file mode 100644 index 0000000..77c5597 --- /dev/null +++ b/guide/0170/files.html @@ -0,0 +1,118 @@ + + + + + Profanity, a console based XMPP client - File Locations + + + + + + + + + Profanity Illustration +
+

+ User Guide +

+

File Locations

+
+
+
+

Contents

+ + +
+
+ +

Base Directories

+ +

The XDG base directory specification is used for base configuration and data directories.

+

The environment variables $XDG_CONFIG_HOME and $XDG_DATA_HOME will be used and a directory named profanity will be created in each.

+

As per the specification, if $XDG_CONFIG_HOME is not present or unset, $HOME/.config will be used. If $XDG_DATA_HOME is not present or unset, $HOME/.local/share will be used.

+

For the rest of this document the following names will be used:

+ +

$CONFIG_HOME = $XDG_CONFIG_HOME/profanity

+

$DATA_HOME = $XDG_DATA_HOME/profanity

+
+
+ +

Configuration File

+ +

The main configuration file for profanity is stored at:

+

$CONFIG_HOME/profrc

+
+
+ +

Profanity Log File

+ +

The Profanity log is at:

+

$DATA_HOME/logs/profanity.log

+
+
+ +

Chat Logs Directory

+ +

If chat logging is enabled, chat logs will be stored in the following directory:

+

$DATA_HOME/chatlogs

+ +

A directory exists per account, and within each of these directories is a directory per contact containing dated logs.

+

If chat room logging is also enabled, a rooms directory will also be within the account directory.

+
+
+ +

User Defined Themes Directory

+ +

User defined theme files are stored in the following directory:

+

$CONFIG_HOME/themes

+
+
+ +

Accounts file

+ +

User accounts are stored in the following file:

+

$DATA_HOME/accounts

+
+
+ +

Examples

+ +

Assuming a user called eddie, and default values for $XDG_CONFIG_HOME and $XDG_DATA_HOME are used, the following example shows where files are stored:

+ + + + + + + + + + + + + + + + + + + + + +
/home/eddie/.config/profanity/profrcConfiguration file
/home/eddie/.config/profanity/themes/Theme files
/home/eddie/.local/share/profanity/logs/profanity.logMain log file
/home/eddie/.local/share/profanity/chatlogs/Chat logs
/home/eddie/.local/share/profanity/accountsAccounts file
+

+
+ + + diff --git a/guide/0170/install.html b/guide/0170/install.html new file mode 100644 index 0000000..ac691e0 --- /dev/null +++ b/guide/0170/install.html @@ -0,0 +1,229 @@ + + + + + Profanity, a console based XMPP client - Installation Guide + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Installation Guide

+
+
+
+

Contents

+ +
+
+ +

Linux/*BSD

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alpine + pkgs.alpinelinux.org +
ALT + packages.altlinux.org +
Arch + archlinux.org
+ aur.archlinux.org +
Debian + packages.debian.org +
Exherbo + git.exherbo.org +
Funtoo + funtoo.org +
Gentoo + packages.gentoo.org
+ github.com optmzr
+
GNU Guix + guix.gnu.org +
openSUSE + software.opensuse.org +
Slackware + slackbuilds.org +
Ubuntu + packages.ubuntu.org +
Termux + github.com/termux/termux-packages +
Void + github.com/void-linux/void-packages +
Nix/NixOS + nixos.org/nixos/packages.html
+ github.com/NixOS/nixpkgs/ +
+ + + + + + + + + +
FreeBSD + www.freebsd.org +
OpenBSD +
pkg_add profanity
+
+

To add to this list, submit a pull request to the website + source, or email the Mailing list with details.

+
+
+ +

Mac OS X

+

Homebrew

+

To install profanity using homebrew:

+
brew install profanity
+

Desktop notifications are an optional (disabled by default) dependency since terminal-notifier is not + available on all versions of OSX. To attempt to install the formula with desktop notification support: +

+
brew install profanity --with-terminal-notifier
+

To ensure you have all features supported profanity -v should show the following:

+
Desktop notification support: Enabled
+OTR support: Enabled
+PGP support: Enabled
+C plugins: Enabled
+Python plugins: Enabled
+

Macports

+

A howto using macports has also been written by louiecaulfield at Github available here.

+
+
+ +

Windows

+

On Windows you can either install Profanity over the Windows Subsystem for Linux or via Cygwin.

+

WSL is the recommended way.

+ +

WSL

+

The Windows Subsystem for Linux is available since Windows 10 only.

+

Please read the documentation provided + by Microsoft on what WSL is and how to install it

+

You will have to choose an distribution that you install (Debian, openSUSE, Ubuntu..) and then install + Profanity via the distributions package manager. We recommend to choose a distribution that you are + already familiar with or one where you can find a lot of documentation and help online (Debian, + openSUSE). Another point to consider is which stable version of Profanity is available in the + distributions repositories. One way to find this is out is to check Repology. + +

Cygwin

+

Install Cygwin by downloading and running its installer:

+

64Bit Systems: http://cygwin.com/setup-x86_64.exe +

+

32bit Systems: http://cygwin.com/setup-x86.exe

+

Dependencies

+

wget and unzip are required to install Profanity. When running setup.exe, + search for and add them when asked to select packages.

+

Note: To make use of OTR and OMEMO support on Cygwin, + libotr and libsignal-protocol-c need to be build from source, since they + are not part of the Cygwin repository.

+

Download and Install

+

Download the zip archive from the homepage and extract it, then follow the build guide. +

+
+ +

Android

+

Profanity is included as a Termux package on Android. Install Termux from the Google Play + App store.

+

Update the package list and install Profanity:

+

apt update
+apt install profanity
+
+
+ + + + diff --git a/guide/0170/keybindings.html b/guide/0170/keybindings.html new file mode 100644 index 0000000..9c4866b --- /dev/null +++ b/guide/0170/keybindings.html @@ -0,0 +1,251 @@ + + + + + Profanity, a console based XMPP client - Chat Rooms + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Key Bindings

+
+
+
+

Contents

+ + +
+
+ +

GNU Readline

+ +

+ Profanity uses GNU + Readline for handling input. GNU Readline comes with many features including customisable key + bindings, and Emacs or Vi editing modes. +

+

+ In addition to checking ~/.inputrc, Profanity will also look in + ~/.config/profanity/inputrc for Readline bindings. +

+

+ For more information on key bindings and customisations available in GNU Readline, see the guide. Taken + from the above guide, below is a list of basic bindings that come with GNU Readline by default. +

+

+ In the following table C-k means Control-k, M-k means Meta-k where the meta + key may differ depending on your OS (alt key, windows key, command key etc). +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
C-bMove back one character
C-fMove forward one character
C-dDelete the character underneath the cursor
C-_ or C-x C-uUndo the last editing command
C-aMove to the start of the line.
C-eMove to the end of the line.
M-fMove forward a word, where a word is composed of letters and digits.
M-bMove backward a word.
C-lClear the screen.
C-kKill the text from the current cursor position to the end of the line.
M-dKill from the cursor to the end of the current word, or, if between words, to the end of the + next word. Word boundaries are the same as those used by M-f.
M-DELKill from the cursor the start of the current word, or, if between words, to the start of the + previous word. Word boundaries are the same as those used by M-b.
C-wKill from the cursor to the previous whitespace. This is different than M-DEL because the word + boundaries differ.
C-yYank the most recently killed text back into the buffer at the cursor.
M-yRotate the kill-ring, and yank the new top. You can only do this if the prior command is C-y or + M-y.
+
+
+ +

User Interface Navigation

+ +

+ In addition to GNU Readline input key bindings, Profanity has a few more bindings for managing the User + Interface. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alt-1..Alt-0, F1..F10Focus window.
Alt-LeftFocus previous window.
Alt-RightFocus next window.
Page UpScroll backwards through main window contents.
Page DownScroll forwards through main window contents.
Alt-Page UpScroll backwards through occupants/roster panel.
Alt-Page DownScroll forwards through occupants/roster panel.
Alt ASelect next unread window.
Ctrl+Arrow DownStore current line in history.
+
+
+ +

Custom Readline functions

+

+ Profanity also makes functions available to readline to allow customising Profanity bindings: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
prof_win_NFocus window N where N is 1,2,3,4,5,6,7,8,9 or 0
prof_win_prevFocus previous window
prof_win_nextFocus next window
prof_win_pageupPage up contents of main window
prof_win_pagedownPage down contents of main window
prof_subwin_pageupPage up contents of sub window (roster or occupants)
prof_subwin_pagedownPage down contents of sub window (roster or occupants)
prof_win_clearClear current window contents
+

+ Example usage in inputrc: +

$if profanity
+"\C-p": prof_win_prev
+"\C-n": prof_win_next
+"\C-j": prof_win_pageup
+"\C-k": prof_win_pagedown
+"\C-h": prof_subwin_pageup
+"\C-l": prof_subwin_pagedown
+"\C-y": prof_win_clear
+$endif
+

+
+
+

Vi Mode

+

To be able to use vi-mode bindings in the input bar, put in inputrc:

+
$if profanity
+	set editing-mode vi
+$endif
+

Here are some examples of what you can do with it:

+
$if profanity
+	set editing-mode vi
+	set keymap vi-move
+		# Use Space as a leader-key with " "
+		" q": "i/quit\r"
+		# Use j/k to move up and down in the window.
+		"k": prof_win_pageup
+		"j": prof_win_pagedown
+	set keymap vi-insert
+		# Correct last message quickly:
+		"\C-e": "/correct \t"
+$endif
+

You can find out all the keys you can use using bind -p on bash.

+
+
+ + + + diff --git a/guide/0170/main_fragment.html b/guide/0170/main_fragment.html new file mode 100644 index 0000000..1b7442e --- /dev/null +++ b/guide/0170/main_fragment.html @@ -0,0 +1,1921 @@ +
+ +

/about

+

Synopsis

+

/about
+

+

Description

+

Show version and license information. +

+
back to top


+ + +

/account

+

Synopsis

+

/account
+/account list
+/account show <account>
+/account enable|disable <account>
+/account default set <account>
+/account default off
+/account add <account>
+/account remove <account>
+/account rename <account> <newaccount>
+/account set <account> jid <jid>
+/account set <account> server <server>
+/account set <account> port <port>
+/account set <account> status <presence>
+/account set <account> status last
+/account set <account> <presence> <priority>
+/account set <account> resource <resource>
+/account set <account> password <password>
+/account set <account> eval_password <command>
+/account set <account> muc <service>
+/account set <account> nick <nick>
+/account set <account> otr <policy>
+/account set <account> pgpkeyid <pgpkeyid>
+/account set <account> startscript <script>
+/account set <account> clientid "<name> <version>"
+/account set <account> tls force|allow|trust|direct|disable|legacy
+/account set <account> auth default|legacy
+/account set <account> theme <theme>
+/account set <account> session_alarm <max_sessions>
+/account clear <account> password
+/account clear <account> eval_password
+/account clear <account> server
+/account clear <account> port
+/account clear <account> otr
+/account clear <account> pgpkeyid
+/account clear <account> startscript
+/account clear <account> clientid
+/account clear <account> muc
+/account clear <account> resource
+/account clear <account> session_alarm
+

+

Description

+

Commands for creating and managing accounts. Calling with no arguments will display information for the current account. +

+

Arguments

+
listList all accounts.
enable <account>Enable the account, it will be used for autocompletion.
show <account>Show details for the specified account.
disable <account>Disable the account.
default set <account>Set the default account, used when no argument passed to the /connect command.
default offClear the default account setting.
add <account>Create a new account.
remove <account>Remove an account.
rename <account> <newaccount>Rename 'account' to 'newaccount'.
set <account> jid <jid>Set the Jabber ID for the account, account name will be used if not set.
set <account> server <server>The chat server, if different to the domainpart of the JID.
set <account> port <port>The port used for connecting if not the default (5222, or 5223 for SSL).
set <account> status <presence>The presence status to use on login.
set <account> status lastUse your last status before logging out, when logging in.
set <account> <presence> <priority>Set the priority (-128..127) to use for the specified presence.
set <account> resource <resource>The resource to be used for this account, defaults to 'profanity'.
set <account> password <password>Password for the account, note this is currently stored in plaintext if set.
set <account> eval_password <command>Shell command evaluated to retrieve password for the account. Can be used to retrieve password from keyring.
set <account> muc <service>The default MUC chat service to use, defaults to the servers disco info response.
set <account> nick <nick>The default nickname to use when joining chat rooms.
set <account> otr <policy>Override global OTR policy for this account, see /otr.
set <account> pgpkeyid <pgpkeyid>Set the ID of the PGP key for this account, see /pgp.
set <account> startscript <script>Set the script to execute after connecting.
set <account> clientid "<name> <version>"Set XMPP client name for discovery according to XEP-0092. For privacy geeks. Recommendation to leave as is.
set <account> tls forceForce TLS connection, and fail if one cannot be established, this is default behaviour.
set <account> tls allowUse TLS for the connection if it is available.
set <account> tls trustForce TLS connection and trust server's certificate.
set <account> tls directUse direct TLS for the connection. It means TLS handshake is started right after TCP connection is established.
set <account> tls disableDisable TLS for the connection.
set <account> tls legacyAlternative keyword for 'direct', which was created when one still thought that 'STARTTLS' is the future.
set <account> auth defaultUse default authentication process.
set <account> auth legacyAllow legacy authentication.
set <account> theme <theme>Set the UI theme for the account.
set <account> session_alarm <max_sessions>Alarm about suspicious activity if sessions count exceeds max_sessions.
clear <account> serverRemove the server setting for this account.
clear <account> portRemove the port setting for this account.
clear <account> passwordRemove the password setting for this account.
clear <account> eval_passwordRemove the eval_password setting for this account.
clear <account> otrRemove the OTR policy setting for this account.
clear <account> pgpkeyidRemove pgpkeyid associated with this account.
clear <account> startscriptRemove startscript associated with this account.
clear <account> clientidReset client's name to default.
clear <account> themeClear the theme setting for the account, the global theme will be used.
clear <account> resourceRemove the resource setting for this account.
clear <account> mucRemove the default MUC service setting.
clear <account> session_alarmDisable the session alarm.
+

Examples

+

/account add me
+/account set me jid ulfhednar@valhalla.edda
+/account set me server talk.chat.com
+/account set me port 5111
+/account set me muc chatservice.mycompany.com
+/account set me nick dennis
+/account set me status dnd
+/account set me dnd -1
+/account set me clientid "Profanity 0.42 (Dev)"
+/account rename me chattyme
+/account clear me pgpkeyid
+

+
back to top


+ + +

/affiliation

+

Synopsis

+

/affiliation set <affiliation> <jid> [<reason>]
+/affiliation list [<affiliation>]
+/affiliation request
+/affiliation register
+

+

Description

+

Manage room affiliations. Affiliation may be one of owner, admin, member, outcast or none. +

+

Arguments

+
set <affiliation> <jid> [<reason>]Set the affiliation of user with jid, with an optional reason.
list [<affiliation>]List all users with the specified affiliation, or all if none specified.
requestRequest voice.
registerRegister your nickname with the MUC.
+
back to top


+ + +

/alias

+

Synopsis

+

/alias list
+/alias add <name> <value>
+/alias remove <name>
+

+

Description

+

Add, remove or list command aliases. +

+

Arguments

+
listList all aliases.
add <name> <value>Add a new command alias. The alias name must not contain any space characters.
remove <name>Remove a command alias.
+

Examples

+

/alias add friends /who online friends
+/alias add /q /quit
+/alias add urg /msg odin@valhalla.edda [URGENT]
+/alias add afk /status set away "Away From Keyboard"
+/alias remove q
+/alias list
+

+
back to top


+ + +

/autoaway

+

Synopsis

+

/autoaway mode idle|away|off
+/autoaway time away|xa <minutes>
+/autoaway message away|xa <message>|off
+/autoaway check on|off
+

+

Description

+

Manage autoaway settings for idle time. +

+

Arguments

+
mode idleSends idle time, status remains online.
mode awaySends away and xa presence as well as idle time.
mode offDisabled (default).
time away <minutes>Number of minutes before the away presence is sent, default: 15.
time xa <minutes>Number of minutes before the xa presence is sent, default: 0 (disabled).
message away <message>Optional message to send with the away presence, default: off (disabled).
message xa <message>Optional message to send with the xa presence, default: off (disabled).
message away offSend no message with away presence.
message xa offSend no message with xa presence.
check on|offWhen enabled, checks for activity and sends online presence, default: on.
+

Examples

+

/autoaway mode away
+/autoaway time away 30
+/autoaway message away Away from computer for a while
+/autoaway time xa 120
+/autoaway message xa Away from computer for a very long time
+/autoaway check off
+

+
back to top


+ + +

/autoconnect

+

Synopsis

+

/autoconnect set <account>
+/autoconnect off
+

+

Description

+

Enable or disable autoconnect on start up. The setting can be overridden by the -a (--account) command line option. +

+

Arguments

+
set <account>Connect with account on start up.
offDisable autoconnect.
+

Examples

+

/autoconnect set ulfhednar@valhalla.edda
+/autoconnect off
+

+
back to top


+ + +

/autoping

+

Synopsis

+

/autoping set <seconds>
+/autoping timeout <seconds>
+

+

Description

+

Set the interval between sending ping requests to the server to ensure the connection is kept alive. +

+

Arguments

+
set <seconds>Number of seconds between sending pings, a value of 0 disables autoping.
timeout <seconds>Seconds to wait for autoping responses, after which the connection is considered broken.
+
back to top


+ + +

/avatar

+

Synopsis

+

/avatar set <path>
+/avatar disable
+/avatar get <barejid>
+/avatar open <barejid>
+

+

Description

+

Upload an avatar for yourself, disable your avatar, or download a contact's avatar (XEP-0084). If nothing happens after using this command, the user either doesn't have an avatar set or doesn't use XEP-0084 to publish it. +

+

Arguments

+
set <path>Set avatar to the image at .
disableDisable avatar publishing; your avatar will not display to others.
get <barejid>Download the avatar. barejid is the JID to download avatar from.
open <barejid>Download avatar and open it with command. See /executable.
+

Examples

+

/avatar set ~/images/avatar.png
+/avatar disable
+/avatar get thor@valhalla.edda
+/avatar open freyja@vanaheimr.edda
+

+
back to top


+ + +

/ban

+

Synopsis

+

/ban <jid> [<reason>]
+

+

Description

+

Ban user from chat room. +

+

Arguments

+
<jid>Bare JID of the user to ban from the room.
<reason>Optional reason for banning the user.
+
back to top


+ + +

/beep

+

Synopsis

+

/beep on|off
+

+

Description

+

Switch the terminal bell on or off. The bell will sound when incoming messages are received. If the terminal does not support sounds, it may attempt to flash the screen instead. +

+

Arguments

+
on|offEnable or disable terminal bell.
+
back to top


+ + +

/blocked

+

Synopsis

+

/blocked
+/blocked add [<jid>]
+/blocked report-abuse [<jid>] [<message>]
+/blocked report-spam [<jid>] [<message>]
+/blocked remove <jid>
+

+

Description

+

Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-userIt is also possible to block and report (XEP-0377) a user with the report-abuse and report-spam commands. For spam reporting, please include the content of the spam message as evidence for the service operator. +

+

Arguments

+
add [<jid>]Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked.
remove <jid>Remove the specified Jabber ID from the blocked list.
report-abuse <jid> [<message>]Report a user for abuse with an optional description of the behavior.
report-spam <jid> [<message>]Report a user for spam, including the actual spam message as evidence.
+

Examples

+

/blocked add hel@helheim.edda
+/blocked report-abuse hel@helheim.edda Harassing me in MUC
+/blocked report-spam spambot@example.com "You won a free prize!"
+/blocked add profanity@rooms.dismail.de/spammy-user
+

+
back to top


+ + +

/bookmark

+

Synopsis

+

/bookmark
+/bookmark list [<jid>]
+/bookmark add [<room>] [nick <nick>] [password <password>] [name <roomname>] [autojoin on|off]
+/bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] [autojoin on|off]
+/bookmark remove [<room>]
+/bookmark join <room>
+/bookmark invites on|off
+/bookmark ignore
+/bookmark ignore add <jid>
+/bookmark ignore remove <jid>
+

+

Description

+

Manage bookmarks and join bookmarked rooms. If you are in a chat room and no arguments are supplied to `/bookmark add`, autojoin is set to "on". There is also an autojoin ignore list in case you want to autojoin in many clients but not on Profanity. +

+

Arguments

+
list [<jid>]List all bookmarks. Or the details of one.
add [<room>]Add a bookmark, passing no room will bookmark the current room, setting autojoin to "on".
remove [<room>]Remove a bookmark, passing no room will remove the bookmark for the current room, if one exists.
update <room>Update the properties associated with a bookmark.
nick <nick>Nickname used when joining the chat room.
password <password>Password if required, may be stored in plaintext on your server.
name <roomname>Optional name for the bookmark. By default localpart of the JID will be used.
autojoin on|offWhether to join the room automatically on login.
join <room>Join room using the properties associated with the bookmark.
invites on|offWhether or not to bookmark accepted room invites, defaults to 'on'.
ignore add <barejid>Add a bookmark to the autojoin ignore list.
ignore remove <barejid>Remove a bookmark from the autojoin ignore list.
+

Examples

+

/bookmark add room@example.com nick YOURNICK
+/bookmark join room@example.com
+/bookmark update room@example.com nick NEWNICK autojoin on
+/bookmark ignore room@example.com
+/bookmark list
+/bookmark list room@example.com
+/bookmark remove room@example.com
+

+
back to top


+ + +

/caps

+

Synopsis

+

/caps
+/caps <fulljid>|<nick>
+

+

Description

+

Find out a contacts, or room members client software capabilities. If in private chat initiated from a chat room, no parameter is required. +

+

Arguments

+
<fulljid>If in the console or a chat window, the full JID for which you wish to see capabilities.
<nick>If in a chat room, nickname for which you wish to see capabilities.
+

Examples

+

/caps ran@cold.sea.org/laptop
+/caps ran@cold.sea.org/phone
+/caps aegir
+

+
back to top


+ + +

/carbons

+

Synopsis

+

/carbons on|off
+

+

Description

+

Enable or disable message carbons. Message carbons ensure that both sides of all conversations are shared with all the user's clients that implement this protocol. +

+

Arguments

+
on|offEnable or disable message carbons.
+
back to top


+ + +

/changepassword

+

Synopsis

+

/changepassword
+

+

Description

+

Change password of logged in account +

+
back to top


+ + +

/changes

+

Synopsis

+

/changes
+

+

Description

+

Show changes from saved configuration file. +

+
back to top


+ + +

/charset

+

Synopsis

+

/charset
+

+

Description

+

Display information about the current character set supported by the terminal. +

+
back to top


+ + +

/clear

+

Synopsis

+

/clear
+/clear persist_history <on|off>
+

+

Description

+

Clear the current window. If you set persist_history you can still access the history by pressing PAGE UP. +

+

Arguments

+
persist_history on|offWhether or not to clear the screen persistently.
+

Examples

+

/clear
+/clear persist_history
+/clear persist_history on
+

+
back to top


+ + +

/close

+

Synopsis

+

/close
+/close <num>
+/close <barejid>
+/close <nick>
+/close <roomjid>
+/close <roomoccupantjid>
+/close xmlconsole
+/close all|read
+

+

Description

+

Close windows. Passing no argument closes the current window. +

+

Arguments

+
<num>Close specified window number.
<barejid>Close chat window with contact by JID if open.
<nick>Close chat window with contact by nickname if open.
<roomjid>Close chat room window with roomjid if open.
<roomoccupantjid>Close private chat roomoccupantjid if open.
xmlconsoleClose the XML Console window if open.
allClose all windows.
readClose all windows that have no unread messages.
+
back to top


+ + +

/cmd

+

Synopsis

+

/cmd list [<jid>]
+/cmd exec <command> [<jid>]
+

+

Description

+

Execute ad hoc commands. +

+

Arguments

+
listList supported ad hoc commands.
exec <command>Execute a command.
+

Examples

+

/cmd list
+/cmd exec ping
+

+
back to top


+ + +

/color

+

Synopsis

+

/color on|off|redgreen|blue
+/color own on|off
+

+

Description

+

Settings for consistent color generation for nicks (XEP-0392). Including corrections for Color Vision Deficiencies. Your terminal needs to support 256 colors. +

+

Arguments

+
on|off|redgreen|blueEnable or disable nick colorization for MUC nicks. 'redgreen' is for people with red/green blindness and 'blue' for people with blue blindness.
own on|offEnable color generation for own nick. If disabled the color from the color from the theme ('me') will get used.
+

Examples

+

/color off
+/color on
+/color blue
+/color own off
+

+
back to top


+ + +

/connect

+

Synopsis

+

/connect [<account>]
+/connect <account> [server <server>] [port <port>] [tls force|allow|trust|direct|disable|legacy] [auth default|legacy]
+/connect <server>
+

+

Description

+

Login to a chat service. If no account is specified, the default is used if one is configured. A local account is created with the JID as it's name if it doesn't already exist. In case you want to connect to a server via SASL ANONYMOUS (c.f. XEP-0175) you can also do that. +

+

Arguments

+
<account>The local account you wish to connect with, or a JID if connecting for the first time.
server <server>Supply a server if it is different to the domain part of your JID.
port <port>The port to use if different to the default (5222, or 5223 for SSL).
<server>Connect to said server in an anonymous way. (Be aware: There aren't many servers that support this.)
tls forceForce TLS connection, and fail if one cannot be established, this is default behaviour.
tls allowUse TLS for the connection if it is available.
tls trustForce TLS connection and trust server's certificate.
tls directUse direct TLS for the connection. It means TLS handshake is started right after TCP connection is established.
tls disableDisable TLS for the connection.
tls legacyAlternative keyword for 'direct', which was created when one still thought that 'STARTTLS' is the future.
auth defaultDefault authentication process.
auth legacyAllow legacy authentication.
+

Examples

+

/connect
+/connect odin@valhalla.edda
+/connect odin@valhalla.edda server talk.google.com
+/connect freyr@vanaheimr.edda port 5678
+/connect me@localhost.test.org server 127.0.0.1 tls disable
+/connect me@chatty server chatty.com port 5443
+/connect server.supporting.sasl.anonymous.example
+

+
back to top


+ + +

/console

+

Synopsis

+

/console chat all|first|none
+/console muc all|first|mention|none
+/console private all|first|none
+

+

Description

+

Configure what is displayed in the console window when messages are received. The default is set to 'all' for all types of messages. +

+

Arguments

+
chat allIndicate all new chat messages in the console.
chat firstIndicate only the first new message per chat in the console.
chat noneDo not show any new chat messages in the console window.
muc allIndicate all new chat room messages in the console.
muc firstIndicate only the first new message in each room in the console.
muc mentionIndicate only messages in which you have been mentioned in the console.
muc noneDo not show any new chat room messages in the console window.
private allIndicate all new private room messages in the console.
private firstIndicate only the first private room message in the console.
private noneDo not show any new private room messages in the console window.
+
back to top


+ + +

/correct

+

Synopsis

+

/correct <message>
+

+

Description

+

Correct and resend the last message (XEP-0308). Use tab completion to get the last sent message. For more information on how to configure corrections, see: /help correction. +

+

Arguments

+
messageThe corrected message.
+
back to top


+ + +

/correct-editor

+

Synopsis

+

/correct-editor
+

+

Description

+

Spawn external editor to correct and resend the last message (XEP-0308). For more information on how to configure corrections, see: /help correction. Use /executable to set your favourite editor. +

+
back to top


+ + +

/correction

+

Synopsis

+

/correction <on>|<off>
+/correction char <char>
+

+

Description

+

Settings regarding Last Message Correction (XEP-0308). Corrections will only work in MUC and regular chat windows. MUC PMs won't be allowed. For more information on how to correct messages, see: /help correct. +

+

Arguments

+
on|offEnable/Disable support for last message correction.
charSet character that will prefix corrected messages. Default: '+'.
+
back to top


+ + +

/disco

+

Synopsis

+

/disco info [<jid>]
+/disco items [<jid>]
+

+

Description

+

Find out information about an entities supported services. Calling with no arguments will query the server you are currently connected to. This includes discovering contact addresses for XMPP services (XEP-0157). +

+

Arguments

+
info [<jid>]List protocols and features supported by an entity.
items [<jid>]List items associated with an entity.
+

Examples

+

/disco info
+/disco items myserver.org
+/disco items conference.jabber.org
+/disco info odin@valhalla.edda/laptop
+

+
back to top


+ + +

/disconnect

+

Synopsis

+

/disconnect
+

+

Description

+

Disconnect from the current chat service. +

+
back to top


+ + +

/editor

+

Synopsis

+

/editor
+

+

Description

+

Spawn external editor to edit message. After editing the inputline may appear empty. Press enter to send the text anyways. Use /executable to set your favourite editor. +

+
back to top


+ + +

/executable

+

Synopsis

+

/executable avatar set <cmdtemplate>
+/executable avatar default
+/executable urlopen set <cmdtemplate>
+/executable urlopen default
+/executable urlsave set <cmdtemplate>
+/executable urlsave default
+/executable editor set <cmdtemplate>
+/executable editor default
+/executable vcard_photo set <cmdtemplate>
+/executable vcard_photo default
+

+

Description

+

Configure executable that should be called upon a certain command. +

+

Arguments

+
avatar setSet executable that is run by /avatar open. Use your favorite image viewer.
avatar defaultRestore to default settings.
urlopen setSet executable that is run by /url open. Takes a command template that replaces %u and %p with the URL and path respectively.
urlopen defaultRestore to default settings.
urlsave setSet executable that is run by /url save. Takes a command template that replaces %u and %p with the URL and path respectively.
urlsave defaultUse the built-in download method for saving.
editor setSet editor to be used with /editor. Needs a terminal editor or a script to run a graphical editor.
editor defaultRestore to default settings.
vcard_photo setSet executable that is run by /vcard photo open. Takes a command template that replaces %p with the path
vcard_photo defaultRestore to default settings.
+

Examples

+

/executable avatar xdg-open
+/executable urlopen set "xdg-open %u"
+/executable urlopen set "firefox %u"
+/executable urlopen default
+/executable urlsave set "wget %u -O %p"
+/executable urlsave set "curl %u -o %p"
+/executable urlsave default
+/executable vcard_photo set "feh %p"
+/executable editor set "emacsclient -t"
+

+
back to top


+ + +

/export

+

Synopsis

+

/export <filepath>
+

+

Description

+

Exports contacts to a csv file. +

+

Arguments

+
<filepath>Path to the output file.
+

Examples

+

/export /path/to/output.csv
+/export ~/contacts.csv
+

+
back to top


+ + +

/flash

+

Synopsis

+

/flash on|off
+

+

Description

+

Make the terminal flash when incoming messages are received in another window. If the terminal doesn't support flashing, it may attempt to beep. +

+

Arguments

+
on|offEnable or disable terminal flash.
+
back to top


+ + +

/form

+

Synopsis

+

/form show
+/form submit
+/form cancel
+/form help [<tag>]
+

+

Description

+

Form configuration. +

+

Arguments

+
showShow the current form.
submitSubmit the current form.
cancelCancel changes to the current form.
help [<tag>]Display help for form, or a specific field.
+
back to top


+ + +

/gone

+

Synopsis

+

/gone <minutes>
+

+

Description

+

Send a 'gone' state to the recipient after the specified number of minutes. Chat states (/states) will be enabled if this setting is set. +

+

Arguments

+
<minutes>Number of minutes of inactivity before sending the 'gone' state, a value of 0 will disable sending this state.
+
back to top


+ + +

/help

+

Synopsis

+

/help [<area>|<command>|search_all|search_any] [<search_terms>]
+

+

Description

+

Help on using Profanity. Passing no arguments list help areas. For command help, optional arguments are shown using square brackets, arguments representing variables rather than a literal name are surrounded by angle brackets. Arguments that may be one of a number of values are separated by a pipe e.g. val1|val2|val3. +

+

Arguments

+
<area>Summary help for commands in a certain area of functionality.
<command>Full help for a specific command, for example '/help connect'.
search_all <search_terms>Search commands for returning matches that contain all of the search terms.
search_any <search_terms>Search commands for returning matches that contain any of the search terms.
+

Examples

+

/help search_all presence online
+/help commands
+/help presence
+/help who
+

+
back to top


+ + +

/history

+

Synopsis

+

/history on|off
+

+

Description

+

Switch chat history on or off, /logging chat will automatically be enabled when this setting is on. When history is enabled, previous messages are shown in chat windows. +

+

Arguments

+
on|offEnable or disable showing chat history.
+
back to top


+ + +

/info

+

Synopsis

+

/info
+/info <contact>|<nick>
+

+

Description

+

Show information about a contact, room, or room member. Passing no argument in a chat window will use the current recipient. Passing no argument in a chat room will display information about the room. +

+

Arguments

+
<contact>The contact you wish to view information about.
<nick>When in a chat room, the occupant you wish to view information about.
+

Examples

+

/info thor@asgard.server.org
+/info heimdall
+

+
back to top


+ + +

/inpblock

+

Synopsis

+

/inpblock timeout <millis>
+/inpblock dynamic on|off
+

+

Description

+

How long to wait for keyboard input before checking for new messages or checking for state changes such as 'idle'. +

+

Arguments

+
timeout <millis>Time to wait (1-1000) in milliseconds before reading input from the terminal buffer, default: 1000.
dynamic on|offStart with 0 millis and dynamically increase up to timeout when no activity, default: on.
+
back to top


+ + +

/inputwin

+

Synopsis

+

/inputwin up
+/inputwin down
+

+

Description

+

Move the input window. +

+

Arguments

+
upMove the input window up the screen.
downMove the input window down the screen.
+
back to top


+ + +

/intype

+

Synopsis

+

/intype console|titlebar on|off
+

+

Description

+

Show when a contact is typing in the console, and in active message window. +

+

Arguments

+
titlebar on|offEnable or disable contact typing messages notification in titlebar.
console on|offEnable or disable contact typing messages notification in console window.
+
back to top


+ + +

/invite

+

Synopsis

+

/invite send <contact> [<message>]
+/invite list
+/invite decline
+

+

Description

+

Manage room invites. Send an invite to a contact for the current chat room. List received invites. Decline them using /invite decline and accept them using /join. +

+

Arguments

+
send <contact> [<message>]The contact you wish to invite. And an optional message.
listShow all rooms that you have been invited to, and not accepted or declined.
decline <room>Decline a chat room invitation.
+

Examples

+

/invite send gustavo@pollos.tx
+/invite decline profanity@rooms.dismail.de
+/invite list
+

+
back to top


+ + +

/join

+

Synopsis

+

/join
+/join <room> [nick <nick>] [password <password>]
+

+

Description

+

Join a chat room at the conference server. If no room is supplied, a generated name will be used with the format private-chat-[UUID]. If the domain part is not included in the room name, the account preference 'muc.service' will be used. If no nickname is specified the account preference 'muc.nick' will be used which by default is the localpart of your JID. If the room doesn't exist, and the server allows it, a new one will be created. If you join to a room often, you might also want to add a bookmark (see `/help bookmark`), which also allows to set a default nickname. In this case, you should use `/bookmark join`. +

+

Arguments

+
<room>The chat room to join.
nick <nick>Nickname to use in the room.
password <password>Password if the room requires one.
+

Examples

+

/join
+/join profanity@rooms.dismail.de
+/join profanity@rooms.dismail.de nick mynick
+/join private@conference.jabber.org nick mynick password mypassword
+/join mychannel
+

+
back to top


+ + +

/kick

+

Synopsis

+

/kick <nick> [<reason>]
+

+

Description

+

Kick occupant from chat room. +

+

Arguments

+
<nick>Nickname of the occupant to kick from the room.
<reason>Optional reason for kicking the occupant.
+
back to top


+ + +

/lastactivity

+

Synopsis

+

/lastactivity set on|off
+/lastactivity get [<jid>]
+

+

Description

+

Enable/disable sending last activity, and send last activity requests. +

+

Arguments

+
on|offEnable or disable sending of last activity.
<jid>The JID of the entity to query. Omitting the JID will query your server for its uptime.
+

Examples

+

/lastactivity get
+/lastactivity set off
+/lastactivity get freyja@asgaard.edda
+/lastactivity get freyja@asgaard.edda/laptop
+/lastactivity get someserver.com
+

+
back to top


+ + +

/log

+

Synopsis

+

/log where
+/log rotate on|off
+/log maxsize <bytes>
+/log shared on|off
+/log level INFO|DEBUG|WARN|ERROR
+

+

Description

+

Manage profanity log settings. +

+

Arguments

+
whereShow the current log file location.
rotate on|offRotate log, default on. Does not take effect if you specified a filename yourself when starting Profanity.
maxsize <bytes>With rotate enabled, specifies the max log size, defaults to 10485760 (10MB).
shared on|offShare logs between all instances, default: on. When off, the process id will be included in the log filename. Does not take effect if you specified a filename yourself when starting Profanity.
level INFO|DEBUG|WARN|ERRORSet the log level. Default is INFO. Only works with default log file, not with user provided log file during startup via -f.
+
back to top


+ + +

/logging

+

Synopsis

+

/logging chat|group on|off
+

+

Description

+

Configure chat logging. Switch logging on or off. Chat logging will be enabled if /history is set to on. When disabling this option, /history will also be disabled. +

+

Arguments

+
chat on|offEnable/Disable regular chat logging.
group on|offEnable/Disable groupchat (room) logging.
+

Examples

+

/logging chat on
+/logging group off
+

+
back to top


+ + +

/mainwin

+

Synopsis

+

/mainwin up
+/mainwin down
+

+

Description

+

Move the main window. +

+

Arguments

+
upMove the main window up the screen.
downMove the main window down the screen.
+
back to top


+ + +

/mam

+

Synopsis

+

/mam <on>|<off>
+

+

Description

+

Enable/Disable Message Archive Management (XEP-0313) Currently MAM in groupchats (MUCs) is not supported. Use the PG UP key to load more history. +

+

Arguments

+
on|offEnable or disable MAM
+
back to top


+ + +

/mood

+

Synopsis

+

/mood on|off
+/mood set <mood> [text]
+/mood clear
+

+

Description

+

Set your mood (XEP-0107). +

+

Arguments

+
on|offEnable or disable displaying the mood of other users. On by default.
set <mood> [text]Set user mood to with an optional [text]. Use /mood set to toggle through predefined moods.
clearClear your user mood.
+

Examples

+

/mood set happy "So happy to use Profanity!"
+/mood set amazed
+/mood clear
+

+
back to top


+ + +

/msg

+

Synopsis

+

/msg <contact> [<message>]
+/msg <nick> [<message>]
+

+

Description

+

Send a one to one chat message, or a private message to a chat room occupant. If the message is omitted, a new chat window will be opened without sending a message. Use quotes if the nickname includes spaces. +

+

Arguments

+
<contact>Open chat window with contact, by JID or nickname.
<contact> [<message>]Send message to contact, by JID or nickname.
<nick>Open private chat window with chat room occupant.
<nick> [<message>]Send a private message to a chat room occupant.
+

Examples

+

/msg thor@valhalla.edda Hey, here's a message!
+/msg heimdall@valhalla.edda
+/msg Thor Here is a private message
+/msg "My Friend" Hi, how are you?
+

+
back to top


+ + +

/nick

+

Synopsis

+

/nick <nickname>
+

+

Description

+

Change your nickname in the current chat room. +

+

Arguments

+
<nickname>Your new nickname.
+
back to top


+ + +

/notify

+

Synopsis

+

/notify chat on|off
+/notify chat current on|off
+/notify chat text on|off
+/notify room on|off
+/notify room mention on|off
+/notify room mention case_sensitive|case_insensitive
+/notify room mention word_whole|word_part
+/notify room offline on|off
+/notify room current on|off
+/notify room text on|off
+/notify room trigger add <text>
+/notify room trigger remove <text>
+/notify room trigger list
+/notify room trigger on|off
+/notify on|off
+/notify mention on|off
+/notify trigger on|off
+/notify reset
+/notify remind <seconds>
+/notify typing on|off
+/notify typing current on|off
+/notify invite on|off
+/notify sub on|off
+

+

Description

+

Configure desktop notifications. To configure presence update messages in the console, chat and chat room windows, see '/help presence'. +

+

Arguments

+
chat on|offNotifications for regular chat messages.
chat current on|offWhether to show regular chat message notifications when the window is focused.
chat text on|offShow message text in regular message notifications.
room on|offNotifications for all chat room messages.
room mention on|offNotifications for chat room messages when your nick is mentioned.
room mention case_sensitiveSet room mention notifications as case sensitive.
room mention case_insensitiveSet room mention notifications as case insensitive.
room mention word_wholeSet room mention notifications only on whole word match, i.e. when nickname is not part of a larger word.
room mention word_partSet room mention notifications on partial word match, i.e. nickname may be part of a larger word.
room offline on|offNotifications for chat room messages that were sent while you were offline.
room current on|offWhether to show all chat room messages notifications when the window is focused.
room text on|offShow message text in chat room message notifications.
room trigger add <text>Notify when specified text included in all chat room messages.
room trigger remove <text>Remove chat room notification trigger.
room trigger listList all chat room highlight triggers.
room trigger on|offEnable or disable all chat room notification triggers.
on|offOverride the global message setting for the current chat room.
mention on|offOverride the global 'mention' setting for the current chat room.
trigger on|offOverride the global 'trigger' setting for the current chat room.
resetReset to global notification settings for the current chat room.
remind <seconds>Notification reminder period for unread messages, use 0 to disable.
typing on|offNotifications when contacts are typing.
typing current on|offWhether typing notifications are triggered for the current window.
invite on|offNotifications for chat room invites.
sub on|offNotifications for subscription requests.
+

Examples

+

/notify chat on
+/notify chat text on
+/notify room mention on
+/notify room offline on
+/notify room trigger add beer
+/notify room trigger on
+/notify room current off
+/notify room text off
+/notify remind 60
+/notify typing on
+/notify invite on
+

+
back to top


+ + +

/occupants

+

Synopsis

+

/occupants show|hide [jid|offline]
+/occupants char <char>|none
+/occupants color on|off
+/occupants default show|hide [jid|offline]
+/occupants size [<percent>]
+/occupants indent <indent>
+/occupants header char <char>|none
+/occupants wrap on|off
+

+

Description

+

Show or hide room occupants, and occupants panel display settings. +

+

Arguments

+
showShow the occupants panel in current room.
char <char>Prefix occupants with specified character.
char noneRemove occupants character prefix.
color onEnable generated color names (XEP-0392) for occupants
color offDisable generated color names (XEP-0392) for occupants
hideHide the occupants panel in current room.
show jidShow jid in the occupants panel in current room.
hide jidHide jid in the occupants panel in current room.
show offlineShow offline occupants panel in current room.
hide offlineHide offline occupants panel in current room.
default show|hideWhether occupants are shown by default in new rooms.
default show|hide jidWhether occupants jids are shown by default in new rooms.
default show|hide offlineWhether offline occupants are shown by default in new rooms.
size <percent>Percentage of the screen taken by the occupants list in rooms (1-99).
indent <indent>Indent contact line by spaces (0 to 10).
header char <char>Prefix occupants headers with specified character.
header char noneRemove occupants header character prefix.
wrap on|offEnable or disable line wrapping in occupants panel.
+
back to top


+ + +

/omemo

+

Synopsis

+

/omemo gen
+/omemo log on|off|redact
+/omemo start [<contact>]
+/omemo trust [<contact>] <fingerprint>
+/omemo end
+/omemo fingerprint [<contact>]
+/omemo char <char>
+/omemo trustmode manual|firstusage|blind
+/omemo policy manual|automatic|always
+/omemo clear_device_list
+/omemo qrcode
+

+

Description

+

OMEMO commands to manage keys, and perform encryption during chat sessions. +The title bar will show the OMEMO session status: +[OMEMO][trusted] - All active devices for the contact are trusted. +[OMEMO][untrusted] - One or more active devices for the contact are untrusted. + +

+

Arguments

+
genGenerate OMEMO cryptographic materials for current account.
start [<contact>]Start an OMEMO session with contact, or current recipient if omitted.
endEnd the current OMEMO session.
log on|offEnable or disable plaintext logging of OMEMO encrypted messages.
log redactLog OMEMO encrypted messages, but replace the contents with [redacted].
trust [<contact>] <fp>Trust a fingerprint for a contact, or current recipient if omitted. If all active devices are trusted, the title bar will show [trusted]. Otherwise, it will show [untrusted].
untrust [<contact>] <fp>Untrust a fingerprint for a contact, or current recipient if omitted.
fingerprint [<contact>]Show contact's fingerprints, or current recipient's if omitted.
char <char>Set the character to be displayed next to OMEMO encrypted messages.
trustmode manualSet the global OMEMO trust mode to manual, OMEMO keys has to be trusted manually.
trustmode firstusageSet the global OMEMO trust mode to ToFu, first OMEMO keys trusted automatically.
trustmode blindSet the global OMEMO trust mode to blind, ALL OMEMO keys trusted automatically.
policy manualSet the global OMEMO policy to manual, OMEMO sessions must be started manually.
policy automaticSet the global OMEMO policy to opportunistic, an OMEMO session will be attempted upon starting a conversation.
policy alwaysSet the global OMEMO policy to always, an error will be displayed if an OMEMO session cannot be initiated upon starting a conversation.
clear_device_listClear your own device list on server side. Each client will reannounce itself when connected back.
qrcodeDisplay QR code of your OMEMO fingerprint
+

Examples

+

/omemo gen
+/omemo start odin@valhalla.edda
+/omemo trust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a
+/omemo untrust loki@valhalla.edda c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a
+/omemo char *
+

+
back to top


+ + +

/otr

+

Synopsis

+

/otr libver
+/otr gen
+/otr myfp|theirfp
+/otr start [<contact>]
+/otr end
+/otr trust|untrust
+/otr secret <secret>
+/otr question <question> <answer>
+/otr answer <answer>
+/otr policy manual|opportunistic|always [<contact>]
+/otr log on|off|redact
+/otr char <char>
+/otr sendfile on|off
+

+

Description

+

Off The Record (OTR) commands to manage keys, and perform OTR encryption during chat sessions. +

+

Arguments

+
libverShow which version of the libotr library is being used.
genGenerate your private key.
myfpShow your fingerprint.
theirfpShow contacts fingerprint.
start [<contact>]Start an OTR session with contact, or current recipient if omitted.
endEnd the current OTR session.
trust|untrustIndicate whether or not you trust the contact's fingerprint.
secret <secret>Verify a contact's identity using a shared secret.
question <question> <answer>Verify a contact's identity using a question and expected answer.
answer <answer>Respond to a question answer verification request with your answer.
policy manualSet the global OTR policy to manual, OTR sessions must be started manually.
policy manual <contact>Set the OTR policy to manual for a specific contact.
policy opportunisticSet the global OTR policy to opportunistic, an OTR session will be attempted upon starting a conversation.
policy opportunistic <contact>Set the OTR policy to opportunistic for a specific contact.
policy alwaysSet the global OTR policy to always, an error will be displayed if an OTR session cannot be initiated upon starting a conversation.
policy always <contact>Set the OTR policy to always for a specific contact.
log on|offEnable or disable plaintext logging of OTR encrypted messages.
log redactLog OTR encrypted messages, but replace the contents with [redacted].
char <char>Set the character to be displayed next to OTR encrypted messages.
sendfile on|offAllow /sendfile to send unencrypted files while in an OTR session.
+

Examples

+

/otr log off
+/otr policy manual
+/otr policy opportunistic odin@valhalla.edda
+/otr gen
+/otr start odin@valhalla.edda
+/otr myfp
+/otr theirfp
+/otr question "What is the name of my rabbit?" fiffi
+/otr end
+/otr char *
+

+
back to top


+ + +

/outtype

+

Synopsis

+

/outtype on|off
+

+

Description

+

Send typing notifications, chat states (/states) will be enabled if this setting is enabled. +

+

Arguments

+
on|offEnable or disable sending typing notifications.
+
back to top


+ + +

/ox

+

Synopsis

+

/ox keys
+/ox contacts
+/ox start [<contact>]
+/ox end
+/ox log on|off|redact
+/ox char <char>
+/ox announce <file>
+/ox discover <jid>
+/ox request <jid> <keyid>
+

+

Description

+

OpenPGP (OX) commands to manage keys, and perform OpenPGP encryption during chat sessions. Your OpenPGP key needs a user-id with your JID URI (xmpp:local@domain.tld). A key can be generated with "gpg --quick-gen-key xmpp:local@domain.tld future-default default 3y". See man profanity-ox-setup for details on how to set up OX the first time. +

+

Arguments

+
keysList all keys known to the system.
contactsShow contacts with assigned public keys.
start [<contact>]Start PGP encrypted chat, current contact will be used if not specified.
endEnd PGP encrypted chat with the current recipient.
log on|offEnable or disable plaintext logging of PGP encrypted messages.
log redactLog PGP encrypted messages, but replace the contents with [redacted].
char <char>Set the character to be displayed next to PGP encrypted messages.
announce <file>Announce a public key by pushing it on the XMPP Server
discover <jid>Discover public keys of a jid. The OpenPGP Key IDs will be displayed
request <jid> <keyid>Request public key. See /ox discover to to get available key IDs.
+

Examples

+

/ox log off
+/ox start odin@valhalla.edda
+/ox end
+/ox char X
+

+
back to top


+ + +

/paste

+

Synopsis

+

/paste
+

+

Description

+

Paste clipboard. +

+
back to top


+ + +

/pgp

+

Synopsis

+

/pgp libver
+/pgp keys
+/pgp contacts
+/pgp setkey <contact> <keyid>
+/pgp start [<contact>]
+/pgp end
+/pgp log on|off|redact
+/pgp char <char>
+/pgp sendfile on|off
+/pgp sendpub [<contact>]
+

+

Description

+

Open PGP commands to manage keys, and perform PGP encryption during chat sessions. See the /account command to set your own PGP key. +

+

Arguments

+
libverShow which version of the libgpgme library is being used.
keysList all keys known to the system.
contactsShow contacts with assigned public keys.
setkey <contact> <keyid>Manually associate a contact with a public key.
start [<contact>]Start PGP encrypted chat, current contact will be used if not specified.
endEnd PGP encrypted chat with the current recipient.
log on|offEnable or disable plaintext logging of PGP encrypted messages.
log redactLog PGP encrypted messages, but replace the contents with [redacted]. This is the default.
char <char>Set the character to be displayed next to PGP encrypted messages.
sendfile on|offAllow /sendfile to send unencrypted files while otherwise using PGP.
autoimport on|offAutoimport PGP keys from messages.
sendpub [<contact>]Sends a message to the current recipient with your PGP public key, current contact will be used if not specified.
+

Examples

+

/pgp log off
+/pgp setkey odin@valhalla.edda BA19CACE5A9592C5
+/pgp start odin@valhalla.edda
+/pgp end
+/pgp char P
+

+
back to top


+ + +

/ping

+

Synopsis

+

/ping [<jid>]
+

+

Description

+

Sends an IQ ping stanza to the specified JID. If no JID is supplied, your chat server will be pinged. +

+

Arguments

+
<jid>The Jabber ID to send the ping request to.
+
back to top


+ + +

/plugins

+

Synopsis

+

/plugins
+/plugins install [<path or URL>]
+/plugins update [<path or URL>]
+/plugins uninstall [<plugin>]
+/plugins unload [<plugin>]
+/plugins load [<plugin>]
+/plugins reload [<plugin>]
+/plugins python_version
+

+

Description

+

Manage plugins. Passing no arguments lists installed plugins and global plugins which are available for local installation. Global directory for Python plugins is /usr/local/share/profanity/plugins and for C Plugins is /usr/local/lib64/profanity/plugins. +

+

Arguments

+
install [<path or URL>]Install a plugin, or all plugins found in a directory (recursive), or download and install plugin (plugin name is based on basename). And loads it/them.
update [<path or URL>]Uninstall and then install the plugin. Plugin name to update is basename.
uninstall [<plugin>]Uninstall a plugin.
load [<plugin>]Load a plugin that already exists in the plugin directory, passing no argument loads all found plugins. It will be loaded upon next start too unless unloaded.
unload [<plugin>]Unload a loaded plugin, passing no argument will unload all plugins.
reload [<plugin>]Reload a plugin, passing no argument will reload all plugins.
python_versionShow the Python interpreter version.
+

Examples

+

/plugins install /home/steveharris/Downloads/metal.py
+/plugins install https://raw.githubusercontent.com/profanity-im/profanity-plugins/master/stable/sounds.py
+/plugins update /home/steveharris/Downloads/metal.py
+/plugins update https://raw.githubusercontent.com/profanity-im/profanity-plugins/master/stable/sounds.py
+/plugins uninstall browser.py
+/plugins load browser.py
+/plugins unload say.py
+/plugins reload wikipedia.py
+

+
back to top


+ + +

/prefs

+

Synopsis

+

/prefs [ui|desktop|chat|log|conn|presence|otr|pgp|omemo]
+

+

Description

+

Show preferences for different areas of functionality. Passing no arguments shows all preferences. +

+

Arguments

+
uiUser interface preferences.
desktopDesktop notification preferences.
chatChat state preferences.
logLogging preferences.
connConnection handling preferences.
presenceChat presence preferences.
otrOff The Record preferences.
pgpOpenPGP preferences.
omemoOMEMO preferences.
+
back to top


+ + +

/presence

+

Synopsis

+

/presence titlebar on|off
+/presence console all|online|none
+/presence chat all|online|none
+/presence room all|online|none
+

+

Description

+

Show the contacts presence in the titlebar and configure presence messages in different window types. +

+

Arguments

+
titlebar on|offSwitch display of the contacts presence in the titlebar on or off.
console allShow all presence changes in the console window.
console onlineShow only online/offline presence changes in the console window.
console noneDon't show any presence changes in the console window.
chat allShow all presence changes in the chat windows.
chat onlineShow only online/offline presence changes in chat windows.
chat noneDon't show any presence changes in chat windows.
room allShow all presence changes in chat room windows.
room onlineShow only online/offline presence changes in chat room windows.
room noneDon't show any presence changes in chat room windows.
+

Examples

+

/presence titlebar off
+/presence console none
+/presence chat online
+/presence room all
+

+
back to top


+ + +

/priority

+

Synopsis

+

/priority <priority>
+

+

Description

+

Set priority for the current account. See the /account command for specific priority settings per presence status. +

+

Arguments

+
<priority>Number between -128 and 127, default: 0.
+
back to top


+ + +

/privacy

+

Synopsis

+

/privacy logging on|redact|off
+/privacy os on|off
+

+

Description

+

Configure privacy settings. Also check the the following settings in /account: clientid to set the client identification name session_alarm to configure an alarm when more clients log in. +

+

Arguments

+
logging on|redact|offSwitch chat logging. This will also disable logging in the internally used SQL database. Your messages will not be saved anywhere locally. This might have unintended consequences, such as not being able to decrypt OMEMO encrypted messages received later via MAM, and should be used with caution.
os on|offChoose whether to include the OS name if a user asks for software information (XEP-0092).
+

Examples

+

/privacy logging off
+/privacy os off
+

+
back to top


+ + +

/privileges

+

Synopsis

+

/privileges on|off
+

+

Description

+

Group occupants panel by role, and show role information in chat rooms. +

+

Arguments

+
on|offEnable or disable privilege information.
+
back to top


+ + +

/quit

+

Synopsis

+

/quit
+

+

Description

+

Logout of any current session, and quit Profanity. +

+
back to top


+ + +

/receipts

+

Synopsis

+

/receipts request on|off
+/receipts send on|off
+

+

Description

+

Enable or disable message delivery receipts. The interface will indicate when a message has been received. +

+

Arguments

+
request on|offWhether or not to request a receipt upon sending a message.
send on|offWhether or not to send a receipt if one has been requested with a received message.
+
back to top


+ + +

/reconnect

+

Synopsis

+

/reconnect <seconds>
+/reconnect now
+

+

Description

+

Set the reconnect attempt interval for when the connection is lost or immediately trigger a reconnect. +

+

Arguments

+
<seconds>Number of seconds before attempting to reconnect, a value of 0 disables reconnect.
nowImmediately trigger a reconnect.
+
back to top


+ + +

/redraw

+

Synopsis

+

/redraw
+

+

Description

+

Redraw user interface. Can be used when some other program interrupted profanity or wrote to the same terminal and the interface looks "broken". +

+
back to top


+ + +

/register

+

Synopsis

+

/register <username> <server> [port <port>] [tls force|allow|trust|direct|disable|legacy]
+

+

Description

+

Register an account on a server. +

+

Arguments

+
<username>Username to register with.
<server>Server to register account on.
port <port>The port to use if different to the default (5222, or 5223 for SSL).
tls forceForce TLS connection, and fail if one cannot be established. This is the default behavior.
tls allowUse TLS for the connection if it is available.
tls trustForce TLS connection and trust the server's certificate.
tls directUse direct TLS for the connection. It means TLS handshake is started right after TCP connection is established.
tls disableDisable TLS for the connection.
tls legacyAlternative keyword for 'direct', which was created when one still thought that 'STARTTLS' is the future.
+

Examples

+

/register odin valhalla.edda 
+/register freyr vanaheimr.edda port 5678
+/register me 127.0.0.1 tls disable
+/register someuser my.xmppserv.er port 5443 tls force
+

+
back to top


+ + +

/reload

+

Synopsis

+

/reload
+

+

Description

+

Reload preferences from configuration file. +

+
back to top


+ + +

/resource

+

Synopsis

+

/resource set <resource>
+/resource off
+/resource title on|off
+/resource message on|off
+

+

Description

+

Override chat session resource, and manage resource display settings. +

+

Arguments

+
set <resource>Set the resource to which messages will be sent.
offLet the server choose which resource to route messages to.
title on|offShow or hide the current resource in the titlebar.
message on|offShow or hide the resource when showing an incoming message.
+
back to top


+ + +

/role

+

Synopsis

+

/role set <role> <nick> [<reason>]
+/role list [<role>]
+

+

Description

+

Manage room roles. Role may be one of moderator, participant, visitor or none. +

+

Arguments

+
set <role> <nick> [<reason>]Set the role of occupant with nick, with an optional reason.
list [<role>]List all occupants with the specified role, or all if none specified.
+
back to top


+ + +

/room

+

Synopsis

+

/room accept|destroy|config
+

+

Description

+

Chat room configuration. +

+

Arguments

+
acceptAccept default room configuration.
destroyReject default room configuration, and destroy the room.
configEdit room configuration.
+
back to top


+ + +

/rooms

+

Synopsis

+

/rooms
+/rooms filter <text>
+/rooms service <service>
+/rooms service <service> filter <text>
+/rooms cache on|off|clear
+

+

Description

+

List the chat rooms available at the specified conference service. If no argument is supplied, the account preference 'muc.service' is used, 'conference.' by default. The filter argument only shows rooms that contain the provided text, case insensitive. +

+

Arguments

+
service <service>The conference service to query.
filter <text>The text to filter results by.
cache on|offEnable or disable caching of rooms list response, enabled by default.
cache clearClear the rooms response cache if enabled.
+

Examples

+

/rooms
+/rooms filter development
+/rooms service conference.jabber.org
+/rooms service conference.jabber.org filter "News Room"
+

+
back to top


+ + +

/roster

+

Synopsis

+

/roster
+/roster online
+/roster show [offline|resource|presence|status|empty|priority|contacts|rooms]
+/roster hide [offline|resource|presence|status|empty|priority|contacts|rooms]
+/roster by group|presence|none
+/roster count unread|items|off
+/roster count zero on|off
+/roster color on|off
+/roster order name|presence
+/roster unread before|after|off
+/roster room char <char>|none
+/roster room private char <char>|none
+/roster room position first|last
+/roster room by service|none
+/roster room order name|unread
+/roster room unread before|after|off
+/roster room title bookmark|jid|localpart|name
+/roster private room|group|off
+/roster private char <char>|none
+/roster header char <char>|none
+/roster presence indent <indent>
+/roster contact char <char>|none
+/roster contact indent <indent>
+/roster resource char <char>|none
+/roster resource indent <indent>
+/roster resource join on|off
+/roster size <percent>
+/roster wrap on|off
+/roster add <jid> [<nick>]
+/roster remove <contact>
+/roster remove_all contacts
+/roster nick <jid> <nick>
+/roster clearnick <jid>
+/roster group
+/roster group show <group>
+/roster group add <group> <contat>
+/roster group remove <group> <contact>
+

+

Description

+

Manage your roster, and roster display settings. Passing no arguments lists all contacts in your roster. +

+

Arguments

+
onlineShow all online contacts in console.
showShow the roster panel.
show offlineShow offline contacts in roster panel.
show resourceShow contact's connected resources in roster panel.
show presenceShow contact's presence in roster panel.
show statusShow contact's status message in roster panel.
show emptyShow empty groups in roster panel.
show priorityShow resource priority in roster panel.
show contactsShow contacts in roster panel.
show roomsShow chat rooms in roster panel.
hideHide the roster panel.
hide offlineHide offline contacts in roster panel.
hide resourceHide contact's connected resources in roster panel.
hide presenceHide contact's presence in roster panel.
hide statusHide contact's status message in roster panel.
hide emptyHide empty groups in roster panel.
hide priorityHide resource priority in roster panel.
hide contactsHide contacts in roster panel.
hide roomsHide chat rooms in roster panel.
by groupGroup contacts in roster panel by roster group.
by presenceGroup contacts in roster panel by presence.
by noneNo grouping in roster panel.
count unreadShow unread message count with roster headers.
count itemsShow item count with roster headers.
count offDo not show any count with roster headers.
count zero onShow roster header count when 0.
count zero offHide roster header count when 0.
color onEnable generated color names (XEP-0392)
color offDisable generated color names (XEP-0392)
order nameOrder roster contacts by name only.
order presenceOrder roster contacts by presence, and then by name.
unread beforeShow unread message count before contact.
unread afterShow unread message count after contact.
unread offDo not show unread message count for contacts.
room char <char>Prefix rooms with specified character.
room char noneRemove room character prefix.
room private char <char>Prefix private room chat with specified character when displayed with room.
room private char noneRemove private room chat character prefix when displayed with room.
room position firstShow rooms first in roster.
room position lastShow rooms last in roster.
room by serviceGroup rooms by chat service.
room by noneDo not group rooms.
room order nameOrder rooms by name.
room order unreadOrder rooms by unread messages, and then by name.
room unread beforeShow unread message count before room.
room unread afterShow unread message count after room.
room unread offDo not show unread message count for rooms.
room title bookmark|jid|localpart|nameDisplay the bookmark name, JID, JID localpart, or room name as the roster title for MUCs.
private roomShow room private chats with the room.
private groupShow room private chats as a separate roster group.
private offDo not show room private chats.
private char <char>Prefix private room chats with specified character when displayed in separate group.
private char noneRemove private room chat character prefix.
header char <char>Prefix roster headers with specified character.
header char noneRemove roster header character prefix.
contact char <char>Prefix roster contacts with specified character.
contact char noneRemove roster contact character prefix.
contact indent <indent>Indent contact line by spaces (0 to 10).
resource char <char>Prefix roster resources with specified character.
resource char noneRemove roster resource character prefix.
resource indent <indent>Indent resource line by spaces (0 to 10).
resource join on|offJoin resource with previous line when only one available resource.
presence indent <indent>Indent presence line by spaces (-1 to 10), a value of -1 will show presence on the previous line.
size <percent>Percentage of the screen taken up by the roster (1-99).
wrap on|offEnable or disable line wrapping in roster panel.
add <jid> [<nick>]Add a new item to the roster.
remove <jid>Removes an item from the roster.
remove_all contactsRemove all items from roster.
nick <jid> <nick>Change a contacts nickname.
clearnick <jid>Removes the current nickname.
group show <group>List all roster items in a group.
group add <group> <contact>Add a contact to a group.
group remove <group> <contact>Remove a contact from a group.
+

Examples

+

/roster
+/roster add odin@valhalla.edda
+/roster add odin@valhalla.edda Allfather
+/roster remove loki@ownserver.org
+/roster nick odin@valhalla.edda "All Father"
+/roster clearnick thor@valhalla.edda
+/roster size 15
+/roster group
+/roster group show friends
+/roster group add friends fenris@ownserver.org
+/roster group add family Brother
+/roster group remove colleagues boss@work.com
+

+
back to top


+ + +

/save

+

Synopsis

+

/save
+

+

Description

+

Save preferences to configuration file. +

+
back to top


+ + +

/script

+

Synopsis

+

/script run <script>
+/script list
+/script show <script>
+

+

Description

+

Run command scripts. Scripts are stored in $XDG_DATA_HOME/profanity/scripts/ which is usually $HOME/.local/share/profanity/scripts/. +

+

Arguments

+
script run <script>Execute a script.
script listList all scripts TODO.
script show <script>Show the commands in script TODO.
+

Examples

+

/script list
+/script run myscript
+/script show somescript
+

+
back to top


+ + +

/sendfile

+

Synopsis

+

/sendfile <file>
+

+

Description

+

Send a file using XEP-0363 HTTP file transfer. If you are in an OMEMO session then the file will be encrypted (XEP-0454) as well. +

+

Arguments

+
<file>Path to the file.
+

Examples

+

/sendfile /etc/hosts
+/sendfile ~/images/sweet_cat.jpg
+

+
back to top


+ + +

/serversoftware

+

Synopsis

+

/serversoftware <domain>
+

+

Description

+

Find server or component software version information. +

+

Arguments

+
<domain>The jid of your server or component.
+

Examples

+

/serversoftware valhalla.edda
+/serversoftware xmpp.vanaheimr.edda
+

+
back to top


+ + +

/silence

+

Synopsis

+

/silence on|off
+

+

Description

+

Let's you silence all message attempts from people who are not in your roster. +

+
back to top


+ + +

/slashguard

+

Synopsis

+

/slashguard on|off
+

+

Description

+

Slashguard won't accept a slash in the first 4 characters of your input field. It tries to protect you from typing ' /quit' and similar things in chats. +

+

Arguments

+
on|offEnable or disable slashguard.
+
back to top


+ + +

/software

+

Synopsis

+

/software
+/software <fulljid>|<nick>
+

+

Description

+

Find out a contact, or room members software version information. If in private chat initiated from a chat room, no parameter is required. If the contact's software does not support software version requests, nothing will be displayed. +

+

Arguments

+
<fulljid>If in the console or a chat window, the full JID for which you wish to see software information.
<nick>If in a chat room, nickname for which you wish to see software information.
+

Examples

+

/software odin@valhalla.edda/laptop
+/software odin@valhalla.edda/phone
+/software thor
+

+
back to top


+ + +

/splash

+

Synopsis

+

/splash on|off
+

+

Description

+

Switch on or off the ascii logo on start up and when the /about command is called. +

+

Arguments

+
on|offEnable or disable splash logo.
+
back to top


+ + +

/stamp

+

Synopsis

+

/stamp outgoing <string>
+/stamp incoming <string>
+/stamp unset outgoing|incoming
+

+

Description

+

Set chat window stamp. The format of line in the chat window is: " " where is "me:" for outgoing messages or "username@server/resource" for incoming messages. This command allows to change value. +

+

Arguments

+
outgoingSet outgoing stamp
incomingSet incoming stamp
unset outgoing|incomingUse the defaults
+

Examples

+

/stamp outgoing -->
+/stamp incoming <--
+/stamp unset incoming
+

+
back to top


+ + +

/states

+

Synopsis

+

/states on|off
+

+

Description

+

Send chat state notifications to recipient during chat sessions, such as typing, paused, active, gone. +

+

Arguments

+
on|offEnable or disable sending of chat state notifications.
+
back to top


+ + +

/status

+

Synopsis

+

/status set <state> ["<message>"]
+/status get <contact>|<nick>
+

+

Description

+

/status get: Find out a contact, or room members presence information. /status set: set own status. +

+

Arguments

+
<state>Own status. Possible values: chat, online, away, dnd, xa
<message>Optional message to use with the status. Needs quotation marks if it's more than one word.
<contact>The contact who's presence you which to see.
<nick>If in a chat room, the occupant who's presence you wish to see.
+

Examples

+

/status get odin@valhalla.edda
+/status get jon
+/status set online
+

+
back to top


+ + +

/statusbar

+

Synopsis

+

/statusbar show name|number|read
+/statusbar hide name|number|read
+/statusbar maxtabs <value>
+/statusbar tablen <value>
+/statusbar tabmode default|dynamic|actlist
+/statusbar self user|barejid|fulljid|off
+/statusbar chat user|jid
+/statusbar room title bookmark|jid|localpart|name
+/statusbar up
+/statusbar down
+

+

Description

+

Manage statusbar display preferences. +

+

Arguments

+
maxtabs <value>Set the maximum number of tabs to display, must be between 0 and 10.
tablen <value>Set the maximum number of characters to show as the tab name, 0 sets to unlimited.
tabmode default|dynamic|actlistSet the mode tabs are shown. `dynamic` is a mode that displays tabs conveniently around current tab, thus providing proper pagination. `actlist` setting shows only active tabs. `default` setting always shows tabs in 1 to max_tabs range.
show|hide nameShow or hide names in tabs.
show|hide numberShow or hide numbers in tabs.
show|hide readShow or hide inactive tabs.
self user|barejid|fulljidShow account user name, barejid, fulljid as status bar title.
self offDisable showing self as status bar title.
chat user|jidShow users name, or fulljid. Change needs a redraw/restart to take effect.
room title bookmark|jid|localpart|nameDisplay the bookmark name, JID, JID localpart, or room name as the title for MUC tabs.
upMove the status bar up the screen.
downMove the status bar down the screen.
+

Examples

+

/statusbar maxtabs 8
+/statusbar tablen 5
+/statusbar tabmode actlist
+/statusbar self user
+/statusbar chat jid
+/statusbar hide read
+/statusbar hide name
+

+
back to top


+ + +

/strophe

+

Synopsis

+

/strophe verbosity 0-3
+/strophe sm on|no-resend|off
+

+

Description

+

Modify libstrophe settings. +

+

Arguments

+
verbosity 0-3Set libstrophe verbosity level when log level is 'DEBUG'.
sm on|no-resend|offEnable or disable Stream-Management (SM) as of XEP-0198. The 'no-resend' option enables SM, but won't re-send un-ACK'ed messages on re-connect.
+

Examples

+

/strophe verbosity 3
+/strophe sm no-resend
+

+
back to top


+ + +

/sub

+

Synopsis

+

/sub request [<jid>]
+/sub allow [<jid>]
+/sub deny [<jid>]
+/sub show [<jid>]
+/sub sent
+/sub received
+

+

Description

+

Manage subscriptions to contact presence. If jid is omitted, the contact of the current window is used. +

+

Arguments

+
request [<jid>]Send a subscription request to the user.
allow [<jid>]Approve a contact's subscription request.
deny [<jid>]Remove subscription for a contact, or deny a request.
show [<jid>]Show subscription status for a contact.
sentShow all sent subscription requests pending a response.
receivedShow all received subscription requests awaiting your response.
+

Examples

+

/sub request odin@valhalla.edda
+/sub allow odin@valhalla.edda
+/sub request
+/sub sent
+

+
back to top


+ + +

/subject

+

Synopsis

+

/subject set <subject>
+/subject edit <subject>
+/subject editor
+/subject prepend <text>
+/subject append <text>
+/subject clear
+

+

Description

+

Set, modify, or clear room subject. +

+

Arguments

+
set <subject>Set the room subject.
edit <subject>Edit the current room subject, tab autocompletion will display the subject to edit.
editorEdit the current room subject in external editor.
prepend <text>Prepend text to the current room subject, use double quotes if a trailing space is needed.
append <text>Append text to the current room subject, use double quotes if a preceding space is needed.
clearClear the room subject.
+
back to top


+ + +

/theme

+

Synopsis

+

/theme list
+/theme load <theme>
+/theme full-load <theme>
+/theme colours
+/theme properties
+

+

Description

+

Load a theme, includes colours and UI options. +

+

Arguments

+
listList all available themes.
load <theme>Load colours from specified theme. 'default' will reset to the default theme.
full-load <theme>Same as 'load' but will also load preferences set in the theme, not just colours.
coloursShow colour values as rendered by the terminal.
propertiesShow colour settings for current theme.
+

Examples

+

/theme list
+/theme load forest
+

+
back to top


+ + +

/time

+

Synopsis

+

/time all|console|chat|muc|config|private|xml set <format>
+/time all|console|chat|muc|config|private|xml off
+/time statusbar set <format>
+/time statusbar off
+/time lastactivity set <format>
+/time vcard set <format>
+

+

Description

+

Configure time display preferences. Time formats are strings supported by g_date_time_format. See https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format for more details. Setting the format to an unsupported string, will display the string. If the format contains spaces, it must be surrounded with double quotes. It is possible to pass format as 'iso8601' in order to set the time format according to ISO-8601 (only local time, without Time zone designator). +

+

Arguments

+
console set <format>Set time format for console window.
console offDo not show time in console window.
chat set <format>Set time format for chat windows.
chat offDo not show time in chat windows.
muc set <format>Set time format for chat room windows.
muc offDo not show time in chat room windows.
config set <format>Set time format for config windows.
config offDo not show time in config windows.
private set <format>Set time format for private chat windows.
private offDo not show time in private chat windows.
xml set <format>Set time format for XML console window.
xml offDo not show time in XML console window.
statusbar set <format>Change time format in statusbar.
statusbar offDo not show time in status bar.
lastactivity set <format>Change time format for last activity.
vcard set <format>Change the time format used to display time/dates in vCard (such as birthdays)
all set <format>Set time for: console, chat, muc, config, private, and xml windows.
all offDo not show time for: console, chat, muc, config, private and xml windows.
+

Examples

+

/time console set %H:%M:%S
+/time chat set "%d-%m-%y %H:%M:%S"
+/time xml off
+/time statusbar set %H:%M
+/time lastactivity set "%d-%m-%y %H:%M:%S"
+/time all set "%d-%m-%y %H:%M:%S"
+/time all set iso8601
+

+
back to top


+ + +

/titlebar

+

Synopsis

+

/titlebar up
+/titlebar down
+/titlebar show|hide encwarn|resource|tls
+/titlebar room title bookmark|jid|localpart|name
+

+

Description

+

Titlebar settings. +

+

Arguments

+
upMove the title bar up the screen.
downMove the title bar down the screen.
show tlsShow or hide TLS indicator in the titlebar.
show encwarnEnable or disable the unencrypted warning message in the titlebar.
show resourceShow or hide the current resource in the titlebar.
room title bookmark|jid|localpart|nameDisplay the bookmark name, JID, JID localpart, or room name as the MUC window title.
+

Examples

+

/titlebar up
+/titlebar show tls
+/titlebar hide encwarn
+/titlebar room title localpart
+

+
back to top


+ + +

/tls

+

Synopsis

+

/tls allow
+/tls always
+/tls deny
+/tls cert [<fingerprint>]
+/tls trust
+/tls trusted
+/tls revoke <fingerprint>
+/tls certpath
+/tls certpath set <path>
+/tls certpath clear
+/tls certpath default
+

+

Description

+

Handle TLS certificates. +

+

Arguments

+
allowAllow connection to continue with TLS certificate.
alwaysAlways allow connections with TLS certificate.
denyAbort connection.
certShow the current TLS certificate.
cert <fingerprint>Show details of trusted certificate.
trustAdd the current TLS certificate to manually trusted certificates.
trustedList summary of manually trusted certificates (with '/tls always' or '/tls trust').
revoke <fingerprint>Remove a manually trusted certificate.
certpathShow the trusted certificate path.
certpath set <path>Specify filesystem path containing trusted certificates.
certpath clearClear the trusted certificate path.
certpath defaultUse default system certificate path, if it can be found.
+
back to top


+ + +

/tray

+

Synopsis

+

/tray on|off
+/tray read on|off
+/tray timer <seconds>
+

+

Description

+

Display an icon in the tray that will indicate new messages. +

+

Arguments

+
on|offShow tray icon.
read on|offShow tray icon when no unread messages.
timer <seconds>Set tray icon timer, seconds must be between 1-10.
+
back to top


+ + +

/url

+

Synopsis

+

/url open <url>
+/url save <url> [<path>]
+

+

Description

+

Open or save URLs. This works with OMEMO encrypted files as well. +

+

Arguments

+
openOpen URL with predefined executable.
saveSave URL to optional path. The location is displayed after successful download.
+

Examples

+

/url open https://profanity-im.github.io
+/url save https://profanity-im.github.io/guide/latest/userguide.html /home/user/Download/
+

+
back to top


+ + +

/vcard

+

Synopsis

+

/vcard get [<nick|contact>]
+/vcard photo open <nick|contact> [<index>]
+/vcard photo save <nick|contact> [output <filepath>] [index <index>]
+/vcard set fullname <fullname>
+/vcard set name family <family>
+/vcard set name given <given>
+/vcard set name middle <middle>
+/vcard set name prefix <prefix>
+/vcard set name suffix <suffix>
+/vcard set <index> [<value>]
+/vcard set <index> pobox <value>
+/vcard set <index> extaddr <value>
+/vcard set <index> street <value>
+/vcard set <index> locality <value>
+/vcard set <index> region <value>
+/vcard set <index> pocode <value>
+/vcard set <index> country <value>
+/vcard set <index> type domestic|international
+/vcard set <index> home on|off
+/vcard set <index> work on|off
+/vcard set <index> voice on|off
+/vcard set <index> fax on|off
+/vcard set <index> pager on|off
+/vcard set <index> msg on|off
+/vcard set <index> cell on|off
+/vcard set <index> video on|off
+/vcard set <index> bbs on|off
+/vcard set <index> modem on|off
+/vcard set <index> isdn on|off
+/vcard set <index> pcs on|off
+/vcard set <index> preferred on|off
+/vcard set <index> parcel on|off
+/vcard set <index> postal on|off
+/vcard set <index> internet on|off
+/vcard set <index> x400 on|off
+/vcard add nickname <nickname>
+/vcard add birthday <date>
+/vcard add address
+/vcard add tel <number>
+/vcard add email <userid>
+/vcard add jid <jid>
+/vcard add title <title>
+/vcard add role <role>
+/vcard add note <note>
+/vcard add url <url>
+/vcard remove <index>
+/vcard refresh
+/vcard save
+

+

Description

+

Read your vCard or a user's vCard, get a user's avatar via their vCard, or modify your vCard. If no arguments are given, your vCard will be displayed in a new window, or an existing vCard window. +

+

Arguments

+
get [<nick|contact>]Get your vCard, if a nickname/contact is provided, get that user's vCard
photo open <nick|contact> [<index>]Download a user's photo from their vCard to a file, and open it. If index is not specified, download the first photo (usually avatar) from their vCard
photo save <nick|contact>Download a user's photo from their vCard to a file. If index is not specified, download the first photo (usually avatar) from their vCard. If output is not specified, download the photo to profanity's photos directory.
photo open-self [<index>]Download a photo from your vCard to a file, and open it. If index is not specified, download the first photo (usually avatar) from your vCard
photo save-selfDownload a photo from your vCard to a file. If index is not specified, download the first photo (usually avatar) from your vCard. If output is not specified, download the photo to profanity's photos directory. Same arguments as `photo open`
set fullname <fullname>Set your vCard's fullname to the specified value
set name family <family>Set your vCard's family name to the specified value
set name given <given>Set your vCard's given name to the specified value
set name middle <middle>Set your vCard's middle name to the specified value
set name prefix <prefix>Set your vCard's prefix name to the specified value
set name suffix <suffix>Set your vCard's suffix name to the specified value
set <index> [<value>]Set the main field in a element in your vCard to the specified value, or if no value was specified, modify the field in an editor, This only works in elements that have one field.
set <index> pobox <value>Set the P.O. box in an address element in your vCard to the specified value.
set <index> extaddr <value>Set the extended address in an address element in your vCard to the specified value.
set <index> street <value>Set the street in an address element in your vCard to the specified value.
set <index> locality <value>Set the locality in an address element in your vCard to the specified value.
set <index> region <value>Set the region in an address element in your vCard to the specified value.
set <index> pocode <value>Set the P.O. code in an address element in your vCard to the specified value.
set <index> type domestic|internationalSet the type in an address element in your vCard to either domestic or international.
set <index> home on|offSet the home option in an element in your vCard. (address, telephone, e-mail only)
set <index> work on|offSet the work option in an element in your vCard. (address, telephone, e-mail only)
set <index> voice on|offSet the voice option in a telephone element in your vCard.
set <index> fax on|offSet the fax option in a telephone element in your vCard.
set <index> pager on|offSet the pager option in a telephone element in your vCard.
set <index> msg on|offSet the message option in a telephone element in your vCard.
set <index> cell on|offSet the cellphone option in a telephone element in your vCard.
set <index> video on|offSet the video option in a telephone element in your vCard.
set <index> bbs on|offSet the BBS option in a telephone element in your vCard.
set <index> modem on|offSet the modem option in a telephone element in your vCard.
set <index> isdn on|offSet the ISDN option in a telephone element in your vCard.
set <index> pcs on|offSet the PCS option in a telephone element in your vCard.
set <index> preferred on|offSet the preferred option in an element in your vCard. (address, telephone, e-mail only)
set <index> parcel on|offSet the parcel option in an address element in your vCard.
set <index> postal on|offSet the postal option in an address element in your vCard.
set <index> internet on|offSet the internet option in an e-mail address in your vCard.
set <index> x400 on|offSet the X400 option in an e-mail address in your vCard.
add nickname <nickname>Add a nickname to your vCard
add birthday <date>Add a birthday date to your vCard
add addressAdd an address to your vCard
add tel <number>Add a telephone number to your vCard
add email <userid>Add an e-mail address to your vCard
add jid <jid>Add a Jabber ID to your vCard
add title <title>Add a title to your vCard
add role <role>Add a role to your vCard
add note <note>Add a note to your vCard
add url <url>Add a URL to your vCard
remove <index>Remove a element in your vCard by index
refreshRefreshes the local copy of the current account's vCard (undoes all your unpublished modifications)
saveSave changes to the server
+
back to top


+ + +

/vercheck

+

Synopsis

+

/vercheck on|off
+

+

Description

+

Check for new versions when Profanity starts, and when the /about command is run. +

+

Arguments

+
on|offEnable or disable the version check.
+
back to top


+ + +

/who

+

Synopsis

+

/who
+/who online|offline|away|dnd|xa|chat|available|unavailable|any [<group>]
+/who moderator|participant|visitor
+/who owner|admin|member|none
+

+

Description

+

Show contacts or room occupants with chosen status, role or affiliation. +

+

Arguments

+
offline|away|dnd|xa|chatShow contacts or room occupants with specified presence.
onlineContacts that are online, chat, away, xa, dnd.
availableContacts that are available for chat - online, chat.
unavailableContacts that are not available for chat - offline, away, xa, dnd.
anyContacts with any status (same as calling with no argument).
<group>Filter the results by the specified roster group, not applicable in chat rooms.
moderator|participant|visitorRoom occupants with the specified role.
owner|admin|member|noneRoom occupants with the specified affiliation.
+

Examples

+

/who
+/who xa
+/who online friends
+/who any family
+/who participant
+/who admin
+

+
back to top


+ + +

/win

+

Synopsis

+

/win console
+/win <num>
+/win <barejid>
+/win <nick>
+/win <roomjid>
+/win <roomoccupantjid>
+/win xmlconsole
+/win <plugin>
+

+

Description

+

Move to the specified window. +

+

Arguments

+
consoleFocus the Console window.
<num>Focus specified window number.
<barejid>Focus chat window with contact by JID if open.
<nick>Focus chat window with contact by nickname if open.
<roomjid>Focus chat room window with roomjid if open.
<roomoccupantjid>Focus private chat roomoccupantjid if open.
xmlconsoleFocus the XML Console window if open.
<plugin>Focus the plugin window.
+

Examples

+

/win console
+/win 4
+/win odin@valhalla.edda
+/win Eddie
+/win bigroom@conference.chat.org
+/win bigroom@conference.chat.org/thor
+/win wikipedia
+

+
back to top


+ + +

/wins

+

Synopsis

+

/wins
+/wins unread
+/wins attention
+/wins prune
+/wins swap <source> <target>
+

+

Description

+

Manage windows. Passing no argument will list all currently active windows and information about their usage. +

+

Arguments

+
unreadList windows with unread messages.
attentionList windows that have been marked with the attention flag (alt+v). You can toggle between marked windows with alt+m.
pruneClose all windows with no unread messages.
swap <source> <target>Swap windows, target may be an empty position.
+
back to top


+ + +

/wintitle

+

Synopsis

+

/wintitle show on|off
+/wintitle goodbye on|off
+

+

Description

+

Allow Profanity to modify the window title bar. +

+

Arguments

+
show on|offShow current logged in user, and unread messages as the window title.
goodbye on|offShow a message in the title when exiting profanity.
+
back to top


+ + +

/wrap

+

Synopsis

+

/wrap on|off
+

+

Description

+

Word wrapping. +

+

Arguments

+
on|offEnable or disable word wrapping in the main window.
+
back to top


+ + +

/xmlconsole

+

Synopsis

+

/xmlconsole
+

+

Description

+

Open the XML console to view incoming and outgoing XMPP traffic. +

+
back to top


+ diff --git a/guide/0170/omemo.html b/guide/0170/omemo.html new file mode 100644 index 0000000..cafc639 --- /dev/null +++ b/guide/0170/omemo.html @@ -0,0 +1,211 @@ + + + + Profanity, a console based XMPP client - OMEMO Encryption + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

OMEMO Encryption

+
+
+
+

Contents

+ + +
+
+ +

Current state

+

Profanity has OMEMO support since 0.7.0. Regular 1:1 chats should work without problems. We consider OMEMO MUC as experimental. You might encounter problems there. Make sure to check our tracker bug for details. And report anything you find on the issue tracker.

+

Enabling carbons (/carbons on) is recommended in order to enhance OMEMO and overall chat experience.

+

To be able to read on other devices (eg your phone) what you wrote on profanity you need to trust the fingerprints of your other devices manually (/omemo fingerprint ).

+

Filetransfer is OMEMO encrypted since Profanity 0.10.0 via the proto XEP.

+

/omemo fingerprint does autocomplete all fingerprints not just the ones for the JID mentioned.

+
+
+ +

Building with OMEMO support

+

+ OMEMO is an XMPP Extension Protocol (XEP) for secure multi-client end-to-end encryption. It is an open standard based on a Double Ratchet and PEP. +

+

+ Profanity supports OMEMO only if you build from current git master. Support is planned for the 0.7.0 release. +

+

+ If you have libsignal-protocol-c installed, support will be included by default. To force the build to fail if support cannot be included, configure with the following: +

+
./configure --enable-omemo
+

+ Supported libsignal-protocol-c versions are 2.3.1, and 2.3.2. +

+
+
+ +

Setup

+ +

Generating Crypto Materials

+

+ Before you can start using OMEMO for a particular account, you must generate the cryptographic material. Use the following command: +

+
/omemo gen
+

+ A message will appear informing you that the key is being generated which may take a few minutes. We use /dev/random for this. +

+

+ If the generation takes a long time you can try to move the mouse or install an entropy daemon, such as haveged, to increase the available entropy. +

+

+

+ Once you have generated a key, you will not need to do so again. If you want to check your own fingerprint or see the fingerprints of your other devices type: +

+
/omemo fingerprint
+

+ Hint: To be able to receive messages from your other devices you need to enable carbons. Also trust your own devices analogous to your buddies fingerprints, as described in the next paragraph. +

+
/carbons on
+
+
+ +

Fingerprint authentication

+

+ Before you can start talking with a contact you need to authenticate him by trusting his fingerprint(s). +

+

+ You should exchange fingerprints with your contact's via another secure communication channel. To display your fingerprint, use the following command: +

+
/omemo fingerprint
+

+

+ To view the fingerprint of a contact use the following command: +

+
/omemo fingerprint bob
+

+

+ If the fingerprint you see matches the fingerprint you communicated via another means, you can manually authenticate the contact with the following command: +

+
/omemo trust 7ef54f6a-af23d766-efc9a4ea-da6fca40-3e8a5c82-9c46e4a4-e4c7230f-937b9144
+

+ You can untrust a contact at anytime using the following command: +

+
/omemo untrust 7ef54f6a-af23d766-efc9a4ea-da6fca40-3e8a5c82-9c46e4a4-e4c7230f-937b9144
+
+
+ +

Starting a private conversation

+

+ Once the cryptographic material is present and you trusted your contacts fingerprint(s) you can start a private conversation with another contact that uses an OMEMO capable client +

+

+ To start a new conversation using OMEMO: +

+
/omemo start bob@ejabberd.local
+

+ If you are already in a conversation window without OMEMO, you can start sending encrypted messages with the same command omitting the contact: +

+
/omemo start bob
+

+

+ The [OMEMO] shown in the titlebar indicates that the conversation is now encrypted. +

+
+
+ +

Setting OMEMO policy

+ +

+ By default, OMEMO sessions must be started manually using the /omemo start command. +

+

+ The following three settings are available: +

+

+ manual - The default. Unencrypted messaging is allowed, OMEMO sessions must be started manually. +

+

+ automatic - If you start an OMEMO session with a contact once via /omemo start it will remember the OMEMO session for this contact. So if you restart Profanity and use /msg bob@ejabberd.local it will OMEMO encrypt the conversation. You can stop this with /omemo stop. +

+

+ always - OMEMO sessions are always started. Until you use /omemo stop. +

+
+
+ +

User Interface options

+ +

+ By default, an indicator is displayed in the titlebar when no encryption is being used. +

+

+

+ This indicator can be removed using the /encwarn command. +

+
/encwarn off
+

+

+ Both incoming and outgoing plaintext messages are always preceeded by the '-' character. +

+

+

+ By default OMEMO encrypted messages are preceeded by the '*' character. +

+

+

+ This character can be changed using the /omemo char command. +

+
/omemo char O
+

+
+
+ +

OMEMO message logging

+

+ The /omemo log command may be used with the following options to control if and how OMEMO messages are recorded in chat logs. +

+ + + + + + + + + + + + + +
on
OMEMO messages will be logged in plaintext
redact
OMEMO messages will be logged, but the message will be replaced with the text '[redacted]'.
off
OMEMO messages will not be logged.
+

+ For the on and redact settings, chat logging must also be enabled with the /chlog command. +

+
+
+ + + diff --git a/guide/0170/otr.html b/guide/0170/otr.html new file mode 100644 index 0000000..93a64d6 --- /dev/null +++ b/guide/0170/otr.html @@ -0,0 +1,377 @@ + + + + + Profanity, a console based XMPP client - Off The Record (OTR) Encryption + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

OTR Message Encryption

+
+
+
+

Contents

+ + +
+
+ +

Building with OTR support

+

+ Off The Record (OTR) messaging is a form of secure messaging, it includes encryption, authentication + between users, deniability and perfect forward secrecy. +

+

+ An overview and many useful resources can be found at the OTR site. +

+

+ If you have libotr-dev installed, support will be included by default. To force the build + to fail if support cannot be included, configure with the following: +

+
./configure --enable-otr
+

+ Supported libotr versions are 3.2.x, and 4.0.x. +

+

+ On most distributions there is simply a libotr-dev package you need to install first. +

+

+ On Mac OS X, the brew formula will automatically install + the dependency and compile with OTR support. +

+

+ On Cygwin you will need to install the libgcrypt-devel package first. Secondly you will + need libotr-devel package which is not currently in the official repositories. You can + install it from the Cygwin + Ports project. +

+
+
+ +

Generating a private key

+

+ Before you can start using OTR for a particular account, you must generate a private key. Use the + following command: +

+
/otr gen
+

+ A message will appear informing you that the key is being generated which may take a few minutes. +

+

+ If the generation takes a long time you can try to move the mouse or install an entropy daemon, such as + haveged, to increase the available entropy. +

+

+

+ Once you have generated a key, you will not need to do so again. +

+
+
+ +

Starting a private conversation

+

+ Once you have a private key, you may start OTR encrypted sessions with other contacts who have OTR + enabled. +

+

+ To start a new conversation using OTR encryption: +

+
/otr start bob@ejabberd.local
+

+ If you are already in a conversation window without OTR, you can start sending encrypted messages with + the same command omitting the contact: +

+
/otr start
+

+

+ The [untrusted] shown in the titlebar indicates that although this conversation is + encrypted, the contact has not yet been authenticated. +

+
+
+ +

Authenticating a contact

+

+ The previous conversations were encrypted, however as the recipient noticed, neither user can be certain + of the identity of the other. +

+

+ Authentication is for each OTR key that the contact may have generated. For example if your contact has + different OTR keys on different devices, you will need to authenticate each device separately. +

+

+ Once a particular contact (and client) has been authenticated, this information is saved. +

+

+ OTR supports three ways to authenticate a contact, question and answer, shared secret, and manual + fingerprint verification. +

+ + +

Question and answer

+

+ Question and answer verification allows one user to verify the identity of another by asking a question + with an expected answer. +

+

+ Once in an OTR session, a user may ask the recipient a question supplying their expect answer, for + example if Alice wishes to authenticate Bob: +

+
/otr question "What is the name of your best friends rabbit?" fiffi
+

+ A message will be displayed showing that the authentication process has started. +

+

+

+ If Bob answers correctly a message will be shown indicating that Bob is now trusted by Alice. +

+

+

+ If Bob answers incorrectly a message will be shown indicating that Bob is not trusted by Alice. +

+

+

+ Bob may also wish to authenticate Alice. If he does, Alice will receive a message showing Bob's + question, and prompting her to answer. Alice may answer using the /otr answer command: +

+
/otr answer red
+

+

+ Note that question and answer authentication is a way for one contact to verify the identity of another. + If the recipient answers correctly then the sender has authenticated them, however the recipient must + also authenticate the sender with another question. +

+ + +

Shared secret

+

+ Shared secret verification is a way for both parties to authenticate each other at the same time using a + shared passphrase that only the two of them know. +

+

+ In an OTR session, one user may start shared secret authentication with the /otr secret + command, supplying the secret, for example Alice initiates the authentication: +

+
/otr secret 5up3r53cr3t
+

+ Bob enters the same secret using his client, Alice and Bob now trust each other. +

+

+ +

+ If Bob started the shared secret authentication, Alice will receive a message asking her to enter the + secret using the /otr secret command: +

+
/otr secret 5up3r53cr3t
+

+ + +

Manual fingerprint authentication

+

+ The above two methods allow you to verify the fingerprint of a contact's OTR key without having to know + the fingerprint. The final method is to manually verify the fingerprint. +

+

+ You should exchange fingerprints with your contact's via another secure communication channel. To + display your fingerprint, use the following command: +

+
/otr myfp
+

+

+ To view the fingerprint of a contact whilst in an OTR session, use the following command: +

+
/otr theirfp
+

+

+ If the fingerprint you see matches the fingerprint you communicated via another means, you can manually + authenticate the contact with the following command: +

+
/otr trust
+

+ You can untrust a contact at anytime using the following command: +

+
/otr untrust
+
+
+ +

Setting OTR policy

+ +

+ By default, OTR sessions must be started manually using the /otr start command. +

+

+ The policy may be set at three levels, global, per account, and per contact with the order of preference + being the most specific first: +

+

+ 1 - Use the policy for the contact, if no setting found:
+ 2 - Use the policy for the account, if no setting found:
+ 3 - Use the global policy +

+

+ The following three settings are available for each level: +

+

+ manual - The default. Unencrypted messaging is allowed, OTR sessions must be started + manually. +

+

+ opportunistic - Upon sending an unencrypted message with the /msg + command, profanity will attempt to start an OTR session with the contact. The contact's policy must be + set to opportunistic or always for the session to start. +

+

+ always - An error message will be displayed if you try to start a conversation + without starting an OTR session and the message will not be sent. +

+ + +

Setting global policy

+

+ To set the global policy: +

+
/otr policy <setting>
+

+ The current global setting can be viewed with the following command: +

+
/prefs otr
+ + +

Setting account policy

+

+ To set the policy for a particular account: +

+
/account set <account_name> otr <setting>
+

+ The account setting can be viewed with the following command: +

+
/account show <account_name>
+ + +

Setting contact policy

+

+ To set the policy for a particular contact (you must be logged in): +

+
/otr policy <setting> <contact>
+

+ Contact policy settings can also be viewed with: +

+
/account show <account_name>
+
+
+ +

User Interface options

+ +

+ By default, an indicator is displayed in the titlebar when no encryption is being used (including PGP and OMEMO). +

+

+

+ This indicator can be removed using the /encwarn + command. +

+
/encwarn off
+

+

+ Both incoming and outgoing plaintext messages are always preceeded by the '-' character. +

+

+

+ By default OTR encrypted messages are preceeded by the '~' character. +

+

+

+ This character can be changed using the /otr char command. +

+
/otr char O
+

+
+
+ +

OTR message logging

+

+ The /otr log command may be used with the following options to control if and how OTR + messages are recorded in chat logs. +

+ + + + + + + + + + + + + +
+
on
+
OTR messages will be logged in plaintext
+
redact
+
OTR messages will be logged, but the message will be replaced with the text + '[redacted]'.
+
off
+
OTR messages will not be logged.
+

+ For the on and redact settings, chat logging must also be enabled with the /chlog command. +

+
+
+ +

Importing OTR keys

+

Since profanity uses the libotr library to store keys and trusted fingerprints, files created by another + client which uses libotr should also work with profanity.

+

The files need to be placed in the following locations:

+
$XDG_DATA_HOME/profanity/otr//keys.txt
+$XDG_DATA_HOME/profanity/otr//fingerprints.txt
+

On most systems $XDG_DATA_HOME is ~/.local/share. + The folder is the account name with _at_ replacing the @ symbol, for example + account my.account@server.org will have the above two files stored as:

+
~/.local/share/profanity/otr/my.account_at_server.org/keys.txt
+~/.local/share/profanity/otr/my.account_at_server.org/fingerprints.txt
+
+
+ + + + \ No newline at end of file diff --git a/guide/0170/pgp.html b/guide/0170/pgp.html new file mode 100644 index 0000000..55454b3 --- /dev/null +++ b/guide/0170/pgp.html @@ -0,0 +1,166 @@ + + + + Profanity, a console based XMPP client - PGP Encryption + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

PGP Encryption

+
+
+
+

Contents

+ + +
+
+ +

Building with PGP support

+ +

+ Profanity uses the GPGME library to support PGP encryption. You will need the libgpgme-dev or equivalent installed. If the package is installed PGP support will be included automatically. To force the build to fail if support cannot be included, configure with the following: +

+
./configure --enable-pgp
+
+
+ +

Assigning a key to your account

+ +

+ To allow contacts to send you PGP encrypted messages you must have a PGP key assigned to your account. To list all available keys on your system, use the command /pgp keys +

+

+

+ Set the account pgpkeyid property with the /account command. +

+
/account set alice@ejabberd.local pgpkeyid B4510EE476F2AA6F
+
+
+ +

Assigning keys to contacts

+ +

+ To be able to send PGP encrypted messages to contacts, you must associate a public key with them. The specification states that contacts should sign their presence with their key, if your contacts do this, you need to do nothing else. +

+

+ If your contacts do not sign their presence, you will need to manually assign a public key using the /pgp setkey command. +

+
/pgp setkey eddie@ironmaiden.com C4C71F21D0F2EC3D
+

+ To view a list of all currently known public keys, either through received signed presence or set manually. +

+
/pgp contacts
+

+
+
+ +

Sending PGP encrypted messages

+ +

+ To start a new conversation sending PGP encrypted messages to a contact: +

+
/pgp start bob@ejabberd.local
+

+ If you are already in a conversation window without PGP, you can start sending encrypted messages with the same command omitting the contact: +

+
/pgp start
+

+
+
+ +

Receiving PGP encrypted messages

+ +

+ Assuming a public key is associated with the contact, they must also have enabled PGP encryption at their end. +

+

+
+
+ +

Ending PGP encryption

+ +

+ To stop sending PGP encrypted messages to a contact: +

+
/pgp end
+

+

+ The contact may also end PGP encryption at their end at any time. +

+

+
+
+ +

User Interface options

+ +

+ By default, an indicator is displayed in the titlebar when no encryption is being used (including OTR and OMEMO). +

+

+

+ This indicator can be removed using the /encwarn command. +

+
/encwarn off
+

+

+ Both incoming and outgoing plaintext messages are always preceded by the '-' character. +

+

+

+ By default PGP encrypted messages are preceded by the '~' character. +

+

+

+ This character can be changed using the /pgp char command. +

+
/pgp char P
+

+
+
+ +

PGP message logging

+ +

The /pgp log command may be used with the following options to control if and how PGP messages are recorded in chat logs.

+ + + + + + + + + + + + + +
on
PGP messages will be logged in plaintext
redact
PGP messages will be logged, but the message will be replaced with the text '[redacted]'.
off
PGP messages will not be logged.
+

For the on and redact settings, chat logging must also be enabled with the /chlog command.

+
+
+ + + diff --git a/guide/0170/presence.html b/guide/0170/presence.html new file mode 100644 index 0000000..9454199 --- /dev/null +++ b/guide/0170/presence.html @@ -0,0 +1,137 @@ + + + + Profanity, a console based XMPP client - Advanced presence, resources and priorities + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Advanced presence, resources and priorities

+
+
+
+

Contents

+ + +
+
+ +

Overview

+ +

Since version 0.2.0, Profanity allows more flexible handling of resource and priority settings.

+

If you only ever connect to a chat service using the same computer (for example, you log on at work on your desktop, and never from anywhere else), you probably need not be concerned with these settings.

+

If you already know about resources and priorities and want to use them in Profanity, you can skip this overview and go straight to the settings section.

+

If you often connect from many devices, and want to ensure that messages are routed to the right place, but don't know how, this brief overview should help before moving on to the settings sections below.

+ +

Resources

+ +

The XMPP protocol allows users to connect from more than one place at a time. For example, I might connect from my laptop, my desktop, my tablet and my phone. + Or, unlikely but still possible, from two Jabber clients on my desktop, Profanity and Miranda.

+

Contact's identifiers are called JIDs (Jabber IDentifiers). A JID is of the form:

+
localpart@domainpart
+

E.g.:

+
friends.name@ourserver.org
+
+localpart = friends.name
+domainpart = ourserver.org
+

This is enough to identify a contact. However, when a contact connects to a chat service using a Jabber client, that client is represented as a resource

+

So whilst a contact can be identified as localpart@domainpart (known as a bare jid), + their connection using a specific client is identified as localpart@domainpart/resourcepart (known as a full jid).

+

For example, a contact some.friend@chat.server.org logs in using both their laptop and their phone. The software on their laptop uses the resource name laptop and the phone phone.

+

Our contact can be identified as:

+ +
some.friend@chat.server.org
+ +

And they have two connected resources:

+ +
some.friend@chat.server.org/laptop
+some.friend@chat.server.org/phone
+ +

When we receive a message, it will be from a full jid, i.e. from a specific client the contact is using.

+

You might be unaware of the resource most of the time, most client software uses a default (often the name of the software) which you can find in it's settings.

+

Even if the client software provides no default, the chat service will generate a unique resource name, which is why you might see long numbers appear after a contacts name in your client:

+
someone@theserver.com/b2be5700-73ed-4922-91be-f4bd5ae1526a
+ +

Priorities

+ +

Since a user may be connected using more than one client, the server needs to know where to route messages, therefore resources are given a priority

+

A priority is a number between -128 and 127.

+

The exact rules to determine which resource (laptop or phone, for example) gets a message, vary between server implementations, but most follow something like the following:

+
Find the resource with the highest priority
+Send the message to that resource
+If two resources have the same priority, send to both
+If the only resources available have a negative number, store the message until a resource connects with a priority of 0 or higher
+

If we go back to the example above, adding a priority to each resource:

+ +

Contact:

+
some.friend@chat.server.org
+

Connected Resources:

+ +
some.friend@chat.server.org/laptop, priority = 5
+some.friend@chat.server.org/phone, priority = 20
+ +

If we send a message to our contact:

+
/msg some.friend@chat.server.org Hi there!
+

The message will be delivered to the contact's phone

+

The following sections show how to set the resource name, and priority for Profanity.

+
+
+ +

Setting the resource

+ +

To set the resource for a particular account in Profanity, use the /account command:

+

For example to set the resource for the account work to laptop:

+
/account set work resource laptop
+

To find out what resource name is being used at any time:

+
/account show work
+

Or, if you are logged in:

+
/account
+

Will show the settings for the current account.

+
+
+ +

Setting priority

+ +

To set the priority for an account whilst logged in use the /priority command:

+
/priority 10
+

This will set the priority to 10 for this account. Whether you are online, away, dnd etc, the priority will always be 10.

+

For more flexible priority settings per presence, see the next section.

+
+
+ +

Setting priority per presence

+ +

You may set a different priority for each presence for an account. This is useful, for example, if you want messages to be routed to your phone, when your desktop client becomes away.

+

To set the priority for a particular presence for an account, use the /account command.

+
/account set work away 0
+/account set work online 20
+

Whenever your work account becomes away including autoaway the priority will be set to 0.

+

When the account is online the priority will be 20.

+

To find out the priority associated with each presence for an account at any time:

+
/account show work
+

Or, if you are logged in:

+
/account
+

Will show the settings for the current account.

+
+
+ + + diff --git a/guide/0170/reference.html b/guide/0170/reference.html new file mode 100644 index 0000000..bac3110 --- /dev/null +++ b/guide/0170/reference.html @@ -0,0 +1,41 @@ + + + + + Profanity, a console based XMPP client - Command Reference + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Command Reference

+
+
+
+

Contents

+
+
+
+

Commands

+
+
+
+ + + + diff --git a/guide/0170/roomconf.html b/guide/0170/roomconf.html new file mode 100644 index 0000000..a654705 --- /dev/null +++ b/guide/0170/roomconf.html @@ -0,0 +1,157 @@ + + + + + Profanity, a console based XMPP client - Chat Room Configuration and Administration + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Chat Room Configuration and Administration

+
+
+
+

Contents

+ + +
+
+ +

Creating a room

+ +

Chat rooms are created when you join a room that does not yet exist, using the /join command.

+

If the server only supports an older version of the groupchat protocol, no further action is required, + and other users may join the room.

+

Servers supporting xep-0045 will + create the room, which will be locked until the room has been configured, or the default configuration + has been accepted.

+

To accept the default configuration and unlock the room:

+
/room accept
+

To view and edit the room configuration (see the next section for details):

+
/room config
+

To cancel room creation and destroy the room:

+
/room destroy
+
+
+ +

Configuring a room

+ +

At any stage, users with appropriate privileges may configure a room with the following command:

+
/room config
+

A new window will be opened, and the room configuration form displayed. Each field in the form is given a + tag (e.g. "field2").

+

+

Form fields can be manipulated using the field tag and the value to set, add or remove depending on the + field type. For example:

+
/field1 "New room name"
+/field3 off
+/field5 remove visitor
+/field13 anyone
+/field18 add anotheruser@openfire.local
+

For more information on how to manipulate a specific field, use the /form help command + specifying the field tag, e.g.:

+
/form help field12
+

At any time whilst the form is being edited, the latest values can be shown with:

+
/form show
+

To save the changes:

+
/form submit
+

To discard the changes:

+
/form cancel
+
+
+ +

Destroying a room

+ +

If a user has appropriate privileges a room can be destroyed at any time using the following command:

+
/room destroy
+
+
+ +

Kicking occupants

+ +

Users with appropriate privileges may kick occupants from a room:

+
/kick nova
+

An optional reason may be supplied:

+
/kick nova Please do not use foul language.
+
+
+ +

Banning users

+ +

Users with appropriate privileges may ban users permanently from a room, banning is carried out using the + users Jabber ID rather than their nickname in the room:

+
/ban molly@chat.org
+

An optional reason may be supplied:

+
/ban molly@chat.org You may not enter this room anymore.
+
+
+ +

Managing occupant roles

+ +

Roles specify an occupant's privileges within a room for the duration of one particular visit to that + room. The possible roles, and the privileges associated with them are defined in xep-0045.

+

Roles are set using an occupant's room nickname, the user must have the appropriate privileges to run the + following commands.

+

To show occupants of all roles:

+
/role list
+

To show occupants with a specific role:

+
/role list moderator
+/role list participant
+/role list visitor
+

To change an occupant's role, for example to set the occupant with nick bobmould to have + role participant:

+
/role set participant bobmould
+

An optional reason may be specified:

+
/role set participant bobmould You may now speak!
+
+
+ +

Managing user affiliations

+ +

Affiliations specify a user's privileges for a room across visits to that room. The possible + affiliations, and the privileges associated with them are defined in xep-0045.

+

Affiliations are set using a user's JID, the user must have the appropriate privileges to run the + following commands.

+

To show users of all affiliations:

+
/affiliation list
+

To show users with a specific affiliation:

+
/affiliation list owner
+/affiliation list admin
+/affiliation list member
+/affiliation list outcast
+

To change a user's affiliation, for example to set the user with JID bob_mould@chat.org to + have affiliation member:

+
/affiliation set member bob_mould@chat.org
+

An optional reason may be specified:

+
/affiliation set member bob_mould@chat.org Because you come here so often.
+
+
+ + + + \ No newline at end of file diff --git a/guide/0170/rooms.html b/guide/0170/rooms.html new file mode 100644 index 0000000..272c5fd --- /dev/null +++ b/guide/0170/rooms.html @@ -0,0 +1,141 @@ + + + + + Profanity, a console based XMPP client - Chat Rooms + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Chat Rooms

+
+
+
+

Contents

+ + +
+
+ +

Joining a chat room

+ +

Use the /join command to join a chat room supplying the + name of the room:

+
/join room@conference.server.com
+

Your nickname will be the account nick setting which by default is set to the 'localpart' of + your Jabber ID. For example if you are logged in as itsme@server.com you will join the room + with the nickname itsme.

+

To specify a nickname different to your account setting when joining the room, use the nick + option:

+

/join room@conference.server.com nick MrChatty
+

If you omit the domain part of the chat room, the account setting muc will be used + which by default is set to conference.<domain>. For example, if you are + logged in as kai@mycompany.org, using the following command:

+
/join development
+

is the same as:

+
/join development@conference.mycompany.org
+

To join a room which requires a password, use the password option:

+
/join privatedev@conference.someserver.im password p455w0rd
+

The account settings for default nickname and conference service may be changed for any account + using the /account command.

+

+
+ +

Creating a chat room

+ +

If a room is joined which did not previously exist, and the server allows it, the room will be created. + More information on creating and configuring chat rooms can be found at Chat + Room Configuration and Administration.

+ +

If you are using Google Talk, creating a new room is slightly different. See the FAQ.

+
+
+ +

Changing your nickname

+ +

Use the /nick command whilst in a chat room to change your + nickname, for example to change your nickname to bob:

+
/nick bob
+
+
+ +

Inviting contacts to a room

+ +

To invite one of your contacts to the current chat room, use the /invite command with an optional reason for the + invite:

+
/invite Bruce
+

or with a reason:

+
/invite Bruce Come and join the chat
+

As with other commands, the name must be double quoted if it contains spaces:

+
/invite "Bruce Dickenson" Join us!
+
+
+ +

Sending messages

+ +

To send a message to the room, enter the message and press enter.

+

To direct a message to a particular recipient in the room, type the start of the recipients nickname and + use <tab> to autocomplete the nickname. The nickname will be followed by ": ", after which you may + type your message.

+

For example, assuming a participant exists in the room named eddie, type:

+
ed<tab>this message is just for you
+

Which will result in the following:

+
eddie: this message is just for you
+

Autocompletion using <tab> will also complete participants names in the middle of message + text, without the ": ".

+
+
+ +

Sending a private message

+ +

To start a private chat session with a room participant use the /msg command supplying the participants nickname:

+

/msg "Some User" Hello there!
+
/msg mike hello there!
+
+
+ +

Leaving a room

+ +

To leave a chat room, use the /leave command, the /close command has the same effect.

+
+
+ +

Bookmarking rooms

+ +

To bookmark chat rooms, including the ability to autojoin the rooms when signing in, see the /bookmark command. The simplest way to bookmark a + room (and enable autojoin) is to use the /bookmark command with no arguments in the room + you wish to bookmark.

+
+
+ + + + \ No newline at end of file diff --git a/guide/0170/subscriptions.html b/guide/0170/subscriptions.html new file mode 100644 index 0000000..d01c732 --- /dev/null +++ b/guide/0170/subscriptions.html @@ -0,0 +1,199 @@ + + + + + Profanity, a console based XMPP client - Managing Your Contacts + + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

Managing Your Contacts

+
+
+
+

Contents

+ + +
+
+ +

Overview

+ +

There are two parts to managing contacts, the roster and presence subscriptions. +

The roster is a list of all of your contacts.

+

To receive updates about a contacts presence, i.e. to see when they are online and their current + status, you must be subscribed to that contact.

+

For a contact to receive updates about your presence, you must have approved a subscription request + from that contact.

+

Some servers may have already set up your roster and subscriptions for you, for example, many + companies integrate with LDAP, and automatically subscribe all users to all other users.

+

The following sections describe roster and subscription management in more detail.

+
+
+ +

Viewing your roster

+ +

To view all contacts in your roster, use the /roster + command. The output gives you the following information:

+ + + + + + + + + + + + + +
JID and nicknameThe contacts Jabber ID, and nickname if you have provided one.
SubscriptionThe current subscription status, and whether you have received or sent a request that + has not yet been approved or declined.
GroupsThe list of groups to which the contact belongs, see groups below.
+ +

The subscription status may be one of:

+ + + + + + + + + + + + + + + + + +
noneYou are not subscribed to the contact, and the contact is not subscribed to you.
toYou are subscribed to the contact, but they are not subscribed to you.
fromYou are not subscribed to the contact, but they are subscribed to you.
bothYou are subscribed to the contact, and they are subscribed to you.
+
+
+ +

Adding and removing contacts

+ +

To add a contact to the roster, use the /roster command + supplying the Jabber ID and optional nickname:

+
/roster add buddy@service.net
+

With optional nickname:

+
/roster add buddy@service.net MyBuddy
+

You can add a contact to the roster and send a subscription request at the same time, by using the /sub command:

+
/sub request buddy@service.net
+

To remove a contact from the roster:

+
/roster remove buddy@service.net
+

Removing a contact from your roster also removes your subscription to their presence, and their + subscription to yours.

+
+
+ +

Giving contacts a nickname

+ +

Some servers automatically give your contacts nicknames (when integrating with LDAP for example), which + are more human readable than the Jabber ID.

+

Profanity uses nicknames by default in its user interface, and for most commands relating to contacts. +

+

If the server allows it, you may change, add or remove the nickname for a given contact using the /roster command:

+

/roster nick bob@company.org Bobster
+

To clear a users nickname:

+
/roster clearnick bob@company.org
+
+
+ +

Managing groups

+ +

The roster allows contacts to be added to named groups. Profanity makes use of groups using the /who command to filter the contacts shown.

+

Roster groups are managed with the /group command.

+

To list all the current groups:

+
/group
+

To show the contacts in a particular group:

+
/group show friends
+

To add a contact to a group:

+

/group add friends Buddy
+

Note that there is no command to add a group, adding a contact to a group that doesn't yet exist + will create the group.

+

To remove a contact from a group:

+
/group remove friends Buddy
+
+
+ +

Subscribing to a contact

+ +

To request presence information for a contact use the /sub + command:

+
/sub request newcontact@server.com
+

The user will be informed that you wish to know of their presence, and will need to approve the request. +

+

The contact parameter is optional if you are already in a chat window with the user, the request will be + sent to that user:

+
/sub request
+
+
+ +

Approving a request

+ +

You can approve subscription requests from contacts using the /sub command:

+
/sub allow newcontact@server.com
+

The contact parameter is optional if you are already in a chat window with the user, the approval will be + sent to that user:

+
/sub allow
+
+
+ +

Deny or delete a request

+ +

You can deny subscription requests from contacts using the /sub command:

+
/sub deny newcontact@server.com
+

The contact parameter is optional if you are already in a chat window with the user, the denial will be + sent to that user:

+
/sub deny
+

The /sub deny command can also be used to remove a contacts subscription to your presence if + you have previously approved it.

+
+
+ +

List pending requests

+ +

To list requests that you have sent that are awaiting approval from the contact, use the following + command:

+
/sub sent
+

To list requests that you have received, but not yet approved or denied, use the following command:

+
/sub received
+
+
+ + + + \ No newline at end of file diff --git a/guide/0170/themes.html b/guide/0170/themes.html new file mode 100644 index 0000000..21350ca --- /dev/null +++ b/guide/0170/themes.html @@ -0,0 +1,446 @@ + + + + Profanity, a console based XMPP client - User Interface Themes + + + + + + + + + Profanity Illustration +
+

+ + User Guide + +

+

User Interface Themes

+
+
+
+

Contents

+ +
+
+ +

Loading a theme

+ +

To list available themes:

+
/theme list
+

You can see a preview of each theme in the theme gallery.

+

To load a theme:

+
/theme load <theme-file>
+
+
+ +

Creating a Theme

+ +

Themes packaged with Profanity are installed to the system wide package data directory, for example:

+
/usr/local/share/profanity/themes
+

User defined themes may be added to your user's themes directory. If you'd like your theme to be added as a pre-packaged theme, feel free to submit a pull request at Github.

+ +

A theme file contains two sections, [colours] and [ui].

+

The following properties are available in the [colours] section:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
bkgndMain window and input window background.
titlebarTitle bar background.
statusbarStatus bar background.
titlebar.textTitle bar text.
titlebar.bracketsTitle bar brackets.
titlebar.unencryptedTitle bar OTR unencrypted indicator.
titlebar.encryptedTitle bar OTR encrypted indicator.
titlebar.untrustedTitle bar OTR untrusted indicator.
titlebar.trustedTitle bar OTR trusted indicator.
titlebar.onlineOnline presence indicators in title bar.
titlebar.offlineOffline presence indicators in title bar.
titlebar.awayAway presence indicators in title bar.
titlebar.chatAvailable for chat presence indicators in title bar.
titlebar.dndDo not disturb presence indicators in title bar.
titlebar.xaExtended away presence indicators in title bar.
statusbar.textStatus bar text.
statusbar.timeTime displayed in the status bar.
statusbar.bracketsStatus bar brackets.
statusbar.activeActive window indicator in status bar.
statusbar.currentCurrent window indicator in status bar.
statusbar.newNew messages window indicator in status bar.
main.textMain window text.
main.text.historyAll history text.
main.text.meMessages you have sent.
main.text.themMessages you have received.
main.splashSplash logo.
input.textInput window text.
main.timeMain window time.
subscribedSubscribed (to, both) in roster.
unsubscribedUnsubscribed (from, none) in roster.
otr.started.trustedOTR trusted message for new OTR sessions.
otr.started.untrustedOTR untrusted message for new OTR sessions.
otr.endedOTR ended message.
otr.trustedOTR trusted message.
otr.untrustedOTR untrusted message.
onlineOnline presence text in main window.
awayAway presence text for main window.
chatAvailable for chat presence text for main window.
dndDo not disturb presence text for main window.
xaExtended away presence text for main window.
offlineOffline presence text for main window.
typingTyping message for main window.
goneGone message for main window.
errorError messages in main window.
incomingIncoming message text in console.
roominfoRoom information text in chat room windows.
roommentionChat room message text when nickname mentioned.
meColour to display who a message is from, for sent messages.
themColour to display who a message is from, for received messages.
roster.headerGroup headers in roster panel.
occupants.headerGroups headers in chat room occupants panel.
receipt.sentMessage sent with receipt request, not yet received.
untrustedMessage received is encrypted with an untrusted key.
+ +

The following colour values are available:

+
white
+green
+red
+yellow
+blue
+cyan
+magenta
+black
+bold_white
+bold_green
+bold_red
+bold_yellow
+bold_blue
+bold_cyan
+bold_magenta
+bold_black
+
+

To see how the colours will appear in your terminal, run the following command:

+
/theme colours
+ +

The following properties are available in the [ui] section, note that the values specified are what is stored in the theme file, see the help on individual commands for how to set the properties:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionFile values
beepTerminal beep, see /beeptrue, false
flashTerminal flash, see /flashtrue, false
splashSplash logo, see /splashtrue, false
wrapWord wrap main window, see /wraptrue, false
timeTime format in main window, see /timeGDateTime format
time.statusbarTime format in status bar, see /timeGDateTime format
resource.titleShow contacts resource in title bar, see /resourcetrue, false
resource.messageShow contacts resource on incoming messages, see /resourcetrue, false
statuses.consolePresence messages in console, see /presenceall, online, none
statuses.chatPresence messages in chat windows, see /presenceall, online, none
statuses.mucPresence messages in chat room windows, see /presenceall, online, none
occupantsOccupants panel in chat rooms, see /occupantstrue, false
occupants.sizeScreen percentage taken by occupants panel, see /occupants1-99
occupants.jidShow JIDs if available in occupants panel, see /occupantstrue, false
rosterRoster panel in console window, see /rostertrue, false
roster.offlineOffline contacts in roster panel, see /rostertrue, false
roster.resourceResources in roster panel, see /rostertrue, false
roster.byRoster panel grouping, see /rostergroup, presence, none
roster.sizeScreen percentage taken by roster panel, see /roster1-99
roster.emptyShow empty groups in roster panel, see /rostertrue, false
privilegesPrivilege details in chat rooms, see /privilegestrue, false
presenceContacts presence in title bar, see /presencetrue, false
intypeContact typing messages in console and chat windows, see /intypetrue, false
enc.warnTitle bar unencrypted indicator, see /encwarntrue, false
wins.autotidyAutomatically remove gaps when closing windows, see /winstidytrue, false
pgp.charCharacter to show for PGP encrypted messages, see /pgptrue, false
otr.charCharacter to show for OTR encrypted messages, see /otrtrue, false
omemo.charCharacter to show for OMEMO encrypted messages, see /otrtrue, false
+ +

Example themes can be found in the themes folder of the source code.

+
+
+ + + diff --git a/guide/0170/toc_fragment.html b/guide/0170/toc_fragment.html new file mode 100644 index 0000000..40cf50a --- /dev/null +++ b/guide/0170/toc_fragment.html @@ -0,0 +1,108 @@ + diff --git a/guide/0170/userguide.html b/guide/0170/userguide.html new file mode 100644 index 0000000..75111f0 --- /dev/null +++ b/guide/0170/userguide.html @@ -0,0 +1,49 @@ + + + + Profanity, a console based XMPP client - User Guide + + + + + + + + + Profanity Illustration +
+

+ + Profanity + +

+

User Guide

+
+
+
+

Topics

+ +
+
+ + + diff --git a/guide/latest/main_fragment.html b/guide/latest/main_fragment.html index a8735ce..1b7442e 100644 --- a/guide/latest/main_fragment.html +++ b/guide/latest/main_fragment.html @@ -217,13 +217,14 @@

/blocked

/blocked remove <jid>

Description

-

Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-userIt is also possible to block and report (XEP-0377) a user with the report-abuse and report-spam commands. +

Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-userIt is also possible to block and report (XEP-0377) a user with the report-abuse and report-spam commands. For spam reporting, please include the content of the spam message as evidence for the service operator.

Arguments

-
add [<jid>]Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked.
remove <jid>Remove the specified Jabber ID from the blocked list.
report-abuse <jid> [<message>]Report the jid as abuse with an optional message to the service operator.
report-spam <jid> [<message>]Report the jid as spam with an optional message to the service operator.
+
add [<jid>]Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked.
remove <jid>Remove the specified Jabber ID from the blocked list.
report-abuse <jid> [<message>]Report a user for abuse with an optional description of the behavior.
report-spam <jid> [<message>]Report a user for spam, including the actual spam message as evidence.

Examples

/blocked add hel@helheim.edda
-/blocked report-spam hel@helheim.edda Very annoying guy
+/blocked report-abuse hel@helheim.edda Harassing me in MUC
+/blocked report-spam spambot@example.com "You won a free prize!"
 /blocked add profanity@rooms.dismail.de/spammy-user
 

back to top


@@ -935,9 +936,13 @@

/omemo

Description

OMEMO commands to manage keys, and perform encryption during chat sessions. +The title bar will show the OMEMO session status: +[OMEMO][trusted] - All active devices for the contact are trusted. +[OMEMO][untrusted] - One or more active devices for the contact are untrusted. +

Arguments

-
genGenerate OMEMO cryptographic materials for current account.
start [<contact>]Start an OMEMO session with contact, or current recipient if omitted.
endEnd the current OMEMO session.
log on|offEnable or disable plaintext logging of OMEMO encrypted messages.
log redactLog OMEMO encrypted messages, but replace the contents with [redacted].
fingerprint [<contact>]Show contact's fingerprints, or current recipient's if omitted.
char <char>Set the character to be displayed next to OMEMO encrypted messages.
trustmode manualSet the global OMEMO trust mode to manual, OMEMO keys has to be trusted manually.
trustmode firstusageSet the global OMEMO trust mode to ToFu, first OMEMO keys trusted automatically.
trustmode blindSet the global OMEMO trust mode to blind, ALL OMEMO keys trusted automatically.
policy manualSet the global OMEMO policy to manual, OMEMO sessions must be started manually.
policy automaticSet the global OMEMO policy to opportunistic, an OMEMO session will be attempted upon starting a conversation.
policy alwaysSet the global OMEMO policy to always, an error will be displayed if an OMEMO session cannot be initiated upon starting a conversation.
clear_device_listClear your own device list on server side. Each client will reannounce itself when connected back.
qrcodeDisplay QR code of your OMEMO fingerprint
+
genGenerate OMEMO cryptographic materials for current account.
start [<contact>]Start an OMEMO session with contact, or current recipient if omitted.
endEnd the current OMEMO session.
log on|offEnable or disable plaintext logging of OMEMO encrypted messages.
log redactLog OMEMO encrypted messages, but replace the contents with [redacted].
trust [<contact>] <fp>Trust a fingerprint for a contact, or current recipient if omitted. If all active devices are trusted, the title bar will show [trusted]. Otherwise, it will show [untrusted].
untrust [<contact>] <fp>Untrust a fingerprint for a contact, or current recipient if omitted.
fingerprint [<contact>]Show contact's fingerprints, or current recipient's if omitted.
char <char>Set the character to be displayed next to OMEMO encrypted messages.
trustmode manualSet the global OMEMO trust mode to manual, OMEMO keys has to be trusted manually.
trustmode firstusageSet the global OMEMO trust mode to ToFu, first OMEMO keys trusted automatically.
trustmode blindSet the global OMEMO trust mode to blind, ALL OMEMO keys trusted automatically.
policy manualSet the global OMEMO policy to manual, OMEMO sessions must be started manually.
policy automaticSet the global OMEMO policy to opportunistic, an OMEMO session will be attempted upon starting a conversation.
policy alwaysSet the global OMEMO policy to always, an error will be displayed if an OMEMO session cannot be initiated upon starting a conversation.
clear_device_listClear your own device list on server side. Each client will reannounce itself when connected back.
qrcodeDisplay QR code of your OMEMO fingerprint

Examples

/omemo gen
 /omemo start odin@valhalla.edda
@@ -1493,7 +1498,7 @@ 

/stamp

/stamp unset outgoing|incoming

Description

-

Set chat window stamp. The format of line in the chat window is: " " where is "me:" for incoming messages or "username@server/resource" for outgoing messages. This command allows to change value. +

Set chat window stamp. The format of line in the chat window is: " " where is "me:" for outgoing messages or "username@server/resource" for incoming messages. This command allows to change value.

Arguments

outgoingSet outgoing stamp
incomingSet incoming stamp
unset outgoing|incomingUse the defaults
diff --git a/pagesource/userguide.xml b/pagesource/userguide.xml index 5c7d633..cc5099d 100644 --- a/pagesource/userguide.xml +++ b/pagesource/userguide.xml @@ -8,6 +8,7 @@

Userguides