| Linux | Impermeable |
|---|---|
NCHAT es un cliente de chat basado en terminal para Linux y MacOS con soporte para Telegram y WhatsApp.

Uso:
nchat [OPTION]
Opciones de línea de comandos:
-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
Comandos interactivos:
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
Comandos interactivos para el mensaje seleccionado:
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
Comandos interactivos para la entrada de texto:
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 se desarrolla y prueba en Linux y MacOS. La versión actual ha sido probada en:
Construir / instalar la versión estable usando Brew
brew tap d99kris/nchat
brew install nchat
Opcionalmente, uno puede deshabilitar los protocolos utilizando --without-whatsapp y --without-telegram , por ejemplo:
brew install nchat --without-telegram
Construir / instalar el último git
yay -S nchat-git
Construir / instalar la versión estable
yay -S nchat
NCHAT consiste en una gran base de código (principalmente la biblioteca Telegram TDLIB), así que prepárate para un primer tiempo de construcción relativamente largo.
Obtener fuente
git clone https://github.com/d99kris/nchat && cd nchat
Si usa macOS, Alpine, Arch, Fedora, Gentoo, Raspbian, Ubuntu o Void, uno puede usar el script make.sh proporcionado.
Dependencias
./make.sh deps
Construir / instalar
./make.sh build && ./make.sh install
Dependencias
macosa
brew install gperf cmake openssl ncurses ccache readline help2man sqlite libmagic go
Arco
sudo pacman -S ccache cmake file go gperf help2man ncurses openssl readline sqlite zlib base-devel
DeBian (Ubuntu, Raspbian, etc.)
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
Fedora
sudo dnf install git cmake clang golang ccache file-devel file-libs gperf readline-devel openssl-devel ncurses-devel sqlite-devel zlib-devel
GENTOO
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
Vacío
sudo xbps-install base-devel go ccache cmake gperf help2man libmagick-devel readline-devel sqlite-devel file-devel openssl-devel
Construir
mkdir -p build && cd build && cmake .. && make -s
Instalar
sudo make install
Por defecto, NCHAT requiere ~ 3.5 GB de RAM para construir usando G ++ y ~ 1.5 GB de RAM con clang ++, pero es posible reducir la memoria necesaria, consulte la construcción de sistemas de memoria baja.
Todas las características de NCHAT están habilitadas de forma predeterminada, pero es posible controlar la inclusión de algunas características con banderas Cmake, consulte las banderas de funciones.
Para configurar / configurar una cuenta, se debe ejecutar NCHAT en modo de configuración:
nchat --setup
El modo de configuración solicita el número de teléfono, que se ingresará con el código de país. Ejemplo:
$ 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
Si no está seguro de qué número de teléfono ingresar, abra la aplicación Telegram en el teléfono y presione el botón de menú y use el número que se muestra allí (omitiendo los espacios, por lo que para la siguiente captura de pantalla el número de ingresar es +6511111111).

Una vez que se complete el proceso de configuración, se cargará la interfaz de usuario principal de NCHAT.
Para configurar múltiples protocolos/perfiles, salga de NCHAT y realice el paso de configuración nuevamente.
Consulte la depuración para más detalles.
Un grupo Telegram https://t.me/nchatusers está disponible para que los usuarios discutan el uso de NCHAT y los temas relacionados.
Los datos del usuario se almacenan localmente en ~/.config/nchat . Los permisos de archivo predeterminados solo permiten el acceso al usuario, pero cualquier persona que pueda obtener acceso a los archivos privados de un usuario también puede acceder a los datos personales de telegrama del usuario. Para proteger contra los vectores de ataque más simples, puede ser adecuado usar el cifrado de disco y garantizar ~/.config/nchat no está respaldado sin cifras.
Los siguientes archivos de configuración (enumerados con valores predeterminados actuales) se pueden usar para configurar NCHAT.
Este archivo de configuración contiene la configuración general de la aplicación. Contenido predeterminado:
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
Especifica si detectar el tipo de archivo (audio, video, imagen, documento) y enviar archivos adjuntos como esos tipos, en lugar de enviar todos los archivos adjuntos como tipo de documento (que generalmente deja intacto el contenido del archivo original).
Especifica el nivel de adjunto previo:
0 = no prefetch (download upon open/save)
1 = selected (download upon message selection) <- default
2 = all (download when message is received)
Especifica si habilitar la funcionalidad de caché.
Especifica si habilita los volcados de núcleo en el bloqueo de la aplicación.
Especifica una ruta de directorio de descargas personalizadas para guardar los archivos adjuntos. Si no se especifica, el DIR predeterminado es ~/Downloads si existe, de lo contrario ~ .
Especifica si el diálogo emoji debe enumerar todos los emojis, de lo contrario está restringido a los emojis enumerar que se convierte correctamente en terminales comunes.
Especifica si habilitar la vista previa para los enlaces en los mensajes enviados (solo telegrama).
Especifica si volcar los mensajes de registro de advertencia y error a STDOT al salir.
SOCKS5 Detalles del servidor proxy. Para habilitar el uso del proxy, los parámetros host y port son necesarios, mientras que user y pass son opcionales (dependiendo del servidor de calcetines). Nota: Para usar un proxy al configurar NCHAT la primera vez, se recomienda ejecutar primero NCHAT sin argumentos ( nchat ) para que se cree su DIR de configuración, y luego editar configuraciones de proxy en ~/.config/nchat/app.conf según sea necesario, antes de ejecutar nchat -s para configurar una cuenta.
Especifica si se debe usar marcas de tiempo de estilo ISO ( YYYY-MM-DD HH:MM ) en la interfaz de usuario y en la exportación de la historia de chat. Por defecto, NCHAT utiliza un formato dinámico "amigable para los humanos":
HH:MM para marcas de tiempo en la misma fecha que hoy, por ejemplo, 19:00DAY HH:MM para marcas de tiempo en la última semana, por ejemplo, Mon 19:00DD MMM HH:MM para marcas de tiempo en el año en curso, por ejemplo, 14 Nov 19:00DD MMM YYYY HH:MM para marcas de tiempo en un año no corriente, por ejemplo, 14 Nov 2022 19:00DD MMM YYYY HH:MM para marcas de tiempo durante la exportación, por ejemplo, 14 Nov 2022 19:00 Este archivo de configuración contiene la configuración general de la interfaz de usuario. Contenido predeterminado:
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
Especifica el texto para prefijo los nombres de archivo adjunto en la vista de mensajes.
Especifica un comando personalizado para usar para abrir/ver archivos adjuntos. El comando incluirá %1 que será reemplazado por el nombre de archivo para abrir. Si no se especifica, se utilizan los siguientes comandos predeterminados:
Linux: xdg-open >/dev/null 2>&1 '%1' &
MacOS: open '%1' &
Nota: omita el final & para los comandos que se apoderan del terminal, por ejemplo w3m -o confirm_qq=false '%1' y see '%1' .
Especifica si indicar el estado de visitante en la barra superior mientras comparte el estado de fuera con otros usuarios. Es decir, el estado se Away en lugar de Online cuando el terminal esté inactivo (suponiendo online_status_share=1 y online_status_dynamic=1 ).
Especifica un comando personalizado para usar para iniciar una llamada utilizando una herramienta externa. El comando incluirá %1 que será reemplazado por el número de teléfono del contacto. Si no se especifica, se utilizan los siguientes comandos predeterminados:
Linux: xdg-open >/dev/null 2>&1 'tel://%1' &
MacOS: open 'tel://%1' &
Especifica si el cuadro de diálogo de selección de chat (utilizado al reenviar el mensaje) debe ordenarse alfabéticamente. Si no, su orden sigue el orden principal de la lista de chat.
Especifica si solicitar al usuario la confirmación al eliminar un mensaje o un chat.
Especifica si el nuevo mensaje activará la notificación de escritorio cuando la ventana del terminal NCHAT esté activa.
Especifica un comando personalizado para usar para notificaciones de escritorio. El comando puede incluir %1 (será reemplazado por sender name o group name - sender name ) y %2 (se reemplazará por message text ) encerrado en cotizaciones individuales (para evitar la inyección de shell). Comando predeterminado utilizado, si no se especifica:
Linux: notify-send 'nchat' '%1: %2'
MacOS: osascript -e 'display notification "%1: %2" with title "nchat"'
Especifica si el nuevo mensaje activará la notificación de escritorio cuando la ventana del terminal NCHAT esté inactiva.
Especifica los nombres de archivo de archivo adjunto de texto a sufijo en la vista de mensajes para los archivos adjuntos aún no descargados. Esto solo se muestra para attachment_prefetch <2.
Especifica si mostrar emojis. Controlado por CTRL-Y en tiempo de ejecución.
Especifica la altura del área de entrada de texto.
Especifica los nombres de archivo de archivo adjunto de texto a sufijo en la vista de mensajes para descargas fallidas.
Especifica un comando para usar para la selección de archivos, en lugar del cuadro de diálogo de selección de archivos interno utilizado al enviar archivos. El comando incluirá %1 (una ruta de archivo temporal) en la que el comando debe escribir su resultado. Ejemplos:
nnn: nnn -p '%1'
Ranger: ranger --choosefiles='%1'
Especifica si el cuadro de diálogo de selección de archivos persistirá en el directorio del último archivo seleccionado.
Especifica si mostrar la barra de ayuda. Controlado por CTRL-G en tiempo de ejecución.
Especifica si el botón home debe buscar repetidamente todos los historial de chat.
Especifica si la tecla ENTER Presione debe leerse como Linefeed (LF 12 ). De lo contrario, lea como retorno del carro (CR 15 ). Esta configuración solo es relevante si key.conf utiliza un valor de clave numérica para Enter (LF 12 , CR 15 ). El nombre de la tecla KEY_RETURN siempre se asigna a la que se usa.
Especifica un comando personalizado para usar para abrir/ver enlaces. El comando incluirá %1 que será reemplazado por la URL para abrir. Si no se especifica, se utilizan los siguientes comandos predeterminados:
Linux: xdg-open >/dev/null 2>&1 '%1' &
MacOS: open '%1' &
Nota: omita el final & para los comandos que se apoderan del terminal, por ejemplo w3m -o confirm_qq=false '%1' y see '%1' .
Especifica si muestra la lista de chat. Controlado por CTRL-L en tiempo de ejecución.
Especifica el ancho de la lista de chat.
Especifica si los diálogos de la lista deben mostrar la entrada del filtro de búsqueda por el usuario.
Especifica si NCHAT debe enviar recibos de lectura de mensajes al ver. Si False NCHAT solo marcará los mensajes leídos en next_page (Page Down), end (End) o al enviar un mensaje/archivo en el CHAT.
Controla si NCHAT marca los mensajes en el chat actual como se lee mientras el terminal está inactivo.
Especifica un comando personalizado para usar para componer el editor externo. Si no se especifica, NCHAT utilizará la variable de entorno EDITOR si se establece o usará nano .
Especifica un comando personalizado para usar para abrir/ver la parte del texto del mensaje. Si no se especifica, NCHAT usará la variable de entorno PAGER si está establecido o usará less .
Especifica si la lista de chat debe indicar el estado no leído * para los chats apagados. Esto también determina si los chats se incluyen en salto a no leído.
Especifica si notificar (Terminal Bell) nuevos mensajes no leídos en chats apagados.
Especifica si la posición de la lista de chat de los chats apagados debe reflejar la hora de su último mensaje recibido/enviado. De lo contrario, los chats apagados se enumeran al final.
Comparta el estado en línea con otros usuarios. Nota: Deshabilitar esto detiene las actualizaciones de otros usuarios en línea/estado de escritura para WhatsApp.
Actualice dinámicamente el estado en línea basado en el estado activo terminal. Nota: Habilitar esto detiene las actualizaciones de otros usuarios en línea/estado de escritura para WhatsApp cuando el terminal no está activo.
Especifica el texto de la barra de estado para indicar que el número de teléfono del chat actual está disponible. Este campo puede contener %1 que se reemplazará con el número de teléfono real del contacto. Otros ejemplos:
Especifica el texto de la barra superior para indicar que Proxy está habilitado.
Especifica el texto para indicar que el receptor ha leído un mensaje.
Especifica si mostrar reacciones.
Especifica un comando personalizado para usar para el control de hechizos los mensajes compuestos. Si no se especifica, NCHAT verifica si aspell o ispell están disponibles en el sistema (en ese orden), y usa el primero encontrado.
Especifica (WhatsApp) Actualizaciones de estado Nivel de visibilidad de chat:
0 = hidden
1 = visible and muted <- default
2 = visible
Especifica los nombres de archivo de archivo adjunto de texto a sufijo en la vista de mensajes para descargas en progreso.
Especifica si el nuevo mensaje activará la campana terminal cuando la ventana del terminal NCHAT esté activa.
Especifica si el nuevo mensaje activará la campana terminal cuando la ventana del terminal NCHAT esté inactivo.
Especifica el título de terminal personalizado, ex: terminal_title=nchat - telegram .
Especifica si mostrar la barra superior. Controlado por CTRL-P en tiempo de ejecución.
Especifica si mostrar la versión NCHAT en la barra superior.
Especifica si el texto ingresado debe enviarse como un título al transferir un archivo.
Especifica si compartir el estado de escritura con otros usuarios en la conversación.
Este archivo de configuración contiene los enlaces de clave de la interfaz de usuario. Contenido predeterminado:
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
Los enlaces de clave pueden especificarse en los siguientes formatos:
KEY_CTRLK )0x22e )