| Linux | Маки |
|---|---|
NCHAT-это клиент чата на основе терминала для Linux и MacOS, поддерживая Telegram и WhatsApp.

Использование:
nchat [OPTION]
Параметры командной строки:
-d, --confdir <DIR> use a different directory than ~/.config/nchat
-e, --verbose enable verbose logging
-ee, --extra-verbose enable extra verbose logging
-h, --help display this help and exit
-k, --keydump key code dump mode
-m, --devmode developer mode
-r, --remove remove chat protocol account
-s, --setup set up chat protocol account
-v, --version output version information and exit
-x, --export <DIR> export message cache to specified dir
Интерактивные команды:
PageDn history next page
PageUp history previous page
Tab next chat
Sh-Tab previous chat
Ctrl-f jump to unread chat
Ctrl-g toggle show help bar
Ctrl-l toggle show contact list
Ctrl-n search contacts
Ctrl-p toggle show top bar
Ctrl-q quit
Ctrl-s insert emoji
Ctrl-t send file
Ctrl-x send message
Ctrl-y toggle show emojis
KeyUp select message
Alt-d delete/leave current chat
Alt-e external editor compose
Alt-n goto chat
Alt-t external telephone call
Alt-/ find in chat
Alt-? find next in chat
Alt-$ external spell check
Alt-, decrease contact list width
Alt-. increase contact list width
Интерактивные команды для выбранного сообщения:
Ctrl-d delete selected message
Ctrl-r download attached file
Ctrl-v open/view attached file
Ctrl-w open link
Ctrl-x send reply to selected message
Ctrl-z edit selected message
Alt-c copy selected message to clipboard
Alt-q jump to quoted/replied message
Alt-r forward selected message
Alt-s add/remove reaction on selected message
Alt-w external message viewer
Интерактивные команды для ввода текста:
Ctrl-a move cursor to start of line
Ctrl-c clear input buffer
Ctrl-e move cursor to end of line
Ctrl-k delete from cursor to end of line
Ctrl-u delete from cursor to start of line
Alt-Left move cursor backward one word
Alt-Right move cursor forward one word
Alt-Backsp delete previous word
Alt-Delete delete next word
Alt-c copy input buffer to clipboard (if no message selected)
Alt-v paste into input buffer from clipboard
Alt-x cut input buffer to clipboard
NCHAT разработан и протестирован на Linux и MacOS. Текущая версия была проверена на:
Строите / установите стабильный выпуск с использованием Brew
brew tap d99kris/nchat
brew install nchat
Необязательно можно отключить протоколы, используя, например, --without-whatsapp и --without-telegram :
brew install nchat --without-telegram
Создать / установить последний git
yay -S nchat-git
Строитель / установка стабильного выпуска
yay -S nchat
NCHAT состоит из большой кодовой базы (в основном Tdlib Telegram Library), поэтому будьте готовы к относительно длительному времени первой сборки.
Получите источник
git clone https://github.com/d99kris/nchat && cd nchat
При использовании MacOS, Alpine, Arch, Fedora, Gentoo, Raspbian, Ubuntu или void можно использовать предоставленный сценарий make.sh
Зависимости
./make.sh deps
Строить / установить
./make.sh build && ./make.sh install
Зависимости
macOS
brew install gperf cmake openssl ncurses ccache readline help2man sqlite libmagic go
Архи
sudo pacman -S ccache cmake file go gperf help2man ncurses openssl readline sqlite zlib base-devel
Основанная на Debian (Ubuntu, Raspbian и т. Д.)
sudo apt install ccache cmake build-essential gperf help2man libreadline-dev libssl-dev libncurses-dev libncursesw5-dev ncurses-doc zlib1g-dev libsqlite3-dev libmagic-dev golang
Федора
sudo dnf install git cmake clang golang ccache file-devel file-libs gperf readline-devel openssl-devel ncurses-devel sqlite-devel zlib-devel
Дженто
sudo emerge -n dev-util/cmake dev-util/ccache dev-util/gperf sys-apps/help2man sys-libs/readline dev-libs/openssl sys-libs/ncurses sys-libs/zlib dev-db/sqlite sys-apps/file dev-lang/go
Пустота
sudo xbps-install base-devel go ccache cmake gperf help2man libmagick-devel readline-devel sqlite-devel file-devel openssl-devel
Строить
mkdir -p build && cd build && cmake .. && make -s
Установить
sudo make install
По умолчанию NCHAT требует ~ 3,5 ГБ оперативной памяти, чтобы построить с использованием G ++ и ~ 1,5 ГБ оперативной памяти с Clang ++, но можно уменьшить необходимую память, см. Настроение на системах с низким содержанием памяти.
Все функции NCHAT включены по умолчанию, но можно контролировать включение некоторых функций с использованием флагов Cmake, см. Флаги функций.
Для настройки / настройки учетной записи необходимо запустить NCHAT в режиме настройки:
nchat --setup
Режим настройки подсказывает номер телефона, который должен быть введен с кодом страны. Пример:
$ nchat --setup
Protocols:
0. Dummy
1. Telegram
2. WhatsAppMd
3. Exit setup
Select protocol (3): 1
Enter phone number (ex. +6511111111): +6511111111
Enter authentication code: xxxxx
Succesfully set up profile Telegram_+6511111111
Если неуверенность в том, какой номер телефона ввести, откройте приложение Telegram на телефоне, нажмите кнопку меню и используйте там номер, отображаемый там (опуская пространства, поэтому для приведенного снимка экрана номер для ввода - +6511111111).

После завершения процесса настройки, основной пользовательский интерфейс NCHAT будет загружен.
Чтобы настроить несколько протоколов/профилей, выйдите из NCHAT и выполните шаг настройки снова.
Обратитесь к отладке для деталей.
Группа телеграммы https://t.me/nchatusers доступна для пользователей, чтобы обсудить использование NCHAT и связанные с ним темы.
Пользовательские данные хранятся локально в ~/.config/nchat . Разрешения на файл по умолчанию разрешают только доступ к пользователю, но любой, кто может получить доступ к частным файлам пользователя, также может получить доступ к данным личной телеграммы пользователя. Чтобы защитить от самых простых векторов атаки, это может быть подходящим для использования шифрования дисков и обеспечения не зашифрованного ~/.config/nchat .
Следующие файлы конфигурации (указанные в текущих значениях по умолчанию) могут использоваться для настройки NCHAT.
Этот файл конфигурации содержит общие настройки приложения. Содержание по умолчанию:
attachment_prefetch=1
attachment_send_type=1
cache_enabled=1
coredump_enabled=0
downloads_dir=
emoji_list_all=0
link_send_preview=1
logdump_enabled=0
proxy_host=
proxy_pass=
proxy_port=
proxy_user=
timestamp_iso=0
Определяет, определять ли тип файла (аудио, видео, изображение, документ) и отправлять вложения в качестве этих типов, вместо того, чтобы отправлять все вложения в виде типа документа (что обычно оставляет исходный содержимое файла неповрежденным).
Указывает уровень предварительного получения вложения:
0 = no prefetch (download upon open/save)
1 = selected (download upon message selection) <- default
2 = all (download when message is received)
Указывает, включить ли функциональность кэша.
Определяет, включить ли ядра с дампами при сбое приложения.
Определяет пользовательский путь каталога загрузки для сохранения вложений. Если не указано, DIR по умолчанию - ~/Downloads если существует, в противном случае ~ .
Указывает, должен ли диалог emoji перечислять все смайлики, в противном случае он ограничен списком эмодзи, которые правильно отображаются в общих терминалах.
Определяет, включить ли предварительный просмотр ссылок в отправленных сообщениях (только телеграмма).
Указывает, следует ли сбрасывать предупреждение и сообщения журнала ошибок в Stdout после выхода.
Детали прокси -сервера Socks5. Чтобы включить использование прокси, требуется host параметров и port , в то время как user и pass являются необязательными (в зависимости от сервера носков). Примечание. Чтобы использовать прокси при настройке NCHAT в первый раз, рекомендуется сначала запустить NCHAT без аргументов ( nchat ) для его создания DIR, а затем редактировать настройки прокси в ~/.config/nchat/app.conf по мере необходимости, прежде чем запустить nchat -s для установки учетной записи.
Указывает, использовать ли временные метки в стиле ISO ( YYYY-MM-DD HH:MM ) в пользовательском интерфейсе и при экспорте истории чата. По умолчанию NCHAT использует динамичный «дружелюбный» формат:
HH:MM за метки времени в ту же дату, что и сегодня, например, 19:00DAY HH:MM за метки времени на прошлой неделе, например, Mon 19:00DD MMM HH:MM для временных метров в текущем году, например, 14 Nov 19:00DD MMM YYYY HH:MM для метки времени в течение неточного года, например, 14 Nov 2022 19:00DD MMM YYYY HH:MM для метки времени во время экспорта, например, 14 Nov 2022 19:00 Этот файл конфигурации содержит общие настройки пользовательского интерфейса. Содержание по умолчанию:
attachment_indicator=?
attachment_open_command=
away_status_indication=0
call_command=
chat_picker_sorted_alphabetically=0
confirm_deletion=1
desktop_notify_active=0
desktop_notify_command=
desktop_notify_inactive=0
downloadable_indicator=+
emoji_enabled=1
entry_height=4
failed_indicator=✗
file_picker_command=
file_picker_persist_dir=1
help_enabled=1
home_fetch_all=0
linefeed_on_enter=1
link_open_command=
list_enabled=1
list_width=14
listdialog_show_filter=1
mark_read_on_view=1
mark_read_when_inactive=0
message_edit_command=
message_open_command=
muted_indicate_unread=1
muted_notify_unread=0
muted_position_by_timestamp=1
online_status_share=1
online_status_dynamic=1
phone_number_indicator=
proxy_indicator=
read_indicator=✓
reactions_enabled=1
spell_check_command=
status_broadcast=1
syncing_indicator=⇄
terminal_bell_active=0
terminal_bell_inactive=1
terminal_title=
top_enabled=1
top_show_version=0
transfer_send_caption=1
typing_status_share=1
Определяет текст для префикса вложения файлов в представлении сообщения.
Определяет пользовательскую команду для использования для открытия/просмотра вложений. Команда должна включать %1 , который будет заменен именем файла для открытия. Если не указано, используются следующие команды по умолчанию:
Linux: xdg-open >/dev/null 2>&1 '%1' &
macOS: open '%1' &
Примечание. Опустите след & для команд, принимающих терминал, например, w3m -o confirm_qq=false '%1' и see '%1' .
Определяет, указывать ли статус в верхней панели, обмениваясь статусом с другими пользователями. Т.е. статус будет Away вместо Online , когда терминал неактивен (при условии, что online_status_share=1 и online_status_dynamic=1 ).
Определяет пользовательскую команду для запуска вызова, используя внешний инструмент. Команда должна включать %1 , который будет заменен на номер телефона контакта. Если не указано, используются следующие команды по умолчанию:
Linux: xdg-open >/dev/null 2>&1 'tel://%1' &
MacOS: open 'tel://%1' &
Указывает, должен ли диалоговое окно выбора чата (используется при пересылке) сортироваться в алфавитном порядке. Если нет, его порядок следует за основным заказом списка чата.
Указывает, следует ли предложить пользователю подтверждение при удалении сообщения или чата.
Указывает, должно ли новое сообщение запустить уведомление на рабочем столе, когда активное окно терминала NCHAT.
Определяет пользовательскую команду для использования для уведомлений на рабочем столе. Команда может включать %1 (будет заменена на sender name или group name - sender name ) и %2 (будет заменен message text ), заключенного в отдельные кавычки (для предотвращения инъекции оболочки). Команда по умолчанию используется, если не указана:
Linux: notify-send 'nchat' '%1: %2'
macOS: osascript -e 'display notification "%1: %2" with title "nchat"'
Указывает, должно ли новое сообщение запустить уведомление на рабочем столе, когда окно терминала NCHAT неактивно.
Определяет текст в суффикс вложения имен файлов в представлении сообщения для вложений, которые еще не загружены. Это показано только для attachment_prefetch <2.
Указывает, отображать ли смайлики. Контролируется CTRL-Y во время выполнения.
Указывает высоту площади входа текста.
Определяет текст в суффикс вложения имен файлов в представлении сообщения для неудачных загрузок.
Определяет команду для выбора файла, вместо диалогового окна выбора внутреннего файла, используемого при отправке файлов. Команда должна включать %1 (временный путь файла), которому команда должна записать свой результат. Примеры:
nnn: nnn -p '%1'
Ranger: ranger --choosefiles='%1'
Указывает, должен ли диалог выбора файла сохранять каталог последнего выбранного файла.
Указывает, отображать ли панель справки. Контролируется CTRL-G во время выполнения.
Указывает, должна ли кнопка home многократно приносить всю историю чата.
Указывает, следует ли читать нажатие клавиши ввода как LineFeed (LF 12 ). В противном случае читайте как возврат каретки (CR 15 ). Этот настройка актуальна только в том случае, если key.conf использует числовое значение ключа для Enter (LF 12 , CR 15 ). Ключевое имя KEY_RETURN всегда карты в используемый.
Определяет пользовательскую команду для использования для открытия/просмотра ссылок. Команда должна включать %1 , который будет заменен URL -адресом для открытия. Если не указано, используются следующие команды по умолчанию:
Linux: xdg-open >/dev/null 2>&1 '%1' &
macOS: open '%1' &
Примечание. Опустите след & для команд, принимающих терминал, например, w3m -o confirm_qq=false '%1' и see '%1' .
Указывает, отображать ли список чата. Контролируется CTRL-L во время выполнения.
Указывает ширину списка чата.
Определяет, должны ли диалоговые окна «Список» отображать ввод фильтра поиска пользователем.
Указывает, должен ли NCHAT отправлять квитанции с чтением сообщения при просмотре. Если false nchat будет отмечать только сообщения, считываемые на next_page (Page Down), end (End) или после отправки сообщения/файла в чате.
Управляют, отмечает ли NCHAT сообщения в текущем чате как чтение, пока терминал неактивен.
Определяет пользовательскую команду для использования для внешнего редактора Compose. Если не указано, NCHAT будет использовать переменную среды EDITOR , если он установлен, или иным образом использовать nano .
Определяет пользовательскую команду для использования для открытия/просмотра текстовой части сообщения. Если не указано, NCHAT будет использовать переменную среды PAGER , если он установлен, или иным образом использовать less .
Указывает, должен ли список чата указывать нечитанное статус * для приглушенных чатов. Это также определяет, включены ли такие чаты в прыжке на непрочитанную.
Определяет, следует ли уведомлять (терминал колокола) новые непрочитанные сообщения в приглушенных чатах.
Указывает, должна ли позиция в списке чата приглушенных чатов отражать время их последнего полученного/отправленного сообщения. В противном случае приглушенные чаты перечислены последними.
Поделиться статусом онлайн с другими пользователями. Примечание. Отключение этого останавливает обновления других пользователей онлайн/статус печати для WhatsApp.
Динамически обновить статус онлайн на основе активного состояния терминала. ПРИМЕЧАНИЕ. Включение этого останавливает обновления других пользователей онлайн/статус типирования для WhatsApp, когда терминал не активен.
Указывает текст панели состояния, чтобы указать номер телефона текущего чата доступен. Это поле может содержать %1 , который будет заменен на фактический номер телефона контакта. Другие примеры:
Определяет верхний текст стержня, чтобы указать, что прокси включен.
Указывает текст, чтобы указать, что сообщение было прочитано получателем.
Указывает, отображать ли реакции.
Определяет пользовательскую команду для использования для проверки заклинаний. Если не указано, NCHAT проверяет, если aspell или ispell доступны в системе (в этом порядке) и использует первое найденное.
Указывает (WhatsApp) обновления статуса. Уровень видимости чата:
0 = hidden
1 = visible and muted <- default
2 = visible
Определяет текст в суффикс вложения имен файлов в представлении сообщения для загрузки в процесс.
Указывает, должно ли новое сообщение запустить терминал колокола, когда активное окно терминала NCHAT.
Указывает, должно ли новое сообщение запустить терминал колокола, когда окно терминала NCHAT неактивно.
Указывает пользовательский заголовок терминала, пример: terminal_title=nchat - telegram .
Указывает, отображать ли верхнюю полосу. Контролируется CTRL-P во время выполнения.
Определяет, отображать ли версию NCHAT в верхней панели.
Указывает, следует ли отправлять введенный текст в качестве заголовка при передаче файла.
Определяет, обмениваться ли статус печати с другими пользователями (-ами) в разговоре.
Этот файл конфигурации содержит привязки ключа пользовательского интерфейса. Содержание по умолчанию:
backspace=KEY_BACKSPACE
backspace_alt=KEY_ALT_BACKSPACE
backward_kill_word=33177
backward_word=
begin_line=KEY_CTRLA
cancel=KEY_CTRLC
clear=KEY_CTRLC
copy=33143
cut=33170
decrease_list_width=3354
delete=KEY_DC
delete_chat=33144
delete_line_after_cursor=KEY_CTRLK
delete_line_before_cursor=KEY_CTRLU
delete_msg=KEY_CTRLD
down=KEY_DOWN
edit_msg=KEY_CTRLZ
end=KEY_END
end_line=KEY_CTRLE
ext_call=33164
ext_edit=33145
find=3357
find_next=3377
forward_msg=33162
forward_word=
goto_chat=33156
home=KEY_HOME
increase_list_width=3356
jump_quoted=33161
kill_word=
left=KEY_LEFT
linebreak=KEY_RETURN
next_chat=KEY_TAB
next_page=KEY_NPAGE
ok=KEY_RETURN
open=KEY_CTRLV
open_link=KEY_CTRLW
open_msg=33167
other_commands_help=KEY_CTRLO
paste=33166
prev_chat=KEY_BTAB
prev_page=KEY_PPAGE
quit=KEY_CTRLQ
react=33163
right=KEY_RIGHT
save=KEY_CTRLR
select_contact=KEY_CTRLN
select_emoji=KEY_CTRLS
send_msg=KEY_CTRLX
spell=3344
terminal_focus_in=KEY_FOCUS_IN
terminal_focus_out=KEY_FOCUS_OUT
terminal_resize=KEY_RESIZE
toggle_emoji=KEY_CTRLY
toggle_help=KEY_CTRLG
toggle_list=KEY_CTRLL
toggle_top=KEY_CTRLP
transfer=KEY_CTRLT
unread_chat=KEY_CTRLF
up=KEY_UP
Ключевые привязки могут быть указаны в следующих форматах:
KEY_CTRLK )0x22e )