'show_only_chat_and_online':[opt_bool,False,_('Show only online and free for chat contacts in roster.')],
'show_transports_group':[opt_bool,True],
'autoaway':[opt_bool,True],
'autoawaytime':[opt_int,5,_('Time in minutes, after which your status changes to away.')],
'autoaway_message':[opt_str,_('$S (Away as a result of being idle more than $T min)'),_('$S will be replaced by current status message, $T by autoawaytime.')],
'autoxa':[opt_bool,True],
'autoxatime':[opt_int,15,_('Time in minutes, after which your status changes to not available.')],
'autoxa_message':[opt_str,_('$S (Not available as a result of being idle more than $T min)'),_('$S will be replaced by current status message, $T by autoxatime.')],
'ask_online_status':[opt_bool,False],
'ask_offline_status':[opt_bool,False],
'trayicon':[opt_str,'always',_("When to show notification area icon. Can be 'never', 'on_event', 'always'."),False],
'allow_hide_roster':[opt_bool,False,_("Allow to hide the roster window even if the tray icon is not shown."),False],
'notif_status_color':[opt_color,'#D8BFD8',_('Background color of status changed notification')],# thistle2
'notif_other_color':[opt_color,'#FFFFFF',_('Other dialogs color.')],# white
'collapsed_rows':[opt_str,'',_('List (space separated) of rows (accounts and groups) that are collapsed.'),True],
'roster_theme':[opt_str,_('default'),'',True],
'mergeaccounts':[opt_bool,False,'',True],
'sort_by_show_in_roster':[opt_bool,True,'',True],
'sort_by_show_in_muc':[opt_bool,False,'',True],
'use_speller':[opt_bool,False,],
'ignore_incoming_xhtml':[opt_bool,False,],
'speller_language':[opt_str,'',_('Language used by speller')],
'print_time':[opt_str,'always',_('\'always\' - print time for every message.\n\'sometimes\' - print time every print_ichat_every_foo_minutes minute.\n\'never\' - never print time.')],
'print_time_fuzzy':[opt_int,0,_('Print time in chats using Fuzzy Clock. Value of fuzziness from 1 to 4, or 0 to disable fuzzyclock. 1 is the most precise clock, 4 the least precise one. This is used only if print_time is \'sometimes\'.')],
_('Uses ReStructured text markup to send HTML, plus ascii formatting if selected. For syntax, see http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html (If you want to use this, install docutils)')],
'sounds_on':[opt_bool,True],
# 'aplay', 'play', 'esdplay', 'artsplay' detected first time only
'gc_refer_to_nick_char':[opt_str,',',_('Character to add after nickname when using nick completion (tab) in group chat.')],
'gc_proposed_nick_char':[opt_str,'_',_('Character to propose to add after desired nickname when desired nickname is used by someone else in group chat.')],
'msgwin-max-state':[opt_bool,False],
'msgwin-x-position':[opt_int,-1],# Default is to let the window manager decide
'msgwin-y-position':[opt_int,-1],# Default is to let the window manager decide
'msgwin-width':[opt_int,500],
'msgwin-height':[opt_int,440],
'chat-msgwin-x-position':[opt_int,-1],# Default is to let the window manager decide
'chat-msgwin-y-position':[opt_int,-1],# Default is to let the window manager decide
'chat-msgwin-width':[opt_int,480],
'chat-msgwin-height':[opt_int,440],
'gc-msgwin-x-position':[opt_int,-1],# Default is to let the window manager decide
'gc-msgwin-y-position':[opt_int,-1],# Default is to let the window manager decide
'gc-msgwin-width':[opt_int,600],
'gc-msgwin-height':[opt_int,440],
'pm-msgwin-x-position':[opt_int,-1],# Default is to let the window manager decide
'pm-msgwin-y-position':[opt_int,-1],# Default is to let the window manager decide
'pm-msgwin-width':[opt_int,480],
'pm-msgwin-height':[opt_int,440],
'single-msg-x-position':[opt_int,0],
'single-msg-y-position':[opt_int,0],
'single-msg-width':[opt_int,400],
'single-msg-height':[opt_int,280],
'save-roster-position':[opt_bool,True,_('If true, Gajim will save roster position when hiding roster, and restore it when showing roster.')],
'roster_x-position':[opt_int,0],
'roster_y-position':[opt_int,0],
'roster_width':[opt_int,200],
'roster_height':[opt_int,400],
'roster_hpaned_position':[opt_int,200],
'roster_on_the_right':[opt_bool,False,_('Place the roster on the right in single window mode'),True],
'time_stamp':[opt_str,'[%X] ',_('This option let you customize timestamp that is printed in conversation. For example "[%H:%M] " will show "[hour:minute] ". See python doc on strftime for full documentation: http://docs.python.org/lib/module-time.html')],
'before_nickname':[opt_str,'',_('Characters that are printed before the nickname in conversations')],
'after_nickname':[opt_str,':',_('Characters that are printed after the nickname in conversations')],
'use_gpg_agent':[opt_bool,False],
'change_roster_title':[opt_bool,True,_('Add * and [n] in roster title?')],
'restore_lines':[opt_int,10,_('How many history messages should be restored when a chat tab/window is reopened?')],
'restore_timeout':[opt_int,-1,_('How far back in time (minutes) history is restored. -1 means no limit.')],
'muc_restore_lines':[opt_int,100,_('How many lines to request from server when entering a groupchat. -1 means no limit')],
'muc_restore_timeout':[opt_int,-1,_('Minutes of backlog to request when entering a groupchat. -1 means no limit')],
'muc_autorejoin_timeout':[opt_int,1,_('How many seconds to wait before trying to autorejoin to a conference you are being disconnected from. Set to 0 to disable autorejoining.')],
'muc_autorejoin_on_kick':[opt_bool,False,_('Should autorejoin be activated when kicked from a conference?')],
'send_on_ctrl_enter':[opt_bool,False,_('Send message on Ctrl+Enter and with Enter make new line (Mirabilis ICQ Client default behaviour).')],
'last_roster_visible':[opt_bool,True],
'key_up_lines':[opt_int,25,_('How many lines to store for Ctrl+KeyUP.')],
'version':[opt_str,gajim.__version__],# which version created the config
'dictionary_url':[opt_str,'WIKTIONARY',_("Either custom URL with %%s in it where %%s is the word/phrase or 'WIKTIONARY' which means use Wikitionary.")],
'always_english_wikipedia':[opt_bool,False],
'always_english_wiktionary':[opt_bool,True],
'remote_control':[opt_bool,False,_('If checked, Gajim can be controlled remotely using gajim-remote.'),True],
'outgoing_chat_state_notifications':[opt_str,'all',_('Sent chat state notifications. Can be one of all, composing_only, disabled.')],
'displayed_chat_state_notifications':[opt_str,'all',_('Displayed chat state notifications in chat windows. Can be one of all, composing_only, disabled.')],
'print_ichat_every_foo_minutes':[opt_int,5,_('When not printing time for every message (print_time==sometimes), print it every x minutes.')],
'confirm_close_muc':[opt_bool,True,_('Ask before closing a group chat tab/window.')],
'confirm_close_muc_rooms':[opt_str,'',_('Always ask for confirmation before closing groupchats with any of the JIDs on this space separated list.')],
'noconfirm_close_muc_rooms':[opt_str,'',_('Never ask for confirmation before closing groupchats with any of the JIDs on this space separated list.')],
'confirm_close_multiple_tabs':[opt_bool,True,_('Ask before closing tabbed chat window if there are controls that can lose data (chat, private chat, groupchat that will not be minimized)')],
'notify_on_file_complete':[opt_bool,True],
'file_transfers_port':[opt_int,28011],
'ft_add_hosts_to_send':[opt_str,'',_('Comma separated list of sent hosts, in addition of local interfaces, for File Transfer in case of address translation/port forwarding.')],
'trayicon_notification_on_events':[opt_bool,True,_('Notify of events in the notification area.')],
'trayicon_blink':[opt_bool,True,_('If False, Gajim will display a static event icon instead of the blinking status icon in the notification area when notifying on event.')],
'last_save_dir':[opt_str,''],
'last_send_dir':[opt_str,''],
'last_emoticons_dir':[opt_str,''],
'last_sounds_dir':[opt_str,''],
'tabs_position':[opt_str,'top'],
'tabs_always_visible':[opt_bool,False,_('Show tab when only one conversation?')],
'tabs_border':[opt_bool,False,_('Show tabbed notebook border in chat windows?')],
'tabs_close_button':[opt_bool,True,_('Show close button in tab?')],
'notification_preview_message':[opt_bool,True,_('Preview new messages in notification popup?')],
'notification_position_x':[opt_int,-1],
'notification_position_y':[opt_int,-1],
'muc_highlight_words':[opt_str,'',_('A semicolon-separated list of words that will be highlighted in group chats.')],
'quit_on_roster_x_button':[opt_bool,False,_('If true, quits Gajim when X button of Window Manager is clicked. This setting is taken into account only if notification icon is used.')],
'hide_on_roster_x_button':[opt_bool,False,_('If true, Gajim hides the Roster window on pressing the X button instead of minimizing into the Dock.')],
'show_unread_tab_icon':[opt_bool,False,_('If true, Gajim will display an icon on each tab containing unread messages. Depending on the theme, this icon may be animated.')],
'show_status_msgs_in_roster':[opt_bool,True,_('If true, Gajim will display the status message, if not empty, for every contact under the contact name in roster window.'),True],
'avatar_position_in_roster':[opt_str,'right',_('Define the position of the avatar in roster. Can be left or right'),True],
'print_status_in_chats':[opt_bool,False,_('If False, Gajim will no longer print status line in chats when a contact changes their status and/or their status message.')],
'print_status_in_muc':[opt_str,'none',_('Can be "none", "all" or "in_and_out". If "none", Gajim will no longer print status line in groupchats when a member changes their status and/or their status message. If "all" Gajim will print all status messages. If "in_and_out", Gajim will only print FOO enters/leaves group chat.')],
'log_contact_status_changes':[opt_bool,False],
'log_xhtml_messages':[opt_bool,False,_('Log XHTML messages instead of plain text messages.')],
'restored_messages_small':[opt_bool,True,_('If true, restored messages will use a smaller font than the default one.')],
'hide_avatar_of_transport':[opt_bool,False,_('Don\'t show avatar for the transport itself.')],
'roster_window_skip_taskbar':[opt_bool,False,_('Don\'t show roster in the system taskbar.')],
'use_urgency_hint':[opt_bool,True,_('If true, make the window flash (the default behaviour in most Window Managers) when holding pending events.')],
'notification_timeout':[opt_int,5],
'one_message_window':[opt_str,'always',
#always, never, peracct, pertype should not be translated
_('Controls the window where new messages are placed.\n\'always\' - All messages are sent to a single window.\n\'always_with_roster\' - Like \'always\' but the messages are in a single window along with the roster.\n\'never\' - All messages get their own window.\n\'peracct\' - Messages for each account are sent to a specific window.\n\'pertype\' - Each message type (e.g. chats vs. groupchats) is sent to a specific window.')],
'show_roster_on_startup':[opt_str,'always',_('Show roster on startup.\n\'always\' - Always show roster.\n\'never\' - Never show roster.\n\'last_state\' - Restore the last state roster.')],
'show_avatar_in_chat':[opt_bool,True,_('If False, you will no longer see the avatar in the chat window.')],
'escape_key_closes':[opt_bool,True,_('If true, pressing the escape key closes a tab/window.')],
'hide_groupchat_banner':[opt_bool,False,_('Hides the banner in a group chat window')],
'hide_chat_banner':[opt_bool,False,_('Hides the banner in two persons chat window')],
'hide_groupchat_occupants_list':[opt_bool,False,_('Hides the group chat occupants list in group chat window.')],
'chat_merge_consecutive_nickname':[opt_bool,False,_('In a chat, show the nickname at the beginning of a line only when it\'s not the same person talking than in previous message.')],
'chat_merge_consecutive_nickname_indent':[opt_str,'',_('Indentation when using merge consecutive nickname.')],
'gc_nicknames_colors':[opt_str,'#4e9a06:#f57900:#ce5c00:#3465a4:#204a87:#75507b:#5c3566:#c17d11:#8f5902:#ef2929:#cc0000:#a40000',_('List of colors, separated by ":", that will be used to color nicknames in group chats.'),True],
'ctrl_tab_go_to_next_composing':[opt_bool,True,_('Ctrl-Tab go to next composing tab when none is unread.')],
'confirm_metacontacts':[opt_str,'',_('Show the confirm metacontacts creation dialog or not? Empty string means never show the dialog.')],
'confirm_block':[opt_str,'',_('Show the confirm block contact dialog or not? Empty string means never show the dialog.')],
'confirm_custom_status':[opt_str,'',_('Show the confirm custom status dialog or not? Empty string means never show the dialog.')],
'enable_negative_priority':[opt_bool,False,_('If true, you will be able to set a negative priority to your account in account modification window. BE CAREFUL, when you are logged in with a negative priority, you will NOT receive any message from your server.')],
'show_contacts_number':[opt_bool,True,_('If true, Gajim will show number of online and total contacts in account and group rows.')],
'treat_incoming_messages':[opt_str,'',_('Can be empty, \'chat\' or \'normal\'. If not empty, treat all incoming messages as if they were of this type')],
'scroll_roster_to_last_message':[opt_bool,True,_('If true, Gajim will scroll and select the contact who sent you the last message, if chat window is not already opened.')],
'change_status_window_timeout':[opt_int,15,_('Time of inactivity needed before the change status window closes down.')],
'max_conversation_lines':[opt_int,500,_('Maximum number of lines that are printed in conversations. Oldest lines are cleared.')],
'attach_notifications_to_systray':[opt_bool,False,_('If true, notification windows from notification-daemon will be attached to notification icon.')],
'check_idle_every_foo_seconds':[opt_int,2,_('Choose interval between 2 checks of idleness.')],
'video_see_self':[opt_bool,True,_('If true, You will also see your webcam')],
'audio_input_volume':[opt_int,50],
'audio_output_volume':[opt_int,50],
'use_stun_server':[opt_bool,False,_('If true, Gajim will try to use a STUN server when using Jingle. The one in "stun_server" option, or the one given by the XMPP server.')],
'stun_server':[opt_str,'',_('STUN server to use when using Jingle')],
'show_affiliation_in_groupchat':[opt_bool,True,_('If true, Gajim will show affiliation of groupchat occupants by adding a colored square to the status icon')],
'global_proxy':[opt_str,'',_('Proxy used for all outgoing connections if the account does not have a specific proxy configured')],
'adjust_priority_with_status':[opt_bool,True,_('Priority will change automatically according to your status. Priorities are defined in autopriority_* options.')],
'autopriority_online':[opt_int,50],
'autopriority_chat':[opt_int,50],
'autopriority_away':[opt_int,40],
'autopriority_xa':[opt_int,30],
'autopriority_dnd':[opt_int,20],
'autopriority_invisible':[opt_int,10],
'autoconnect':[opt_bool,False,'',True],
'autoconnect_as':[opt_str,'online',_('Status used to autoconnect as. Can be online, chat, away, xa, dnd, invisible. NOTE: this option is used only if restore_last_status is disabled'),True],
'restore_last_status':[opt_bool,False,_('If enabled, restore the last status that was used.')],
'autoreconnect':[opt_bool,True],
'autoauth':[opt_bool,False,_('If true, Contacts requesting authorization will be automatically accepted.')],
'active':[opt_bool,True,_('If False, this account will be disabled and will not appear in roster window.'),True],
'proxy':[opt_str,'','',True],
'keyid':[opt_str,'','',True],
'gpg_sign_presence':[opt_bool,True,_('If disabled, don\'t sign presences with GPG key, even if GPG is configured.')],
'authentication_mechanisms':[opt_str,'',_('List (space separated) of authentication mechanisms to try. Can contain ANONYMOUS, EXTERNAL, GSSAPI, SCRAM-SHA-1-PLUS, SCRAM-SHA-1, DIGEST-MD5, PLAIN, X-MESSENGER-OAUTH2 or XEP-0078')],
'action_when_plaintext_connection':[opt_str,'warn',_('Show a warning dialog before sending password on an plaintext connection. Can be \'warn\', \'connect\', \'disconnect\'')],
'warn_when_insecure_ssl_connection':[opt_bool,True,_('Show a warning dialog before using standard SSL library.')],
'warn_when_insecure_password':[opt_bool,True,_('Show a warning dialog before sending PLAIN password over a plain connection.')],
'ignore_ssl_errors':[opt_str,'',_('Space separated list of ssl errors to ignore.')],
'use_srv':[opt_bool,True,'',True],
'use_custom_host':[opt_bool,False,'',True],
'custom_port':[opt_int,5222,'',True],
'custom_host':[opt_str,'','',True],
'sync_with_global_status':[opt_bool,False,],
'no_log_for':[opt_str,'',_('Space separated list of JIDs for which you do not want to store logs. You can also add account name to log nothing for this account.')],
'sync_logs_with_server':[opt_bool,True,_('On startup, Gajim will download logs stored on server, provided the server supports XEP-0313')],
'allow_no_log_for':[opt_str,'',_('Space separated list of JIDs for which you accept to not log conversations if he does not want to.')],
'non_minimized_gc':[opt_str,''],
'attached_gpg_keys':[opt_str,''],
'keep_alives_enabled':[opt_bool,True,_('Whitespace sent after inactivity')],
'ping_alives_enabled':[opt_bool,True,_('XMPP ping sent after inactivity')],
# send keepalive every N seconds of inactivity
'keep_alive_every_foo_secs':[opt_int,55],
'ping_alive_every_foo_secs':[opt_int,120],
'time_for_ping_alive_answer':[opt_int,60,_('How many seconds to wait for the answer of ping alive packet before trying to reconnect?')],
# try for 1 minutes before giving up (aka. timeout after those seconds)
'use_ft_proxies':[opt_bool,False,_('If checked, Gajim will use your IP and proxies defined in file_transfer_proxies option for file transfer.'),True],
'test_ft_proxies_on_startup':[opt_bool,False,_('If true, Gajim will test file transfer proxies on startup to be sure it works. Openfire\'s proxies are known to fail this test even if they work.')],
'msgwin-x-position':[opt_int,-1],# Default is to let the wm decide
'msgwin-y-position':[opt_int,-1],# Default is to let the wm decide
'msgwin-width':[opt_int,480],
'msgwin-height':[opt_int,440],
'is_zeroconf':[opt_bool,False],
'last_status':[opt_str,'online'],
'last_status_msg':[opt_str,''],
'zeroconf_first_name':[opt_str,'','',True],
'zeroconf_last_name':[opt_str,'','',True],
'zeroconf_jabber_id':[opt_str,'','',True],
'zeroconf_email':[opt_str,'','',True],
'use_env_http_proxy':[opt_bool,False],
'answer_receipts':[opt_bool,True,_('Answer to receipt requests')],
'send_os_info':[opt_bool,True,_("Allow Gajim to send information about the operating system you are running.")],
'send_time_info':[opt_bool,True,_("Allow Gajim to send your local time.")],
'send_idle_time':[opt_bool,True],
'roster_version':[opt_str,''],
'subscription_request_msg':[opt_str,'',_('Message that is sent to contacts you want to add')],
'enable_message_carbons':[opt_bool,True,_('If enabled and if server supports this feature, Gajim will receive messages sent and received by other resources.')],
'ft_send_local_ips':[opt_bool,True,_('If enabled, Gajim will send your local IPs so your contact can connect to your machine to transfer files.')],
'oauth2_refresh_token':[opt_str,'',_('Latest token for OAuth 2.0 authentication.')],
'oauth2_client_id':[opt_str,'0000000044077801',_('client_id for OAuth 2.0 authentication.')],
'oauth2_redirect_url':[opt_str,'https%3A%2F%2Fgajim.org%2Fmsnauth%2Findex.cgi',_('redirect_url for OAuth 2.0 authentication.')],
'opened_chat_controls':[opt_str,'',_('Space separated list of JIDs for which chat window will be re-opened on next startup.')],
'filetransfer_preference':[opt_str,'httpupload',_('Preferred file transfer mechanism for file drag&drop on chat window. Can be \'httpupload\' (default) or \'jingle\'')],
'allow_posh':[opt_bool,True,_('Allow cert verification with POSH')],
'speller_language':[opt_str,'',_('Language for which misspelled words will be checked')],
},{}),
'encryption':({
'encryption':[opt_str,'',_('The currently active encryption for that contact')],
},{}),
'rooms':({
'speller_language':[opt_str,'',_('Language for which misspelled words will be checked')],
'muc_restore_lines':[opt_int,-2,_('How many lines to request from server when entering a groupchat. -1 means no limit, -2 means global value')],
'muc_restore_timeout':[opt_int,-2,_('Minutes of backlog to request when entering a groupchat. -1 means no limit, -2 means global value')],
'notify_on_all_messages':[opt_bool,False,_('State whether a notification is created for every message in this room')],
},{}),
'plugins':({
'active':[opt_bool,False,_('State whether plugins should be activated on startup (this is saved on Gajim exit). This option SHOULD NOT be used to (de)activate plug-ins. Use GUI instead.')],
'muc_message_highlight':[True,'gc_message1.wav',_('Sound to play when a group chat message contains one of the words in muc_highlight_words, or when a group chat message contains your nickname.')],
'muc_message_received':[False,'gc_message2.wav',_('Sound to play when any MUC message arrives.')],