| Linux | Mac |
|---|---|
NCHAT est un client de chat basé sur un terminal pour Linux et MacOS avec la prise en charge de Telegram et WhatsApp.

Usage:
nchat [OPTION]
Options de ligne de commande:
-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
Commandes interactives:
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
Commandes interactives pour le message sélectionné:
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
Commandes interactives pour l'entrée de texte:
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 est développé et testé sur Linux et MacOS. La version actuelle a été testée sur:
Créer / installer une version stable à l'aide de brew
brew tap d99kris/nchat
brew install nchat
Éventuellement, on peut désactiver les protocoles en utilisant --without-whatsapp et --without-telegram , par exemple:
brew install nchat --without-telegram
Construire / installer le dernier Git
yay -S nchat-git
Créer / installer une version stable
yay -S nchat
NCHAT se compose d'une grande base de code (principalement la bibliothèque télégramme TDLIB), alors soyez préparé pour une première fois de première construction relativement longue.
Se procurer une source
git clone https://github.com/d99kris/nchat && cd nchat
Si vous utilisez MacOS, Alpine, Arch, Fedora, Gentoo, Raspbian, Ubuntu ou Void, on peut utiliser le script make.sh fourni.
Dépendances
./make.sh deps
Construire / installer
./make.sh build && ./make.sh install
Dépendances
macos
brew install gperf cmake openssl ncurses ccache readline help2man sqlite libmagic go
Cambre
sudo pacman -S ccache cmake file go gperf help2man ncurses openssl readline sqlite zlib base-devel
Basé sur 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
Feutre
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
Vide
sudo xbps-install base-devel go ccache cmake gperf help2man libmagick-devel readline-devel sqlite-devel file-devel openssl-devel
Construire
mkdir -p build && cd build && cmake .. && make -s
Installer
sudo make install
Par défaut, NCHAT nécessite ~ 3,5 Go de RAM à construire en utilisant G ++ et ~ 1,5 Go de RAM avec Clang ++, mais il est possible de réduire la mémoire nécessaire, voir la construction sur des systèmes à faible mémoire.
Toutes les fonctionnalités NCHAT sont activées par défaut, mais il est possible de contrôler l'inclusion de certaines fonctionnalités à l'aide de drapeaux CMake, voir les indicateurs de fonctionnalité.
Afin de configurer / configurer un compte, il faut exécuter NCHAT en mode de configuration:
nchat --setup
Le mode de configuration invite le numéro de téléphone, qui doit être entré avec le code du pays. Exemple:
$ 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 vous n'êtes pas sûr du numéro de téléphone à saisir, ouvrez l'application Telegram sur le téléphone et appuyez sur le bouton du menu et utilisez le numéro s'y affiché (omettant des espaces, donc pour la capture d'écran ci-dessous, le numéro à saisir est +65111111111).

Une fois le processus de configuration terminé, l'interface utilisateur principale de NCHAT sera chargée.
Afin de configurer plusieurs protocoles / profils, quittez NCHAT et effectuez à nouveau l'étape de configuration.
Reportez-vous au débogage pour plus de détails.
Un groupe télégramme https://t.me/nchatusers est disponible pour les utilisateurs afin de discuter de l'utilisation NCHAT et de sujets connexes.
Les données de l'utilisateur sont stockées localement dans ~/.config/nchat . Les autorisations de fichiers par défaut permettent uniquement d'accéder à l'utilisateur, mais toute personne qui peut accéder aux fichiers privés d'un utilisateur peut également accéder aux données personnelles personnelles de l'utilisateur. Pour protéger contre les vecteurs d'attaque les plus simples, il peut être adapté d'utiliser le chiffrement du disque et de s'assurer que ~/.config/nchat n'est pas sauvegardé non crypté.
Les fichiers de configuration suivants (répertoriés avec les valeurs par défaut actuels) peuvent être utilisés pour configurer NCHAT.
Ce fichier de configuration contient des paramètres d'application généraux. Contenu par défaut:
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
Spécifie s'il faut détecter le type de fichier (audio, vidéo, image, document) et envoyer des pièces jointes comme ces types, au lieu d'envoyer toutes les pièces jointes comme type de document (qui laisse généralement le contenu de fichier d'origine intact).
Spécifie le niveau de prélecture de l'attachement:
0 = no prefetch (download upon open/save)
1 = selected (download upon message selection) <- default
2 = all (download when message is received)
Spécifie s'il faut activer la fonctionnalité du cache.
Spécifie s'il faut activer les vidages de noyau sur le crash de l'application.
Spécifie un chemin de répertoire de téléchargement personnalisé pour enregistrer les pièces jointes. S'il n'est pas spécifié, le Dir par défaut est ~/Downloads si existe, sinon ~ .
Spécifie si la boîte de dialogue Emoji doit répertorier tous les emojis, il est autrement limité à la liste des emojis qui rendent correctement dans les terminaux courants.
Spécifie s'il faut activer l'aperçu des liens dans les messages envoyés (télégramme uniquement).
Spécifie s'il faut vider les messages d'avertissement et d'erreur du journal à STDOUT à la sortie.
Détails du serveur proxy SOCKS5. Pour activer l'utilisation de proxy, host et port de paramètres sont requis, tandis que user et pass sont facultatifs (selon le serveur SOCKS). Remarque: Afin d'utiliser un proxy lors de la configuration de NCHAT la première fois, il est recommandé d'exécuter d'abord NCHAT sans arguments ( nchat ) pour sa configuration à créer, puis modifier les paramètres de proxy dans ~/.config/nchat/app.conf selon les besoins, avant d'exécuter nchat -s pour configurer un compte.
Spécifie s'il faut utiliser des horodatages de style ISO ( YYYY-MM-DD HH:MM ) dans l'interface utilisateur et à l'exportation de l'historique du chat. Par défaut, NCHAT utilise un format dynamique "respectueux de l'homme":
HH:MM pour les horodatages à la même date qu'aujourd'hui, par exemple 19:00DAY HH:MM pour les horodatages la semaine dernière, par exemple Mon 19:00DD MMM HH:MM pour les horodatages au cours de l'année en cours, par exemple 14 Nov 19:00DD MMM YYYY HH:MM pour les horodatages en année non courante, par exemple 14 Nov 2022 19:00DD MMM YYYY HH:MM pour les horodatages pendant l'exportation, par exemple 14 Nov 2022 19:00 Ce fichier de configuration contient des paramètres d'interface utilisateur généraux. Contenu par défaut:
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
Spécifie le texte pour préfixer les noms de fichiers d'attachement dans la vue de message.
Spécifie une commande personnalisée à utiliser pour ouvrir / visualiser les pièces jointes. La commande doit inclure %1 qui sera remplacée par le nom de fichier à ouvrir. S'il n'est pas spécifié, les commandes par défaut suivantes sont utilisées:
Linux: xdg-open >/dev/null 2>&1 '%1' &
macOS: open '%1' &
Remarque: omettez les commandes de fuite & de prise en charge du terminal, par exemple w3m -o confirm_qq=false '%1' et see '%1' .
Spécifie s'il faut indiquer le statut loin dans la barre supérieure tout en partageant l'état d'extérieur avec les autres utilisateurs. C'est-à-dire que le statut se lira à Away place Online lorsque le terminal est inactif (en supposant online_status_share=1 et online_status_dynamic=1 ).
Spécifie une commande personnalisée à utiliser pour démarrer un appel à l'aide d'un outil externe. La commande doit inclure %1 qui sera remplacée par le numéro de téléphone du contact. S'il n'est pas spécifié, les commandes par défaut suivantes sont utilisées:
Linux: xdg-open >/dev/null 2>&1 'tel://%1' &
macOS: open 'tel://%1' &
Spécifie si la boîte de dialogue de sélection de chat (utilisée lors du transfert du message) doit être triée par ordre alphabétique. Sinon, sa commande suit l'ordre de liste de discussion principale.
Spécifie s'il faut inciter l'utilisateur à confirmer lors de la suppression d'un message ou d'un chat.
Spécifie si le nouveau message doit déclencher une notification de bureau lorsque la fenêtre du terminal NCHAT est active.
Spécifie une commande personnalisée à utiliser pour les notifications de bureau. La commande peut inclure %1 (sera remplacée par sender name ou group name - sender name ) et %2 (sera remplacé par message text ) enfermé en citations uniques (pour empêcher l'injection de coquille). Commande par défaut utilisée, si elle n'est pas spécifiée:
Linux: notify-send 'nchat' '%1: %2'
macOS: osascript -e 'display notification "%1: %2" with title "nchat"'
Spécifie si le nouveau message doit déclencher une notification de bureau lorsque la fenêtre du terminal NCHAT est inactive.
Spécifie le texte pour suffixer des noms de fichiers de pièce jointe dans la vue de message pour les pièces jointes non encore téléchargées. Ceci est affiché uniquement pour attachment_prefetch <2.
Spécifie s'il faut afficher les emojis. Contrôlé par Ctrl-y en temps d'exécution.
Spécifie la hauteur de la zone d'entrée de texte.
Spécifie le texte pour suffixer des noms de fichiers de pièce jointe dans la vue de message pour les téléchargements échoués.
Spécifie une commande à utiliser pour la sélection de fichiers, à la place de la boîte de dialogue de sélection de fichiers interne utilisée lors de l'envoi de fichiers. La commande doit inclure %1 (un chemin de fichier temporaire) auquel la commande doit écrire son résultat. Exemples:
nnn: nnn -p '%1'
Ranger: ranger --choosefiles='%1'
Spécifie si la boîte de dialogue de sélection de fichiers doit persister le répertoire du dernier fichier sélectionné.
Spécifie s'il faut afficher la barre d'aide. Contrôlé par Ctrl-G en temps d'exécution.
Spécifie si le bouton home doit récupérer à plusieurs reprises tous les histoires de chat.
Spécifie si Entrée Appuyez sur la touche doit être lue comme FineFeed (LF 12 ). Sinon, lisez comme retour du chariot (Cr 15 ). Ce paramètre n'est pertinent que si key.conf utilise la valeur de clé numérique pour ENTER (LF 12 , CR 15 ). Le nom de clé KEY_RETURN mappe toujours à celui utilisé.
Spécifie une commande personnalisée à utiliser pour ouvrir / visualiser les liens. La commande doit inclure %1 qui sera remplacée par l'URL à ouvrir. S'il n'est pas spécifié, les commandes par défaut suivantes sont utilisées:
Linux: xdg-open >/dev/null 2>&1 '%1' &
macOS: open '%1' &
Remarque: omettez les commandes de fuite & de prise en charge du terminal, par exemple w3m -o confirm_qq=false '%1' et see '%1' .
Spécifie s'il faut afficher la liste des discussions. Contrôlé par Ctrl-l en temps d'exécution.
Spécifie la largeur de la liste de discussion.
Spécifie si les boîtes de dialogue de liste doivent afficher l'entrée du filtre de recherche par l'utilisateur.
Spécifie si NCHAT doit envoyer des reçus de lecture de message lors de la visualisation. Si False NCHAT ne marquera que les messages lus sur next_page (page Down), end (End) ou lors de l'envoi d'un message / fichier dans le chat.
Contrôle si NCHAT marque les messages dans le chat actuel comme lus tandis que le terminal est inactif.
Spécifie une commande personnalisée à utiliser pour l'éditeur externe Compose. S'il n'est pas spécifié, NCHAT utilisera la variable d'environnement EDITOR si elle est définie, ou utilise autrement nano .
Spécifie une commande personnalisée à utiliser pour ouvrir / visualiser la pièce du texte du message. S'il n'est pas spécifié, NCHAT utilisera la variable d'environnement PAGER si elle est définie, ou n'utilisera pas less .
Spécifie si la liste de discussion doit indiquer un statut non lu * pour les chats muets. Cela détermine également si ces chats sont inclus dans SUMP à non lus.
Spécifie s'il faut informer (Terminal Bell) de nouveaux messages non lus dans les chats en sourdine.
Spécifie si la position de la liste des discussions des chats en désuté devrait refléter l'heure de leur dernier message reçu / envoyé. Sinon, les chats en désordre sont répertoriés en dernier.
Partagez le statut en ligne avec les autres utilisateurs. Remarque: Désactivation de cela arrête les mises à jour sur les autres utilisateurs en ligne / tapant l'état de WhatsApp.
Mettre à jour dynamiquement le statut en ligne basé sur l'état actif du terminal. Remarque: l'activation de cela arrête les mises à jour sur les autres utilisateurs en ligne / tapant l'état de WhatsApp lorsque le terminal n'est pas actif.
Spécifie le texte de la barre d'état pour indiquer que le numéro de téléphone du chat actuel est disponible. Ce champ peut contenir %1 qui sera remplacé par le numéro de téléphone réel du contact. Autres exemples:
Spécifie le texte de la barre supérieure pour indiquer que le proxy est activé.
Spécifie le texte pour indiquer qu'un message a été lu par le récepteur.
Spécifie s'il faut afficher les réactions.
Spécifie une commande personnalisée à utiliser pour la vérification des messages composés. Si ce n'est pas spécifié, NCHAT vérifie si aspell ou ispell est disponible sur le système (dans cet ordre) et utilise le premier trouvé.
Spécifie le statut (WhatsApp) met à jour le niveau de visibilité du chat:
0 = hidden
1 = visible and muted <- default
2 = visible
Spécifie le texte pour suffixer des noms de fichiers de pièce jointe dans la vue de message pour les téléchargements en cours.
Spécifie si le nouveau message doit déclencher la cloche du terminal lorsque la fenêtre du terminal NCHAT est active.
Spécifie si le nouveau message doit déclencher la cloche du terminal lorsque la fenêtre du terminal NCHAT est inactive.
Spécifie le titre du terminal personnalisé, Ex: terminal_title=nchat - telegram .
Spécifie s'il faut afficher la barre supérieure. Contrôlé par CTRL-P en temps d'exécution.
Spécifie s'il faut afficher la version NCHAT dans la barre supérieure.
Spécifie si le texte entré doit être envoyé sous forme de légende lors du transfert d'un fichier.
Spécifie s'il faut partager l'état de frappe avec d'autres utilisateurs dans la conversation.
Ce fichier de configuration contient des liaisons de clés d'interface utilisateur. Contenu par défaut:
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
Les liaisons clés peuvent être spécifiées dans les formats suivants:
KEY_CTRLK )0x22e )