2012-10-21 15:02:20 -04:00
/*
2016-05-22 19:06:01 -04:00
* cmd_defs . c
2019-11-13 06:11:05 -05:00
* vim : expandtab : ts = 4 : sts = 4 : sw = 4
2012-02-20 15:07:38 -05:00
*
2019-01-22 05:31:45 -05:00
* Copyright ( C ) 2012 - 2019 James Booth < boothj5 @ gmail . com >
2019-06-17 04:44:08 -04:00
* Copyright ( C ) 2019 Michael Vetter < jubalh @ iodoru . org >
2012-10-21 15:02:20 -04:00
*
2012-02-20 15:07:38 -05:00
* This file is part of Profanity .
*
* Profanity is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* Profanity is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2016-07-23 20:14:49 -04:00
* along with Profanity . If not , see < https : //www.gnu.org/licenses/>.
2012-02-20 15:07:38 -05:00
*
2014-08-24 15:57:39 -04:00
* In addition , as a special exception , the copyright holders give permission to
* link the code of portions of this program with the OpenSSL library under
* certain conditions as described in each individual source file , and
* distribute linked combinations including the two .
*
* You must obey the GNU General Public License in all respects for all of the
* code used other than OpenSSL . If you modify file ( s ) with this exception , you
* may extend this exception to your version of the file ( s ) , but you are not
* obligated to do so . If you do not wish to do so , delete this exception
* statement from your version . If you delete this exception statement from all
* source files in the program , then also delete it here .
*
2012-02-20 15:07:38 -05:00
*/
2016-04-13 04:36:10 -04:00
# define _GNU_SOURCE 1
2016-03-31 16:05:02 -04:00
# include "config.h"
2015-10-31 19:38:08 -04:00
2013-10-14 14:15:51 -04:00
# include <assert.h>
2013-02-02 15:55:58 -05:00
# include <errno.h>
# include <limits.h>
2012-02-19 15:57:46 -05:00
# include <stdlib.h>
2015-02-07 19:42:21 -05:00
# include <stdio.h>
2012-08-25 20:50:50 -04:00
# include <string.h>
2016-04-11 14:13:18 -04:00
# include <libgen.h>
# include <dirent.h>
# include <sys/types.h>
2012-04-23 20:02:22 -04:00
# include <glib.h>
2016-07-24 10:43:51 -04:00
# include "profanity.h"
# include "log.h"
# include "common.h"
2016-05-22 18:59:52 -04:00
# include "command/cmd_defs.h"
# include "command/cmd_funcs.h"
# include "command/cmd_ac.h"
2013-02-02 16:59:29 -05:00
# include "config/accounts.h"
# include "config/preferences.h"
# include "config/theme.h"
2015-09-23 20:06:53 -04:00
# include "config/tlscerts.h"
2015-10-17 18:14:55 -04:00
# include "config/scripts.h"
2016-02-14 17:28:55 -05:00
# include "plugins/plugins.h"
2013-02-02 16:43:59 -05:00
# include "tools/autocomplete.h"
2013-07-11 17:57:35 -04:00
# include "tools/parser.h"
2013-02-02 16:43:59 -05:00
# include "tools/tinyurl.h"
2014-04-06 16:35:17 -04:00
# include "ui/ui.h"
2016-07-24 10:14:46 -04:00
# include "ui/window_list.h"
2016-07-24 10:43:51 -04:00
# include "xmpp/xmpp.h"
# include "xmpp/contact.h"
# include "xmpp/roster_list.h"
# include "xmpp/jid.h"
# include "xmpp/chat_session.h"
# include "xmpp/muc.h"
2012-02-09 18:15:53 -05:00
2016-05-19 19:19:03 -04:00
# ifdef HAVE_LIBOTR
# include "otr/otr.h"
# endif
2012-08-10 19:18:03 -04:00
2016-05-19 19:19:03 -04:00
# ifdef HAVE_LIBGPGME
# include "pgp/gpg.h"
# endif
2013-06-24 19:49:29 -04:00
2015-07-27 18:55:04 -04:00
# define CMD_TAG_CHAT "chat"
2015-07-26 20:06:10 -04:00
# define CMD_TAG_GROUPCHAT "groupchat"
2015-07-27 18:55:04 -04:00
# define CMD_TAG_ROSTER "roster"
# define CMD_TAG_PRESENCE "presence"
# define CMD_TAG_CONNECTION "connection"
# define CMD_TAG_DISCOVERY "discovery"
2015-07-26 20:06:10 -04:00
# define CMD_TAG_UI "ui"
2016-02-18 16:53:20 -05:00
# define CMD_TAG_PLUGINS "plugins"
2015-07-26 20:06:10 -04:00
2016-04-26 15:29:45 -04:00
# define CMD_MAINFUNC(func) func,
# define CMD_NOMAINFUNC NULL,
# define CMD_SUBFUNCS(...) { __VA_ARGS__, { NULL, NULL } },
# define CMD_NOSUBFUNCS { { NULL, NULL } },
2015-07-26 20:06:10 -04:00
# define CMD_NOTAGS { { NULL },
# define CMD_TAGS(...) { { __VA_ARGS__, NULL },
# define CMD_SYN(...) { __VA_ARGS__, NULL },
2015-07-26 14:39:12 -04:00
# define CMD_DESC(desc) desc,
2015-07-26 20:06:10 -04:00
# define CMD_NOARGS { { NULL, NULL } },
2015-07-26 14:39:12 -04:00
# define CMD_ARGS(...) { __VA_ARGS__, { NULL, NULL } },
2015-07-26 20:06:10 -04:00
# define CMD_NOEXAMPLES { NULL } }
2015-07-26 14:39:12 -04:00
# define CMD_EXAMPLES(...) { __VA_ARGS__, NULL } }
2015-07-23 19:33:38 -04:00
2016-05-19 19:19:03 -04:00
GHashTable * commands = NULL ;
2016-05-22 19:39:36 -04:00
static gboolean _cmd_has_tag ( Command * pcmd , const char * const tag ) ;
2012-08-22 18:57:34 -04:00
/*
2013-06-24 19:49:29 -04:00
* Command list
2012-08-22 18:57:34 -04:00
*/
2013-06-24 19:49:29 -04:00
static struct cmd_t command_defs [ ] =
2012-08-11 20:39:51 -04:00
{
2015-07-23 19:33:38 -04:00
{ " /help " ,
2017-04-06 18:36:50 -04:00
parse_args_with_freetext , 0 , 2 , NULL ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_help )
2015-07-26 20:06:10 -04:00
CMD_NOTAGS
2015-07-26 14:39:12 -04:00
CMD_SYN (
2017-04-06 19:51:29 -04:00
" /help [<area>|<command>|search_all|search_any] [<search_terms>] " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2015-08-08 17:38:50 -04:00
" Help on using Profanity. Passing no arguments list help areas. "
2016-08-21 19:34:30 -04:00
" For command help, optional arguments are shown using square brackets, "
" arguments representing variables rather than a literal name are surrounded by angle brackets. "
2015-08-08 17:38:50 -04:00
" Arguments that may be one of a number of values are separated by a pipe "
" e.g. val1|val2|val3. " )
2015-07-26 14:39:12 -04:00
CMD_ARGS (
2017-04-06 19:51:29 -04:00
{ " <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. " } )
2015-07-26 14:39:12 -04:00
CMD_EXAMPLES (
2017-04-06 19:51:29 -04:00
" /help search_all presence online " ,
2015-07-23 19:33:38 -04:00
" /help commands " ,
" /help presence " ,
2015-07-26 14:39:12 -04:00
" /help who " )
} ,
2015-07-23 19:33:38 -04:00
{ " /about " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_about )
2015-07-26 20:06:10 -04:00
CMD_NOTAGS
2015-07-26 14:39:12 -04:00
CMD_SYN (
" /about " )
CMD_DESC (
" Show version and license information. " )
2015-07-26 15:43:59 -04:00
CMD_NOARGS
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2012-10-22 19:18:28 -04:00
2012-10-21 15:02:20 -04:00
{ " /connect " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 7 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_connect )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CONNECTION )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-23 19:33:38 -04:00
" /connect [<account>] " ,
2018-11-06 07:01:27 -05:00
" /connect <account> [server <server>] [port <port>] [tls force|allow|trust|legacy|disable] " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2015-07-23 19:33:38 -04:00
" Login to a chat service. "
" If no account is specified, the default is used if one is configured. "
2015-07-26 14:39:12 -04:00
" A local account is created with the JID as it's name if it doesn't already exist. " )
CMD_ARGS (
2015-07-25 15:57:21 -04:00
{ " <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. " } ,
2015-10-17 22:06:23 -04:00
{ " port <port> " , " The port to use if different to the default (5222, or 5223 for SSL). " } ,
{ " tls force " , " Force TLS connection, and fail if one cannot be established, this is default behaviour. " } ,
{ " tls allow " , " Use TLS for the connection if it is available. " } ,
2018-11-06 07:01:27 -05:00
{ " tls trust " , " Force TLS connection and trust server's certificate. " } ,
2017-06-24 14:33:30 -04:00
{ " tls legacy " , " Use legacy TLS for the connection. It means server doesn't support STARTTLS and TLS is forced just after TCP connection is established. " } ,
2015-10-17 22:06:23 -04:00
{ " tls disable " , " Disable TLS for the connection. " } )
2015-07-26 14:39:12 -04:00
CMD_EXAMPLES (
2015-07-23 19:33:38 -04:00
" /connect " ,
2020-03-26 10:55:19 -04:00
" /connect odin@valhalla.edda " ,
" /connect odin@valhalla.edda server talk.google.com " ,
" /connect freyr@vanaheimr.edda port 5678 " ,
2015-10-17 22:06:23 -04:00
" /connect me@localhost.test.org server 127.0.0.1 tls disable " ,
2015-07-26 14:39:12 -04:00
" /connect me@chatty server chatty.com port 5443 " )
2015-07-23 19:33:38 -04:00
} ,
2015-09-22 16:42:05 -04:00
{ " /tls " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 3 , NULL ,
CMD_SUBFUNCS (
{ " certpath " , cmd_tls_certpath } ,
{ " trust " , cmd_tls_trust } ,
{ " trusted " , cmd_tls_trusted } ,
{ " revoke " , cmd_tls_revoke } ,
{ " cert " , cmd_tls_cert } )
CMD_NOMAINFUNC
2015-09-22 16:42:05 -04:00
CMD_TAGS (
2015-10-13 19:58:33 -04:00
CMD_TAG_CONNECTION ,
CMD_TAG_UI )
2015-09-22 16:42:05 -04:00
CMD_SYN (
" /tls allow " ,
2015-09-22 17:44:18 -04:00
" /tls always " ,
2015-09-23 15:37:41 -04:00
" /tls deny " ,
2015-11-22 14:53:41 -05:00
" /tls cert [<fingerprint>] " ,
2015-11-10 18:26:19 -05:00
" /tls trust " ,
2015-09-23 19:43:41 -04:00
" /tls trusted " ,
2015-09-23 20:06:53 -04:00
" /tls revoke <fingerprint> " ,
2015-09-23 15:37:41 -04:00
" /tls certpath " ,
" /tls certpath set <path> " ,
2015-10-13 19:46:16 -04:00
" /tls certpath clear " ,
2019-11-05 07:48:26 -05:00
" /tls certpath default " )
2015-09-22 16:42:05 -04:00
CMD_DESC (
" Handle TLS certificates. " )
CMD_ARGS (
2015-11-10 18:26:19 -05:00
{ " allow " , " Allow connection to continue with TLS certificate. " } ,
{ " always " , " Always allow connections with TLS certificate. " } ,
{ " deny " , " Abort connection. " } ,
2015-11-09 18:31:21 -05:00
{ " cert " , " Show the current TLS certificate. " } ,
2015-11-22 14:53:41 -05:00
{ " cert <fingerprint> " , " Show details of trusted certificate. " } ,
2015-12-06 03:58:51 -05:00
{ " trust " , " Add the current TLS certificate to manually trusted certificates. " } ,
2015-11-22 14:53:41 -05:00
{ " trusted " , " List summary of manually trusted certificates (with '/tls always' or '/tls trust'). " } ,
2015-09-23 20:23:48 -04:00
{ " revoke <fingerprint> " , " Remove a manually trusted certificate. " } ,
{ " certpath " , " Show the trusted certificate path. " } ,
{ " certpath set <path> " , " Specify filesystem path containing trusted certificates. " } ,
2015-10-13 19:46:16 -04:00
{ " certpath clear " , " Clear the trusted certificate path. " } ,
2019-11-05 07:48:26 -05:00
{ " certpath default " , " Use default system certificate path, if it can be found. " } )
2015-09-22 16:42:05 -04:00
CMD_NOEXAMPLES
} ,
2012-10-27 13:12:04 -04:00
{ " /disconnect " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_disconnect )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CONNECTION )
2015-07-26 14:39:12 -04:00
CMD_SYN (
" /disconnect " )
CMD_DESC (
" Disconnect from the current chat service. " )
2015-07-26 15:43:59 -04:00
CMD_NOARGS
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2012-10-27 13:12:04 -04:00
2012-10-21 15:02:20 -04:00
{ " /msg " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_msg )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-23 19:44:56 -04:00
" /msg <contact> [<message>] " ,
2015-07-26 14:39:12 -04:00
" /msg <nick> [<message>] " )
CMD_DESC (
2015-07-23 19:44:56 -04:00
" 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. "
2015-07-26 14:39:12 -04:00
" Use quotes if the nickname includes spaces. " )
CMD_ARGS (
2015-07-24 16:20:55 -04:00
{ " <contact> " , " Open chat window with contact, by JID or nickname. " } ,
2015-07-23 19:44:56 -04:00
{ " <contact> [<message>] " , " Send message to contact, by JID or nickname. " } ,
2015-07-24 16:20:55 -04:00
{ " <nick> " , " Open private chat window with chat room occupant. " } ,
2015-07-26 14:39:12 -04:00
{ " <nick> [<message>] " , " Send a private message to a chat room occupant. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /msg thor@valhalla.edda Hey, here's a message! " ,
" /msg heimdall@valhalla.edda " ,
" /msg Thor Here is a private message " ,
2015-07-26 14:39:12 -04:00
" /msg \" My Friend \" Hi, how are you? " )
} ,
2015-07-23 19:44:56 -04:00
2013-05-18 21:07:01 -04:00
{ " /roster " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 0 , 4 , NULL ,
2019-11-25 04:40:25 -05:00
CMD_SUBFUNCS (
{ " group " , cmd_group } )
2016-04-26 15:29:45 -04:00
CMD_MAINFUNC ( cmd_roster )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_ROSTER ,
2015-07-26 20:06:10 -04:00
CMD_TAG_UI )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 16:20:55 -04:00
" /roster " ,
" /roster online " ,
2016-01-27 17:34:22 -05:00
" /roster show [offline|resource|presence|status|empty|priority|contacts|rooms] " ,
" /roster hide [offline|resource|presence|status|empty|priority|contacts|rooms] " ,
2015-07-24 16:20:55 -04:00
" /roster by group|presence|none " ,
2016-02-02 19:37:05 -05:00
" /roster count unread|items|off " ,
" /roster count zero on|off " ,
2019-12-19 12:53:22 -05:00
" /roster color on|off " ,
2015-11-18 20:02:13 -05:00
" /roster order name|presence " ,
2016-01-16 21:17:12 -05:00
" /roster unread before|after|off " ,
2016-01-23 21:28:22 -05:00
" /roster room char <char>|none " ,
2016-01-31 15:17:20 -05:00
" /roster room private char <char>|none " ,
2016-01-19 17:38:00 -05:00
" /roster room position first|last " ,
2016-01-31 20:11:01 -05:00
" /roster room by service|none " ,
2016-01-09 17:21:09 -05:00
" /roster room order name|unread " ,
2016-01-16 20:49:16 -05:00
" /roster room unread before|after|off " ,
2018-01-21 13:49:07 -05:00
" /roster room show server " ,
" /roster room hide server " ,
2020-01-23 13:44:33 -05:00
" /roster room use name|jid " ,
2016-01-23 20:04:21 -05:00
" /roster private room|group|off " ,
2016-01-23 21:28:22 -05:00
" /roster private char <char>|none " ,
2015-11-22 12:45:38 -05:00
" /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> " ,
2015-11-22 11:37:05 -05:00
" /roster resource join on|off " ,
2015-07-24 16:20:55 -04:00
" /roster size <percent> " ,
2015-11-21 20:39:20 -05:00
" /roster wrap on|off " ,
2015-07-24 16:20:55 -04:00
" /roster add <jid> [<nick>] " ,
" /roster remove <jid> " ,
" /roster remove_all contacts " ,
" /roster nick <jid> <nick> " ,
2019-11-25 04:40:25 -05:00
" /roster clearnick <jid> " ,
" /roster group " ,
" /roster group show <group> " ,
" /roster group add <group> <contat> " ,
" /roster group remove <group> <contact> " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
" Manage your roster, and roster display settings. "
" Passing no arguments lists all contacts in your roster. " )
CMD_ARGS (
2019-11-25 04:40:25 -05:00
{ " online " , " Show all online contacts in console. " } ,
{ " show " , " Show the roster panel. " } ,
{ " show offline " , " Show offline contacts in roster panel. " } ,
{ " show resource " , " Show contact's connected resources in roster panel. " } ,
{ " show presence " , " Show contact's presence in roster panel. " } ,
{ " show status " , " Show contact's status message in roster panel. " } ,
{ " show empty " , " Show empty groups in roster panel. " } ,
{ " show priority " , " Show resource priority in roster panel. " } ,
{ " show contacts " , " Show contacts in roster panel. " } ,
{ " show rooms " , " Show chat rooms in roster panel. " } ,
{ " hide " , " Hide the roster panel. " } ,
{ " hide offline " , " Hide offline contacts in roster panel. " } ,
{ " hide resource " , " Hide contact's connected resources in roster panel. " } ,
{ " hide presence " , " Hide contact's presence in roster panel. " } ,
{ " hide status " , " Hide contact's status message in roster panel. " } ,
{ " hide empty " , " Hide empty groups in roster panel. " } ,
{ " hide priority " , " Hide resource priority in roster panel. " } ,
{ " hide contacts " , " Hide contacts in roster panel. " } ,
{ " hide rooms " , " Hide chat rooms in roster panel. " } ,
{ " by group " , " Group contacts in roster panel by roster group. " } ,
{ " by presence " , " Group contacts in roster panel by presence. " } ,
{ " by none " , " No grouping in roster panel. " } ,
{ " count unread " , " Show unread message count with roster headers. " } ,
{ " count items " , " Show item count with roster headers. " } ,
{ " count off " , " Do not show any count with roster headers. " } ,
{ " count zero on " , " Show roster header count when 0. " } ,
{ " count zero off " , " Hide roster header count when 0. " } ,
2019-12-19 12:53:22 -05:00
{ " color on " , " Enable generated color names (XEP-0392) " } ,
{ " color off " , " Disable generated color names (XEP-0392) " } ,
2019-11-25 04:40:25 -05:00
{ " order name " , " Order roster contacts by name only. " } ,
{ " order presence " , " Order roster contacts by presence, and then by name. " } ,
{ " unread before " , " Show unread message count before contact. " } ,
{ " unread after " , " Show unread message count after contact. " } ,
{ " unread off " , " Do not show unread message count for contacts. " } ,
{ " room char <char> " , " Prefix rooms with specified character. " } ,
{ " room char none " , " Remove room character prefix. " } ,
{ " room private char <char> " , " Prefix private room chat with specified character when displayed with room. " } ,
{ " room private char none " , " Remove private room chat character prefix when displayed with room. " } ,
{ " room position first " , " Show rooms first in roster. " } ,
{ " room position last " , " Show rooms last in roster. " } ,
{ " room by service " , " Group rooms by chat service. " } ,
{ " room by none " , " Do not group rooms. " } ,
{ " room order name " , " Order rooms by name. " } ,
{ " room order unread " , " Order rooms by unread messages, and then by name. " } ,
{ " room unread before " , " Show unread message count before room. " } ,
{ " room unread after " , " Show unread message count after room. " } ,
{ " room unread off " , " Do not show unread message count for rooms. " } ,
{ " room show server " , " Show the conference server with room JIDs. " } ,
{ " room hide server " , " Do not show the conference server with room JIDs. " } ,
2020-01-23 10:50:43 -05:00
{ " room use name " , " Use the MUC name as room name. " } ,
{ " room use jid " , " Use the JID as room name. " } ,
2019-11-25 04:40:25 -05:00
{ " private room " , " Show room private chats with the room. " } ,
{ " private group " , " Show room private chats as a separate roster group. " } ,
{ " private off " , " Do not show room private chats. " } ,
{ " private char <char> " , " Prefix private room chats with specified character when displayed in separate group. " } ,
{ " private char none " , " Remove private room chat character prefix. " } ,
{ " header char <char> " , " Prefix roster headers with specified character. " } ,
{ " header char none " , " Remove roster header character prefix. " } ,
{ " contact char <char> " , " Prefix roster contacts with specified character. " } ,
{ " contact char none " , " Remove roster contact character prefix. " } ,
{ " contact indent <indent> " , " Indent contact line by <indent> spaces (0 to 10). " } ,
{ " resource char <char> " , " Prefix roster resources with specified character. " } ,
{ " resource char none " , " Remove roster resource character prefix. " } ,
{ " resource indent <indent> " , " Indent resource line by <indent> spaces (0 to 10). " } ,
{ " resource join on|off " , " Join resource with previous line when only one available resource. " } ,
{ " presence indent <indent> " , " Indent presence line by <indent> 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|off " , " Enable 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 contacts " , " Remove 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. " } )
2015-07-26 14:39:12 -04:00
CMD_EXAMPLES (
2015-07-24 16:20:55 -04:00
" /roster " ,
2020-03-26 10:55:19 -04:00
" /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 " ,
2019-11-25 04:40:25 -05:00
" /roster size 15 " ,
" /roster group " ,
" /roster group show friends " ,
2020-03-26 10:55:19 -04:00
" /roster group add friends fenris@ownserver.org " ,
2019-11-25 04:40:25 -05:00
" /roster group add family Brother " ,
" /roster group remove colleagues boss@work.com " )
2015-07-26 14:39:12 -04:00
} ,
2015-07-24 16:20:55 -04:00
2016-05-01 14:39:39 -04:00
{ " /blocked " ,
parse_args , 0 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_blocked )
CMD_TAGS (
CMD_TAG_ROSTER ,
CMD_TAG_CHAT )
CMD_SYN (
" /blocked " ,
" /blocked add [<jid>] " ,
" /blocked remove <jid> " )
CMD_DESC (
2020-02-24 08:31:45 -05:00
" Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. "
2019-09-30 13:11:30 -04:00
" To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-user " )
2016-05-01 14:39:39 -04:00
CMD_ARGS (
2016-08-21 19:34:30 -04:00
{ " add [<jid>] " , " Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked. " } ,
2016-05-01 14:39:39 -04:00
{ " remove <jid> " , " Remove the specified Jabber ID from the blocked list. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /blocked add hel@helheim.edda " ,
2019-09-30 13:11:30 -04:00
" /blocked add profanity@rooms.dismail.de/spammy-user " )
2016-05-01 14:39:39 -04:00
} ,
2012-11-13 20:39:26 -05:00
{ " /info " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_info )
2015-07-27 18:55:04 -04:00
CMD_TAGS (
CMD_TAG_ROSTER ,
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /info " ,
2015-07-26 14:39:12 -04:00
" /info <contact>|<nick> " )
CMD_DESC (
" 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. " )
CMD_ARGS (
2015-07-25 15:57:21 -04:00
{ " <contact> " , " The contact you wish to view information about. " } ,
2015-07-26 14:39:12 -04:00
{ " <nick> " , " When in a chat room, the occupant you wish to view information about. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /info thor@aasgard.server.org " ,
" /info heimdall " )
2015-07-26 14:39:12 -04:00
} ,
2012-11-13 17:08:46 -05:00
2013-02-16 20:04:10 -05:00
{ " /caps " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_caps )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_DISCOVERY ,
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /caps " ,
2015-07-26 14:39:12 -04:00
" /caps <fulljid>|<nick> " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Find out a contacts, or room members client software capabilities. "
2015-07-26 14:39:12 -04:00
" If in private chat initiated from a chat room, no parameter is required. " )
CMD_ARGS (
2015-07-25 15:57:21 -04:00
{ " <fulljid> " , " If in the console or a chat window, the full JID for which you wish to see capabilities. " } ,
2015-07-26 14:39:12 -04:00
{ " <nick> " , " If in a chat room, nickname for which you wish to see capabilities. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /caps ran@cold.sea.org/laptop " ,
" /caps ran@cold.sea.org/phone " ,
" /caps aegir " )
2015-07-26 14:39:12 -04:00
} ,
2013-02-16 20:04:10 -05:00
2013-02-16 21:10:56 -05:00
{ " /software " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_software )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_DISCOVERY ,
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /software " ,
2015-07-26 14:39:12 -04:00
" /software <fulljid>|<nick> " )
CMD_DESC (
" 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. " )
CMD_ARGS (
2015-07-25 15:57:21 -04:00
{ " <fulljid> " , " If in the console or a chat window, the full JID for which you wish to see software information. " } ,
2015-07-26 14:39:12 -04:00
{ " <nick> " , " If in a chat room, nickname for which you wish to see software information. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /software odin@valhalla.edda/laptop " ,
" /software odin@valhalla.edda/phone " ,
" /software thor " )
2015-07-26 14:39:12 -04:00
} ,
2013-02-16 21:10:56 -05:00
2013-01-21 18:24:59 -05:00
{ " /status " ,
2019-11-06 14:09:34 -05:00
parse_args , 2 , 3 , NULL ,
CMD_SUBFUNCS (
{ " get " , cmd_status_get } ,
{ " set " , cmd_status_set } )
CMD_NOMAINFUNC
2015-07-27 18:55:04 -04:00
CMD_TAGS (
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2019-11-07 04:25:31 -05:00
" /status set <state> [ \" <message> \" ] " ,
2019-11-06 14:09:34 -05:00
" /status get <contact>|<nick> " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2019-11-06 14:09:34 -05:00
" /status get: Find out a contact, or room members presence information. "
" /status set: set own status. " )
2015-07-26 14:39:12 -04:00
CMD_ARGS (
2019-11-06 14:09:34 -05:00
{ " <state> " , " Own status. Possible values: chat, online, away, dnd, xa " } ,
2019-11-07 04:25:31 -05:00
{ " <message> " , " Optional message to use with the status. Needs quotation marks if it's more than one word. " } ,
2015-07-25 15:57:21 -04:00
{ " <contact> " , " The contact who's presence you which to see. " } ,
2015-07-26 14:39:12 -04:00
{ " <nick> " , " If in a chat room, the occupant who's presence you wish to see. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /status get odin@valhalla.edda " ,
2019-11-06 14:09:34 -05:00
" /status get jon " ,
" /status set online " )
2015-07-26 14:39:12 -04:00
} ,
2013-01-21 18:24:59 -05:00
2014-12-02 15:50:21 -05:00
{ " /resource " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , & cons_resource_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_resource )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT ,
2015-07-26 20:06:10 -04:00
CMD_TAG_UI )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /resource set <resource> " ,
" /resource off " ,
" /resource title on|off " ,
2015-07-26 14:39:12 -04:00
" /resource message on|off " )
CMD_DESC (
" Override chat session resource, and manage resource display settings. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " set <resource> " , " Set the resource to which messages will be sent. " } ,
{ " off " , " Let the server choose which resource to route messages to. " } ,
{ " title on|off " , " Show or hide the current resource in the titlebar. " } ,
2015-07-26 14:39:12 -04:00
{ " message on|off " , " Show or hide the resource when showing an incoming message. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-12-02 15:50:21 -05:00
2012-11-03 21:27:01 -04:00
{ " /join " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 5 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_join )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /join " ,
2015-07-26 14:39:12 -04:00
" /join <room> [nick <nick>] [password <password>] " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" 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. "
2015-07-26 14:39:12 -04:00
" If the room doesn't exist, and the server allows it, a new one will be created. " )
CMD_ARGS (
{ " <room> " , " The chat room to join. " } ,
2015-07-24 19:45:20 -04:00
{ " nick <nick> " , " Nickname to use in the room. " } ,
2015-07-26 14:39:12 -04:00
{ " password <password> " , " Password if the room requires one. " } )
CMD_EXAMPLES (
2015-07-24 19:45:20 -04:00
" /join " ,
2019-06-17 04:28:04 -04:00
" /join profanity@rooms.dismail.de " ,
" /join profanity@rooms.dismail.de nick mynick " ,
2015-07-24 19:45:20 -04:00
" /join private@conference.jabber.org nick mynick password mypassword " ,
2019-06-17 04:28:04 -04:00
" /join mychannel " )
2015-07-26 14:39:12 -04:00
} ,
2012-11-03 21:27:01 -04:00
2013-04-20 15:18:13 -04:00
{ " /invite " ,
2019-11-05 16:06:19 -05:00
parse_args_with_freetext , 1 , 3 , NULL ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_invite )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2019-11-05 16:06:19 -05:00
" /invite send <contact> [<message>] " ,
" /invite list " ,
" /invite decline " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2019-11-05 16:06:19 -05:00
" 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. " )
2015-07-26 14:39:12 -04:00
CMD_ARGS (
2019-11-05 16:06:19 -05:00
{ " send <contact> [<message>] " , " The contact you wish to invite. And an optional message. " } ,
{ " list " , " Show all rooms that you have been invited to, and not accepted or declined. " } ,
{ " decline <room> " , " Decline a chat room invitation. " } )
CMD_EXAMPLES (
" /invite send gustavo@pollos.tx " ,
2019-11-05 16:17:22 -05:00
" /invite decline profanity@rooms.dismail.de " ,
2019-11-05 16:06:19 -05:00
" /invite list " )
2015-07-26 14:39:12 -04:00
} ,
2013-04-24 18:50:47 -04:00
2014-09-02 19:36:42 -04:00
{ " /room " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_room )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
" /room accept|destroy|config " )
CMD_DESC (
" Chat room configuration. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " accept " , " Accept default room configuration. " } ,
{ " destroy " , " Reject default room configuration, and destroy the room. " } ,
2015-07-26 14:39:12 -04:00
{ " config " , " Edit room configuration. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-10-09 08:16:36 -04:00
2014-10-10 08:35:50 -04:00
{ " /kick " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_kick )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
" /kick <nick> [<reason>] " )
CMD_DESC (
" Kick occupant from chat room. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " <nick> " , " Nickname of the occupant to kick from the room. " } ,
2015-07-26 14:39:12 -04:00
{ " <reason> " , " Optional reason for kicking the occupant. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-10-10 08:35:50 -04:00
2014-10-11 17:43:54 -04:00
{ " /ban " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_ban )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
" /ban <jid> [<reason>] " )
CMD_DESC (
" Ban user from chat room. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " <jid> " , " Bare JID of the user to ban from the room. " } ,
2015-07-26 14:39:12 -04:00
{ " <reason> " , " Optional reason for banning the user. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-10-11 17:43:54 -04:00
2014-10-11 18:13:48 -04:00
{ " /subject " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 0 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_subject )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /subject set <subject> " ,
2015-10-29 17:21:41 -04:00
" /subject edit <subject> " ,
2015-10-29 17:02:46 -04:00
" /subject prepend <text> " ,
2015-10-29 16:55:37 -04:00
" /subject append <text> " ,
2015-07-26 14:39:12 -04:00
" /subject clear " )
CMD_DESC (
2015-10-29 17:02:46 -04:00
" Set, modify, or clear room subject. " )
2015-07-26 14:39:12 -04:00
CMD_ARGS (
2015-10-29 17:02:46 -04:00
{ " set <subject> " , " Set the room subject. " } ,
2015-10-29 17:21:41 -04:00
{ " edit <subject> " , " Edit the current room subject, tab autocompletion will display the subject to edit. " } ,
2015-10-29 17:02:46 -04:00
{ " prepend <text> " , " Prepend text to the current room subject, use double quotes if a trailing space is needed. " } ,
2015-12-06 03:58:51 -05:00
{ " append <text> " , " Append text to the current room subject, use double quotes if a preceding space is needed. " } ,
2015-10-29 17:02:46 -04:00
{ " clear " , " Clear the room subject. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-10-11 18:13:48 -04:00
2014-10-11 19:43:58 -04:00
{ " /affiliation " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 4 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_affiliation )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /affiliation set <affiliation> <jid> [<reason>] " ,
2016-02-07 14:32:23 -05:00
" /affiliation list [<affiliation>] " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Manage room affiliations. "
2015-07-26 14:39:12 -04:00
" Affiliation may be one of owner, admin, member, outcast or none. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " set <affiliation> <jid> [<reason>] " , " Set the affiliation of user with jid, with an optional reason. " } ,
2015-07-26 14:39:12 -04:00
{ " list [<affiliation>] " , " List all users with the specified affiliation, or all if none specified. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-10-11 19:43:58 -04:00
{ " /role " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 4 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_role )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /role set <role> <nick> [<reason>] " ,
2016-02-07 14:32:23 -05:00
" /role list [<role>] " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Manage room roles. "
2015-07-26 14:39:12 -04:00
" Role may be one of moderator, participant, visitor or none. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " set <role> <nick> [<reason>] " , " Set the role of occupant with nick, with an optional reason. " } ,
2015-07-26 14:39:12 -04:00
{ " list [<role>] " , " List all occupants with the specified role, or all if none specified. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-10-11 19:43:58 -04:00
2014-10-09 08:16:36 -04:00
{ " /occupants " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 3 , cons_occupants_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_occupants )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_GROUPCHAT ,
2015-07-26 20:06:10 -04:00
CMD_TAG_UI )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /occupants show|hide [jid] " ,
2019-05-02 11:01:55 -04:00
" /occupants char <char>|none " ,
2019-12-19 13:14:59 -05:00
" /occupants color on|off " ,
2015-07-24 19:45:20 -04:00
" /occupants default show|hide [jid] " ,
2019-04-18 14:53:02 -04:00
" /occupants size [<percent>] " ,
2019-04-23 07:50:58 -04:00
" /occupants indent <indent> " ,
2019-04-24 02:22:08 -04:00
" /occupants header char <char>|none " ,
" /occupants wrap on|off " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
" Show or hide room occupants, and occupants panel display settings. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " show " , " Show the occupants panel in current room. " } ,
2019-05-02 11:01:55 -04:00
{ " char <char> " , " Prefix occupants with specified character. " } ,
{ " char none " , " Remove occupants character prefix. " } ,
2019-12-19 13:14:59 -05:00
{ " color on " , " Enable generated color names (XEP-0392) for occupants " } ,
{ " color off " , " Disable generated color names (XEP-0392) for occupants " } ,
2015-07-24 19:45:20 -04:00
{ " hide " , " Hide the occupants panel in current room. " } ,
{ " show jid " , " Show jid in the occupants panel in current room. " } ,
{ " hide jid " , " Hide jid in the occupants panel in current room. " } ,
{ " default show|hide " , " Whether occupants are shown by default in new rooms. " } ,
{ " default show|hide jid " , " Whether occupants jids are shown by default in new rooms. " } ,
2019-04-18 14:53:02 -04:00
{ " size <percent> " , " Percentage of the screen taken by the occupants list in rooms (1-99). " } ,
2019-04-23 07:50:58 -04:00
{ " indent <indent> " , " Indent contact line by <indent> spaces (0 to 10). " } ,
2019-04-24 02:19:24 -04:00
{ " header char <char> " , " Prefix occupants headers with specified character. " } ,
2019-04-24 02:22:08 -04:00
{ " header char none " , " Remove occupants header character prefix. " } ,
{ " wrap on|off " , " Enable or disable line wrapping in occupants panel. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-09-15 16:33:25 -04:00
{ " /form " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_form )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /form show " ,
" /form submit " ,
" /form cancel " ,
2015-07-26 14:39:12 -04:00
" /form help [<tag>] " )
CMD_DESC (
" Form configuration. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " show " , " Show the current form. " } ,
{ " submit " , " Submit the current form. " } ,
{ " cancel " , " Cancel changes to the current form. " } ,
2015-07-26 14:39:12 -04:00
{ " help [<tag>] " , " Display help for form, or a specific field. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
2015-07-26 14:39:12 -04:00
} ,
2014-09-02 19:36:42 -04:00
2015-02-16 17:52:18 -05:00
{ " /rooms " ,
2018-01-27 17:42:31 -05:00
parse_args , 0 , 4 , NULL ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_rooms )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 14:39:12 -04:00
CMD_SYN (
2018-01-27 17:42:31 -05:00
" /rooms " ,
2018-02-04 16:59:33 -05:00
" /rooms filter <text> " ,
2018-01-27 17:42:31 -05:00
" /rooms service <service> " ,
2018-02-05 15:01:54 -05:00
" /rooms service <service> filter <text> " ,
" /rooms cache on|off|clear " )
2015-07-26 14:39:12 -04:00
CMD_DESC (
2015-07-24 19:45:20 -04:00
" List the chat rooms available at the specified conference service. "
2018-01-27 17:42:31 -05:00
" If no argument is supplied, the account preference 'muc.service' is used, 'conference.<domain-part>' by default. "
2018-02-04 16:59:33 -05:00
" The filter argument only shows rooms that contain the provided text, case insensitive. " )
2015-07-26 14:39:12 -04:00
CMD_ARGS (
2018-02-05 15:01:54 -05:00
{ " service <service> " , " The conference service to query. " } ,
{ " filter <text> " , " The text to filter results by. " } ,
2018-02-05 16:51:14 -05:00
{ " cache on|off " , " Enable or disable caching of rooms list response, enabled by default. " } ,
2018-02-05 15:01:54 -05:00
{ " cache clear " , " Clear the rooms response cache if enabled. " } )
2015-07-26 14:39:12 -04:00
CMD_EXAMPLES (
2018-01-27 17:42:31 -05:00
" /rooms " ,
2018-02-04 16:59:33 -05:00
" /rooms filter development " ,
2018-01-27 18:51:03 -05:00
" /rooms service conference.jabber.org " ,
2018-02-04 16:59:33 -05:00
" /rooms service conference.jabber.org filter \" News Room \" " )
2015-07-26 14:39:12 -04:00
} ,
2014-03-29 18:58:48 -04:00
2013-07-14 16:58:02 -04:00
{ " /bookmark " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 8 , NULL ,
2020-05-24 11:17:20 -04:00
CMD_SUBFUNCS (
{ " ignore " , cmd_bookmark_ignore }
)
2016-04-26 15:29:45 -04:00
CMD_MAINFUNC ( cmd_bookmark )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /bookmark " ,
" /bookmark list " ,
2020-05-22 08:18:20 -04:00
" /bookmark add [<room>] [nick <nick>] [password <password>] [name <roomname>] [autojoin on|off] " ,
" /bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] autojoin on|off] " ,
2016-10-04 19:52:57 -04:00
" /bookmark remove [<room>] " ,
2016-05-23 18:53:44 -04:00
" /bookmark join <room> " ,
2020-05-24 11:17:20 -04:00
" /bookmark invites on|off " ,
2020-05-24 11:37:27 -04:00
" /bookmark ignore " ,
" /bookmark ignore add <jid> " ,
" /bookmark ignore remove <jid> " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Manage bookmarks and join bookmarked rooms. "
2020-05-24 11:37:27 -04:00
" In a chat room, no arguments will bookmark the current room, setting autojoin to \" on \" . "
" There is also an autojoin ignore list in case you want to autojoind in many clients but not on Profanity. " )
2015-07-26 15:43:59 -04:00
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " list " , " List all bookmarks. " } ,
2016-10-04 19:52:57 -04:00
{ " 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. " } ,
2015-07-24 19:45:20 -04:00
{ " update <room> " , " Update the properties associated with a bookmark. " } ,
{ " nick <nick> " , " Nickname used in the chat room. " } ,
{ " password <password> " , " Password if required, may be stored in plaintext on your server. " } ,
2020-05-22 08:18:20 -04:00
{ " name <roomname> " , " Optional name for the bookmark. By default localpart of the JID will be used. " } ,
2015-07-24 19:45:20 -04:00
{ " autojoin on|off " , " Whether to join the room automatically on login. " } ,
2016-05-23 18:53:44 -04:00
{ " join <room> " , " Join room using the properties associated with the bookmark. " } ,
2020-05-24 11:37:27 -04:00
{ " invites on|off " , " Whether 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. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
} ,
2014-03-29 18:58:48 -04:00
2013-03-14 16:50:09 -04:00
{ " /disco " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_disco )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_DISCOVERY )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /disco info [<jid>] " ,
2015-07-26 15:43:59 -04:00
" /disco items [<jid>] " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Find out information about an entities supported services. "
2015-07-26 15:43:59 -04:00
" Calling with no arguments will query the server you are currently connected to. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " info [<jid>] " , " List protocols and features supported by an entity. " } ,
2015-07-26 15:43:59 -04:00
{ " items [<jid>] " , " List items associated with an entity. " } )
CMD_EXAMPLES (
2015-07-24 19:45:20 -04:00
" /disco info " ,
" /disco items myserver.org " ,
" /disco items conference.jabber.org " ,
2020-03-26 10:55:19 -04:00
" /disco info odin@valhalla.edda/laptop " )
2015-07-26 15:43:59 -04:00
} ,
2013-03-14 16:50:09 -04:00
2016-04-11 14:13:18 -04:00
{ " /sendfile " ,
2016-04-26 18:56:12 -04:00
parse_args_with_freetext , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_sendfile )
2016-04-11 14:13:18 -04:00
CMD_TAGS (
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
CMD_SYN (
" /sendfile <file> " )
CMD_DESC (
" Send a file using XEP-0363 HTTP file transfer. " )
CMD_ARGS (
{ " <file> " , " Path to the file. " } )
CMD_EXAMPLES (
" /sendfile /etc/hosts " ,
" /sendfile ~/images/sweet_cat.jpg " )
} ,
2015-09-28 19:01:38 -04:00
{ " /lastactivity " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_lastactivity )
2015-09-28 19:01:38 -04:00
CMD_TAGS (
CMD_TAG_PRESENCE )
CMD_SYN (
2015-10-14 17:09:18 -04:00
" /lastactivity on|off " ,
2015-09-28 19:01:38 -04:00
" /lastactivity [<jid>] " )
CMD_DESC (
2015-10-14 17:09:18 -04:00
" Enable/disable sending last activity, and send last activity requests. " )
2015-09-28 19:01:38 -04:00
CMD_ARGS (
2015-10-14 17:09:18 -04:00
{ " on|off " , " Enable or disable sending of last activity. " } ,
{ " <jid> " , " The JID of the entity to query, omitting the JID will query your server. " } )
2015-09-28 19:01:38 -04:00
CMD_EXAMPLES (
" /lastactivity " ,
2015-10-14 17:09:18 -04:00
" /lastactivity off " ,
2020-03-26 10:55:19 -04:00
" /lastactivity freyja@asgaard.edda " ,
" /lastactivity freyja@asgaard.edda/laptop " ,
2015-09-28 19:01:38 -04:00
" /lastactivity someserver.com " )
} ,
2012-11-18 13:36:17 -05:00
{ " /nick " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_nick )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_GROUPCHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /nick <nickname> " )
CMD_DESC (
" Change your nickname in the current chat room. " )
CMD_ARGS (
{ " <nickname> " , " Your new nickname. " } )
CMD_NOEXAMPLES
} ,
2012-11-18 13:36:17 -05:00
2013-08-29 16:41:10 -04:00
{ " /win " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_win )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2016-01-06 19:38:17 -05:00
" /win console " ,
" /win <num> " ,
" /win <barejid> " ,
" /win <nick> " ,
" /win <roomjid> " ,
" /win <roomoccupantjid> " ,
2016-05-24 19:21:27 -04:00
" /win xmlconsole " ,
" /win <plugin> " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
" Move to the specified window. " )
CMD_ARGS (
2016-05-24 19:21:27 -04:00
{ " console " , " Focus 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. " } ,
{ " xmlconsole " , " Focus the XML Console window if open. " } ,
{ " <plugin> " , " Focus the plugin window. " } )
2016-01-06 19:38:17 -05:00
CMD_EXAMPLES (
" /win console " ,
" /win 4 " ,
2020-03-26 10:55:19 -04:00
" /win odin@valhalla.edda " ,
2016-01-06 19:38:17 -05:00
" /win Eddie " ,
" /win bigroom@conference.chat.org " ,
2020-03-26 10:55:19 -04:00
" /win bigroom@conference.chat.org/thor " ,
2016-05-24 19:21:27 -04:00
" /win wikipedia " )
2015-07-26 15:43:59 -04:00
} ,
2013-08-29 16:41:10 -04:00
2012-11-13 19:39:34 -05:00
{ " /wins " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 3 , NULL ,
CMD_SUBFUNCS (
{ " unread " , cmd_wins_unread } ,
{ " prune " , cmd_wins_prune } ,
2018-03-09 17:42:20 -05:00
{ " swap " , cmd_wins_swap } )
2016-04-26 15:29:45 -04:00
CMD_MAINFUNC ( cmd_wins )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-11-29 19:17:44 -05:00
" /wins " ,
" /wins unread " ,
2015-07-24 19:45:20 -04:00
" /wins prune " ,
2015-07-26 15:43:59 -04:00
" /wins swap <source> <target> " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Manage windows. "
2015-07-26 15:43:59 -04:00
" Passing no argument will list all currently active windows and information about their usage. " )
CMD_ARGS (
2015-11-29 19:17:44 -05:00
{ " unread " , " List windows with unread messages. " } ,
2018-03-09 17:42:20 -05:00
{ " prune " , " Close all windows with no unread messages. " } ,
2015-07-26 15:43:59 -04:00
{ " swap <source> <target> " , " Swap windows, target may be an empty position. " } )
CMD_NOEXAMPLES
} ,
2012-11-13 19:39:34 -05:00
2012-10-28 14:51:13 -04:00
{ " /sub " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_sub )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_ROSTER )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /sub request [<jid>] " ,
" /sub allow [<jid>] " ,
" /sub deny [<jid>] " ,
" /sub show [<jid>] " ,
" /sub sent " ,
2015-07-26 15:43:59 -04:00
" /sub received " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Manage subscriptions to contact presence. "
2015-07-26 15:43:59 -04:00
" If jid is omitted, the contact of the current window is used. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " 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. " } ,
{ " sent " , " Show all sent subscription requests pending a response. " } ,
2015-07-26 15:43:59 -04:00
{ " received " , " Show all received subscription requests awaiting your response. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /sub request odin@valhalla.edda " ,
" /sub allow odin@valhalla.edda " ,
2015-07-24 19:45:20 -04:00
" /sub request " ,
2015-07-26 15:43:59 -04:00
" /sub sent " )
} ,
2012-10-28 14:51:13 -04:00
2012-10-21 15:02:20 -04:00
{ " /tiny " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_tiny )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /tiny <url> " )
CMD_DESC (
" Send url as tinyurl in current chat. " )
CMD_ARGS (
{ " <url> " , " The url to make tiny. " } )
CMD_EXAMPLES (
2019-05-03 04:31:58 -04:00
" Example: /tiny https://profanity-im.github.io/ " )
2015-07-26 15:43:59 -04:00
} ,
2012-08-11 20:39:51 -04:00
2012-10-21 15:02:20 -04:00
{ " /who " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_who )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT ,
CMD_TAG_ROSTER )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /who " ,
" /who online|offline|away|dnd|xa|chat|available|unavailable|any [<group>] " ,
" /who moderator|participant|visitor " ,
2015-07-26 15:43:59 -04:00
" /who owner|admin|member " )
CMD_DESC (
2020-02-24 08:31:45 -05:00
" Show contacts or room occupants with chosen status, role or affiliation. " )
2015-07-26 15:43:59 -04:00
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " offline|away|dnd|xa|chat " , " Show contacts or room occupants with specified presence. " } ,
{ " online " , " Contacts that are online, chat, away, xa, dnd. " } ,
{ " available " , " Contacts that are available for chat - online, chat. " } ,
{ " unavailable " , " Contacts that are not available for chat - offline, away, xa, dnd. " } ,
{ " any " , " Contacts 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|visitor " , " Room occupants with the specified role. " } ,
2015-07-26 15:43:59 -04:00
{ " owner|admin|member " , " Room occupants with the specified affiliation. " } )
CMD_EXAMPLES (
2015-07-24 19:45:20 -04:00
" /who " ,
" /who xa " ,
" /who online friends " ,
" /who any family " ,
2015-07-25 15:57:21 -04:00
" /who participant " ,
2015-07-26 15:43:59 -04:00
" /who admin " )
} ,
2012-08-11 20:39:51 -04:00
2012-10-21 15:02:20 -04:00
{ " /close " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_close )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2016-01-13 18:19:11 -05:00
" /close " ,
" /close <num> " ,
" /close <barejid> " ,
" /close <nick> " ,
" /close <roomjid> " ,
" /close <roomoccupantjid> " ,
" /close xmlconsole " ,
2015-07-26 15:43:59 -04:00
" /close all|read " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Close windows. "
2015-07-26 15:43:59 -04:00
" Passing no argument closes the current window. " )
CMD_ARGS (
2016-01-13 18:19:11 -05:00
{ " <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. " } ,
{ " xmlconsole " , " Close the XML Console window if open. " } ,
{ " all " , " Close all windows. " } ,
{ " read " , " Close all windows that have no unread messages. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
} ,
2012-08-14 17:06:27 -04:00
2013-03-02 16:55:55 -05:00
{ " /clear " ,
2019-10-05 10:19:53 -04:00
parse_args , 0 , 2 , NULL ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_clear )
2015-07-27 18:55:04 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2019-10-05 10:19:53 -04:00
" /clear " ,
" /clear persist_history <on|off> " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2019-10-05 10:19:53 -04:00
" Clear the current window. "
" If you set persist_history you can still access the history by pressing PAGE UP. " )
CMD_ARGS (
2020-02-24 08:31:45 -05:00
{ " persist_history on|off " , " Whether or not to clear the screen persistently. " } )
2019-10-05 10:19:53 -04:00
CMD_EXAMPLES (
" /clear " ,
" /clear persist_history " ,
" /clear persist_history on " )
2015-07-26 15:43:59 -04:00
} ,
2013-03-02 16:55:55 -05:00
2012-10-21 15:02:20 -04:00
{ " /quit " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_quit )
2015-07-27 18:55:04 -04:00
CMD_NOTAGS
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /quit " )
CMD_DESC (
" Logout of any current session, and quit Profanity. " )
CMD_NOARGS
CMD_NOEXAMPLES
} ,
2012-08-10 19:18:03 -04:00
2014-10-18 15:22:34 -04:00
{ " /privileges " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_privileges_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_privileges )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_GROUPCHAT ,
2015-07-26 20:06:10 -04:00
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /privileges on|off " )
CMD_DESC (
" Group occupants panel by role, and show role information in chat rooms. " )
CMD_ARGS (
{ " on|off " , " Enable or disable privilege information. " } )
CMD_NOEXAMPLES
} ,
2014-10-18 15:22:34 -04:00
2015-12-19 18:32:58 -05:00
{ " /charset " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_charset )
2015-12-19 18:32:58 -05:00
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
2015-12-19 22:15:00 -05:00
" /charset " )
2015-12-19 18:32:58 -05:00
CMD_DESC (
" Display information about the current character set supported by the terminal. " )
CMD_NOARGS
CMD_NOEXAMPLES
} ,
2012-08-11 20:39:51 -04:00
{ " /beep " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_beep_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_beep )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /beep on|off " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Switch the terminal bell on or off. "
" The bell will sound when incoming messages are received. "
2015-07-26 15:43:59 -04:00
" If the terminal does not support sounds, it may attempt to flash the screen instead. " )
CMD_ARGS (
{ " on|off " , " Enable or disable terminal bell. " } )
CMD_NOEXAMPLES
} ,
2012-08-14 18:22:12 -04:00
2015-12-29 18:32:32 -05:00
{ " /console " ,
2016-04-26 15:29:45 -04:00
parse_args , 2 , 2 , & cons_console_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_console )
2015-12-29 18:32:32 -05:00
CMD_TAGS (
CMD_TAG_UI ,
2016-02-03 18:39:20 -05:00
CMD_TAG_CHAT ,
2015-12-29 18:32:32 -05:00
CMD_TAG_GROUPCHAT )
CMD_SYN (
2016-02-03 17:47:06 -05:00
" /console chat all|first|none " ,
2016-02-03 18:39:20 -05:00
" /console muc all|first|none " ,
" /console private all|first|none " )
2015-12-29 18:32:32 -05:00
CMD_DESC (
2016-02-03 17:47:06 -05:00
" Configure what is displayed in the console window when messages are received. "
" The default is set to 'all' for all types of messages. " )
2015-12-29 18:32:32 -05:00
CMD_ARGS (
2016-02-03 18:39:20 -05:00
{ " chat all " , " Indicate all new chat messages in the console. " } ,
{ " chat first " , " Indicate only the first new message per chat in the console. " } ,
{ " chat none " , " Do not show any new chat messages in the console window. " } ,
{ " muc all " , " Indicate all new chat room messages in the console. " } ,
{ " muc first " , " Indicate only the first new message in each room in the console. " } ,
{ " muc none " , " Do not show any new chat room messages in the console window. " } ,
{ " private all " , " Indicate all new private room messages in the console. " } ,
{ " private first " , " Indicate only the first private room message in the console. " } ,
{ " private none " , " Do not show any new private room messages in the console window. " } )
2015-12-29 18:32:32 -05:00
CMD_NOEXAMPLES
} ,
2014-11-07 17:38:34 -05:00
{ " /presence " ,
2016-05-31 17:46:03 -04:00
parse_args , 2 , 2 , & cons_presence_setting ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_presence )
2016-05-31 17:46:03 -04:00
CMD_TAGS (
CMD_TAG_UI ,
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
CMD_SYN (
2016-05-31 18:21:19 -04:00
" /presence titlebar on|off " ,
" /presence console all|online|none " ,
" /presence chat all|online|none " ,
" /presence room all|online|none " )
2016-05-31 17:46:03 -04:00
CMD_DESC (
2016-05-31 18:21:19 -04:00
" Show the contacts presence in the titlebar and configure presence messages in different window types. " )
2016-05-31 17:46:03 -04:00
CMD_ARGS (
2016-05-31 18:21:19 -04:00
{ " titlebar on|off " , " Switch display of the contacts presence in the titlebar on or off. " } ,
{ " console all " , " Show all presence changes in the console window. " } ,
{ " console online " , " Show only online/offline presence changes in the console window. " } ,
{ " console none " , " Don't show any presence changes in the console window. " } ,
{ " chat all " , " Show all presence changes in the chat windows. " } ,
{ " chat online " , " Show only online/offline presence changes in chat windows. " } ,
{ " chat none " , " Don't show any presence changes in chat windows. " } ,
{ " room all " , " Show all presence changes in chat room windows. " } ,
{ " room online " , " Show only online/offline presence changes in chat room windows. " } ,
{ " room none " , " Don't show any presence changes in chat room windows. " } )
2016-05-31 17:46:03 -04:00
CMD_EXAMPLES (
2016-05-31 18:21:19 -04:00
" /presence titlebar off " ,
" /presence console none " ,
" /presence chat online " ,
" /presence room all " )
2016-05-31 17:46:03 -04:00
} ,
2014-11-09 18:29:25 -05:00
{ " /wrap " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_wrap_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_wrap )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /wrap on|off " )
CMD_DESC (
" Word wrapping. " )
CMD_ARGS (
{ " on|off " , " Enable or disable word wrapping in the main window. " } )
CMD_NOEXAMPLES
} ,
2014-11-09 18:29:25 -05:00
2014-11-15 19:40:54 -05:00
{ " /time " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 3 , & cons_time_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_time )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2019-06-17 08:23:33 -04:00
" /time all|console|chat|muc|config|private|xml set <format> " ,
" /time all|console|chat|muc|config|private|xml off " ,
2015-07-24 19:45:20 -04:00
" /time statusbar set <format> " ,
2015-09-29 18:30:23 -04:00
" /time statusbar off " ,
" /time lastactivity set <format> " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2015-07-24 19:45:20 -04:00
" 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. "
2015-07-26 15:43:59 -04:00
" If the format contains spaces, it must be surrounded with double quotes. " )
CMD_ARGS (
2015-09-30 17:34:27 -04:00
{ " console set <format> " , " Set time format for console window. " } ,
{ " console off " , " Do not show time in console window. " } ,
{ " chat set <format> " , " Set time format for chat windows. " } ,
{ " chat off " , " Do not show time in chat windows. " } ,
{ " muc set <format> " , " Set time format for chat room windows. " } ,
{ " muc off " , " Do not show time in chat room windows. " } ,
2018-09-05 06:29:31 -04:00
{ " config set <format> " , " Set time format for config windows. " } ,
{ " config off " , " Do not show time in config windows. " } ,
2015-09-30 17:34:27 -04:00
{ " private set <format> " , " Set time format for private chat windows. " } ,
{ " private off " , " Do not show time in private chat windows. " } ,
{ " xml set <format> " , " Set time format for XML console window. " } ,
{ " xml off " , " Do not show time in XML console window. " } ,
2015-09-29 18:30:23 -04:00
{ " statusbar set <format> " , " Change time format in statusbar. " } ,
{ " statusbar off " , " Do not show time in status bar. " } ,
2019-06-17 08:23:33 -04:00
{ " lastactivity set <format> " , " Change time format for last activity. " } ,
{ " all set <format> " , " Set time for: console, chat, muc, config, private and xml windows. " } ,
{ " all off " , " Do not show time for: console, chat, muc, config, private and xml windows. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-11-08 17:43:42 -05:00
" /time console set %H:%M:%S " ,
" /time chat set \" %d-%m-%y %H:%M:%S \" " ,
" /time xml off " ,
2015-09-29 18:30:23 -04:00
" /time statusbar set %H:%M " ,
2019-06-17 08:23:33 -04:00
" /time lastactivity set \" %d-%m-%y %H:%M:%S \" " ,
" /time all set \" %d-%m-%y %H:%M:%S \" " )
2015-07-26 15:43:59 -04:00
} ,
2014-11-15 19:40:54 -05:00
2015-02-22 19:15:33 -05:00
{ " /inpblock " ,
2016-04-26 15:29:45 -04:00
parse_args , 2 , 2 , & cons_inpblock_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_inpblock )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /inpblock timeout <millis> " ,
2015-07-26 15:43:59 -04:00
" /inpblock dynamic on|off " )
CMD_DESC (
" How long to wait for keyboard input before checking for new messages or checking for state changes such as 'idle'. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " timeout <millis> " , " Time to wait (1-1000) in milliseconds before reading input from the terminal buffer, default: 1000. " } ,
2015-07-26 15:43:59 -04:00
{ " dynamic on|off " , " Start with 0 millis and dynamically increase up to timeout when no activity, default: on. " } )
CMD_NOEXAMPLES
} ,
2014-12-21 13:15:29 -05:00
2016-09-22 19:56:53 -04:00
{ " /titlebar " ,
2019-11-05 14:39:33 -05:00
parse_args , 1 , 2 , & cons_titlebar_setting ,
2019-11-05 07:48:26 -05:00
CMD_SUBFUNCS (
2019-11-05 14:39:33 -05:00
{ " show " , cmd_titlebar_show_hide } ,
2020-03-24 17:13:14 -04:00
{ " hide " , cmd_titlebar_show_hide }
2019-11-05 07:48:26 -05:00
)
2016-09-22 19:56:53 -04:00
CMD_MAINFUNC ( cmd_titlebar )
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
" /titlebar up " ,
2019-11-05 07:48:26 -05:00
" /titlebar down " ,
2020-03-24 17:13:14 -04:00
" /titlebar show|hide [encwarn|resource|tls] "
2020-01-23 13:42:22 -05:00
)
2016-09-22 19:56:53 -04:00
CMD_DESC (
2019-11-05 07:48:26 -05:00
" Titlebar settings. " )
2016-09-22 19:56:53 -04:00
CMD_ARGS (
{ " up " , " Move the title bar up the screen. " } ,
2019-11-05 07:48:26 -05:00
{ " down " , " Move the title bar down the screen. " } ,
2019-11-05 14:39:33 -05:00
{ " show tls " , " Show or hide TLS indicator in the titlebar. " } ,
2019-11-05 14:51:27 -05:00
{ " show encwarn " , " Enable or disable the unencrypted warning message in the titlebar. " } ,
2020-01-23 13:42:22 -05:00
{ " show resource " , " Show or hide the current resource in the titlebar. " } ,
2020-03-24 17:13:14 -04:00
{ " show name " , " In case of a MUC. Show the MUC name in the titlebar. " } ,
{ " show jid " , " In case of a MUC. Show the JID in the titlebar. " }
2019-11-05 07:48:26 -05:00
)
2019-11-05 14:39:33 -05:00
CMD_EXAMPLES (
" /titlebar up " ,
" /titlebar show tls " ,
2020-03-24 17:13:14 -04:00
" /titlebar hide encwarn " )
2016-09-22 19:56:53 -04:00
} ,
{ " /mainwin " ,
parse_args , 1 , 1 , & cons_winpos_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_mainwin )
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
" /mainwin up " ,
" /mainwin down " )
CMD_DESC (
" Move the main window. " )
CMD_ARGS (
{ " up " , " Move the main window up the screen. " } ,
{ " down " , " Move the main window down the screen. " } )
CMD_NOEXAMPLES
} ,
{ " /statusbar " ,
2018-03-08 17:27:49 -05:00
parse_args , 1 , 2 , & cons_statusbar_setting ,
2016-09-22 19:56:53 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_statusbar )
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
2020-05-21 10:04:26 -04:00
" /statusbar show name|number|read " ,
" /statusbar hide name|number|read " ,
2018-03-08 18:11:49 -05:00
" /statusbar maxtabs <value> " ,
2018-03-10 20:18:46 -05:00
" /statusbar tablen <value> " ,
2018-03-10 17:16:52 -05:00
" /statusbar self user|barejid|fulljid|off " ,
2018-03-09 16:11:59 -05:00
" /statusbar chat user|jid " ,
" /statusbar room room|jid " ,
2016-09-22 19:56:53 -04:00
" /statusbar up " ,
" /statusbar down " )
CMD_DESC (
2018-03-08 17:27:49 -05:00
" Manage statusbar display preferences. " )
2016-09-22 19:56:53 -04:00
CMD_ARGS (
2020-02-24 08:31:45 -05:00
{ " maxtabs <value> " , " Set the maximum number of tabs to display, <value> must be between 0 and 10. " } ,
2018-03-10 20:18:46 -05:00
{ " tablen <value> " , " Set the maximum number of characters to show as the tab name, 0 sets to unlimited. " } ,
2018-03-10 17:16:52 -05:00
{ " show|hide name " , " Show or hide names in tabs. " } ,
{ " show|hide number " , " Show or hide numbers in tabs. " } ,
2020-05-21 10:04:26 -04:00
{ " show|hide read " , " Show or hide inactive tabs. " } ,
2018-03-10 17:16:52 -05:00
{ " self user|barejid|fulljid " , " Show account user name, barejid, fulljid as status bar title. " } ,
{ " self off " , " Disable showing self as status bar title. " } ,
{ " chat user|jid " , " Show users name, or the fulljid if no nick is present for chat tabs. " } ,
{ " room room|jid " , " Show room name, or the fulljid for room tabs. " } ,
{ " up " , " Move the status bar up the screen. " } ,
{ " down " , " Move the status bar down the screen. " } )
2018-03-08 17:27:49 -05:00
CMD_EXAMPLES (
2018-03-10 20:18:46 -05:00
" /statusbar maxtabs 8 " ,
" /statusbar tablen 5 " ,
2018-03-10 17:16:52 -05:00
" /statusbar self user " ,
2018-03-09 16:11:59 -05:00
" /statusbar chat jid " ,
2020-05-21 10:04:26 -04:00
" /statusbar hide read " ,
2018-03-08 17:27:49 -05:00
" /statusbar hide name " )
2016-09-22 19:56:53 -04:00
} ,
2016-09-19 18:40:45 -04:00
{ " /inputwin " ,
2016-09-22 19:56:53 -04:00
parse_args , 1 , 1 , & cons_winpos_setting ,
2016-09-19 18:40:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_inputwin )
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
2016-09-22 19:56:53 -04:00
" /inputwin up " ,
" /inputwin down " )
2016-09-19 18:40:45 -04:00
CMD_DESC (
2016-09-22 19:56:53 -04:00
" Move the input window. " )
2016-09-19 18:40:45 -04:00
CMD_ARGS (
2016-09-22 19:56:53 -04:00
{ " up " , " Move the input window up the screen. " } ,
{ " down " , " Move the input window down the screen. " } )
2016-09-19 18:40:45 -04:00
CMD_NOEXAMPLES
} ,
2012-08-11 20:39:51 -04:00
{ " /notify " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 0 , 4 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_notify )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_UI ,
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-11-28 19:08:49 -05:00
" /notify chat on|off " ,
" /notify chat current on|off " ,
" /notify chat text on|off " ,
2015-11-25 16:24:21 -05:00
" /notify room on|off " ,
" /notify room mention on|off " ,
2016-04-06 20:01:27 -04:00
" /notify room mention case_sensitive|case_insensitive " ,
" /notify room mention word_whole|word_part " ,
2015-07-24 19:45:20 -04:00
" /notify room current on|off " ,
" /notify room text on|off " ,
2015-11-23 18:43:53 -05:00
" /notify room trigger add <text> " ,
" /notify room trigger remove <text> " ,
" /notify room trigger list " ,
" /notify room trigger on|off " ,
2015-11-27 19:15:53 -05:00
" /notify on|off " ,
" /notify mention on|off " ,
2015-11-28 19:08:49 -05:00
" /notify trigger on|off " ,
" /notify reset " ,
2015-07-24 19:45:20 -04:00
" /notify remind <seconds> " ,
" /notify typing on|off " ,
" /notify typing current on|off " ,
" /notify invite on|off " ,
2015-07-26 15:43:59 -04:00
" /notify sub on|off " )
CMD_DESC (
2016-05-31 18:26:30 -04:00
" Configure desktop notifications. "
" To configure presence update messages in the console, chat and chat room windows, see '/help presence'. " )
2015-07-26 15:43:59 -04:00
CMD_ARGS (
2016-04-06 20:01:27 -04:00
{ " chat on|off " , " Notifications for regular chat messages. " } ,
{ " chat current on|off " , " Whether to show regular chat message notifications when the window is focussed. " } ,
{ " chat text on|off " , " Show message text in regular message notifications. " } ,
2016-08-21 19:34:30 -04:00
{ " room on|off " , " Notifications for all chat room messages. " } ,
{ " room mention on|off " , " Notifications for chat room messages when your nick is mentioned. " } ,
2016-04-06 20:01:27 -04:00
{ " room mention case_sensitive " , " Set room mention notifications as case sensitive. " } ,
{ " room mention case_insensitive " , " Set room mention notifications as case insensitive. " } ,
{ " room mention word_whole " , " Set room mention notifications only on whole word match, i.e. when nickname is not part of a larger word. " } ,
{ " room mention word_part " , " Set room mention notifications on partial word match, i.e. nickname may be part of a larger word. " } ,
{ " room current on|off " , " Whether to show all chat room messages notifications when the window is focussed. " } ,
{ " room text on|off " , " Show 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. " } ,
2020-05-20 08:25:40 -04:00
{ " room trigger list " , " List all chat room highlight triggers. " } ,
2016-04-06 20:01:27 -04:00
{ " room trigger on|off " , " Enable or disable all chat room notification triggers. " } ,
{ " on|off " , " Override the global message setting for the current chat room. " } ,
{ " mention on|off " , " Override the global 'mention' setting for the current chat room. " } ,
{ " trigger on|off " , " Override the global 'trigger' setting for the current chat room. " } ,
{ " reset " , " Reset to global notification settings for the current chat room. " } ,
{ " remind <seconds> " , " Notification reminder period for unread messages, use 0 to disable. " } ,
{ " typing on|off " , " Notifications when contacts are typing. " } ,
{ " typing current on|off " , " Whether typing notifications are triggered for the current window. " } ,
{ " invite on|off " , " Notifications for chat room invites. " } ,
{ " sub on|off " , " Notifications for subscription requests. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-11-28 19:08:49 -05:00
" /notify chat on " ,
" /notify chat text on " ,
2015-11-25 16:24:21 -05:00
" /notify room mention on " ,
2015-11-28 18:43:02 -05:00
" /notify room trigger add beer " ,
" /notify room trigger on " ,
2015-07-24 19:45:20 -04:00
" /notify room current off " ,
" /notify room text off " ,
2015-11-28 19:08:49 -05:00
" /notify remind 60 " ,
2015-07-24 19:45:20 -04:00
" /notify typing on " ,
2015-07-26 15:43:59 -04:00
" /notify invite on " )
} ,
2012-09-23 17:24:31 -04:00
2012-10-21 15:02:20 -04:00
{ " /flash " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_flash_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_flash )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /flash on|off " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Make the terminal flash when incoming messages are received in another window. "
2015-07-26 15:43:59 -04:00
" If the terminal doesn't support flashing, it may attempt to beep. " )
CMD_ARGS (
{ " on|off " , " Enable or disable terminal flash. " } )
CMD_NOEXAMPLES
} ,
2012-08-11 20:39:51 -04:00
2016-04-16 10:29:32 -04:00
{ " /tray " ,
2016-05-14 19:55:19 -04:00
parse_args , 1 , 2 , & cons_tray_setting ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_tray )
2016-04-16 10:29:32 -04:00
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
2016-05-14 19:55:19 -04:00
" /tray on|off " ,
2016-05-14 20:41:34 -04:00
" /tray read on|off " ,
" /tray timer <seconds> " )
2016-04-16 10:29:32 -04:00
CMD_DESC (
" Display an icon in the tray that will indicate new messages. " )
CMD_ARGS (
2016-05-14 20:41:34 -04:00
{ " on|off " , " Show tray icon. " } ,
{ " read on|off " , " Show tray icon when no unread messages. " } ,
2020-02-24 08:31:45 -05:00
{ " timer <seconds> " , " Set tray icon timer, seconds must be between 1-10. " } )
2016-04-16 10:29:32 -04:00
CMD_NOEXAMPLES
} ,
2012-10-27 19:33:20 -04:00
{ " /intype " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_intype_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_intype )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_UI ,
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /intype on|off " )
CMD_DESC (
" Show when a contact is typing in the console, and in active message window. " )
CMD_ARGS (
{ " on|off " , " Enable or disable contact typing messages. " } )
CMD_NOEXAMPLES
} ,
2012-10-27 19:33:20 -04:00
2012-12-01 21:21:59 -05:00
{ " /splash " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_splash_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_splash )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /splash on|off " )
CMD_DESC (
" Switch on or off the ascii logo on start up and when the /about command is called. " )
CMD_ARGS (
{ " on|off " , " Enable or disable splash logo. " } )
CMD_NOEXAMPLES
} ,
2012-10-27 12:40:17 -04:00
2013-11-07 18:04:12 -05:00
{ " /autoconnect " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , & cons_autoconnect_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_autoconnect )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CONNECTION )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-24 19:45:20 -04:00
" /autoconnect set <account> " ,
2015-07-26 15:43:59 -04:00
" /autoconnect off " )
CMD_DESC (
2015-07-24 19:45:20 -04:00
" Enable or disable autoconnect on start up. "
2015-07-26 15:43:59 -04:00
" The setting can be overridden by the -a (--account) command line option. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " set <account> " , " Connect with account on start up. " } ,
2015-07-26 15:43:59 -04:00
{ " off " , " Disable autoconnect. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /autoconnect set ulfhednar@valhalla.edda " ,
2015-07-26 15:43:59 -04:00
" /autoconnect off " )
} ,
2013-11-07 18:04:12 -05:00
2012-10-23 20:35:36 -04:00
{ " /vercheck " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_vercheck )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /vercheck on|off " )
CMD_DESC (
" Check for new versions when Profanity starts, and when the /about command is run. " )
CMD_ARGS (
{ " on|off " , " Enable or disable the version check. " } )
CMD_NOEXAMPLES
} ,
2012-08-11 20:39:51 -04:00
2016-09-22 16:42:00 -04:00
{ " /wintitle " ,
parse_args , 2 , 2 , & cons_wintitle_setting ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
2016-09-22 16:42:00 -04:00
CMD_MAINFUNC ( cmd_wintitle )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2016-09-22 16:42:00 -04:00
" /wintitle show on|off " ,
" /wintitle goodbye on|off " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
" Allow Profanity to modify the window title bar. " )
CMD_ARGS (
2015-07-24 19:45:20 -04:00
{ " show on|off " , " Show current logged in user, and unread messages as the window title. " } ,
2015-07-26 15:43:59 -04:00
{ " goodbye on|off " , " Show a message in the title when exiting profanity. " } )
CMD_NOEXAMPLES
} ,
2015-07-24 19:45:20 -04:00
2014-01-23 14:56:33 -05:00
{ " /alias " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 1 , 3 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_alias )
2015-07-27 18:55:04 -04:00
CMD_NOTAGS
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /alias list " ,
" /alias add <name> <value> " ,
2015-07-26 15:43:59 -04:00
" /alias remove <name> " )
CMD_DESC (
" Add, remove or list command aliases. " )
CMD_ARGS (
2015-07-25 19:17:16 -04:00
{ " list " , " List all aliases. " } ,
{ " add <name> <value> " , " Add a new command alias. " } ,
2015-07-26 15:43:59 -04:00
{ " remove <name> " , " Remove a command alias. " } )
CMD_EXAMPLES (
2015-07-25 19:17:16 -04:00
" /alias add friends /who online friends " ,
" /alias add /q /quit " ,
2017-01-28 11:38:43 -05:00
" /alias add a /away \" I'm in a meeting. \" " ,
2015-07-25 19:17:16 -04:00
" /alias remove q " ,
2015-07-26 15:43:59 -04:00
" /alias list " )
} ,
2014-01-23 14:56:33 -05:00
2019-11-12 06:39:24 -05:00
{ " /logging " ,
2020-02-20 02:11:58 -05:00
parse_args , 2 , 3 , & cons_logging_setting ,
2016-04-26 15:29:45 -04:00
CMD_NOSUBFUNCS
2019-11-12 06:39:24 -05:00
CMD_MAINFUNC ( cmd_logging )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2020-04-25 11:13:22 -04:00
" /logging chat|group on|off " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2020-02-20 02:11:58 -05:00
" Configure chat logging. "
2019-11-12 06:39:24 -05:00
" Switch logging on or off. "
" Chat logging will be enabled if /history is set to on. "
2020-04-25 11:13:22 -04:00
" When disabling this option, /history will also be disabled. " )
2015-07-26 15:43:59 -04:00
CMD_ARGS (
2020-02-24 08:31:45 -05:00
{ " chat on|off " , " Enable/Disable regular chat logging. " } ,
2020-04-25 11:13:22 -04:00
{ " group on|off " , " Enable/Disable groupchat (room) logging. " } )
2019-11-12 06:39:24 -05:00
CMD_EXAMPLES (
" /logging chat on " ,
2020-04-25 11:13:22 -04:00
" /logging group off " )
2015-07-26 15:43:59 -04:00
} ,
2012-10-31 17:41:00 -04:00
{ " /states " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_states_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_states )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /states on|off " )
CMD_DESC (
" Send chat state notifications to recipient during chat sessions, such as typing, paused, active, gone. " )
CMD_ARGS (
{ " on|off " , " Enable or disable sending of chat state notifications. " } )
CMD_NOEXAMPLES
} ,
2012-10-14 13:26:08 -04:00
2015-03-21 20:12:14 -04:00
{ " /pgp " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 3 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_pgp )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-08-25 20:24:53 -04:00
CMD_TAG_CHAT ,
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /pgp libver " ,
" /pgp keys " ,
2015-08-25 17:45:51 -04:00
" /pgp contacts " ,
2015-07-25 19:17:16 -04:00
" /pgp setkey <contact> <keyid> " ,
" /pgp start [<contact>] " ,
" /pgp end " ,
2015-08-25 20:24:53 -04:00
" /pgp log on|off|redact " ,
2020-02-17 02:57:35 -05:00
" /pgp char <char> " ,
" /pgp sendfile on|off " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Open PGP commands to manage keys, and perform PGP encryption during chat sessions. "
2015-07-26 15:43:59 -04:00
" See the /account command to set your own PGP key. " )
CMD_ARGS (
2015-07-25 19:17:16 -04:00
{ " libver " , " Show which version of the libgpgme library is being used. " } ,
2015-08-25 17:45:51 -04:00
{ " keys " , " List all keys known to the system. " } ,
2015-08-25 18:04:21 -04:00
{ " contacts " , " Show contacts with assigned public keys. " } ,
{ " setkey <contact> <keyid> " , " Manually associate a contact with a public key. " } ,
2015-07-25 19:17:16 -04:00
{ " start [<contact>] " , " Start PGP encrypted chat, current contact will be used if not specified. " } ,
{ " end " , " End PGP encrypted chat with the current recipient. " } ,
{ " log on|off " , " Enable or disable plaintext logging of PGP encrypted messages. " } ,
2015-08-25 20:24:53 -04:00
{ " log redact " , " Log PGP encrypted messages, but replace the contents with [redacted]. This is the default. " } ,
2020-02-17 02:57:35 -05:00
{ " char <char> " , " Set the character to be displayed next to PGP encrypted messages. " } ,
2020-02-17 04:09:32 -05:00
{ " sendfile on|off " , " Allow /sendfile to send unencrypted files while otherwise using PGP. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-07-25 19:17:16 -04:00
" /pgp log off " ,
2020-03-26 10:55:19 -04:00
" /pgp setkey odin@valhalla.edda BA19CACE5A9592C5 " ,
" /pgp start odin@valhalla.edda " ,
2015-08-25 20:24:53 -04:00
" /pgp end " ,
" /pgp char P " )
2015-07-26 15:43:59 -04:00
} ,
2015-03-21 20:12:14 -04:00
2013-09-21 17:33:43 -04:00
{ " /otr " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 3 , NULL ,
CMD_SUBFUNCS (
{ " char " , cmd_otr_char } ,
{ " log " , cmd_otr_log } ,
{ " libver " , cmd_otr_libver } ,
{ " policy " , cmd_otr_policy } ,
{ " gen " , cmd_otr_gen } ,
{ " myfp " , cmd_otr_myfp } ,
{ " theirfp " , cmd_otr_theirfp } ,
{ " start " , cmd_otr_start } ,
{ " end " , cmd_otr_end } ,
{ " trust " , cmd_otr_trust } ,
{ " untrust " , cmd_otr_untrust } ,
{ " secret " , cmd_otr_secret } ,
{ " question " , cmd_otr_question } ,
2020-02-17 02:44:26 -05:00
{ " answer " , cmd_otr_answer } ,
{ " sendfile " , cmd_otr_sendfile } )
2016-04-26 15:29:45 -04:00
CMD_NOMAINFUNC
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-08-25 20:24:53 -04:00
CMD_TAG_CHAT ,
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /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> " ,
2015-09-28 16:34:27 -04:00
" /otr policy manual|opportunistic|always [<contact>] " ,
2015-08-25 20:24:53 -04:00
" /otr log on|off|redact " ,
2020-02-17 02:44:26 -05:00
" /otr char <char> " ,
" /otr sendfile on|off " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
" Off The Record (OTR) commands to manage keys, and perform OTR encryption during chat sessions. " )
CMD_ARGS (
2015-09-28 16:34:27 -04:00
{ " libver " , " Show which version of the libotr library is being used. " } ,
{ " gen " , " Generate your private key. " } ,
{ " myfp " , " Show your fingerprint. " } ,
{ " theirfp " , " Show contacts fingerprint. " } ,
{ " start [<contact>] " , " Start an OTR session with contact, or current recipient if omitted. " } ,
2020-02-24 08:31:45 -05:00
{ " end " , " End the current OTR session. " } ,
2015-09-28 16:34:27 -04:00
{ " trust|untrust " , " Indicate 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 manual " , " Set 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 opportunistic " , " Set 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 always " , " Set 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|off " , " Enable or disable plaintext logging of OTR encrypted messages. " } ,
{ " log redact " , " Log OTR encrypted messages, but replace the contents with [redacted]. This is the default. " } ,
2020-02-17 02:44:26 -05:00
{ " char <char> " , " Set the character to be displayed next to OTR encrypted messages. " } ,
{ " sendfile on|off " , " Allow /sendfile to send unencrypted files while in an OTR session. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-07-25 19:17:16 -04:00
" /otr log off " ,
" /otr policy manual " ,
2020-03-26 10:55:19 -04:00
" /otr policy opportunistic odin@valhalla.edda " ,
2015-07-25 19:17:16 -04:00
" /otr gen " ,
2020-03-26 10:55:19 -04:00
" /otr start odin@valhalla.edda " ,
2015-07-25 19:17:16 -04:00
" /otr myfp " ,
" /otr theirfp " ,
" /otr question \" What is the name of my rabbit? \" fiffi " ,
2015-08-25 20:24:53 -04:00
" /otr end " ,
" /otr char * " )
2015-07-26 15:43:59 -04:00
} ,
2013-09-21 17:33:43 -04:00
2012-10-31 20:12:35 -04:00
{ " /outtype " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_outtype_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_outtype )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /outtype on|off " )
CMD_DESC (
" Send typing notifications, chat states (/states) will be enabled if this setting is enabled. " )
CMD_ARGS (
{ " on|off " , " Enable or disable sending typing notifications. " } )
CMD_NOEXAMPLES
} ,
2012-10-31 17:41:00 -04:00
2012-12-19 18:31:25 -05:00
{ " /gone " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_gone_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_gone )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /gone <minutes> " )
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Send a 'gone' state to the recipient after the specified number of minutes. "
2015-07-26 15:43:59 -04:00
" Chat states (/states) will be enabled if this setting is set. " )
CMD_ARGS (
{ " <minutes> " , " Number of minutes of inactivity before sending the 'gone' state, a value of 0 will disable sending this state. " } )
CMD_NOEXAMPLES
} ,
2012-12-19 18:31:25 -05:00
2012-10-21 15:02:20 -04:00
{ " /history " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_history_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_history )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_UI ,
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /history on|off " )
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Switch chat history on or off, /chlog will automatically be enabled when this setting is on. "
2015-07-26 15:43:59 -04:00
" When history is enabled, previous messages are shown in chat windows. " )
CMD_ARGS (
{ " on|off " , " Enable or disable showing chat history. " } )
CMD_NOEXAMPLES
} ,
2012-11-12 04:13:03 -05:00
{ " /log " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , & cons_log_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_log )
2015-07-27 18:55:04 -04:00
CMD_NOTAGS
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /log where " ,
" /log rotate on|off " ,
" /log maxsize <bytes> " ,
2015-07-26 15:43:59 -04:00
" /log shared on|off " )
CMD_DESC (
" Manage profanity log settings. " )
CMD_ARGS (
2015-07-25 19:17:16 -04:00
{ " where " , " Show the current log file location. " } ,
{ " rotate on|off " , " Rotate log, default on. " } ,
{ " maxsize <bytes> " , " With rotate enabled, specifies the max log size, defaults to 1048580 (1MB). " } ,
2016-08-21 19:34:30 -04:00
{ " shared on|off " , " Share logs between all instances, default: on. When off, the process id will be included in the log filename. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
} ,
2012-11-13 05:51:28 -05:00
2015-02-02 05:10:05 -05:00
{ " /carbons " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_carbons_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_carbons )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /carbons on|off " )
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Enable or disable message carbons. "
2015-07-26 15:43:59 -04:00
" Message carbons ensure that both sides of all conversations are shared with all the user's clients that implement this protocol. " )
CMD_ARGS (
{ " on|off " , " Enable or disable message carbons. " } )
CMD_NOEXAMPLES
} ,
2015-02-02 05:10:05 -05:00
2015-03-15 15:48:19 -04:00
{ " /receipts " ,
2016-04-26 15:29:45 -04:00
parse_args , 2 , 2 , & cons_receipts_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_receipts )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /receipts request on|off " ,
2015-07-26 15:43:59 -04:00
" /receipts send on|off " )
CMD_DESC (
" Enable or disable message delivery receipts. The interface will indicate when a message has been received. " )
CMD_ARGS (
2015-07-25 19:17:16 -04:00
{ " request on|off " , " Whether or not to request a receipt upon sending a message. " } ,
2015-07-26 15:43:59 -04:00
{ " send on|off " , " Whether or not to send a receipt if one has been requested with a received message. " } )
CMD_NOEXAMPLES
} ,
2015-03-15 15:48:19 -04:00
2012-11-24 21:14:38 -05:00
{ " /reconnect " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , & cons_reconnect_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_reconnect )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CONNECTION )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /reconnect <seconds> " )
CMD_DESC (
" Set the reconnect attempt interval for when the connection is lost. " )
CMD_ARGS (
{ " <seconds> " , " Number of seconds before attempting to reconnect, a value of 0 disables reconnect. " } )
CMD_NOEXAMPLES
} ,
2012-11-24 21:14:38 -05:00
2012-11-26 18:58:24 -05:00
{ " /autoping " ,
2016-04-26 15:29:45 -04:00
parse_args , 2 , 2 , & cons_autoping_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_autoping )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_CONNECTION )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2016-01-01 14:50:13 -05:00
" /autoping set <seconds> " ,
" /autoping timeout <seconds> " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
" Set the interval between sending ping requests to the server to ensure the connection is kept alive. " )
CMD_ARGS (
2016-01-01 14:50:13 -05:00
{ " 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. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
} ,
2012-11-26 18:58:24 -05:00
2014-09-03 20:08:10 -04:00
{ " /ping " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_ping )
2015-07-27 18:55:04 -04:00
CMD_TAGS (
CMD_TAG_CONNECTION )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /ping [<jid>] " )
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Sends an IQ ping stanza to the specified JID. "
2015-07-26 15:43:59 -04:00
" If no JID is supplied, your chat server will be pinged. " )
CMD_ARGS (
{ " <jid> " , " The Jabber ID to send the ping request to. " } )
CMD_NOEXAMPLES
} ,
2014-09-03 20:08:10 -04:00
2012-11-30 18:34:14 -05:00
{ " /autoaway " ,
2016-04-26 15:29:45 -04:00
parse_args_with_freetext , 2 , 3 , & cons_autoaway_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_autoaway )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_PRESENCE )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /autoaway mode idle|away|off " ,
2015-09-27 18:08:30 -04:00
" /autoaway time away|xa <minutes> " ,
" /autoaway message away|xa <message>|off " ,
2015-07-26 15:43:59 -04:00
" /autoaway check on|off " )
CMD_DESC (
2019-02-19 17:01:53 -05:00
" Manage autoaway settings for idle time. " )
2015-07-26 15:43:59 -04:00
CMD_ARGS (
2015-09-27 18:08:30 -04:00
{ " mode idle " , " Sends idle time, status remains online. " } ,
{ " mode away " , " Sends away and xa presence as well as idle time. " } ,
{ " mode off " , " Disabled (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 off " , " Send no message with away presence. " } ,
{ " message xa off " , " Send no message with xa presence. " } ,
{ " check on|off " , " When enabled, checks for activity and sends online presence, default: on. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-09-27 18:08:30 -04:00
" /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 " ,
2015-07-26 15:43:59 -04:00
" /autoaway check off " )
} ,
2012-11-30 18:34:14 -05:00
2012-11-13 05:51:28 -05:00
{ " /priority " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_priority )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2015-07-27 18:55:04 -04:00
CMD_TAG_PRESENCE )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /priority <priority> " )
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Set priority for the current account. "
2015-07-26 15:43:59 -04:00
" See the /account command for specific priority settings per presence status. " )
CMD_ARGS (
{ " <priority> " , " Number between -128 and 127, default: 0. " } )
CMD_NOEXAMPLES
} ,
2013-01-20 20:26:09 -05:00
2013-06-23 14:19:39 -04:00
{ " /account " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 4 , NULL ,
CMD_SUBFUNCS (
{ " list " , cmd_account_list } ,
{ " show " , cmd_account_show } ,
{ " add " , cmd_account_add } ,
{ " remove " , cmd_account_remove } ,
{ " enable " , cmd_account_enable } ,
{ " disable " , cmd_account_disable } ,
{ " rename " , cmd_account_rename } ,
{ " default " , cmd_account_default } ,
{ " set " , cmd_account_set } ,
{ " clear " , cmd_account_clear } )
CMD_MAINFUNC ( cmd_account )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
2016-11-22 19:17:50 -05:00
CMD_TAG_CONNECTION ,
2015-07-27 18:55:04 -04:00
CMD_TAG_PRESENCE ,
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /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> " ,
2015-08-02 19:45:14 -04:00
" /account set <account> status <presence> " ,
" /account set <account> status last " ,
" /account set <account> <presence> <priority> " ,
2015-07-25 19:17:16 -04:00
" /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> " ,
2015-08-02 19:45:14 -04:00
" /account set <account> otr <policy> " ,
2015-07-25 19:17:16 -04:00
" /account set <account> pgpkeyid <pgpkeyid> " ,
2015-10-14 20:19:24 -04:00
" /account set <account> startscript <script> " ,
2018-11-06 07:01:27 -05:00
" /account set <account> tls force|allow|trust|legacy|disable " ,
2016-01-21 20:06:28 -05:00
" /account set <account> theme <theme> " ,
2015-07-25 19:17:16 -04:00
" /account clear <account> password " ,
" /account clear <account> eval_password " ,
" /account clear <account> server " ,
" /account clear <account> port " ,
" /account clear <account> otr " ,
2015-10-14 20:19:24 -04:00
" /account clear <account> pgpkeyid " ,
2016-11-19 21:09:34 -05:00
" /account clear <account> startscript " ,
2016-11-21 19:39:52 -05:00
" /account clear <account> muc " ,
" /account clear <account> resource " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Commands for creating and managing accounts. "
2015-07-26 15:43:59 -04:00
" Calling with no arguments will display information for the current account. " )
CMD_ARGS (
2015-08-02 19:45:14 -04:00
{ " list " , " List 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 off " , " Clear 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 last " , " Use your last status before logging out, when logging in. " } ,
{ " set <account> <presence> <priority> " , " Set the priority (-128..127) to use for the specified presence. " } ,
2016-08-21 19:34:30 -04:00
{ " set <account> resource <resource> " , " The resource to be used for this account, defaults to 'profanity'. " } ,
2015-08-02 19:45:14 -04:00
{ " 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. " } ,
2016-11-19 21:09:34 -05:00
{ " set <account> muc <service> " , " The default MUC chat service to use, defaults to the servers disco info response. " } ,
2015-08-02 19:45:14 -04:00
{ " 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. " } ,
2015-10-14 20:19:24 -04:00
{ " set <account> startscript <script> " , " Set the script to execute after connecting. " } ,
2015-10-17 22:06:23 -04:00
{ " set <account> tls force " , " Force TLS connection, and fail if one cannot be established, this is default behaviour. " } ,
{ " set <account> tls allow " , " Use TLS for the connection if it is available. " } ,
2018-11-06 07:01:27 -05:00
{ " set <account> tls trust " , " Force TLS connection and trust server's certificate. " } ,
2017-06-24 14:33:30 -04:00
{ " set <account> tls legacy " , " Use legacy TLS for the connection. It means server doesn't support STARTTLS and TLS is forced just after TCP connection is established. " } ,
2015-10-17 22:06:23 -04:00
{ " set <account> tls disable " , " Disable TLS for the connection. " } ,
2016-01-21 20:06:28 -05:00
{ " set <account> <theme> " , " Set the UI theme for the account. " } ,
2015-08-02 19:45:14 -04:00
{ " clear <account> server " , " Remove the server setting for this account. " } ,
{ " clear <account> port " , " Remove the port setting for this account. " } ,
{ " clear <account> password " , " Remove the password setting for this account. " } ,
{ " clear <account> eval_password " , " Remove the eval_password setting for this account. " } ,
{ " clear <account> otr " , " Remove the OTR policy setting for this account. " } ,
2015-10-14 20:19:24 -04:00
{ " clear <account> pgpkeyid " , " Remove pgpkeyid associated with this account. " } ,
2016-01-21 20:06:28 -05:00
{ " clear <account> startscript " , " Remove startscript associated with this account. " } ,
2016-11-19 21:09:34 -05:00
{ " clear <account> theme " , " Clear the theme setting for the account, the global theme will be used. " } ,
2016-11-21 19:39:52 -05:00
{ " clear <account> resource " , " Remove the resource setting for this account. " } ,
2016-11-19 21:09:34 -05:00
{ " clear <account> muc " , " Remove the default MUC service setting. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-07-25 19:17:16 -04:00
" /account add me " ,
2020-03-26 10:55:19 -04:00
" /account set me jid ulfhednar@valhalla.edda " ,
2015-07-25 19:17:16 -04:00
" /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 " ,
2019-10-06 14:46:50 -04:00
" /account rename me chattyme " ,
" /account clear me pgpkeyid "
)
2015-07-26 15:43:59 -04:00
} ,
2013-06-23 14:19:39 -04:00
2016-02-14 17:28:55 -05:00
{ " /plugins " ,
2017-02-05 17:37:48 -05:00
parse_args , 0 , 3 , NULL ,
2017-02-05 13:54:33 -05:00
CMD_SUBFUNCS (
2017-02-05 17:37:48 -05:00
{ " sourcepath " , cmd_plugins_sourcepath } ,
2017-02-05 13:54:33 -05:00
{ " install " , cmd_plugins_install } ,
2018-05-07 14:29:34 -04:00
{ " uninstall " , cmd_plugins_uninstall } ,
2018-05-07 14:57:32 -04:00
{ " update " , cmd_plugins_update } ,
2017-02-05 13:54:33 -05:00
{ " load " , cmd_plugins_load } ,
{ " unload " , cmd_plugins_unload } ,
{ " reload " , cmd_plugins_reload } ,
{ " python_version " , cmd_plugins_python_version } )
2016-04-26 15:29:45 -04:00
CMD_MAINFUNC ( cmd_plugins )
2016-02-14 17:28:55 -05:00
CMD_NOTAGS
CMD_SYN (
2016-04-09 20:15:11 -04:00
" /plugins " ,
2017-02-05 17:37:48 -05:00
" /plugins sourcepath set <path> " ,
" /plugins sourcepath clear " ,
" /plugins install [<path>] " ,
2018-05-07 14:29:34 -04:00
" /plugins uninstall [<plugin>] " ,
2018-05-07 14:57:32 -04:00
" /plugins update [<path>] " ,
2017-02-05 13:54:33 -05:00
" /plugins unload [<plugin>] " ,
2017-02-05 14:23:16 -05:00
" /plugins load [<plugin>] " ,
2016-07-23 21:12:56 -04:00
" /plugins reload [<plugin>] " ,
" /plugins python_version " )
2016-02-14 17:28:55 -05:00
CMD_DESC (
2016-04-09 20:15:11 -04:00
" Manage plugins. Passing no arguments lists currently loaded plugins. " )
CMD_ARGS (
2017-02-05 17:37:48 -05:00
{ " sourcepath set <path> " , " Set the default path to install plugins from, will be used if no arg is passed to /plugins install. " } ,
{ " sourcepath clear " , " Clear the default plugins source path. " } ,
{ " install [<path>] " , " Install a plugin, or all plugins found in a directory (recursive). Passing no argument will use the sourcepath if one is set. " } ,
2018-05-07 14:29:34 -04:00
{ " uninstall [<plugin>] " , " Uninstall a plugin. " } ,
2018-05-07 14:57:32 -04:00
{ " update [<path>] " , " Updates an installed plugin " } ,
2017-02-05 17:37:48 -05:00
{ " load [<plugin>] " , " Load a plugin that already exists in the plugin directory, passing no argument loads all found plugins. " } ,
{ " 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_version " , " Show the Python interpreter version. " } )
2016-04-09 20:15:11 -04:00
CMD_EXAMPLES (
2017-02-05 17:37:48 -05:00
" /plugins sourcepath set /home/meee/projects/profanity-plugins " ,
" /plugins install " ,
2016-09-05 02:34:00 -04:00
" /plugins install /home/steveharris/Downloads/metal.py " ,
2018-05-07 14:57:32 -04:00
" /plugins update /home/steveharris/Downloads/metal.py " ,
2018-05-07 14:29:34 -04:00
" /plugins uninstall browser.py " ,
2016-09-05 02:34:00 -04:00
" /plugins load browser.py " ,
" /plugins unload say.py " ,
" /plugins reload wikipedia.py " )
2016-02-14 17:28:55 -05:00
} ,
2013-06-23 14:19:39 -04:00
{ " /prefs " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_prefs )
2015-07-27 18:55:04 -04:00
CMD_NOTAGS
2015-07-26 15:43:59 -04:00
CMD_SYN (
2019-04-01 07:53:29 -04:00
" /prefs [ui|desktop|chat|log|conn|presence|otr|pgp|omemo] " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
2015-07-25 19:17:16 -04:00
" Show preferences for different areas of functionality. "
2015-07-26 15:43:59 -04:00
" Passing no arguments shows all preferences. " )
CMD_ARGS (
2015-07-25 19:17:16 -04:00
{ " ui " , " User interface preferences. " } ,
{ " desktop " , " Desktop notification preferences. " } ,
{ " chat " , " Chat state preferences. " } ,
{ " log " , " Logging preferences. " } ,
{ " conn " , " Connection handling preferences. " } ,
2015-09-09 17:59:23 -04:00
{ " presence " , " Chat presence preferences. " } ,
{ " otr " , " Off The Record preferences. " } ,
2019-04-01 07:53:29 -04:00
{ " pgp " , " OpenPGP preferences. " } ,
{ " omemo " , " OMEMO preferences. " } )
2015-07-26 15:43:59 -04:00
CMD_NOEXAMPLES
} ,
2013-06-23 14:19:39 -04:00
{ " /theme " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , & cons_theme_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_theme )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
2015-07-25 19:17:16 -04:00
" /theme list " ,
" /theme load <theme> " ,
2020-01-29 06:33:55 -05:00
" /theme full-load <theme> " ,
2016-01-20 19:50:55 -05:00
" /theme colours " ,
" /theme properties " )
2015-07-26 15:43:59 -04:00
CMD_DESC (
" Load a theme, includes colours and UI options. " )
CMD_ARGS (
2020-01-29 06:33:55 -05:00
{ " list " , " List 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. " } ,
{ " colours " , " Show colour values as rendered by the terminal. " } ,
{ " properties " , " Show colour settings for current theme. " } )
2015-07-26 15:43:59 -04:00
CMD_EXAMPLES (
2015-07-25 19:17:16 -04:00
" /theme list " ,
2015-07-26 15:43:59 -04:00
" /theme load forest " )
} ,
2013-06-23 14:19:39 -04:00
2014-04-15 08:16:32 -04:00
{ " /xmlconsole " ,
2016-04-26 15:29:45 -04:00
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_xmlconsole )
2015-07-26 20:06:10 -04:00
CMD_TAGS (
CMD_TAG_UI )
2015-07-26 15:43:59 -04:00
CMD_SYN (
" /xmlconsole " )
CMD_DESC (
" Open the XML console to view incoming and outgoing XMPP traffic. " )
CMD_NOARGS
CMD_NOEXAMPLES
} ,
2014-04-15 08:16:32 -04:00
2015-10-15 18:57:52 -04:00
{ " /script " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 2 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_script )
2015-10-15 18:57:52 -04:00
CMD_NOTAGS
CMD_SYN (
" /script run <script> " ,
" /script list " ,
" /script show <script> " )
CMD_DESC (
2015-10-17 17:30:01 -04:00
" Run command scripts. "
2015-10-15 18:57:52 -04:00
" Scripts are stored in $XDG_DATA_HOME/profanity/scripts/ which is usually $HOME/.local/share/profanity/scripts/. " )
CMD_ARGS (
{ " script run <script> " , " Execute a script. " } ,
{ " script list " , " List all scripts TODO. " } ,
{ " script show <script> " , " Show the commands in script TODO. " } )
CMD_EXAMPLES (
" /script list " ,
" /script run myscript " ,
" /script show somescript " )
} ,
2015-11-23 21:09:51 -05:00
{ " /export " ,
2016-04-26 15:29:45 -04:00
parse_args , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_export )
2015-11-23 21:09:51 -05:00
CMD_NOTAGS
CMD_SYN (
" /export <filepath> " )
CMD_DESC (
" Exports contacts to a csv file. " )
CMD_ARGS (
{ " <filepath> " , " Path to the output file. " } )
CMD_EXAMPLES (
2015-11-23 21:29:17 -05:00
" /export /path/to/output.csv " ,
2015-11-23 21:09:51 -05:00
" /export ~/contacts.csv " )
2018-03-21 13:00:11 -04:00
} ,
2018-03-21 22:27:52 -04:00
{ " /cmd " ,
parse_args , 1 , 3 , NULL ,
CMD_SUBFUNCS (
{ " list " , cmd_command_list } ,
{ " exec " , cmd_command_exec } )
CMD_NOMAINFUNC
2018-03-21 13:00:11 -04:00
CMD_NOTAGS
CMD_SYN (
2018-07-02 00:50:01 -04:00
" /cmd list [<jid>] " ,
" /cmd exec <command> [<jid>] " )
2018-03-21 13:00:11 -04:00
CMD_DESC (
2018-03-21 22:27:52 -04:00
" Execute ad hoc commands. " )
2018-03-21 13:00:11 -04:00
CMD_ARGS (
2018-03-21 22:27:52 -04:00
{ " list " , " List supported ad hoc commands. " } ,
{ " exec <command> " , " Execute a command. " } )
2018-03-21 13:00:11 -04:00
CMD_EXAMPLES (
2018-03-21 22:27:52 -04:00
" /cmd list " ,
" /cmd exec ping " )
2019-02-18 23:44:47 -05:00
} ,
{ " /omemo " ,
2019-03-07 13:05:11 -05:00
parse_args , 1 , 3 , NULL ,
2019-02-18 23:44:47 -05:00
CMD_SUBFUNCS (
2019-02-25 11:27:11 -05:00
{ " gen " , cmd_omemo_gen } ,
2019-03-22 13:40:23 -04:00
{ " log " , cmd_omemo_log } ,
2019-03-07 12:24:33 -05:00
{ " start " , cmd_omemo_start } ,
2019-03-19 12:10:20 -04:00
{ " end " , cmd_omemo_end } ,
2019-03-07 13:05:11 -05:00
{ " trust " , cmd_omemo_trust } ,
2019-03-13 14:03:07 -04:00
{ " untrust " , cmd_omemo_untrust } ,
2019-04-01 07:14:46 -04:00
{ " fingerprint " , cmd_omemo_fingerprint } ,
2019-04-09 23:29:20 -04:00
{ " char " , cmd_omemo_char } ,
2019-04-15 16:09:47 -04:00
{ " policy " , cmd_omemo_policy } ,
2020-02-17 02:31:46 -05:00
{ " clear_device_list " , cmd_omemo_clear_device_list } ,
{ " sendfile " , cmd_omemo_sendfile } )
2019-02-18 23:44:47 -05:00
CMD_NOMAINFUNC
CMD_TAGS (
CMD_TAG_CHAT ,
CMD_TAG_UI )
CMD_SYN (
2019-02-19 13:23:50 -05:00
" /omemo gen " ,
2019-03-22 13:40:23 -04:00
" /omemo log on|off|redact " ,
2019-03-07 12:24:33 -05:00
" /omemo start [<contact>] " ,
2019-03-07 13:05:11 -05:00
" /omemo trust [<contact>] <fingerprint> " ,
2019-03-19 12:10:20 -04:00
" /omemo end " ,
2019-04-01 07:14:46 -04:00
" /omemo fingerprint [<contact>] " ,
2019-04-09 23:29:20 -04:00
" /omemo char <char> " ,
2019-04-15 16:09:47 -04:00
" /omemo policy manual|automatic|always " ,
2020-02-17 02:31:46 -05:00
" /omemo sendfile on|off " ,
2019-04-01 07:14:46 -04:00
" /omemo clear_device_list " )
2019-02-18 23:44:47 -05:00
CMD_DESC (
2019-04-10 00:22:45 -04:00
" OMEMO commands to manage keys, and perform encryption during chat sessions. " )
CMD_ARGS (
{ " gen " , " Generate OMEMO crytographic materials for current account. " } ,
{ " start [<contact>] " , " Start an OMEMO session with contact, or current recipient if omitted. " } ,
{ " end " , " End the current OMEMO session. " } ,
{ " log on|off " , " Enable or disable plaintext logging of OMEMO encrypted messages. " } ,
{ " log redact " , " Log OMEMO encrypted messages, but replace the contents with [redacted]. This is the default. " } ,
{ " fingerprint [<contact>] " , " Show contact fingerprints, or current recipient if omitted. " } ,
{ " char <char> " , " Set the character to be displayed next to OMEMO encrypted messages. " } ,
2019-04-15 16:09:47 -04:00
{ " policy manual " , " Set the global OMEMO policy to manual, OMEMO sessions must be started manually. " } ,
{ " policy automatic " , " Set the global OMEMO policy to opportunistic, an OMEMO session will be attempted upon starting a conversation. " } ,
{ " policy always " , " Set the global OMEMO policy to always, an error will be displayed if an OMEMO session cannot be initiated upon starting a conversation. " } ,
2020-02-17 02:44:26 -05:00
{ " sendfile on|off " , " Allow /sendfile to send unencrypted files while in an OMEMO session. " } ,
2019-04-10 00:22:45 -04:00
{ " clear_device_list " , " Clear your own device list on server side. Each client will reannounce itself when connected back. " } )
2019-02-18 23:44:47 -05:00
CMD_EXAMPLES (
2019-02-19 13:23:50 -05:00
" /omemo gen " ,
2020-03-26 10:55:19 -04:00
" /omemo start odin@valhalla.edda " ,
2019-03-13 14:03:07 -04:00
" /omemo trust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a " ,
2020-03-27 09:24:48 -04:00
" /omemo untrust loki@valhalla.edda c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a " ,
2019-04-09 23:29:20 -04:00
" /omemo char * " )
2019-02-18 23:44:47 -05:00
} ,
2019-08-02 04:23:13 -04:00
{ " /save " ,
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_save )
CMD_NOTAGS
CMD_SYN (
" /save " )
CMD_DESC (
" Save preferences to configuration file. " )
CMD_NOARGS
CMD_NOEXAMPLES
} ,
2019-10-04 08:06:25 -04:00
{ " /reload " ,
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_reload )
CMD_NOTAGS
CMD_SYN (
" /reload " )
CMD_DESC (
" Reload preferences from configuration file. " )
CMD_NOARGS
CMD_NOEXAMPLES
} ,
2019-10-29 09:30:25 -04:00
{ " /paste " ,
parse_args , 0 , 0 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_paste )
CMD_NOTAGS
CMD_SYN (
" /paste " )
CMD_DESC (
" Paste clipboard. " )
CMD_NOARGS
CMD_NOEXAMPLES
} ,
2019-12-09 10:12:54 -05:00
{ " /color " ,
2020-03-25 07:54:25 -04:00
parse_args , 1 , 2 , & cons_color_setting ,
2019-12-09 10:12:54 -05:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_color )
CMD_TAGS (
CMD_TAG_UI )
CMD_SYN (
2020-03-25 07:54:25 -04:00
" /color on|off|redgreen|blue " ,
" /color own on|off " )
2019-12-09 10:12:54 -05:00
CMD_DESC (
2020-03-17 04:01:21 -04:00
" Settings for consistent color generation for nicks (XEP-0392). Including corrections for Color Vision Deficiencies. "
" Your terminal needs to support 256 colors. " )
2019-12-09 10:12:54 -05:00
CMD_ARGS (
2020-03-25 07:54:25 -04:00
{ " on|off|redgreen|blue " , " Enable or disable nick colorization for MUC nicks. 'redgreen' is for people with red/green blindess and 'blue' for people with blue blindness. " } ,
{ " own on|off " , " Enable color generation for own nick. If disabled the color from the color from the theme ('me') will get used. " } )
2019-12-12 05:07:11 -05:00
CMD_EXAMPLES (
" /color off " ,
" /color on " ,
2020-03-25 07:54:25 -04:00
" /color blue " ,
" /color own off " )
2019-12-09 10:12:54 -05:00
} ,
2019-12-18 05:24:50 -05:00
{ " /avatar " ,
2020-05-20 08:14:49 -04:00
parse_args , 2 , 2 , NULL ,
2019-12-18 05:24:50 -05:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_avatar )
CMD_TAGS (
CMD_TAG_CHAT )
CMD_SYN (
2020-03-10 02:12:13 -04:00
" /avatar get <barejid> " ,
2020-05-20 08:14:49 -04:00
" /avatar open <barejid> " )
2019-12-18 05:24:50 -05:00
CMD_DESC (
2019-12-18 08:35:47 -05:00
" Download avatar (XEP-0084) for a certain contact. "
" If nothing happens after using this command the user either doesn't have an avatar set at all "
" or doesn't use XEP-0084 to publish it. " )
2019-12-18 05:24:50 -05:00
CMD_ARGS (
2020-03-10 02:12:13 -04:00
{ " get <barejid> " , " Download the avatar. barejid is the JID to download avatar from. " } ,
{ " open <barejid> " , " Download avatar and open it with command. " } )
CMD_EXAMPLES (
2020-03-26 10:55:19 -04:00
" /avatar get thor@valhalla.edda " ,
" /avatar open freyja@vanaheimr.edda " )
2019-12-18 05:24:50 -05:00
} ,
2020-01-24 13:27:42 -05:00
{ " /os " ,
parse_args , 1 , 1 , & cons_os_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_os )
CMD_TAGS (
CMD_TAG_DISCOVERY )
CMD_SYN (
" /os <on>|<off> " )
CMD_DESC (
" Choose whether to include the OS name if a user asks for software information (XEP-0092). " )
CMD_ARGS (
{ " on|off " , " " } )
CMD_NOEXAMPLES
} ,
2020-02-10 07:35:46 -05:00
{ " /correction " ,
2020-02-10 08:52:42 -05:00
parse_args , 1 , 2 , & cons_correction_setting ,
2020-02-10 07:35:46 -05:00
CMD_NOSUBFUNCS
2020-02-10 07:48:31 -05:00
CMD_MAINFUNC ( cmd_correction )
2020-02-10 07:35:46 -05:00
CMD_TAGS (
2020-02-10 10:17:01 -05:00
CMD_TAG_UI ,
2020-02-10 07:35:46 -05:00
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
CMD_SYN (
" /correction <on>|<off> " ,
" /correction char <char> " )
CMD_DESC (
2020-04-24 13:27:02 -04:00
" 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. " )
2020-02-10 07:35:46 -05:00
CMD_ARGS (
{ " on|off " , " Enable/Disable support for last message correction. " } ,
2020-02-24 08:31:45 -05:00
{ " char " , " Set character that will prefix corrected messages. Default: '+'. " } )
2020-02-10 07:35:46 -05:00
CMD_NOEXAMPLES
} ,
2020-02-10 10:17:01 -05:00
{ " /correct " ,
2020-02-12 08:50:58 -05:00
parse_args , 1 , - 1 , NULL ,
2020-02-10 10:17:01 -05:00
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_correct )
CMD_TAGS (
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
CMD_SYN (
" /correct <message> " )
CMD_DESC (
2020-02-24 08:31:45 -05:00
" Correct and resend the last message (XEP-0308). "
2020-04-24 13:27:02 -04:00
" Use tab completion to get the last sent message. "
" For more information on how to configure corrections, see: /help correction. " )
2020-02-10 10:17:01 -05:00
CMD_ARGS (
2020-02-12 08:50:58 -05:00
{ " message " , " The corrected message. " } )
CMD_NOEXAMPLES
2020-02-10 10:17:01 -05:00
} ,
2020-03-18 13:20:05 -04:00
{ " /slashguard " ,
parse_args , 1 , 1 , & cons_slashguard_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_slashguard )
CMD_TAGS (
CMD_TAG_UI ,
CMD_TAG_CHAT )
CMD_SYN (
" /slashguard on|off " )
CMD_DESC (
" 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. " )
CMD_ARGS (
{ " on|off " , " Enable or disable slashguard. " } )
CMD_NOEXAMPLES
} ,
2020-05-14 13:13:27 -04:00
{ " /serversoftware " ,
parse_args , 1 , 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_serversoftware )
CMD_TAGS (
CMD_TAG_DISCOVERY )
CMD_SYN (
" /serversoftware <domain> " )
CMD_DESC (
" Find server or component software version information. " )
CMD_ARGS (
{ " <domain> " , " The jid of your server or component. " } )
CMD_EXAMPLES (
" /software valhalla.edda " ,
" /software xmpp.vanaheimr.edda " )
2020-05-16 17:41:12 -04:00
} ,
{ " /urlopen " ,
parse_args , 1 , - 1 , NULL ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_urlopen )
CMD_TAGS (
CMD_TAG_CHAT ,
CMD_TAG_GROUPCHAT )
CMD_SYN (
" /urlopen <url> " )
CMD_DESC (
" Open the URL " )
CMD_ARGS (
{ " <url> " , " URL to open. " } )
CMD_NOEXAMPLES
} ,
2020-05-20 08:14:49 -04:00
{ " /executable " ,
parse_args , 2 , 2 , & cons_executable_setting ,
CMD_NOSUBFUNCS
CMD_MAINFUNC ( cmd_executable )
CMD_TAGS (
CMD_TAG_DISCOVERY )
CMD_SYN (
" /executable avatar <cmd> " ,
" /executable urlopen <cmd> " )
CMD_DESC (
" Configure executable that should be called upon a certain command. "
" Default is xdg-open. " )
CMD_ARGS (
{ " avatar " , " Set executable that is run in /avatar open. Use your favourite image viewer. " } ,
{ " urlopen " , " Set executable that is run in /urlopen. Use your favourite browser. " } )
CMD_EXAMPLES (
" /executable avatar xdg-open " ,
" /executable urlopen firefox " )
} ,
2012-06-04 15:49:18 -04:00
} ;
2012-10-21 15:02:20 -04:00
2017-04-06 18:36:50 -04:00
static GHashTable * search_index ;
char *
_cmd_index ( Command * cmd ) {
GString * index_source = g_string_new ( " " ) ;
index_source = g_string_append ( index_source , cmd - > cmd ) ;
index_source = g_string_append ( index_source , " " ) ;
index_source = g_string_append ( index_source , cmd - > help . desc ) ;
index_source = g_string_append ( index_source , " " ) ;
int len = g_strv_length ( cmd - > help . tags ) ;
int i = 0 ;
for ( i = 0 ; i < len ; i + + ) {
index_source = g_string_append ( index_source , cmd - > help . tags [ i ] ) ;
index_source = g_string_append ( index_source , " " ) ;
}
len = g_strv_length ( cmd - > help . synopsis ) ;
for ( i = 0 ; i < len ; i + + ) {
index_source = g_string_append ( index_source , cmd - > help . synopsis [ i ] ) ;
index_source = g_string_append ( index_source , " " ) ;
}
for ( i = 0 ; cmd - > help . args [ i ] [ 0 ] ! = NULL ; i + + ) {
index_source = g_string_append ( index_source , cmd - > help . args [ i ] [ 0 ] ) ;
index_source = g_string_append ( index_source , " " ) ;
index_source = g_string_append ( index_source , cmd - > help . args [ i ] [ 1 ] ) ;
index_source = g_string_append ( index_source , " " ) ;
}
gchar * * tokens = g_str_tokenize_and_fold ( index_source - > str , NULL , NULL ) ;
2017-04-06 19:08:54 -04:00
g_string_free ( index_source , TRUE ) ;
2017-04-06 18:36:50 -04:00
GString * index = g_string_new ( " " ) ;
for ( i = 0 ; i < g_strv_length ( tokens ) ; i + + ) {
index = g_string_append ( index , tokens [ i ] ) ;
index = g_string_append ( index , " " ) ;
}
2017-04-06 19:08:54 -04:00
g_strfreev ( tokens ) ;
2017-04-06 18:36:50 -04:00
char * res = index - > str ;
g_string_free ( index , FALSE ) ;
return res ;
}
GList *
2017-04-06 19:51:29 -04:00
cmd_search_index_any ( char * term )
{
GList * results = NULL ;
gchar * * processed_terms = g_str_tokenize_and_fold ( term , NULL , NULL ) ;
int terms_len = g_strv_length ( processed_terms ) ;
int i = 0 ;
for ( i = 0 ; i < terms_len ; i + + ) {
GList * index_keys = g_hash_table_get_keys ( search_index ) ;
GList * curr = index_keys ;
while ( curr ) {
char * index_entry = g_hash_table_lookup ( search_index , curr - > data ) ;
if ( g_str_match_string ( processed_terms [ i ] , index_entry , FALSE ) ) {
results = g_list_append ( results , curr - > data ) ;
}
curr = g_list_next ( curr ) ;
}
g_list_free ( index_keys ) ;
}
g_strfreev ( processed_terms ) ;
return results ;
}
GList *
cmd_search_index_all ( char * term )
2017-04-06 18:36:50 -04:00
{
GList * results = NULL ;
2017-04-06 19:36:36 -04:00
gchar * * terms = g_str_tokenize_and_fold ( term , NULL , NULL ) ;
int terms_len = g_strv_length ( terms ) ;
GList * commands = g_hash_table_get_keys ( search_index ) ;
GList * curr = commands ;
while ( curr ) {
char * command = curr - > data ;
int matches = 0 ;
int i = 0 ;
for ( i = 0 ; i < terms_len ; i + + ) {
char * command_index = g_hash_table_lookup ( search_index , command ) ;
if ( g_str_match_string ( terms [ i ] , command_index , FALSE ) ) {
matches + + ;
2017-04-06 18:36:50 -04:00
}
}
2017-04-06 19:36:36 -04:00
if ( matches = = terms_len ) {
results = g_list_append ( results , command ) ;
}
curr = g_list_next ( curr ) ;
2017-04-06 18:36:50 -04:00
}
2017-04-06 19:36:36 -04:00
g_list_free ( commands ) ;
g_strfreev ( terms ) ;
2017-04-06 19:08:54 -04:00
2017-04-06 18:36:50 -04:00
return results ;
}
2012-08-10 19:18:03 -04:00
2012-08-22 18:57:34 -04:00
/*
* Initialise command autocompleter and history
*/
2012-07-24 18:19:48 -04:00
void
2012-08-22 19:30:11 -04:00
cmd_init ( void )
2012-04-30 19:24:31 -04:00
{
2012-08-25 19:54:18 -04:00
log_info ( " Initialising commands " ) ;
2012-10-27 20:47:57 -04:00
2016-05-19 19:19:03 -04:00
cmd_ac_init ( ) ;
2013-06-24 19:49:29 -04:00
2017-07-01 10:01:49 -04:00
search_index = g_hash_table_new_full ( g_str_hash , g_str_equal , free , g_free ) ;
2017-04-06 18:36:50 -04:00
2013-06-24 19:49:29 -04:00
// load command defs into hash table
commands = g_hash_table_new ( g_str_hash , g_str_equal ) ;
unsigned int i ;
for ( i = 0 ; i < ARRAY_SIZE ( command_defs ) ; i + + ) {
Command * pcmd = command_defs + i ;
// add to hash
g_hash_table_insert ( commands , pcmd - > cmd , pcmd ) ;
2017-04-06 18:36:50 -04:00
// add to search index
2017-07-01 10:01:49 -04:00
g_hash_table_insert ( search_index , strdup ( pcmd - > cmd ) , _cmd_index ( pcmd ) ) ;
2017-04-06 18:36:50 -04:00
2013-06-24 19:49:29 -04:00
// add to commands and help autocompleters
2016-05-19 19:19:03 -04:00
cmd_ac_add_cmd ( pcmd ) ;
2013-06-24 19:49:29 -04:00
}
2013-01-24 20:11:49 -05:00
2014-01-23 18:53:20 -05:00
// load aliases
GList * aliases = prefs_get_aliases ( ) ;
GList * curr = aliases ;
2015-05-04 17:16:39 -04:00
while ( curr ) {
2014-01-23 18:53:20 -05:00
ProfAlias * alias = curr - > data ;
2016-05-19 19:19:03 -04:00
cmd_ac_add_alias ( alias ) ;
2014-01-23 18:53:20 -05:00
curr = g_list_next ( curr ) ;
}
2014-06-18 16:36:09 -04:00
prefs_free_aliases ( aliases ) ;
2012-04-30 19:24:31 -04:00
}
2012-10-21 19:29:39 -04:00
void
2013-12-15 11:10:32 -05:00
cmd_uninit ( void )
2012-10-21 19:29:39 -04:00
{
2016-05-19 19:19:03 -04:00
cmd_ac_uninit ( ) ;
2017-04-06 19:08:54 -04:00
g_hash_table_destroy ( search_index ) ;
2012-10-27 17:22:30 -04:00
}
2015-07-26 20:06:10 -04:00
gboolean
2015-10-24 19:25:10 -04:00
cmd_valid_tag ( const char * const str )
2015-07-26 20:06:10 -04:00
{
2015-07-27 18:55:04 -04:00
return ( ( g_strcmp0 ( str , CMD_TAG_CHAT ) = = 0 ) | |
2015-07-26 20:06:10 -04:00
( g_strcmp0 ( str , CMD_TAG_GROUPCHAT ) = = 0 ) | |
2015-07-27 18:55:04 -04:00
( g_strcmp0 ( str , CMD_TAG_PRESENCE ) = = 0 ) | |
( g_strcmp0 ( str , CMD_TAG_ROSTER ) = = 0 ) | |
( g_strcmp0 ( str , CMD_TAG_DISCOVERY ) = = 0 ) | |
( g_strcmp0 ( str , CMD_TAG_CONNECTION ) = = 0 ) | |
2016-02-18 16:53:20 -05:00
( g_strcmp0 ( str , CMD_TAG_UI ) = = 0 ) | |
( g_strcmp0 ( str , CMD_TAG_PLUGINS ) = = 0 ) ) ;
2015-07-26 20:06:10 -04:00
}
2016-05-22 19:31:00 -04:00
Command *
cmd_get ( const char * const command )
2015-01-15 15:34:45 -05:00
{
2016-05-22 19:31:00 -04:00
if ( commands ) {
return g_hash_table_lookup ( commands , command ) ;
2015-01-15 15:34:45 -05:00
} else {
2016-05-22 19:31:00 -04:00
return NULL ;
2015-01-15 15:34:45 -05:00
}
}
2016-05-22 19:31:00 -04:00
GList *
cmd_get_ordered ( const char * const tag )
2012-08-14 19:42:38 -04:00
{
2016-05-22 19:31:00 -04:00
GList * ordered_commands = NULL ;
GHashTableIter iter ;
gpointer key ;
gpointer value ;
g_hash_table_iter_init ( & iter , commands ) ;
while ( g_hash_table_iter_next ( & iter , & key , & value ) ) {
Command * pcmd = ( Command * ) value ;
if ( tag ) {
2016-05-22 19:39:36 -04:00
if ( _cmd_has_tag ( pcmd , tag ) ) {
2016-05-22 19:31:00 -04:00
ordered_commands = g_list_insert_sorted ( ordered_commands , pcmd - > cmd , ( GCompareFunc ) g_strcmp0 ) ;
2016-04-26 15:29:45 -04:00
}
2014-01-23 18:04:00 -05:00
} else {
2016-05-22 19:31:00 -04:00
ordered_commands = g_list_insert_sorted ( ordered_commands , pcmd - > cmd , ( GCompareFunc ) g_strcmp0 ) ;
2014-01-23 18:04:00 -05:00
}
}
2016-05-22 19:31:00 -04:00
return ordered_commands ;
2014-01-23 18:04:00 -05:00
}
2016-05-22 19:39:36 -04:00
static gboolean
_cmd_has_tag ( Command * pcmd , const char * const tag )
{
int i = 0 ;
for ( i = 0 ; pcmd - > help . tags [ i ] ! = NULL ; i + + ) {
if ( g_strcmp0 ( tag , pcmd - > help . tags [ i ] ) = = 0 ) {
return TRUE ;
}
}
return FALSE ;
}
2015-02-07 19:42:21 -05:00
static int
_cmp_command ( Command * cmd1 , Command * cmd2 )
{
return g_strcmp0 ( cmd1 - > cmd , cmd2 - > cmd ) ;
}
void
command_docgen ( void )
{
GList * cmds = NULL ;
unsigned int i ;
for ( i = 0 ; i < ARRAY_SIZE ( command_defs ) ; i + + ) {
Command * pcmd = command_defs + i ;
cmds = g_list_insert_sorted ( cmds , pcmd , ( GCompareFunc ) _cmp_command ) ;
}
FILE * toc_fragment = fopen ( " toc_fragment.html " , " w " ) ;
FILE * main_fragment = fopen ( " main_fragment.html " , " w " ) ;
fputs ( " <ul><li><ul><li> \n " , toc_fragment ) ;
fputs ( " <hr> \n " , main_fragment ) ;
GList * curr = cmds ;
while ( curr ) {
Command * pcmd = curr - > data ;
2015-07-25 20:27:42 -04:00
fprintf ( toc_fragment , " <a href= \" #%s \" >%s</a>, \n " , & pcmd - > cmd [ 1 ] , pcmd - > cmd ) ;
fprintf ( main_fragment , " <a name= \" %s \" ></a> \n " , & pcmd - > cmd [ 1 ] ) ;
fprintf ( main_fragment , " <h4>%s</h4> \n " , pcmd - > cmd ) ;
2015-02-07 19:42:21 -05:00
2015-07-25 20:27:42 -04:00
fputs ( " <p><b>Synopsis</b></p> \n " , main_fragment ) ;
fputs ( " <p><pre><code> " , main_fragment ) ;
int i = 0 ;
while ( pcmd - > help . synopsis [ i ] ) {
char * str1 = str_replace ( pcmd - > help . synopsis [ i ] , " < " , " < " ) ;
char * str2 = str_replace ( str1 , " > " , " > " ) ;
fprintf ( main_fragment , " %s \n " , str2 ) ;
i + + ;
}
fputs ( " </code></pre></p> \n " , main_fragment ) ;
fputs ( " <p><b>Description</b></p> \n " , main_fragment ) ;
fputs ( " <p> " , main_fragment ) ;
fprintf ( main_fragment , " %s \n " , pcmd - > help . desc ) ;
fputs ( " </p> \n " , main_fragment ) ;
if ( pcmd - > help . args [ 0 ] [ 0 ] ! = NULL ) {
fputs ( " <p><b>Arguments</b></p> \n " , main_fragment ) ;
fputs ( " <table> " , main_fragment ) ;
for ( i = 0 ; pcmd - > help . args [ i ] [ 0 ] ! = NULL ; i + + ) {
fputs ( " <tr> " , main_fragment ) ;
fputs ( " <td> " , main_fragment ) ;
fputs ( " <code> " , main_fragment ) ;
char * str1 = str_replace ( pcmd - > help . args [ i ] [ 0 ] , " < " , " < " ) ;
char * str2 = str_replace ( str1 , " > " , " > " ) ;
fprintf ( main_fragment , " %s " , str2 ) ;
fputs ( " </code> " , main_fragment ) ;
fputs ( " </td> " , main_fragment ) ;
fputs ( " <td> " , main_fragment ) ;
fprintf ( main_fragment , " %s " , pcmd - > help . args [ i ] [ 1 ] ) ;
fputs ( " </td> " , main_fragment ) ;
fputs ( " </tr> " , main_fragment ) ;
}
fputs ( " </table> \n " , main_fragment ) ;
}
2015-07-25 15:43:16 -04:00
2015-07-25 20:27:42 -04:00
if ( pcmd - > help . examples [ 0 ] ! = NULL ) {
fputs ( " <p><b>Examples</b></p> \n " , main_fragment ) ;
2015-07-25 15:43:16 -04:00
fputs ( " <p><pre><code> " , main_fragment ) ;
int i = 0 ;
2015-07-25 20:27:42 -04:00
while ( pcmd - > help . examples [ i ] ) {
fprintf ( main_fragment , " %s \n " , pcmd - > help . examples [ i ] ) ;
2015-07-25 15:43:16 -04:00
i + + ;
}
fputs ( " </code></pre></p> \n " , main_fragment ) ;
2015-07-25 20:27:42 -04:00
}
2015-07-25 15:43:16 -04:00
2015-07-25 20:27:42 -04:00
fputs ( " <a href= \" #top \" ><h5>back to top</h5></a><br><hr> \n " , main_fragment ) ;
fputs ( " \n " , main_fragment ) ;
2015-07-25 15:43:16 -04:00
2015-02-07 19:42:21 -05:00
curr = g_list_next ( curr ) ;
}
fputs ( " </ul></ul> \n " , toc_fragment ) ;
fclose ( toc_fragment ) ;
fclose ( main_fragment ) ;
2015-07-25 20:27:42 -04:00
printf ( " \n Processed %d commands. \n \n " , g_list_length ( cmds ) ) ;
2015-02-07 19:42:21 -05:00
g_list_free ( cmds ) ;
2015-02-07 19:46:55 -05:00
}