From 18a579a204abfdd275963a255ac18ba426a6ae68 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 4 Oct 2021 10:48:56 +0200 Subject: [PATCH 01/11] Flags --- README.md | 56 +++++++++++++++++++++++++++---- assets/images/flags/br.png | Bin 0 -> 11087 bytes assets/images/flags/cn.png | Bin 0 -> 6968 bytes assets/images/flags/de.png | Bin 0 -> 5207 bytes assets/images/flags/dk.png | Bin 0 -> 6075 bytes assets/images/flags/es.png | Bin 0 -> 5339 bytes assets/images/flags/fr.png | Bin 0 -> 5391 bytes assets/images/flags/it.png | Bin 0 -> 5203 bytes assets/images/flags/jp.png | Bin 0 -> 7604 bytes assets/images/flags/kr.png | Bin 0 -> 10285 bytes assets/images/flags/nl.png | Bin 0 -> 5322 bytes assets/images/flags/ru.png | Bin 0 -> 5257 bytes assets/images/flags/us.png | Bin 0 -> 484 bytes docs/{man-en.md => man.md} | 0 docs/zh-CN/README.md | 0 docs/{man-zh.md => zh-CN/man.md} | 0 16 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 assets/images/flags/br.png create mode 100644 assets/images/flags/cn.png create mode 100644 assets/images/flags/de.png create mode 100644 assets/images/flags/dk.png create mode 100644 assets/images/flags/es.png create mode 100644 assets/images/flags/fr.png create mode 100644 assets/images/flags/it.png create mode 100644 assets/images/flags/jp.png create mode 100644 assets/images/flags/kr.png create mode 100644 assets/images/flags/nl.png create mode 100644 assets/images/flags/ru.png create mode 100644 assets/images/flags/us.png rename docs/{man-en.md => man.md} (100%) create mode 100644 docs/zh-CN/README.md rename docs/{man-zh.md => zh-CN/man.md} (100%) diff --git a/README.md b/README.md index 0ed91914..4e19eb97 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,55 @@ User manual

+

+ English +   + Deutsch +   + Español +   + Français +   + Italiano +   + 简体中文 +

+

Developed by @veeso

Current version: 0.7.0 (12/10/2021)

@@ -117,12 +166,7 @@ If you like termscp and you'd love to see the project to grow, please consider a ## User manual and Documentation 📚 -The user manual can be found on the [termscp's website](https://veeso.github.io/termscp/#user-manual) or on Github: - -- [User manual](docs/man-en.md) -- [用户手册](docs/man-zh.md) - -A translation of the user manual in other languages would be really appreciated 😉 +The user manual can be found on the [termscp's website](https://veeso.github.io/termscp/#user-manual) or on [Github](docs/man.md). The developer documentation can be found on Rust Docs at diff --git a/assets/images/flags/br.png b/assets/images/flags/br.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8ebc41bc9a185c4e339473189f31edbb3a4777 GIT binary patch literal 11087 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 L@Ss*MU!U}Elh=`- literal 0 HcmV?d00001 diff --git a/assets/images/flags/es.png b/assets/images/flags/es.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5f8e6d33558b1e1279664594f40771a81e18a6 GIT binary patch literal 5339 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 literal 0 HcmV?d00001 diff --git a/assets/images/flags/fr.png b/assets/images/flags/fr.png new file mode 100644 index 0000000000000000000000000000000000000000..af2c274ba36315704be8d1291dd11389d114c7c0 GIT binary patch literal 5391 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 OkMQyEbFXlVO#2@en^vm; literal 0 HcmV?d00001 diff --git a/assets/images/flags/it.png b/assets/images/flags/it.png new file mode 100644 index 0000000000000000000000000000000000000000..d28e565a31759d2800087556cb51b954c3d8d190 GIT binary patch literal 5203 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 ahXKAi^?saAsirhsfVzs7@>@lVyZ-??g%|(; literal 0 HcmV?d00001 diff --git a/assets/images/flags/kr.png b/assets/images/flags/kr.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1b8f93c7c8be0c0a1d60dc3716ccc1ad5231f9 GIT binary patch literal 10285 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 TlScx?Vg=~y7-?5&+K2rQ06&q> literal 0 HcmV?d00001 diff --git a/assets/images/flags/nl.png b/assets/images/flags/nl.png new file mode 100644 index 0000000000000000000000000000000000000000..1255adf321a2db45b46cb95be671749865352e7a GIT binary patch literal 5322 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 Date: Mon, 4 Oct 2021 16:02:40 +0200 Subject: [PATCH 02/11] It, zh-CN --- README.md | 26 +-- docs/it/README.md | 242 ++++++++++++++++++++++ docs/it/man.md | 484 +++++++++++++++++++++++++++++++++++++++++++ docs/man.md | 15 +- docs/zh-CN/README.md | 243 ++++++++++++++++++++++ docs/zh-CN/man.md | 15 +- 6 files changed, 992 insertions(+), 33 deletions(-) create mode 100644 docs/it/README.md create mode 100644 docs/it/man.md diff --git a/README.md b/README.md index 4e19eb97..bbaaa88d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ English   @@ -25,7 +25,7 @@ href="https://github.com/veeso/termscp/blob/main/docs/de/README.md" >Deutsch   @@ -33,7 +33,7 @@ href="https://github.com/veeso/termscp/blob/main/docs/es/README.md" >Español   @@ -41,7 +41,7 @@ href="https://github.com/veeso/termscp/blob/main/docs/fr/README.md" >Français   @@ -49,7 +49,7 @@ href="https://github.com/veeso/termscp/blob/main/docs/it/README.md" >Italiano   @@ -57,7 +57,7 @@ href="https://github.com/veeso/termscp/blob/main/docs/zh-CN/README.md" >简体中文

@@ -73,7 +73,7 @@ ## About termscp 🖥 -Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **FreeBSD** and **Windows** compatible and supports SFTP, SCP, FTP, FTPS and S3. +Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **FreeBSD** and **Windows** compatible. ![Explorer](assets/images/explorer.gif) @@ -109,7 +109,7 @@ Termscp is a feature rich terminal file transfer and explorer, with support for ## Get started 🚀 If you're considering to install termscp I want to thank you 💜 ! I hope you will enjoy termscp! -If you want to contribute to this project, don't forget to check out our contribute guide. [Read More](CONTRIBUTING.md) +If you want to contribute to this project, don't forget to check out our [contribute guide](CONTRIBUTING.md). If you are a Linux, a FreeBSD or a MacOS user this simple shell script will install termscp on your system with a single command: @@ -133,7 +133,7 @@ For more information or other platforms, please visit [veeso.github.io](https:// - libssh - libdbus-1 - pkg-config -- **BSD** users: +- **FreeBSD** users: - libssh - dbus - pkgconf @@ -142,7 +142,7 @@ For more information or other platforms, please visit [veeso.github.io](https:// These requirements are not forcely required to run termscp, but to enjoy all of its features -- **Linux/BSD** users: +- **Linux/FreeBSD** users: - To **open** files via `V` (at least one of these) - *xdg-open* - *gio* @@ -156,9 +156,9 @@ These requirements are not forcely required to run termscp, but to enjoy all of --- -## Buy me a coffee ☕ +## Support me ☕ -If you like termscp and you'd love to see the project to grow, please consider a little donation 🥳 +If you like termscp and you'd love to see the project to grow and to improve, please consider a little donation to support me on **Buy me a coffee** 🥳 [![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) @@ -221,7 +221,7 @@ View termscp's changelog [HERE](CHANGELOG.md) ## Powered by 💪 -termscp is powered by these aweseome projects: +termscp is powered by these awesome projects: - [bytesize](https://github.com/hyunsik/bytesize) - [crossterm](https://github.com/crossterm-rs/crossterm) diff --git a/docs/it/README.md b/docs/it/README.md new file mode 100644 index 00000000..046d5c77 --- /dev/null +++ b/docs/it/README.md @@ -0,0 +1,242 @@ +# termscp + +

+ +

+ +

~ Un file transfer ricco di funzionalità ~

+

+ Sito + · + Installazione + · + Manuale utente +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Italiano +   + 简体中文 +

+ +

Sviluppato da @veeso

+

Versione corrente: 0.7.0 (12/10/2021)

+ +[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) + +[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) + +--- + +## Riguardo termscp 🖥 + +Termscp è un file transfer ed explorer ricco di funzionalità, con supporto a SCP/SFTP/FTP/S3. Basicamente è un utility su terminale con una terminal user-interface per connettersi a server remoti per scambiare file ed interagire con il file system sia locale che remoto. È compatibile con **Linux**, **MacOS**, **FreeBSD** e **Windows**. + +![Explorer](/assets/images/explorer.gif) + +--- + +## Funzionalità 🎁 + +- 📁 Diversi protocolli di comunicazione + - **SFTP** + - **SCP** + - **FTP** and **FTPS** + - **Aws S3** +- 🖥 Esplora e opera sia sul file system locale che su quello remoto con una UI di facile utilizzo. + - Crea, rimuove, rinomina, cerca, visualizza e modifica file +- ⭐ Connettiti ai tuoi host preferiti tramite la funzionalità integrata dei segnalibri e delle connessioni recenti. +- 📝 Visualizza e modifica i file tramite le tue applicazioni preferite. +- 💁 Autenticazione su server SFTP/SCP tramite chiavi SSH e/o username/password +- 🐧 Compatibile con Windows, Linux, FreeBSD e MacOS +- 🎨 Customizzalo! + - Temi + - Formattazione dell'explorer + - Impostazione del text editor predefinito + - Imposta l'ordinamento di file e cartelle + - e tanto altro... +- 📫 Ricevi notifiche desktop quando un file di cospicue dimensioni è stato trasferito +- 🔐 Salva le password degli host remoti nel keyring predefinito dal tuo sistema operativo +- 🦀 Rust-powered +- 👀 Progettato tenendo conto delle performance +- 🦄 Aggiornamenti frequenti con nuove funzionalità + +--- + +## Per iniziare 🚀 + +Intanto se stai considerando di installare termscp, ti voglio ringraziare 💜 e spero che termscp ti piacerà! +Se vuoi contribuire al progetto, non dimenticarti di leggere la [contribute guide](../../CONTRIBUTING.md). + +Se sei un utente che utilizza Linux, FreeBSD o MacOS, questo shell script installerà termscp sul tuo sistema con un comando secco: + +```sh +curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh +``` + +mentre se sei un utente Windows, puoi installare termscp con [Chocolatey](https://chocolatey.org/): + +```sh +choco install termscp +``` + +Per ulteriori informazioni sui metodi di installazione su altre piattaforme, visita [veeso.github.io](https://veeso.github.io/termscp/#get-started). + +⚠️ Se stavi cercando come aggiornare la tua versione di termscp, puoi semplicemente lanciare termscp con questi argomenti: `(sudo) termscp --update` ⚠️ + +### Requisiti ❗ + +- Utenti **Linux**: + - libssh + - libdbus-1 + - pkg-config +- Utenti **FreeBSD**: + - libssh + - dbus + - pkgconf + +### Requisiti opzionali ✔️ + +Questi requisiti non sono per forza necessari, ma lo sono per sfruttare tutte le sue funzionalità: + +- Utenti **Linux/FreeBSD**: + - Per **aprire** i file con `V` (almeno uno di questi) + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- Utenti **Linux**: + - Un keyring manager: Approfondisci nel [Manuale](man.md#linux-keyring) +- Utenti **WSL** + - Per **aprire** i file con `V` (almeno uno di questi) + - [wslu](https://github.com/wslutilities/wslu) + +--- + +## Supportami ☕ + +Se ti piace termscp e ti piacerebbe vedere il progetto crescere e migliorare, considera una piccola donazione su **Buy me a coffee** 🥳. + +[![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) + +--- + +## Manuale e documentazione 📚 + +Il manuale utente lo puoi trovare sul [sito di termscp](https://veeso.github.io/termscp/#user-manual) o su [Github](man.md). + +La documentazione per sviluppatori la puoi trovare su Rust Docs . + +--- + +## Problemi noti 🧻 + +- `NoSuchFileOrDirectory` alla connessione (WSL1): Dovrebbe essere sufficiente non installare termscp con Cargo, ma piuttosto con uno dei pacchetti forniti tramite lo script di installazione `install.sh`. Si tratta di un problema legato esclusivamente a WSL1 e non è chiaro cosa accada alla connessione, ma è sicuramente legato al percorso del file. + +--- + +## Contributi e issues 🤝🏻 + +Contributi, report di bug, nuove funzionalità e domande sono i benvenuti! 😉 +Se hai qualche domanda o dubbio o vuoi suggerire una nuova funzionalità, sentiti libero di aprire un issue o una PR. + +Per favore segui le nostre [contributing guidelines](../../CONTRIBUTING.md) + +--- + +## Changelog ⏳ + +Visualizza [Qui](../../CHANGELOG.md) il changelog + +--- + +## Un grazie a questi progetti 💪 + +se termscp esiste, è anche grazie a questi fantastici progetti: + +- [bytesize](https://github.com/hyunsik/bytesize) +- [crossterm](https://github.com/crossterm-rs/crossterm) +- [edit](https://github.com/milkey-mouse/edit) +- [keyring-rs](https://github.com/hwchen/keyring-rs) +- [open-rs](https://github.com/Byron/open-rs) +- [rpassword](https://github.com/conradkleinespel/rpassword) +- [rust-s3](https://github.com/durch/rust-s3) +- [self_update](https://github.com/jaemk/self_update) +- [ssh2-rs](https://github.com/alexcrichton/ssh2-rs) +- [suppaftp](https://github.com/veeso/suppaftp) +- [textwrap](https://github.com/mgeisler/textwrap) +- [tui-rs](https://github.com/fdehau/tui-rs) +- [tui-realm](https://github.com/veeso/tui-realm) +- [whoami](https://github.com/libcala/whoami) +- [wildmatch](https://github.com/becheran/wildmatch) + +--- + +## Galleria 🎬 + +> Termscp Home + +![Auth](/assets/images/auth.gif) + +> Bookmarks + +![Bookmarks](/assets/images/bookmarks.gif) + +> Configurazione + +![Setup](/assets/images/config.gif) + +> Text editor + +![TextEditor](/assets/images/text-editor.gif) + +--- + +## Licenza 📃 + +termscp è fornito sotto licenza MIT. + +Puoi leggere l'intero documento di licenza [Qui](../../LICENSE) diff --git a/docs/it/man.md b/docs/it/man.md new file mode 100644 index 00000000..f964ebc7 --- /dev/null +++ b/docs/it/man.md @@ -0,0 +1,484 @@ +# Manuale utente 🎓 + +- [Manuale utente 🎓](#manuale-utente-) + - [Argomenti da linea di comando ❓](#argomenti-da-linea-di-comando-) + - [Argomento indirizzo 🌎](#argomento-indirizzo-) + - [Argomento indirizzo per AWS S3](#argomento-indirizzo-per-aws-s3) + - [Come fornire la password 🔐](#come-fornire-la-password-) + - [File explorer 📂](#file-explorer-) + - [Abbinamento tasti ⌨](#abbinamento-tasti-) + - [Lavora su più file 🥷](#lavora-su-più-file-) + - [Synchronized browsing ⏲️](#synchronized-browsing-️) + - [Apri e apri con 🚪](#apri-e-apri-con-) + - [Segnalibri ⭐](#segnalibri-) + - [Le mie password sono al sicuro 😈](#le-mie-password-sono-al-sicuro-) + - [Linux Keyring](#linux-keyring) + - [KeepassXC setup per termscp](#keepassxc-setup-per-termscp) + - [Credenziali Aws S3 🦊](#credenziali-aws-s3-) + - [Configurazione ⚙️](#configurazione-️) + - [SSH Key Storage 🔐](#ssh-key-storage-) + - [File Explorer Format](#file-explorer-format) + - [Temi 🎨](#temi-) + - [Il tema non carica 😱](#il-tema-non-carica-) + - [Stili 💈](#stili-) + - [Pagina autenticazione](#pagina-autenticazione) + - [Pagina explorer e trasferimento](#pagina-explorer-e-trasferimento) + - [Misc](#misc) + - [Editor di testo ✏](#editor-di-testo-) + - [Logging 🩺](#logging-) + - [Notifiche 📫](#notifiche-) + +## Argomenti da linea di comando ❓ + +termscp può essere lanciato con questi argomenti: + +`termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]` + +- `-P, --password ` Se viene fornito l'argomento indirizzo, questa sarà la password utilizzata per autenticarsi +- `-c, --config` Apri la configurazione di termscp +- `-q, --quiet` Disabilita i log +- `-t, --theme ` Importa il tema al percorso fornito +- `-u, --update` Aggiorna termscp all'ultima versione +- `-v, --version` Mostra a video le informazioni sulla versione attualmente installata +- `-h, --help` Mostra la pagina di aiuto. + +termscp può venire lanciato in due modalità diverse. Se nessun argomento posizionale viene fornito, termscp mostrerà il form di autenticazione, dove l'utente potrà fornire i parametri di connessione necessari. +Alternativamente, l'utente può fornire l'argomento posizionale "indirizzo" per connettersi direttamente all'host fornito. +Se viene fornito anche il secondo argomento posizionale, ovvero la directory locale, termscp avvierà l'explorer locale sul percorso fornito. + +### Argomento indirizzo 🌎 + +L'argomento indirizzo ha la sintassi seguente: + +```txt +[protocollo://][username@][:porta][:wrkdir] +``` + +Vediamo qualche esempio per questa sintassi, dal momento che risulta molto comodo connettersi tramite questa modalità: + +- Connessione utilizzando il protocollo di default (definito in configurazione) a 192.168.1.31, la porta sarà quella di default per il protocollo di default. Il nome utente è quello attualmente attivo sulla propria macchina: + + ```sh + termscp 192.168.1.31 + ``` + +- Connessione con protocollo di default a 192.168.1.31, utente è `root`: + + ```sh + termscp root@192.168.1.31 + ``` + +- Connessione usando `scp`, la porta è 4022, l'utente è `omar`: + + ```sh + termscp scp://omar@192.168.1.31:4022 + ``` + +- Connessione via `scp`, porta 4022, utente `omar`, l'explorer si avvierà in `/tmp`: + + ```sh + termscp scp://omar@192.168.1.31:4022:/tmp + ``` + +#### Argomento indirizzo per AWS S3 + +Aws S3 ha una sintassi differente dal classico argomento indirizzo, per ovvie ragioni, in quanto S3 non ha la porta o l'host o l'utente. Ho deciso però di mantenere una sintassi il più simile possibile a quella "tradizionale": + +```txt +s3://@[:profile][:/wrkdir] +``` + +e.g. + +```txt +s3://buckethead@eu-central-1:default:/assets +``` + +#### Come fornire la password 🔐 + +Quando si usa l'argomento indirizzo non è possibile fornire la password direttamente nell'argomento, esistono però altri metodi per farlo: + +- Argomento `-P, --password `: Passa direttamente la password nell'argomento. Non lo consiglio particolarmente questo metodo, in quanto la password rimarrebbe nella history della shell in chiaro. +- Tramite `sshpass`: puoi fornire la password tramite l'applicazione GNU/Linux sshpass `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` +- Forniscila quando richiesta: se non la fornisci tramite nessun metodo precedente, alla connessione ti verrà richiesto di fornirla in un prompt che la oscurerà (come avviene con sudo tipo). + +--- + +## File explorer 📂 + +Quando ci riferiamo al file explorer in termscp, intendiamo i pannelli che puoi vedere quando stabilisci una connessione con il server remoto. +Questi pannelli sono 3 (e non 2 come sembra): + +- Pannello locale: viene visualizzato sulla sinistra del tuo schermo e mostra la cartella sul file system locale. +- Pannello remoto: viene visualizzato sulla destra del tuo schermo e mostra la cartella sul file system remoto. +- Pannello di ricerca: viene visualizzato a destra o a sinistra in base a dove stai cercando dei file. Questo pannello mostra i file che matchano al pattern cercato sull'host. + +Per cambiare pannello ti puoi muovere con le frecce, `` per andare sul pannello locale e `` per andare su quello remoto. Attenzione che quando è attivo il pannello ricerca non puoi spostarti sugli altri pannelli e devi prima chiuderlo con ``. + +### Abbinamento tasti ⌨ + +| Key | Command | Reminder | +|---------------|-------------------------------------------------------|-------------| +| `` | Disconnettiti; chiudi popup | | +| `` | Cambia tra explorer e pannello di log | | +| `` | Vai alla directory precedente | | +| `` | Vai al pannello remoto | | +| `` | Vai al pannello locale | | +| `` | Muovi il cursore verso l'alto | | +| `` | Muovi il cursore verso il basso | | +| `` | Muovi il cursore verso l'alto di 8 | | +| `` | Muovi il cursore verso il basso di 8 | | +| `` | Entra nella directory | | +| `` | Upload / download file selezionato/i | | +| `` | Mostra/nascondi file nascosti | All | +| `` | Ordina file per | Bubblesort? | +| `` | Copia file/directory | Copy | +| `` | Crea directory | Directory | +| `` | Elimina file (Come `DEL`) | Erase | +| `` | Cerca file (wild match supportato) | Find | +| `` | Vai al percorso indicato | Go to | +| `` | Mostra help | Help | +| `` | Mostra informazioni per il file selezionato | Info | +| `` | Ricarica posizione corrente / pulisci selezione file | List | +| `` | Seleziona file | Mark | +| `` | Crea nuovo file con il nome fornito | New | +| `` | Modifica file; Vedi text editor | Open | +| `` | Termina termscp | Quit | +| `` | Rinomina file | Rename | +| `` | Salva file con nome | Save | +| `` | Vai alla directory padre | Upper | +| `` | Apri il file con il programma definito dal sistema | View | +| `` | Apri il file con il programma specificato | With | +| `` | Esegui comando shell | eXecute | +| `` | Abilita/disabilita Sync-Browsing | sYnc | +| `` | Rimuovi file | | +| `` | Seleziona tutti i file | | +| `` | Annulla trasferimento file | | + +### Lavora su più file 🥷 + +Puoi lavorare su una selezione di file, marcandoli come selezionati tramite ``, per selezionare il file corrente o con ``; fai lo stesso per disabilitarlo. Mentre abilitato, sull'interfaccia dovrebbe essere visualizzato `Sync Browsing: ON` nella barra di stato. + +> ❗ Al momento, se provi ad accedere ad una cartella non esistente su uno dei due host, mentre il sync browsing è attivo, non ti verrà chiesto di crearla, ma semplicemente fallirà. Questo sarà risolto in un aggiornamento futuro. + +### Apri e apri con 🚪 + +I comandi "apri" e "apri con" sono forniti da [open-rs](https://docs.rs/crate/open/2.1.0). +Quando apri un file (``), l'applicazione predefinita di sistema sarà utilizzata per aprire il file. Per fare ciò, sul tuo sistema dovrà essere usato il servizio di default del sistema. + +- **Windows**: non devi installare niente, è già presente sul sistema. +- **MacOS**: non devi installare niente, è già presente sul sistema. +- **Linux**: uno di questi dev'essere presente (potrebbe già esserlo): + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **WSL**: *wslview* è richiesto, lo puoi installare tramite questa suite [wslu](https://github.com/wslutilities/wslu). + +> Q: Posso modificare i file su remoto tramite la funzionalità "apri" / "apri con"? +> A: No, almeno non direttamente dal pannello remoto. Devi prima scaricarlo in locale, modificarlo e poi ricaricarlo. Questo perché il file remoto viene scaricato come file temporaneo in locale, ma non esiste poi un modo per sapere quando è stato modificato e quando l'utente ha effettivamente finito di lavorarci. + +--- + +## Segnalibri ⭐ + +In termscp è possibile salvare i tuoi host preferiti tramite i segnalibri al fine di connettersi velocemente ad essi. +Termscp salverà anche gli ultimi 16 host ai quali ti sei connesso. +Questa funzionalità ti permette di caricare tutti i parametri necessari per connettersi ad un certo host, semplicemente selezioandolo dal tab dei preferiti nel form di autenticazione. + +I preferiti saranno salvati se possibile presso: + +- `$HOME/.config/termscp/` su Linux/BSD +- `$HOME/Library/Application Support/termscp` su MacOs +- `FOLDERID_RoamingAppData\termscp\` su Windows + +Per i segnalibri (ma non per le connessioni recenti), è anche possibile salvare la password. La password non viene salvata di default e deve essere specificato tramite apposita opzione, al momento della creazione del segnalibro stesso. +Se sei preoccupato riguardo alla sicurezza della password per i segnalibri, dai un'occhiata al capitolo qui sotto 👀. + +Per creare un segnalibro, segui questa procedura: + +1. Inserisci i parametri per connetterti all'host che vuoi inserire come segnalibro nell'authentication form. +2. Premi `` +3. Inserisci il nome che vuoi dare al bookmark +4. Seleziona nel radio button se salvare la password +5. Premi `` per salvare + +Quando vuoi caricare un segnalibro, premi `` e naviga nella lista dei segnalibri fino al segnalibro che vuoi caricare, quindi premi ``. + +![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) + +### Le mie password sono al sicuro 😈 + +Certo 😉. +Come detto in precedenza, i segnalibri sono salvati nella cartella delle configurazioni insieme alle password. Le password però non sono in chiaro, ma bensì sono criptate con **AES-128**. Questo le rende sicure? Sì! Does this make them safe? (salvo che per gli utenti di FreeBSD e WSL 😢) + +In **Windows**, **Linux** and **MacOS** la chiave per criptare le password è salvata, se possibile, rispettivamente nel *Windows Vault*, nel *system keyring* e nel *Keychain*. Questo sistema è super-sicuro, in quanto garantito direttamente dal tuo sistema operativo. + +❗ Attenzione che se sei un utente Linux, dovresti leggere il capitolo qui sotto riguardante il linux keyring 👀, questo perché il keyring potrebbe non essere ancora presente sul tuo sistema. + +Su *FreeBSD* e *WSL*, d'altro canto, la chiave utilizzata per criptare le password è salvata su file presso (at $HOME/.config/termscp). È quindi possibile per un malintenzionato ottenere la chiave. Per fortuna essendo sotto la tua home, non dovrebbe essere possibile accedere al file, se non con il tuo utente, ma comunque per sicurezza ti consiglio di non salvare dati sensibili 😉. + +#### Linux Keyring + +Tutti gli amanti di Linux lo preferiscono per la libertà che questo dà agli utenti nella personalizzazione. Allo stesso tempo però questo spesso comporta degli effetti collaterali, tra cui la mancanza spesso di un'imposizione da parte dei creatori delle distro di standard e applicazioni e questo fatto coinvolge anche la questione del keyring. +Su alcuni sistemi di default, non c'è nessun provider di keyring, perché la distro dà all'utente la possibilità di sceglierne uno. +termscp richiede un servizio D-BUS che fornisce `org.freedesktop.secrets` e purtroppo ci sono ad oggi solo due servizi mantenuti che lo supportano. + +- ❗ Se usi GNOME come Desktop environment (come gli utenti Ubuntu), dovresti già averne uno installato sul sistema, chiamato `gnome-keyring` e quindi dovrebbe già funzionare tutto. +- ❗ Se invece usi un altro DE, dovresti installare [KeepassXC](https://keepassxc.org/), che io per esempio utilizzo sul mio Manjaro Linux (con KDE) e funziona piuttosto bene. L'unico problema è che dovrai fare il setup per farlo funzionare. Per farlo puoi leggere il tutorial [qui](#keepassxc-setup-per-termscp) +- ❗ Se non volessi installare uno di questi servizi, termscp funzionerà come sempre, l'unica differenza sarà che salverà la chiave di crittazione su un file, come fa per FreeBSD e WSL. + +##### KeepassXC setup per termscp + +Questo tutorial spiega come impostare KeepassXC per termscp. + +1. Installa KeepassXC dal sito ufficiale +2. Una volta avviato, vai su "strumenti" > "impostazioni" nella toolbar +3. Seleziona "Secret service integration" e abilita "Enable KeepassXC freedesktop.org secret service integration" +4. Crea un database se non ne hai già uno: dalla toolbar "Database" > "Nuovo database" +5. Dalla toolbar: "Database" > "Impostazioni database" +6. Seleziona "Secret service integration" e abilita "Expose entries under this group" +7. Seleziona il gruppo in cui vuoi salvare le chiavi di termscp. Attenzione che questo gruppo sarà utilizzato da tutte le altre eventuali applicazioni che salvano le password via D-BUS. + +--- + +## Credenziali Aws S3 🦊 + +Per connettersi ad un bucket S3 devi come già saprai fornire le credenziali fornite da AWS. +Ci sono due modi per passare queste credenziali a termscp e come avrai già notato **non puoi** farlo dal form di autenticazione. +Questi sono quindi i due modi per passare le chiavi: + +1. Utilizza il file delle credenziali s3: configurando aws via `aws configure` le tue credenziali dovrebbero già venir salvate in `~/.aws/credentials`. Nel caso tu debba usare un profile diverso da `default`, puoi fornire un profilo diverso nell'authentication form. +2. **Variabili d'ambiente**: nel caso il primo metodo non sia utilizzabile, puoi comunque fornirle come variabili d'ambiente. Considera però che queste variabili sovrascriveranno sempre le credenziali situate nel file credentials. Vediamo come impostarle: + + Queste sono sempre obbligatorie: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (di solito inizia per `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: la secret access key + + nel caso tu abbia impostato un maggiore livello di sicurezza, potrebbero servirti anche queste: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ le tue credenziali sono al sicuro: termscp non manipola direttamente questi dati! Le credenziali sono direttamente lette dal crate di **s3**. Nel caso tu abbia dei dubbi sulla sicurezza, puoi contattare l'autore della libreria su [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + +## Configurazione ⚙️ + +termscp supporta diversi parametri definiti dall'utente, che possono essere impostati nella configurazione. +termscp usa un file TOML e altre directory per salvare tutti i parametri, ma non preoccuparti, tutto può essere comodamente configurato da interfaccia grafica. + +Per la configurazione, termscp richiede che i seguenti percorsi siano accessibili (termscp proverà a crearli per te): + +- `$HOME/.config/termscp/` su Linux/BSD +- `$HOME/Library/Application Support/termscp` su MacOs +- `FOLDERID_RoamingAppData\termscp\` su Windows + +Per accedere alla configurazione è sufficiente premere `` dall'authentication form. + +Questi parametri possono essere impostati: + +- **Text Editor**: l'editor di testo da utilizzare per aprire i file. Di default termscp userà quello definito nella variabile `EDITOR` od il primo che troverà installato tra quelli più popolari. Puoi tuttavia definire quello che vuoi (ad esempio `vim`). **Anche gli editor GUI sono supportati**, a meno che loro non partano in `nohup` dal processo padre, quindi se vuoi saperlo: sì puoi utilizzare `notepad.exe`, ma non **Visual Studio Code**. +- **Default Protocol**: il protocollo di default da visualizzare come prima opzione nell'authentication form. Questa opzione sarà anche utilizzata quando si usa l'argomento indirizzo da CLI e non si specifica un protocollo. +- **Show Hidden Files**: seleziona se mostrare di default i file nascosti. A runtime potrai comunque scegliere se visualizzarli o meno premendo ``. +- **Check for updates**: se impostato a `YES` all'avvio termscp controllerà l'eventuale presenza di aggiornamenti. Per farlo utilizzerà una chiamata GET all'API di Github. +- **Prompt when replacing existing files?**: se impostato a `yes`, termscp ti chiederà una conferma prima di sovrascrivere un file a seguito di un download/upload. +- **Group Dirs**: seleziona se e come raggruppare le cartelle negli explorer. Se `Display first` è impostato, le directory verranno ordinate secondo quanto stabilito nel `sort by`, ma verranno messe prima dei file, viceversa se `Display last` è utilizzato. Se invece metti `no`, le cartelle verrano messe in ordine assieme ad i file. +- **Remote File formatter syntax**: La formattazione da usare per formattare i file sull'explorer remoto. Vedi [File explorer format](#file-explorer-format) +- **Local File formatter syntax**: La formattazione da usare per formattare i file sull'explorer locale. Vedi [File explorer format](#file-explorer-format) +- **Enable notifications?**: Se impostato a `yes`, le notifiche desktop saranno abilitate. +- **Notifications: minimum transfer size**: se la dimensione di un trasferimento supera o è uguale al valore impostato, al termine del trasferimento riceverai una notifica desktop (se queste sono abilitate). Il formato del valore dev'essere `{UNSIGNED} B/KB/MB/GB/TB/PB` + +### SSH Key Storage 🔐 + +Assieme alla configurazione termscp supporta anche una feature essenziale per i client **SFTP/SCP**: lo storage di chiavi SSH. + +Puoi accedere allo storage muovendoti nel tab delle chiavi SSH tramite `` dalla configurazione. + +- **Aggiungere chiavi**: premi `` e ti verrà chiesto di creare una nuova chiave. Inserisci l'hostname/indirizzo ed il nome utente, infine una volta che premerai invio, ti si aprirà l'editor di testo: incolla la chiave SSH **PRIVATA**, salva ed esci. +- **Rimuovi una chiave esistente**: premi `` o `` selezionando la chiave da rimuovere. +- **Aggiorna una chiave esistente**: premi `` sulla chiave che vuoi modificare. + +> Q: Se la mia chiave è protetta da password, posso comunque usarla? +> A: Sì, certo. In questo caso dovrai fornire la password come faresti per autenticarti con utente/password, ma in questo caso la password sarà usata per decrittare la chiave. + +### File Explorer Format + +È possibile dalla configurazione impostare la formattazione dei file sull'explorer. È possibile sia farlo per il pannello locale, che per quello remoto; quindi puoi avere due sintassi diverse. Questi campi, con nome `File formatter syntax (local)` and `File formatter syntax (remote)` definiranno come i file devono essere formattati sull'explorer. +La sintassi è la seguente `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. +Ogni chiave sarà rimpiazzata dal formatter con il relativo attributo, mentre tutto ciò che è fuori dalle parentesi graffe rimarrà inviariato (quindi puoi metterci del testo arbitratio). + +- Il nome della chiave è obbligatorio e dev'essere uno di quelli sotto. +- La lunghezza descrive quanto spazio in caratteri riservare al campo. Attributi con dimensione statico (GROUP, PEX, SIZE, USER) non supportano la lunghezza. +- L'extra serve a definire degli attributi in più. Solo alcuni lo supportano. + +These are the keys supported by the formatter: + +- `ATIME`: Last access time (con sintassi di default `%b %d %Y %H:%M`); Extra definisce il formato data (e.g. `{ATIME:8:%H:%M}`) +- `CTIME`: Creation time (con sintassi di default `%b %d %Y %H:%M`); Extra definisce il formato data (e.g. `{CTIME:8:%H:%M}`) +- `GROUP`: Owner group +- `MTIME`: Last change time (con sintassi di default `%b %d %Y %H:%M`); Extra definisce il formato data (e.g. `{MTIME:8:%H:%M}`) +- `NAME`: Nome file (Elided if longer than LENGTH) +- `PEX`: Permessi utente (formato UNIX) +- `SIZE`: Dimensione file (omesso per le directory) +- `SYMLINK`: Link simbolico (se presente `-> {FILE_PATH}`) +- `USER`: Owner user + +Se lasciata vuota, la sintassi di default sarà utilizzata: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` + +--- + +## Temi 🎨 + +termscp fornisce anche una funzionalità strafiga: la possibilità di impostare i colori per tutta l'interfaccia. +Se vuoi impostare i colori, ci sono due modi per farlo: + +- dal **menù di configurazione** +- importando un **tema** da file + +Per personalizzare i colori dovrai andare nella configurazione temi, partendo dal menù di autenticazione, premendo `` e premendo due volte ``. Dovresti essere quindi in configurazione nel tab `themes`. + +Da qui puoi spostarti con le frecce per cambiare lo stile che vuoi, come mostrato nella GIF qua sotto: + +![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) + +termscp supporta diverse sintassi per i colori, sia il formato hex (`#rrggbb`) che rgb `rgb(r, g, b)`, ma anche i **[colori CSS](https://www.w3schools.com/cssref/css_colors.asp)** (tipo `crimson`) 😉. C'è anche una chiave speciale `Default`. Default significa che per il colore verrà usato il default in base al tipo di elemento (foreground per i testi e linee, background per gli sfondi e i riempimenti). + +Come detto già in precedenza, puoi anche importare i temi da file. Volendo puoi anche creare un tema prendendo ispirazione da quelli situati nella cartella `themes/` del repository ed importarli su termscp con `termscp -t `. Se l'operazione va a buon fine dovrebbe dirti che l'ha importato con successo. + +### Il tema non carica 😱 + +Probabilmente è dovuto ad un aggiornamento che ha rotto il tema. Se viene aggiunta una nuova chiave nel tema (ma questo accade molto raramente), il tema non verrà più caricato. Ci sono diverse soluzioni veloci per questo problema. + +1. Ricarica il tema: se stai usando un tema "ufficiale" fornito nel repository, basterà ricaricarlo, perché li aggiorno sempre quando modifico i temi: + + ```sh + termscp -t + ``` + +2. Sistema il tuo tema a mano: puoi modificare il tuo tema con un editor di testo tipo `vim` e aggiungere la chiave mancante. Il il tema si trova in `$CONFIG_DIR/termscp/theme.toml` dove `$CONFIG_DIR` è: + + - FreeBSD/GNU-Linux: `$HOME/.config/` + - MacOs: `$HOME/Library/Application Support` + - Windows: `%appdata%` + + ❗ Le chiavi mancanti vengono riportate nel CHANGELOG sotto `BREAKING CHANGES` per la versione installata. + +### Stili 💈 + +Puoi trovare qui sotto la definizione per ogni chiave. +Attenzione che gli stili **non coinvolgono la pagina di configurazione**, per renderla sempre accessibile nel caso gli stili siano inutilizzabili. + +#### Pagina autenticazione + +| Key | Description | +|----------------|------------------------------------| +| auth_address | Colore del campo indirizzo IP | +| auth_bookmarks | Colore del pannello segnalibri | +| auth_password | Colore del campo password | +| auth_port | Colore del campo numero porta | +| auth_protocol | Colore del selettore di protocollo | +| auth_recents | Colore del pannello recenti | +| auth_username | Colore del campo nome utente | + +#### Pagina explorer e trasferimento + +| Key | Description | +|--------------------------------------|---------------------------------------------------------------------------| +| transfer_local_explorer_background | Sfondo explorer locale | +| transfer_local_explorer_foreground | Foreground explorer locale | +| transfer_local_explorer_highlighted | Colore bordo e file selezionato explorer locale | +| transfer_remote_explorer_background | Sfondo explorer remoto | +| transfer_remote_explorer_foreground | Foreground explorer remoto | +| transfer_remote_explorer_highlighted | Colore bordo e file selezionato explorer remoto | +| transfer_log_background | Sfondo pannello di log | +| transfer_log_window | Colore bordi e testo log | +| transfer_progress_bar_partial | Colore barra progresso parziale | +| transfer_progress_bar_total | Colore barra progresso totale | +| transfer_status_hidden | Colore status bar file nascosti | +| transfer_status_sorting | Colore status bar ordinamento file; si applica anche al popup ordinamento | +| transfer_status_sync_browsing | Colore status bar per sync browsing | + +#### Misc + +Questi stili si applicano a varie componenti dell'applicazione. + +| Key | Description | +|-------------------|---------------------------------------------| +| misc_error_dialog | Colore dialoghi errore | +| misc_info_dialog | Colore per dialoghi informazioni | +| misc_input_dialog | Colore per dialoghi input (tipo copia file) | +| misc_keys | Colore per abbinamento tasti | +| misc_quit_dialog | Colore per dialogo quit | +| misc_save_dialog | Colore per dialogo salva | +| misc_warn_dialog | Colore per dialoghi avvertimento | + +--- + +## Editor di testo ✏ + +Con termscp puoi anche modificare i file di testo direttamente da terminale, utilizzando il tuo editor preferito. +Non importa se il file si trova in locale od in remoto, termscp ti consente di modificare e sincronizzare le modifiche per entrambi. +Nel caso il file si trovi su host remoto, il file verrà prima scaricato temporaneamente in locale, modificato e poi nel caso ci siano state modifiche, reinviato in remoto. + +Ricorda: **puoi modificare solo i file testuali**; non puoi modificare i file binari. + +--- + +## Logging 🩺 + +termscp scrive un file di log per ogni sessione, nel percorso seguente: + +- `$HOME/.config/termscp/termscp.log` su Linux/BSD +- `$HOME/Library/Application Support/termscp/termscp.log` su MacOs +- `FOLDERID_RoamingAppData\termscp\termscp.log` su Windows + +Il log non viene ruotato, ma viene troncato ad ogni lancio di termscp, quindi se devi riportare un issue, non avviare termscp fino a che non avrai salvato il file di log. +I log sono sempre riportati a livello di *trace*, quindi sono piuttosto parlanti. +Ho scritto questo FAQ sui log, visto che potresti avere qualche dubbio: + +> Si può ridurre la verbosità? + +No. Il motivo è piuttosto semplice: quando c'è un problema, devi sapere cosa lo sta causando e l'unico modo per farlo e avere il log alla massima verbosità per avere la massima precisione sul controllo del flusso. + +> Se trace è il livello di verbosità, non si raggiungono dimensioni enormi? + +Probabilmente no, a meno che tu tenga sempre termscp acceso. Una lunga sessione potrebbe raggiungere i 10MB di log, ma una sessione media all'incirca 2MB. + +> Non voglio il logging, posso disabilitarlo? + +Sì, puoi. Basta lanciare termscp con `-q or --quiet` come opzione. Puoi mantenerlo persistente salvandolo come alias nella tua shell. Ricorda che i log vengono usati per diagnosticare problemi e considerando che questo è un progetto open-source è anche un modo per contribuire al progetto 😉. Non voglio far sentire in colpa nessuno, ma tanto per dire. + +> Il logging è sicuro? + +Se ti chiedi se il log espone dati sensibili, il log non espone nessuna password o dato sensibile. + +## Notifiche 📫 + +termscp invierà notifiche destkop per i seguenti eventi: + +- a **Transferimento completato**: La notifica verrà inviata a seguito di un trasferimento completato. + - ❗ La notifica verrà mostrata solo se la dimensione totale del trasferimento è uguale o maggiore al parametro `Notifications: minimum transfer size` definito in configurazione. +- a **Transferimento fallito**: La notifica verrà inviata a seguito di un trasferimento fallito. + - ❗ La notifica verrà mostrata solo se la dimensione totale del trasferimento è uguale o maggiore al parametro `Notifications: minimum transfer size` definito in configurazione. +- ad **Aggiornamento disponibile**: Ogni volta che una nuova versione di termscp è disponibile, verrà mostrata una notifica. +- ad **Aggiornamento installato**: Al termine dell'installazione di un aggiornamento, verrà mostrata una notifica. +- ad **Aggiornamento fallito**: Al fallimento dell'installazione di un aggiornamento, verrà mostrata una notifica. + +❗ Se vuoi disabilitare le notifiche, è sufficiente andare in configurazione ed impostare `Enable notifications?` a `No` 😉. +❗ Se vuoi modificare la soglia minima per le notifiche dei trasferimenti, puoi impostare il valore di `Notifications: minimum transfer size` in configurazione 🙂. diff --git a/docs/man.md b/docs/man.md index 0eea5c5d..bd130fd1 100644 --- a/docs/man.md +++ b/docs/man.md @@ -25,7 +25,6 @@ - [Transfer page](#transfer-page) - [Misc](#misc) - [Text Editor ✏](#text-editor-) - - [How do I configure the text editor 🦥](#how-do-i-configure-the-text-editor-) - [Logging 🩺](#logging-) - [Notifications 📫](#notifications-) @@ -174,7 +173,7 @@ All the actions are available when working with multiple files, but be aware tha ### Synchronized browsing ⏲️ When enabled, synchronized browsing, will allow you to synchronize the navigation between the two panels. -This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browising state will be reported on the status bar on `ON`. +This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browsing state will be reported on the status bar on `ON`. > ❗ at the moment, whenever you try to access an unexisting directory, you won't be prompted to create it. This might change in a future update. @@ -229,7 +228,7 @@ whenever you want to use the previously saved connection, just press `` to Sure 😉. As said before, bookmarks are saved in your configuration directory along with passwords. Passwords are obviously not plain text, they are encrypted with **AES-128**. Does this make them safe? Absolutely! (except for BSD and WSL users 😢) -On **Windows**, **Linux** and **MacOS** the passwords are stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. +On **Windows**, **Linux** and **MacOS** the key used to encrypt passwords is stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. ❗ Please, notice that if you're a Linux user, you'd better to read the [chapter below 👀](#linux-keyring), because the keyring might not be enabled or supported on your system! @@ -337,7 +336,7 @@ These are the keys supported by the formatter: - `CTIME`: Creation time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{CTIME:8:%H:%M}`) - `GROUP`: Owner group - `MTIME`: Last change time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{MTIME:8:%H:%M}`) -- `NAME`: File name (Elided if longer than 24) +- `NAME`: File name (Elided if longer than LENGTH) - `PEX`: File permissions (UNIX format) - `SIZE`: File size (omitted for directories) - `SYMLINK`: Symlink (if any `-> {FILE_PATH}`) @@ -359,7 +358,7 @@ In order to create your own customization from termscp, all you have to do so is Here you can move with `` and `` to change the style you want to change, as shown in the gif below: -![Themes](../assets/images/themes.gif) +![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) termscp supports both the traditional explicit hex (`#rrggbb`) and rgb `rgb(r, g, b)` syntax to provide colors, but also **[css colors](https://www.w3schools.com/cssref/css_colors.asp)** (such as `crimson`) are accepted 😉. There is also a special keywork which is `Default`. Default means that the color used will be the default foreground or background color based on the situation (foreground for texts and lines, background for well, guess what). @@ -441,10 +440,6 @@ In case the file is located on remote host, the file will be first downloaded in Just a reminder: **you can edit only textual file**; binary files are not supported. -### How do I configure the text editor 🦥 - -Text editor is automatically found using this [awesome crate](https://github.com/milkey-mouse/edit), if you want to change the text editor to use, change it in termscp configuration. [Read more](#configuration-️) - --- ## Logging 🩺 @@ -487,5 +482,5 @@ Termscp will send Desktop notifications for these kind of events: - on **Update installed**: Whenever a new version of termscp has been installed, a notification will be displayed. - on **Update failed**: Whenever the installation of the update fails, a notification will be displayed. -❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. +❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. ❗ If you want to change the minimum transfer size to display notifications, you can change the value in the configuration with key `Notifications: minimum transfer size` and set it to whatever suits better for you 🙂. diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index e69de29b..62889db8 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -0,0 +1,243 @@ +# termscp + +

+ +

+ +

~ 功能丰富的终端文件传输 ~

+

+ 网站 + · + 安装 + · + 用户手册 +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Italiano +   + 简体中文 +

+ +

@veeso 开发

+

当前版本: 0.7.0 (12/10/2021)

+ +[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) + +[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) + +--- + +## 关于 termscp 🖥 + +termscp 是一个功能丰富的终端文件传输和浏览器,支持 SCP/SFTP/FTP/S3。 所以基本上是一个带有 TUI 的终端实用程序,用于连接到远程服务器以检索和上传文件并与本地文件系统进行交互。 +它与 **Linux**、**MacOS**、**FreeBSD** 和 **Windows** 兼容。 + +![Explorer](/assets/images/explorer.gif) + +--- + +## Features 🎁 + +- 📁 不同的通讯协议 + - **SFTP** + - **SCP** + - **FTP** and **FTPS** + - **Aws S3** +- 🖥 使用方便的 UI 在远程和本地机器文件系统上探索和操作 + - 创建、删除、重命名、搜索、查看和编辑文件 +- ⭐ 通过内置书签和最近的连接连接到您最喜欢的主机 +- 📝 使用您喜欢的应用程序查看和编辑文件 +- 💁 使用 SSH 密钥和用户名/密码进行 SFTP/SCP 身份验证 +- 🐧 与 Windows、Linux、FreeBSD 和 MacOS 兼容 +- 🎨 让它成为你的! + - 主题 + - 自定义文件浏览器格式 + - 可定制的文本编辑器 + - 可定制的文件排序 + - 和许多其他参数... +- 📫 传输大文件时通过桌面通知获得通知 +- 🔐 将密码保存在操作系统密钥保管库中 +- 🦀 Rust 动力 +- 👀 开发时注意性能 +- 🦄 频繁的精彩更新 + +--- + +## 开始 🚀 + +如果您正在考虑安装termscp,我要感谢您💜! 我希望你会喜欢termscp! +如果您想为此项目做出贡献,请不要忘记查看我们的贡献指南。 [阅读更多](../../CONTRIBUTING.md) + +如果您是 Linux、FreeBSD 或 MacOS 用户,这个简单的 shell 脚本将使用单个命令在您的系统上安装 termscp: + +```sh +curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh +``` + +如果您是 Windows 用户,则可以使用 [Chocolatey](https://chocolatey.org/) 安装 termscp: + +```sh +choco install termscp +``` + +如需更多信息或其他平台,请访问 [veeso.github.io](https://veeso.github.io/termscp/#get-started) 查看所有安装方法。 + +⚠️ 如果您正在寻找如何更新 termscp 只需从 CLI 运行 termscp : `(sudo) termscp --update` ⚠️ + +### 要求 ❗ + +- **Linux** 用户: + - libssh + - libdbus-1 + - pkg-config +- **FreeBSD** 用户: + - libssh + - dbus + - pkgconf + +### 可选要求 ✔️ + +这些要求不是运行 termscp 的强制要求,而是要享受它的所有功能 + +- **Linux/FreeBSD** 用户: + - 用 `V` **打开** 文件(至少其中之一) + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **Linux** 用户: + - keyring manager: [在用户手册中阅读更多内容](man.md#linux-keyring) +- **WSL** 用户 + - 用 `V` **打开** 文件(至少其中之一) + - [wslu](https://github.com/wslutilities/wslu) + +--- + +## 支持我 ☕ + +如果您喜欢 termscp 并且希望看到该项目不断发展和改进,请考虑在**给我买杯咖啡**上捐款以支持我**🥳 + +[![给我买一杯咖啡](https://img.buymeacoffee.com/button-api/?text=%E7%BB%99%E6%88%91%E4%B9%B0%E4%B8%80%E6%9D%AF%E5%92%96%E5%95%A1&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) + +--- + +## 用户手册和文档 📚 + +用户手册可以在[termscp的网站](https://veeso.github.io/termscp/#user-manual)上找到 或者在[Github](man.md)上。 + +开发者文档可以在 的 Rust Docs 上找到。 + +--- + +## 已知的问题 🧻 + +- `NoSuchFileOrDirectory` 连接时 (WSL1): 我知道这个问题,我猜这是 WSL 的一个小故障。 别担心,只需将 termscp 可执行文件移动到另一个 PATH 位置,例如`/usr/bin`,或者通过适当的包格式(例如 deb)安装它。 + +--- + +## 贡献和问题 🤝🏻 + +欢迎贡献、错误报告、新功能和问题! 😉 +如果您有任何问题或疑虑,或者您想建议新功能,或者您只想改进termscp,请随时打开问题或 PR。 + +请遵循 [我们的贡献指南](../../CONTRIBUTING.md) + +--- + +## 变更日志 ⏳ + +查看termscp的更新日志 [这里](../../CHANGELOG.md) + +--- + +## Powered by 💪 + +termscp 由这些很棒的项目提供支持: + +- [bytesize](https://github.com/hyunsik/bytesize) +- [crossterm](https://github.com/crossterm-rs/crossterm) +- [edit](https://github.com/milkey-mouse/edit) +- [keyring-rs](https://github.com/hwchen/keyring-rs) +- [open-rs](https://github.com/Byron/open-rs) +- [rpassword](https://github.com/conradkleinespel/rpassword) +- [rust-s3](https://github.com/durch/rust-s3) +- [self_update](https://github.com/jaemk/self_update) +- [ssh2-rs](https://github.com/alexcrichton/ssh2-rs) +- [suppaftp](https://github.com/veeso/suppaftp) +- [textwrap](https://github.com/mgeisler/textwrap) +- [tui-rs](https://github.com/fdehau/tui-rs) +- [tui-realm](https://github.com/veeso/tui-realm) +- [whoami](https://github.com/libcala/whoami) +- [wildmatch](https://github.com/becheran/wildmatch) + +--- + +## 画廊 🎬 + +> 家 + +![Auth](/assets/images/auth.gif) + +> 书签 + +![Bookmarks](/assets/images/bookmarks.gif) + +> 设置 + +![Setup](/assets/images/config.gif) + +> 文本编辑器 + +![TextEditor](/assets/images/text-editor.gif) + +--- + +## 执照 📃 + +“termscp”在 MIT 许可下获得许可。 + +您可以阅读整个许可证 [这里](../../LICENSE) diff --git a/docs/zh-CN/man.md b/docs/zh-CN/man.md index 58c99a9b..d4684152 100644 --- a/docs/zh-CN/man.md +++ b/docs/zh-CN/man.md @@ -13,7 +13,7 @@ - [书签](#书签) - [我的密码安全吗?](#我的密码安全吗) - [Linux Keyring](#linux-keyring) - - [用于 termcp 的 KeepassXC 设置](#用于-termcp-的-keepassxc-设置) + - [用于 termscp 的 KeepassXC 设置](#用于-termscp-的-keepassxc-设置) - [Aws S3 凭证](#aws-s3-凭证) - [配置](#配置) - [SSH Key Storage](#ssh-key-storage) @@ -25,7 +25,6 @@ - [文件传输页](#文件传输页) - [Misc](#misc) - [文本编辑器](#文本编辑器) - - [如何配置文本编辑器?](#如何配置文本编辑器) - [日志](#日志) - [通知](#通知) @@ -237,7 +236,7 @@ termscp中的文件资源管理器是指你与远程建立连接后可以看到 - ❗对于其他桌面环境的用户,有一个很好的程序,你可以用它来获得钥匙串,这就是[KeepassXC](https://keepassxc.org/),我在我的Manjaro中使用它(带KDE),一切都很正常。唯一的问题是,你必须设置它与termscp一起使用(但这很简单)。要开始使用KeepassXC,请阅读更多[这里](#keepassxc-setup-for-termscp)。 - ❗如果你不想安装任何这些服务呢?好吧,这没有问题! **termscp依然能正常工作**,但它会将密钥保存在一个文件中,就像它通常为BSD和WSL做的那样。 -##### 用于 termcp 的 KeepassXC 设置 +##### 用于 termscp 的 KeepassXC 设置 参照以下步骤,为termscp配置keepassXC: @@ -330,7 +329,7 @@ termscp和书签一样,只需要保证这些路径是可访问的: - `CTIME`: 创建时间(语法为`%b %d %Y %H:%M`);Extra参数可以指定时间显示语法(例如:`{CTIME:8:%H:%M}`) - `GROUP`: 所属组 - `MTIME`: 最后修改时间(语法为`%b %d %Y %H:%M`);Extra参数可以指定时间显示语法(例如:`{MTIME:8:%H:%M}`) -- `NAME`: 文件名(超过24个字符的部分会被省略) +- `NAME`: 文件名(超过 LENGTH 个字符的部分会被省略) - `PEX`: 文件权限(UNIX格式) - `SIZE`: 文件大小(目录不显示) - `SYMLINK`: 超链接(如果存在的话`-> {FILE_PATH}`)。 @@ -352,7 +351,7 @@ Termscp为你提供了一个很棒的功能:可以为应用程序中的几个 在这里你可以用``和``移动来选择你想改变的样式,如下图所示: -![Themes](../assets/images/themes.gif) +![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) termscp支持传统的十六进制(`#rrggbb`)和RGB`rgb(r, g, b)`语法来表示颜色,但也接受 **[css颜色](https://www.w3schools.com/cssref/css_colors.asp)**(如`crimson`)😉。还有一个特殊的关键词是`Default`,意味着使用的颜色将是基于情景的默认前景或背景颜色(文本和线条的前景色,以及容器的背景色,你猜是什么)。 @@ -434,10 +433,6 @@ Termscp有很多功能,你可能已经注意到了,其中之一就是可以 多说一句,**你只能编辑文本文件**;二进制文件是不可以的。 -### 如何配置文本编辑器? - -文本编辑器是通过[awesome crate](https://github.com/milkey-mouse/edit)自动查找的,如果你想改变默认的文本编辑器,请在termscp配置中改变它。[阅读更多](#配置) - --- ## 日志 @@ -478,5 +473,5 @@ termscp 将针对这些类型的事件发送桌面通知: - **更新已安装**:每当安装了新版本的termscp 时,都会显示通知。 - **更新失败**:每当更新安装失败时,都会显示通知。 -❗ 如果您希望保持关闭通知,您只需进入设置并将 `Enable notifications?` 设置为 `No`😉。 +❗ 如果您希望保持关闭通知,您只需进入设置并将 `Enable notifications?` 设置为 `No`😉。 ❗ 如果您想更改最小传输大小以显示通知,您可以使用键 `Notifications: minimum transfer size` 更改配置中的值,并将其设置为更适合您的任何值🙂。 From 463329a0807f16c44ad21c30cd1269ce672d2905 Mon Sep 17 00:00:00 2001 From: veeso Date: Mon, 4 Oct 2021 16:11:45 +0200 Subject: [PATCH 03/11] docs url --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bbaaa88d..2e7b06f3 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ />           Date: Mon, 4 Oct 2021 17:50:07 +0200 Subject: [PATCH 04/11] typo --- docs/zh-CN/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 62889db8..89c6f71a 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -159,7 +159,7 @@ choco install termscp ## 支持我 ☕ -如果您喜欢 termscp 并且希望看到该项目不断发展和改进,请考虑在**给我买杯咖啡**上捐款以支持我**🥳 +如果您喜欢 termscp 并且希望看到该项目不断发展和改进,请考虑在**给我买杯咖啡**上捐款以支持我🥳 [![给我买一杯咖啡](https://img.buymeacoffee.com/button-api/?text=%E7%BB%99%E6%88%91%E4%B9%B0%E4%B8%80%E6%9D%AF%E5%92%96%E5%95%A1&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) From e09682c219624ca11a4042659705fd2da00c4189 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 6 Oct 2021 08:45:02 +0200 Subject: [PATCH 05/11] wip --- README.md | 6 +- docs/de/README.md | 242 +++++++++++++++++++++++++++++++++++++++++++ docs/es/README.md | 242 +++++++++++++++++++++++++++++++++++++++++++ docs/fr/README.md | 242 +++++++++++++++++++++++++++++++++++++++++++ docs/it/README.md | 2 +- docs/zh-CN/README.md | 2 +- 6 files changed, 731 insertions(+), 5 deletions(-) create mode 100644 docs/de/README.md create mode 100644 docs/es/README.md create mode 100644 docs/fr/README.md diff --git a/README.md b/README.md index 2e7b06f3..8f45da80 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ />

-

Developed by @veeso

+

Developed by @veeso

Current version: 0.7.0 (12/10/2021)

[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) @@ -140,7 +140,7 @@ For more information or other platforms, please visit [veeso.github.io](https:// ### Optional Requirements ✔️ -These requirements are not forcely required to run termscp, but to enjoy all of its features +These requirements are not forced required to run termscp, but to enjoy all of its features - **Linux/FreeBSD** users: - To **open** files via `V` (at least one of these) @@ -149,7 +149,7 @@ These requirements are not forcely required to run termscp, but to enjoy all of - *gnome-open* - *kde-open* - **Linux** users: - - A keyring manager: read more in the [User manual](docs/man_en.md#linux-keyring) + - A keyring manager: read more in the [User manual](docs/man.md#linux-keyring) - **WSL** users - To **open** files via `V` (at least one of these) - [wslu](https://github.com/wslutilities/wslu) diff --git a/docs/de/README.md b/docs/de/README.md new file mode 100644 index 00000000..bed58b2e --- /dev/null +++ b/docs/de/README.md @@ -0,0 +1,242 @@ +# termscp + +

+ +

+ +

~ A feature rich terminal file transfer ~

+

+ Website + · + Installation + · + User manual +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Italiano +   + 简体中文 +

+ +

Developed by @veeso

+

Current version: 0.7.0 (12/10/2021)

+ +[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) + +[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) + +--- + +## About termscp 🖥 + +Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **FreeBSD** and **Windows** compatible. + +![Explorer](/assets/images/explorer.gif) + +--- + +## Features 🎁 + +- 📁 Different communication protocols + - **SFTP** + - **SCP** + - **FTP** and **FTPS** + - **Aws S3** +- 🖥 Explore and operate on the remote and on the local machine file system with a handy UI + - Create, remove, rename, search, view and edit files +- ⭐ Connect to your favourite hosts through built-in bookmarks and recent connections +- 📝 View and edit files with your favourite applications +- 💁 SFTP/SCP authentication with SSH keys and username/password +- 🐧 Compatible with Windows, Linux, FreeBSD and MacOS +- 🎨 Make it yours! + - Themes + - Custom file explorer format + - Customizable text editor + - Customizable file sorting + - and many other parameters... +- 📫 Get notified via Desktop Notifications when a large file has been transferred +- 🔐 Save your password in your operating system key vault +- 🦀 Rust-powered +- 👀 Developed keeping an eye on performance +- 🦄 Frequent awesome updates + +--- + +## Get started 🚀 + +If you're considering to install termscp I want to thank you 💜 ! I hope you will enjoy termscp! +If you want to contribute to this project, don't forget to check out our [contribute guide](../../CONTRIBUTING.md). + +If you are a Linux, a FreeBSD or a MacOS user this simple shell script will install termscp on your system with a single command: + +```sh +curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh +``` + +while if you're a Windows user, you can install termscp with [Chocolatey](https://chocolatey.org/): + +```sh +choco install termscp +``` + +For more information or other platforms, please visit [veeso.github.io](https://veeso.github.io/termscp/#get-started) to view all installation methods. + +⚠️ If you're looking on how to update termscp just run termscp from CLI with: `(sudo) termscp --update` ⚠️ + +### Requirements ❗ + +- **Linux** users: + - libssh + - libdbus-1 + - pkg-config +- **FreeBSD** users: + - libssh + - dbus + - pkgconf + +### Optional Requirements ✔️ + +These requirements are not forced required to run termscp, but to enjoy all of its features + +- **Linux/FreeBSD** users: + - To **open** files via `V` (at least one of these) + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **Linux** users: + - A keyring manager: read more in the [User manual](man.md#linux-keyring) +- **WSL** users + - To **open** files via `V` (at least one of these) + - [wslu](https://github.com/wslutilities/wslu) + +--- + +## Support me ☕ + +If you like termscp and you'd love to see the project to grow and to improve, please consider a little donation to support me on **Buy me a coffee** 🥳 + +[![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) + +--- + +## User manual and Documentation 📚 + +The user manual can be found on the [termscp's website](https://veeso.github.io/termscp/#user-manual) or on [Github](man.md). + +The developer documentation can be found on Rust Docs at + +--- + +## Known issues 🧻 + +- `NoSuchFileOrDirectory` on connect (WSL1): I know about this issue and it's a glitch of WSL I guess. Don't worry about it, just move the termscp executable into another PATH location, such as `/usr/bin`, or install it through the appropriate package format (e.g. deb). + +--- + +## Contributing and issues 🤝🏻 + +Contributions, bug reports, new features and questions are welcome! 😉 +If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termscp, feel free to open an issue or a PR. + +Please follow [our contributing guidelines](../../CONTRIBUTING.md) + +--- + +## Changelog ⏳ + +View termscp's changelog [HERE](../../CHANGELOG.md) + +--- + +## Powered by 💪 + +termscp is powered by these awesome projects: + +- [bytesize](https://github.com/hyunsik/bytesize) +- [crossterm](https://github.com/crossterm-rs/crossterm) +- [edit](https://github.com/milkey-mouse/edit) +- [keyring-rs](https://github.com/hwchen/keyring-rs) +- [open-rs](https://github.com/Byron/open-rs) +- [rpassword](https://github.com/conradkleinespel/rpassword) +- [rust-s3](https://github.com/durch/rust-s3) +- [self_update](https://github.com/jaemk/self_update) +- [ssh2-rs](https://github.com/alexcrichton/ssh2-rs) +- [suppaftp](https://github.com/veeso/suppaftp) +- [textwrap](https://github.com/mgeisler/textwrap) +- [tui-rs](https://github.com/fdehau/tui-rs) +- [tui-realm](https://github.com/veeso/tui-realm) +- [whoami](https://github.com/libcala/whoami) +- [wildmatch](https://github.com/becheran/wildmatch) + +--- + +## Gallery 🎬 + +> Termscp Home + +![Auth](/assets/images/auth.gif) + +> Bookmarks + +![Bookmarks](/assets/images/bookmarks.gif) + +> Setup + +![Setup](/assets/images/config.gif) + +> Text editor + +![TextEditor](/assets/images/text-editor.gif) + +--- + +## License 📃 + +termscp is licensed under the MIT license. + +You can read the entire license [HERE](../../LICENSE) diff --git a/docs/es/README.md b/docs/es/README.md new file mode 100644 index 00000000..bed58b2e --- /dev/null +++ b/docs/es/README.md @@ -0,0 +1,242 @@ +# termscp + +

+ +

+ +

~ A feature rich terminal file transfer ~

+

+ Website + · + Installation + · + User manual +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Italiano +   + 简体中文 +

+ +

Developed by @veeso

+

Current version: 0.7.0 (12/10/2021)

+ +[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) + +[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) + +--- + +## About termscp 🖥 + +Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **FreeBSD** and **Windows** compatible. + +![Explorer](/assets/images/explorer.gif) + +--- + +## Features 🎁 + +- 📁 Different communication protocols + - **SFTP** + - **SCP** + - **FTP** and **FTPS** + - **Aws S3** +- 🖥 Explore and operate on the remote and on the local machine file system with a handy UI + - Create, remove, rename, search, view and edit files +- ⭐ Connect to your favourite hosts through built-in bookmarks and recent connections +- 📝 View and edit files with your favourite applications +- 💁 SFTP/SCP authentication with SSH keys and username/password +- 🐧 Compatible with Windows, Linux, FreeBSD and MacOS +- 🎨 Make it yours! + - Themes + - Custom file explorer format + - Customizable text editor + - Customizable file sorting + - and many other parameters... +- 📫 Get notified via Desktop Notifications when a large file has been transferred +- 🔐 Save your password in your operating system key vault +- 🦀 Rust-powered +- 👀 Developed keeping an eye on performance +- 🦄 Frequent awesome updates + +--- + +## Get started 🚀 + +If you're considering to install termscp I want to thank you 💜 ! I hope you will enjoy termscp! +If you want to contribute to this project, don't forget to check out our [contribute guide](../../CONTRIBUTING.md). + +If you are a Linux, a FreeBSD or a MacOS user this simple shell script will install termscp on your system with a single command: + +```sh +curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh +``` + +while if you're a Windows user, you can install termscp with [Chocolatey](https://chocolatey.org/): + +```sh +choco install termscp +``` + +For more information or other platforms, please visit [veeso.github.io](https://veeso.github.io/termscp/#get-started) to view all installation methods. + +⚠️ If you're looking on how to update termscp just run termscp from CLI with: `(sudo) termscp --update` ⚠️ + +### Requirements ❗ + +- **Linux** users: + - libssh + - libdbus-1 + - pkg-config +- **FreeBSD** users: + - libssh + - dbus + - pkgconf + +### Optional Requirements ✔️ + +These requirements are not forced required to run termscp, but to enjoy all of its features + +- **Linux/FreeBSD** users: + - To **open** files via `V` (at least one of these) + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **Linux** users: + - A keyring manager: read more in the [User manual](man.md#linux-keyring) +- **WSL** users + - To **open** files via `V` (at least one of these) + - [wslu](https://github.com/wslutilities/wslu) + +--- + +## Support me ☕ + +If you like termscp and you'd love to see the project to grow and to improve, please consider a little donation to support me on **Buy me a coffee** 🥳 + +[![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) + +--- + +## User manual and Documentation 📚 + +The user manual can be found on the [termscp's website](https://veeso.github.io/termscp/#user-manual) or on [Github](man.md). + +The developer documentation can be found on Rust Docs at + +--- + +## Known issues 🧻 + +- `NoSuchFileOrDirectory` on connect (WSL1): I know about this issue and it's a glitch of WSL I guess. Don't worry about it, just move the termscp executable into another PATH location, such as `/usr/bin`, or install it through the appropriate package format (e.g. deb). + +--- + +## Contributing and issues 🤝🏻 + +Contributions, bug reports, new features and questions are welcome! 😉 +If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termscp, feel free to open an issue or a PR. + +Please follow [our contributing guidelines](../../CONTRIBUTING.md) + +--- + +## Changelog ⏳ + +View termscp's changelog [HERE](../../CHANGELOG.md) + +--- + +## Powered by 💪 + +termscp is powered by these awesome projects: + +- [bytesize](https://github.com/hyunsik/bytesize) +- [crossterm](https://github.com/crossterm-rs/crossterm) +- [edit](https://github.com/milkey-mouse/edit) +- [keyring-rs](https://github.com/hwchen/keyring-rs) +- [open-rs](https://github.com/Byron/open-rs) +- [rpassword](https://github.com/conradkleinespel/rpassword) +- [rust-s3](https://github.com/durch/rust-s3) +- [self_update](https://github.com/jaemk/self_update) +- [ssh2-rs](https://github.com/alexcrichton/ssh2-rs) +- [suppaftp](https://github.com/veeso/suppaftp) +- [textwrap](https://github.com/mgeisler/textwrap) +- [tui-rs](https://github.com/fdehau/tui-rs) +- [tui-realm](https://github.com/veeso/tui-realm) +- [whoami](https://github.com/libcala/whoami) +- [wildmatch](https://github.com/becheran/wildmatch) + +--- + +## Gallery 🎬 + +> Termscp Home + +![Auth](/assets/images/auth.gif) + +> Bookmarks + +![Bookmarks](/assets/images/bookmarks.gif) + +> Setup + +![Setup](/assets/images/config.gif) + +> Text editor + +![TextEditor](/assets/images/text-editor.gif) + +--- + +## License 📃 + +termscp is licensed under the MIT license. + +You can read the entire license [HERE](../../LICENSE) diff --git a/docs/fr/README.md b/docs/fr/README.md new file mode 100644 index 00000000..453b9380 --- /dev/null +++ b/docs/fr/README.md @@ -0,0 +1,242 @@ +# termscp + +

+ +

+ +

~ Un file transfer de terminal riche en fonctionnalités ~

+

+ Site internet + · + Installation + · + Manuel de l'Utilisateur +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Italiano +   + 简体中文 +

+ +

Développé par @veeso

+

Version actuelle: 0.7.0 (12/10/2021)

+ +[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) + +[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) + +--- + +## À propos des termscp 🖥 + +Termscp est un file transfer et explorateur de fichiers de terminal riche en fonctionnalités, avec support pour SCP/SFTP/FTP/S3. Essentiellement c'est une utilitaire terminal avec une TUI pour se connecter à un serveur distant pour télécharger de fichiers et interagir avec le système de fichiers local. Il est compatible avec **Linux**, **MacOS**, **FreeBSD** et **Windows**. + +![Explorer](/assets/images/explorer.gif) + +--- + +## Fonctionnalités 🎁 + +- 📁 Différents protocoles de communication + - **SFTP** + - **SCP** + - **FTP** et **FTPS** + - **Aws S3** +- 🖥 Explorer et opérer sur le système de fichiers distant et local avec une interface utilisateur pratique. + - Créer, supprimer, renommer, rechercher, afficher et modifier des fichiers +- ⭐ Connectez-vous à vos hôtes préférés via des signets et des connexions récentes. +- 📝 Affichez et modifiez des fichiers avec vos applications préférées +- 💁 Authentication SFTP/SCP avec des clés SSH et nom/mot de passe +- 🐧 Compatible avec Windows, Linux, FreeBSD et MacOS +- 🎨 Faites en vôtre ! + - thèmes + - format d'explorateur de fichiers personnalisé + - éditeur de texte personnalisable + - tri de fichiers personallisable + - et bien d'autres paramètres... +- 📫 Recevez une notification quande un gros fichier est télécharger. +- 🔐 Enregistre tes mots de passe dans le key vault du systeme. +- 🦀 Rust-powered +- 👀 Développé en gardant un œil sur les performances +- 🦄 Mises à jour fréquentes + +--- + +## Commencer 🚀 + +Si tu envisage d'installer termscp, je veux te remercier 💜 ! J'espère que tu vas apprécier termscp ! +Si tu veux contribuer à ce projet, n'oublié pas de consulter notre [guide de contribution](../../CONTRIBUTING.md). + +Si tu es un utilisateur Linux, FreeBSD ou MacOS ce simple shell script installera termscp sur te système en un seule commande: + +```sh +curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh +``` + +tandis que si tu es un utilisateur Windows, tu peux installer termscp avec [Chocolatey](https://chocolatey.org/): + +```sh +choco install termscp +``` + +Pour plus d'informations sur les autres méthodes d'installation, veuillez visiter [veeso.github.io](https://veeso.github.io/termscp/#get-started). + +⚠️ Si tu cherche comme de mettre à jour termscp, tu dois exécuter cette commande dans le terminal: `(sudo) termscp --update` ⚠️ + +### Requis ❗ + +- utilisateurs **Linux**: + - libssh + - libdbus-1 + - pkg-config +- utilisateurs **FreeBSD**: + - libssh + - dbus + - pkgconf + +### Requis facultatives ✔️ + +Ces requis ne sont pas obligatoires d'exécuter termscp, mais seulement à toutes ses fonctionnalités + +- utilisateurs **Linux/FreeBSD**: + - Pour **ouvrir** les fichiers via `V` (au moins un de ces) + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- utilisateurs **Linux**: + - Un keyring manager: lire plus dans le [manuel d'utilisateur](man.md#linux-keyring) +- utilisateurs **WSL** + - Pour **ouvrir** les fichiers via `V` (au moins un de ces) + - [wslu](https://github.com/wslutilities/wslu) + +--- + +## Me soutenir ☕ + +Si tu aime termscp et que tu aimerais voir le projet grandir et s'améliorer, voudrais considérer un petit don pour me soutenir sur **Buy me a coffee** 🥳 + +[![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) + +--- + +## Manuel d'utilisateur et Documentation 📚 + +Le manuel d'utilisateur peut être trouvé sur le [site de termscp](https://veeso.github.io/termscp/#user-manual) ou sur [Github](man.md). + +La documentation peut être trouvé sur Rust Docs + +--- + +## Problèmes connus 🧻 + +- `NoSuchFileOrDirectory` à la connexion (WSL1): Je connais ce problème et c'est un problème de WSL je suppose. Ne te inquiéte pas, déplace simplement l'exécutable termscp dans un autre emplacement PATH, tel que `/usr/bin`, ou installe-le via le format de package approprié (par exemple, deb). + +--- + +## Contribution et enjeux 🤝🏻 + +Les contributions, les rapports de bugs, les nouvelles fonctionnalités et les questions sont les bienvenus ! 😉 +Si tu ai des questions ou des préoccupations, ou si tu souhaite suggérer une nouvelle fonctionnalité, ou si tu souhaite simplement améliorer les conditions de termscp, n'hésite pas à ouvrir un problème ou un PR. + +Veuillez suivre [nos directives de contribution](../../CONTRIBUTING.md) + +--- + +## Journal des modifications ⏳ + +Afficher le journal des modifications [ICI](../../CHANGELOG.md) + +--- + +## Powered by 💪 + +termscp est soutenu par ces projets impressionnants: + +- [bytesize](https://github.com/hyunsik/bytesize) +- [crossterm](https://github.com/crossterm-rs/crossterm) +- [edit](https://github.com/milkey-mouse/edit) +- [keyring-rs](https://github.com/hwchen/keyring-rs) +- [open-rs](https://github.com/Byron/open-rs) +- [rpassword](https://github.com/conradkleinespel/rpassword) +- [rust-s3](https://github.com/durch/rust-s3) +- [self_update](https://github.com/jaemk/self_update) +- [ssh2-rs](https://github.com/alexcrichton/ssh2-rs) +- [suppaftp](https://github.com/veeso/suppaftp) +- [textwrap](https://github.com/mgeisler/textwrap) +- [tui-rs](https://github.com/fdehau/tui-rs) +- [tui-realm](https://github.com/veeso/tui-realm) +- [whoami](https://github.com/libcala/whoami) +- [wildmatch](https://github.com/becheran/wildmatch) + +--- + +## Gallerie 🎬 + +> Termscp Home + +![Auth](/assets/images/auth.gif) + +> Bookmarks + +![Bookmarks](/assets/images/bookmarks.gif) + +> Setup + +![Setup](/assets/images/config.gif) + +> Text editor + +![TextEditor](/assets/images/text-editor.gif) + +--- + +## Licence 📃 + +termscp est sous licence MIT. + +Vous pouvez lire l'intégralité de la licence [ICI](../../LICENSE) diff --git a/docs/it/README.md b/docs/it/README.md index 046d5c77..e80b2fe9 100644 --- a/docs/it/README.md +++ b/docs/it/README.md @@ -62,7 +62,7 @@ />

-

Sviluppato da @veeso

+

Sviluppato da @veeso

Versione corrente: 0.7.0 (12/10/2021)

[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 89c6f71a..6afddd48 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -62,7 +62,7 @@ />

-

@veeso 开发

+

@veeso 开发

当前版本: 0.7.0 (12/10/2021)

[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) From c9e85896895990fd52340708d590769c2bb82321 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 6 Oct 2021 10:30:24 +0200 Subject: [PATCH 06/11] readmes --- README.md | 2 +- docs/de/README.md | 112 +++++------ docs/de/man.md | 486 ++++++++++++++++++++++++++++++++++++++++++++++ docs/es/README.md | 122 ++++++------ docs/es/man.md | 486 ++++++++++++++++++++++++++++++++++++++++++++++ docs/fr/man.md | 486 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 1576 insertions(+), 118 deletions(-) create mode 100644 docs/de/man.md create mode 100644 docs/es/man.md create mode 100644 docs/fr/man.md diff --git a/README.md b/README.md index 8f45da80..bc672ffd 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@

Developed by @veeso

Current version: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) +[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crate Version](https://img.shields.io/crates/v/termscp.svg)](https://crates.io/crates/termscp) [![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) diff --git a/docs/de/README.md b/docs/de/README.md index bed58b2e..68facf83 100644 --- a/docs/de/README.md +++ b/docs/de/README.md @@ -4,13 +4,13 @@

-

~ A feature rich terminal file transfer ~

+

~ Eine funktionsreiche Terminal-Dateiübertragung ~

- Website + Webseite · Installation · - User manual + Benutzerhandbuch

@@ -62,8 +62,8 @@ />

-

Developed by @veeso

-

Current version: 0.7.0 (12/10/2021)

+

Entwickelt von @veeso

+

Aktuelle Version: 0.7.0 (12/10/2021)

[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) @@ -71,9 +71,9 @@ --- -## About termscp 🖥 +## Über termscp 🖥 -Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **FreeBSD** and **Windows** compatible. +Termscp ist ein funktionsreicher Terminal-Dateitransfer und Explorer mit Unterstützung für SCP/SFTP/FTP/S3. Im Grunde handelt es sich also um ein Terminal-Dienstprogramm mit einer TUI, um eine Verbindung zu einem Remote-Server herzustellen, um Dateien abzurufen und hochzuladen und mit dem lokalen Dateisystem zu interagieren. Es ist **Linux**, **MacOS**, **FreeBSD** und **Windows** kompatibel. ![Explorer](/assets/images/explorer.gif) @@ -81,84 +81,84 @@ Termscp is a feature rich terminal file transfer and explorer, with support for ## Features 🎁 -- 📁 Different communication protocols +- 📁 Verschiedene Kommunikationsprotokolle - **SFTP** - **SCP** - - **FTP** and **FTPS** + - **FTP** und **FTPS** - **Aws S3** -- 🖥 Explore and operate on the remote and on the local machine file system with a handy UI - - Create, remove, rename, search, view and edit files -- ⭐ Connect to your favourite hosts through built-in bookmarks and recent connections -- 📝 View and edit files with your favourite applications -- 💁 SFTP/SCP authentication with SSH keys and username/password -- 🐧 Compatible with Windows, Linux, FreeBSD and MacOS -- 🎨 Make it yours! - - Themes - - Custom file explorer format - - Customizable text editor - - Customizable file sorting - - and many other parameters... -- 📫 Get notified via Desktop Notifications when a large file has been transferred -- 🔐 Save your password in your operating system key vault +- 🖥 Erkunden und bedienen Sie das Dateisystem der Fernbedienung und des lokalen Computers mit einer praktischen Benutzeroberfläche + - Erstellen, Entfernen, Umbenennen, Suchen, Anzeigen und Bearbeiten von Dateien +- ⭐ Verbinden Sie sich über integrierte Lesezeichen und aktuelle Verbindungen mit Ihren Lieblingshosts +- 📝 Anzeigen und Bearbeiten von Dateien mit Ihren bevorzugten Anwendungen +- 💁 SFTP/SCP-Authentifizierung mit SSH-Schlüsseln und Benutzername/Passwort +- 🐧 Kompatibel mit Windows, Linux, FreeBSD und MacOS +- 🎨 Mach es zu deinem! + - Themen + - Benutzerdefiniertes Datei-Explorer-Format + - Anpassbarer Texteditor + - Anpassbare Dateisortierung + - und viele andere Parameter... +- 📫 Lassen Sie sich benachrichtigen, wenn eine große Datei übertragen wurde +- 🔐 Speichern Sie Ihr Passwort in Ihrem Betriebssystem-Schlüsseltresor - 🦀 Rust-powered -- 👀 Developed keeping an eye on performance -- 🦄 Frequent awesome updates +- 👀 Entwickelt, um die Leistung im Auge zu behalten +- 🦄 Häufige tolle Updates --- -## Get started 🚀 +## Loslegen 🚀 -If you're considering to install termscp I want to thank you 💜 ! I hope you will enjoy termscp! -If you want to contribute to this project, don't forget to check out our [contribute guide](../../CONTRIBUTING.md). +Wenn Sie überlegen, termscp zu installieren, möchte ich Ihnen danken 💜 ! Ich hoffe, Sie werden Termscp genießen! +Wenn Sie zu diesem Projekt beitragen möchten, vergessen Sie nicht, unseren [Beitragsleitfaden](../../CONTRIBUTING.md) zu lesen. -If you are a Linux, a FreeBSD or a MacOS user this simple shell script will install termscp on your system with a single command: +Wenn Sie ein Linux-, FreeBSD- oder MacOS-Benutzer sind, installiert dieses einfache Shell-Skript termscp mit einem einzigen Befehl auf Ihrem System: ```sh curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh ``` -while if you're a Windows user, you can install termscp with [Chocolatey](https://chocolatey.org/): +Wenn Sie ein Windows-Benutzer sind, können Sie termscp mit [Chocolatey](https://chocolatey.org/) installieren: ```sh choco install termscp ``` -For more information or other platforms, please visit [veeso.github.io](https://veeso.github.io/termscp/#get-started) to view all installation methods. +Für weitere Informationen oder andere Plattformen besuchen Sie bitte [veeso.github.io](https://veeso.github.io/termscp/#get-started), um alle Installationsmethoden anzuzeigen. -⚠️ If you're looking on how to update termscp just run termscp from CLI with: `(sudo) termscp --update` ⚠️ +⚠️ Wenn Sie wissen möchten, wie Sie termscp aktualisieren können, führen Sie einfach termscp über die CLI aus mit: `(sudo) termscp --update` ⚠️ -### Requirements ❗ +### Softwareanforderungen ❗ -- **Linux** users: +- **Linux** Benutzer: - libssh - libdbus-1 - pkg-config -- **FreeBSD** users: +- **FreeBSD** Benutzer: - libssh - dbus - pkgconf -### Optional Requirements ✔️ +### Optionale Softwareanforderungen ✔️ -These requirements are not forced required to run termscp, but to enjoy all of its features +Diese Anforderungen sind nicht zwingend erforderlich, um termscp auszuführen, sondern um alle Funktionen nutzen zu können -- **Linux/FreeBSD** users: - - To **open** files via `V` (at least one of these) +- **Linux/FreeBSD** Benutzer: + - Um Dateien mit `V` zu **öffnen** (mindestens eines davon) - *xdg-open* - *gio* - *gnome-open* - *kde-open* -- **Linux** users: - - A keyring manager: read more in the [User manual](man.md#linux-keyring) -- **WSL** users - - To **open** files via `V` (at least one of these) +- **Linux** Benutzer: + - Ein Keyring-manager: Lesen Sie mehr in der [Bedienungsanleitung](man.md#linux-keyring) +- **WSL** Benutzer + - Um Dateien mit `V` zu **öffnen** (mindestens eines davon) - [wslu](https://github.com/wslutilities/wslu) --- -## Support me ☕ +## Unterstütze mich ☕ -If you like termscp and you'd love to see the project to grow and to improve, please consider a little donation to support me on **Buy me a coffee** 🥳 +Wenn Ihnen termscp gefällt und Sie gerne sehen würden, wie das Projekt wächst und sich verbessert, denken Sie bitte über eine kleine Spende nach, um mich bei **Buy me a coffee** zu unterstützen. 🥳 [![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) @@ -166,36 +166,36 @@ If you like termscp and you'd love to see the project to grow and to improve, pl ## User manual and Documentation 📚 -The user manual can be found on the [termscp's website](https://veeso.github.io/termscp/#user-manual) or on [Github](man.md). +Das Benutzerhandbuch finden Sie auf der [termscp-Website](https://veeso.github.io/termscp/#user-manual) oder auf [Github](man.md). -The developer documentation can be found on Rust Docs at +Die Entwicklerdokumentation finden Sie in Rust Docs unter --- ## Known issues 🧻 -- `NoSuchFileOrDirectory` on connect (WSL1): I know about this issue and it's a glitch of WSL I guess. Don't worry about it, just move the termscp executable into another PATH location, such as `/usr/bin`, or install it through the appropriate package format (e.g. deb). +- `NoSuchFileOrDirectory` auf verbinden (WSL1): Ich kenne dieses Problem und es ist ein Fehler von WSL, denke ich. Machen Sie sich keine Sorgen, verschieben Sie einfach die ausführbare Datei von termcp an einen anderen PATH-Speicherort, z. B. `/usr/bin`, oder installieren Sie sie über das entsprechende Paketformat (z. B. deb). --- ## Contributing and issues 🤝🏻 -Contributions, bug reports, new features and questions are welcome! 😉 -If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termscp, feel free to open an issue or a PR. +Beiträge, Fehlerberichte, neue Funktionen und Fragen sind willkommen! 😉 +Wenn Sie Fragen oder Bedenken haben, eine neue Funktion vorschlagen oder einfach nur die Bedingungen verbessern möchten, können Sie ein Problem oder eine PR erstellen. -Please follow [our contributing guidelines](../../CONTRIBUTING.md) +Bitte befolgen Sie [unsere Beitragsrichtlinien](../../CONTRIBUTING.md) --- ## Changelog ⏳ -View termscp's changelog [HERE](../../CHANGELOG.md) +Änderungsprotokoll von termscp ansehen [HIER](../../CHANGELOG.md) --- ## Powered by 💪 -termscp is powered by these awesome projects: +termscp wird von diesen großartigen Projekten unterstützt: - [bytesize](https://github.com/hyunsik/bytesize) - [crossterm](https://github.com/crossterm-rs/crossterm) @@ -215,7 +215,7 @@ termscp is powered by these awesome projects: --- -## Gallery 🎬 +## Galerie 🎬 > Termscp Home @@ -237,6 +237,6 @@ termscp is powered by these awesome projects: ## License 📃 -termscp is licensed under the MIT license. +termscp ist unter der MIT-Lizenz lizenziert. -You can read the entire license [HERE](../../LICENSE) +Du kannst die gesamte Lizenz [HIER](../../LICENSE) lesen diff --git a/docs/de/man.md b/docs/de/man.md new file mode 100644 index 00000000..bd130fd1 --- /dev/null +++ b/docs/de/man.md @@ -0,0 +1,486 @@ +# User manual 🎓 + +- [User manual 🎓](#user-manual-) + - [Usage ❓](#usage-) + - [Address argument 🌎](#address-argument-) + - [AWS S3 address argument](#aws-s3-address-argument) + - [How Password can be provided 🔐](#how-password-can-be-provided-) + - [File explorer 📂](#file-explorer-) + - [Keybindings ⌨](#keybindings-) + - [Work on multiple files 🥷](#work-on-multiple-files-) + - [Synchronized browsing ⏲️](#synchronized-browsing-️) + - [Open and Open With 🚪](#open-and-open-with-) + - [Bookmarks ⭐](#bookmarks-) + - [Are my passwords Safe 😈](#are-my-passwords-safe-) + - [Linux Keyring](#linux-keyring) + - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) + - [Aws S3 credentials 🦊](#aws-s3-credentials-) + - [Configuration ⚙️](#configuration-️) + - [SSH Key Storage 🔐](#ssh-key-storage-) + - [File Explorer Format](#file-explorer-format) + - [Themes 🎨](#themes-) + - [My theme won't load 😱](#my-theme-wont-load-) + - [Styles 💈](#styles-) + - [Authentication page](#authentication-page) + - [Transfer page](#transfer-page) + - [Misc](#misc) + - [Text Editor ✏](#text-editor-) + - [Logging 🩺](#logging-) + - [Notifications 📫](#notifications-) + +## Usage ❓ + +termscp can be started with the following options: + +`termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]` + +- `-P, --password ` if address is provided, password will be this argument +- `-c, --config` Open termscp starting from the configuration page +- `-q, --quiet` Disable logging +- `-t, --theme ` Import specified theme +- `-u, --update` Update termscp to latest version +- `-v, --version` Print version info +- `-h, --help` Print help page + +termscp can be started in two different mode, if no extra arguments is provided, termscp will show the authentication form, where the user will be able to provide the parameters required to connect to the remote peer. + +Alternatively, the user can provide an address as argument to skip the authentication form and starting directly the connection to the remote server. + +If address argument is provided you can also provide the start working directory for local host + +### Address argument 🌎 + +The address argument has the following syntax: + +```txt +[protocol://][username@]
[:port][:wrkdir] +``` + +Let's see some example of this particular syntax, since it's very comfortable and you'll probably going to use this instead of the other one... + +- Connect using default protocol (*defined in configuration*) to 192.168.1.31, port if not provided is default for the selected protocol (in this case depends on your configuration); username is current user's name + + ```sh + termscp 192.168.1.31 + ``` + +- Connect using default protocol (*defined in configuration*) to 192.168.1.31; username is `root` + + ```sh + termscp root@192.168.1.31 + ``` + +- Connect using scp to 192.168.1.31, port is 4022; username is `omar` + + ```sh + termscp scp://omar@192.168.1.31:4022 + ``` + +- Connect using scp to 192.168.1.31, port is 4022; username is `omar`. You will start in directory `/tmp` + + ```sh + termscp scp://omar@192.168.1.31:4022:/tmp + ``` + +#### AWS S3 address argument + +Aws S3 has a different syntax for CLI address argument, for obvious reasons, but I managed to keep it the more similar as possible to the generic address argument: + +```txt +s3://@[:profile][:/wrkdir] +``` + +e.g. + +```txt +s3://buckethead@eu-central-1:default:/assets +``` + +#### How Password can be provided 🔐 + +You have probably noticed, that, when providing the address as argument, there's no way to provide the password. +Password can be basically provided through 3 ways when address argument is provided: + +- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very unsecure (since you might keep the password in the shell history) +- Via `sshpass`: you can provide password via `sshpass`, e.g. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` +- You will be prompted for it: if you don't use any of the previous methods, you will be prompted for the password, as happens with the more classics tools such as `scp`, `ssh`, etc. + +--- + +## File explorer 📂 + +When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. +These panels are basically 3 (yes, three actually): + +- Local explorer panel: it is displayed on the left of your screen and shows the current directory entries for localhost +- Remote explorer panel: it is displayed on the right of your screen and shows the current directory entries for the remote host. +- Find results panel: depending on where you're searching for files (local/remote) it will replace the local or the explorer panel. This panel shows the entries matching the search query you performed. + +In order to change panel you need to type `` to move the remote explorer panel and `` to move back to the local explorer panel. Whenever you are in the find results panel, you need to press `` to exit panel and go back to the previous panel. + +### Keybindings ⌨ + +| Key | Command | Reminder | +|---------------|-------------------------------------------------------|-------------| +| `` | Disconnect from remote; return to authentication page | | +| `` | Switch between log tab and explorer | | +| `` | Go to previous directory in stack | | +| `` | Move to remote explorer tab | | +| `` | Move to local explorer tab | | +| `` | Move up in selected list | | +| `` | Move down in selected list | | +| `` | Move up in selected list by 8 rows | | +| `` | Move down in selected list by 8 rows | | +| `` | Enter directory | | +| `` | Upload / download selected file | | +| `` | Toggle hidden files | All | +| `` | Sort files by | Bubblesort? | +| `` | Copy file/directory | Copy | +| `` | Make directory | Directory | +| `` | Delete file (Same as `DEL`) | Erase | +| `` | Search for files (wild match is supported) | Find | +| `` | Go to supplied path | Go to | +| `` | Show help | Help | +| `` | Show info about selected file or directory | Info | +| `` | Reload current directory's content / Clear selection | List | +| `` | Select a file | Mark | +| `` | Create new file with provided name | New | +| `` | Edit file; see Text editor | Open | +| `` | Quit termscp | Quit | +| `` | Rename file | Rename | +| `` | Save file as... | Save | +| `` | Go to parent directory | Upper | +| `` | Open file with default program for filetype | View | +| `` | Open file with provided program | With | +| `` | Execute a command | eXecute | +| `` | Toggle synchronized browsing | sYnc | +| `` | Delete file | | +| `` | Select all files | | +| `` | Abort file transfer process | | + +### Work on multiple files 🥷 + +You can opt to work on multiple files, selecting them pressing ``, in order to select the current file, or pressing ``, which will select all the files in the working directory. +Once a file is marked for selection, it will be displayed with a `*` on the left. +When working on selection, only selected file will be processed for actions, while the current highlighted item will be ignored. +It is possible to work on multiple files also when in the find result panel. +All the actions are available when working with multiple files, but be aware that some actions work in a slightly different way. Let's dive in: + +- *Copy*: whenever you copy a file, you'll be prompted to insert the destination name. When working with multiple file, this name refers to the destination directory where all these files will be copied. +- *Rename*: same as copy, but will move files there. +- *Save as*: same as copy, but will write them there. + +### Synchronized browsing ⏲️ + +When enabled, synchronized browsing, will allow you to synchronize the navigation between the two panels. +This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browsing state will be reported on the status bar on `ON`. + +> ❗ at the moment, whenever you try to access an unexisting directory, you won't be prompted to create it. This might change in a future update. + +### Open and Open With 🚪 + +Open and open with commands are powered by [open-rs](https://docs.rs/crate/open/1.7.0). +When opening files with View command (``), the system default application for the file type will be used. To do so, the default operting system service will be used, so be sure to have at least one of these installed on your system: + +- **Windows** users: you don't have to worry about it, since the crate will use the `start` command. +- **MacOS** users: you don't have to worry either, since the crate will use `open`, which is already installed on your system. +- **Linux** users: one of these should be installed + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **WSL** users: *wslview* is required, you must install [wslu](https://github.com/wslutilities/wslu). + +> Q: Can I edit remote files using the view command? +> A: No, at least not directly from the "remote panel". You have to download it to a local directory first, that's due to the fact that when you open a remote file, the file is downloaded into a temporary directory, but there's no way to create a watcher for the file to check when the program you used to open it was closed, so termscp is not able to know when you're done editing the file. + +--- + +## Bookmarks ⭐ + +In termscp it is possible to save favourites hosts, which can be then loaded quickly from the main layout of termscp. +termscp will also save the last 16 hosts you connected to. +This feature allows you to load all the parameters required to connect to a certain remote, simply selecting the bookmark in the tab under the authentication form. + +Bookmarks will be saved, if possible at: + +- `$HOME/.config/termscp/` on Linux/BSD +- `$HOME/Library/Application Support/termscp` on MacOs +- `FOLDERID_RoamingAppData\termscp\` on Windows + +For bookmarks only (this won't apply to recent hosts) it is also possible to save the password used to authenticate. The password is not saved by default and must be specified through the prompt when saving a new Bookmark. +If you're concerned about the security of the password saved for your bookmarks, please read the [chapter below 👀](#are-my-passwords-safe-). + +In order to create a new bookmark, just follow these steps: + +1. Type in the authentication form the parameters to connect to your remote server +2. Press `` +3. Type in the name you want to give to the bookmark +4. Choose whether to remind the password or not +5. Press `` to submit + +whenever you want to use the previously saved connection, just press `` to navigate to the bookmarks list and load the bookmark parameters into the form pressing ``. + +![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) + +### Are my passwords Safe 😈 + +Sure 😉. +As said before, bookmarks are saved in your configuration directory along with passwords. Passwords are obviously not plain text, they are encrypted with **AES-128**. Does this make them safe? Absolutely! (except for BSD and WSL users 😢) + +On **Windows**, **Linux** and **MacOS** the key used to encrypt passwords is stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. + +❗ Please, notice that if you're a Linux user, you'd better to read the [chapter below 👀](#linux-keyring), because the keyring might not be enabled or supported on your system! + +On *BSD* and *WSL*, on the other hand, the key used to encrypt your passwords is stored on your drive (at $HOME/.config/termscp). It is then, still possible to retrieve the key to decrypt passwords. Luckily, the location of the key guarantees your key can't be read by users different from yours, but yeah, I still wouldn't save the password for a server exposed on the internet 😉. + +#### Linux Keyring + +We all love Linux thanks to the freedom it gives to the users. You can basically do anything you want as a Linux user, but this has also some cons, such as the fact that often there is no standard applications across different distributions. And this involves keyring too. +This means that on Linux there might be no keyring installed on your system. Unfortunately the library we use to work with the key storage requires a service which exposes `org.freedesktop.secrets` on D-BUS and the worst fact is that there only two services exposing it. + +- ❗ If you use GNOME as desktop environment (e.g. ubuntu users), you should already be fine, since keyring is already provided by `gnome-keyring` and everything should already be working. +- ❗ For other desktop environment users there is a nice program you can use to get a keyring which is [KeepassXC](https://keepassxc.org/), which I use on my Manjaro installation (with KDE) and works fine. The only problem is that you have to setup it to be used along with termscp (but it's quite simple). To get started with KeepassXC read more [here](#keepassxc-setup-for-termscp). +- ❗ What about you don't want to install any of these services? Well, there's no problem! **termscp will keep working as usual**, but it will save the key in a file, as it usually does for BSD and WSL. + +##### KeepassXC setup for termscp + +Follow these steps in order to setup keepassXC for termscp: + +1. Install KeepassXC +2. Go to "tools" > "settings" in toolbar +3. Select "Secret service integration" and toggle "Enable KeepassXC freedesktop.org secret service integration" +4. Create a database, if you don't have one yet: from toolbar "Database" > "New database" +5. From toolbar: "Database" > "Database settings" +6. Select "Secret service integration" and toggle "Expose entries under this group" +7. Select the group in the list where you want the termscp secret to be kept. Remember that this group might be used by any other application to store secrets via DBUS. + +--- + +## Aws S3 credentials 🦊 + +In order to connect to an Aws S3 bucket you must obviously provide some credentials. +There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. +So these are the ways you can provide the credentials for s3: + +1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. +2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: + + These should always be mandatory: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: the secret access key + + In case you've configured a stronger security, you *may* require these too: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. +In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + +## Configuration ⚙️ + +termscp supports some user defined parameters, which can be defined in the configuration. +Underhood termscp has a TOML file and some other directories where all the parameters will be saved, but don't worry, you won't touch any of these files manually, since I made possible to configure termscp from its user interface entirely. + +termscp, like for bookmarks, just requires to have these paths accessible: + +- `$HOME/.config/termscp/` on Linux/BSD +- `$HOME/Library/Application Support/termscp` on MacOs +- `FOLDERID_RoamingAppData\termscp\` on Windows + +To access configuration, you just have to press `` from the home of termscp. + +These parameters can be changed: + +- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process so if you ask: yes, you can use `notepad.exe`, and no: **Visual Studio Code doesn't work**. +- **Default Protocol**: the default protocol is the default value for the file transfer protocol to be used in termscp. This applies for the login page and for the address CLI argument. +- **Show Hidden Files**: select whether hidden files shall be displayed by default. You will be able to decide whether to show or not hidden files at runtime pressing `A` anyway. +- **Check for updates**: if set to `yes`, termscp will fetch the Github API to check if there is a new version of termscp available. +- **Prompt when replacing existing files?**: If set to `yes`, termscp will prompt for confirmation you whenever a file transfer would cause an existing file on target host to be replaced. +- **Group Dirs**: select whether directories should be groupped or not in file explorers. If `Display first` is selected, directories will be sorted using the configured method but displayed before files, viceversa if `Display last` is selected. +- **Remote File formatter syntax**: syntax to display file info for each file in the remote explorer. See [File explorer format](#file-explorer-format) +- **Local File formatter syntax**: syntax to display file info for each file in the local explorer. See [File explorer format](#file-explorer-format) +- **Enable notifications?**: If set to `Yes`, notifications will be displayed. +- **Notifications: minimum transfer size**: if transfer size is greater or equal than the specified value, notifications for transfer will be displayed. The accepted values are in format `{UNSIGNED} B/KB/MB/GB/TB/PB` + +### SSH Key Storage 🔐 + +Along with configuration, termscp provides also an **essential** feature for **SFTP/SCP clients**: the SSH key storage. + +You can access the SSH key storage, from configuration moving to the `SSH Keys` tab, once there you can: + +- **Add a new key**: just press `` and you will be prompted to create a new key. Provide the hostname/ip address and the username associated to the key and finally a text editor will open up: paste the **PRIVATE** ssh key into the text editor, save and quit. +- **Remove an existing key**: just press `` or `` on the key you want to remove, to delete persistently the key from termscp. +- **Edit an existing key**: just press `` on the key you want to edit, to change the private key. + +> Q: Wait, my private key is protected with password, can I use it? +> A: Of course you can. The password provided for authentication in termscp, is valid both for username/password authentication and for RSA key authentication. + +### File Explorer Format + +It is possible through configuration to define a custom format for the file explorer. This is possible both for local and remote host, so you can have two different syntax in use. These fields, with name `File formatter syntax (local)` and `File formatter syntax (remote)` will define how the file entries will be displayed in the file explorer. +The syntax for the formatter is the following `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. +Each key in bracket will be replaced with the related attribute, while everything outside brackets will be left unchanged. + +- The key name is mandatory and must be one of the keys below +- The length describes the length reserved to display the field. Static attributes doesn't support this (GROUP, PEX, SIZE, USER) +- Extra is supported only by some parameters and is an additional options. See keys to check if extra is supported. + +These are the keys supported by the formatter: + +- `ATIME`: Last access time (with default syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{ATIME:8:%H:%M}`) +- `CTIME`: Creation time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{CTIME:8:%H:%M}`) +- `GROUP`: Owner group +- `MTIME`: Last change time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{MTIME:8:%H:%M}`) +- `NAME`: File name (Elided if longer than LENGTH) +- `PEX`: File permissions (UNIX format) +- `SIZE`: File size (omitted for directories) +- `SYMLINK`: Symlink (if any `-> {FILE_PATH}`) +- `USER`: Owner user + +If left empty, the default formatter syntax will be used: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` + +--- + +## Themes 🎨 + +Termscp provides you with an awesome feature: the possibility to set the colors for several components in the application. +If you want to customize termscp there are two available ways to do so: + +- From the **configuration menu** +- Importing a **theme file** + +In order to create your own customization from termscp, all you have to do so is to enter the configuration from the auth activity, pressing `` and then `` twice. You should have now moved to the `themes` panel. + +Here you can move with `` and `` to change the style you want to change, as shown in the gif below: + +![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) + +termscp supports both the traditional explicit hex (`#rrggbb`) and rgb `rgb(r, g, b)` syntax to provide colors, but also **[css colors](https://www.w3schools.com/cssref/css_colors.asp)** (such as `crimson`) are accepted 😉. There is also a special keywork which is `Default`. Default means that the color used will be the default foreground or background color based on the situation (foreground for texts and lines, background for well, guess what). + +As said before, you can also import theme files. You can take inspiration from or directly use one of the themes provided along with termscp, located in the `themes/` directory of this repository and import them running termscp as `termscp -t `. If everything was fine, it should tell you the theme has successfully been imported. + +### My theme won't load 😱 + +This is probably due to a recent update which has broken the theme. Whenever I add a new key to themes, the saved theme won't load. To fix this issues there are two really quick-fix solutions: + +1. Reload theme: whenever I release an update I will also patch the "official" themes, so you just have to download it from the repository again and re-import the theme via `-t` option + + ```sh + termscp -t + ``` + +2. Fix your theme: If you're using a custom theme, then you can edit via `vim` and add the missing key. The theme is located at `$CONFIG_DIR/termscp/theme.toml` where `$CONFIG_DIR` is: + + - FreeBSD/GNU-Linux: `$HOME/.config/` + - MacOs: `$HOME/Library/Application Support` + - Windows: `%appdata%` + + ❗ Missing keys are reported in the CHANGELOG under `BREAKING CHANGES` for the version you've just installed. + +### Styles 💈 + +You can find in the table below, the description for each style field. +Please, notice that **styles won't apply to configuration page**, in order to make it always accessible in case you mess everything up + +#### Authentication page + +| Key | Description | +|----------------|------------------------------------------| +| auth_address | Color of the input field for IP address | +| auth_bookmarks | Color of the bookmarks panel | +| auth_password | Color of the input field for password | +| auth_port | Color of the input field for port number | +| auth_protocol | Color of the radio group for protocol | +| auth_recents | Color of the recents panel | +| auth_username | Color of the input field for username | + +#### Transfer page + +| Key | Description | +|--------------------------------------|---------------------------------------------------------------------------| +| transfer_local_explorer_background | Background color of localhost explorer | +| transfer_local_explorer_foreground | Foreground coloor of localhost explorer | +| transfer_local_explorer_highlighted | Border and highlighted color for localhost explorer | +| transfer_remote_explorer_background | Background color of remote explorer | +| transfer_remote_explorer_foreground | Foreground coloor of remote explorer | +| transfer_remote_explorer_highlighted | Border and highlighted color for remote explorer | +| transfer_log_background | Background color for log panel | +| transfer_log_window | Window color for log panel | +| transfer_progress_bar_partial | Partial progress bar color | +| transfer_progress_bar_total | Total progress bar color | +| transfer_status_hidden | Color for status bar "hidden" label | +| transfer_status_sorting | Color for status bar "sorting" label; applies also to file sorting dialog | +| transfer_status_sync_browsing | Color for status bar "sync browsing" label | + +#### Misc + +These styles applie to different part of the application. + +| Key | Description | +|-------------------|---------------------------------------------| +| misc_error_dialog | Color for error messages | +| misc_info_dialog | Color for info dialogs | +| misc_input_dialog | Color for input dialogs (such as copy file) | +| misc_keys | Color of text for key strokes | +| misc_quit_dialog | Color for quit dialogs | +| misc_save_dialog | Color for save dialogs | +| misc_warn_dialog | Color for warn dialogs | + +--- + +## Text Editor ✏ + +termscp has, as you might have noticed, many features, one of these is the possibility to view and edit text file. It doesn't matter if the file is located on the local host or on the remote host, termscp provides the possibility to open a file in your favourite text editor. +In case the file is located on remote host, the file will be first downloaded into your temporary file directory and then, **only** if changes were made to the file, re-uploaded to the remote host. termscp checks if you made changes to the file verifying the last modification time of the file. + +Just a reminder: **you can edit only textual file**; binary files are not supported. + +--- + +## Logging 🩺 + +termscp writes a log file for each session, which is written at + +- `$HOME/.config/termscp/termscp.log` on Linux/BSD +- `$HOME/Library/Application Support/termscp/termscp.log` on MacOs +- `FOLDERID_RoamingAppData\termscp\termscp.log` on Windows + +the log won't be rotated, but will just be truncated after each launch of termscp, so if you want to report an issue and you want to attach your log file, keep in mind to save the log file in a safe place before using termscp again. +The log file always reports in *trace* level, so it is kinda verbose. +I know you might have some questions regarding log files, so I made a kind of a Q/A: + +> Is it possible to reduce verbosity? + +No. The reason is quite simple: when an issue happens, you must be able to know what's causing it and the only way to do that, is to have the log file with the maximum verbosity level set. + +> If trace level is set for logging, is the file going to reach a huge size? + +Probably not, unless you never quit termscp, but I think that's unlikely to happen. A long session may produce up to 10MB of log files (I said a long session), but I think a normal session won't exceed 2MB. + +> I don't want logging, can I turn it off? + +Yes, you can. Just start termscp with `-q or --quiet` option. You can alias termscp to make it persistent. Remember that logging is used to diagnose issues, so since behind every open source project, there should always be this kind of mutual help, keeping log files might be your way to support the project 😉. I don't want you to feel guilty, but just to say. + +> Is logging safe? + +If you're concerned about security, the log file doesn't contain any plain password, so don't worry and exposes the same information the sibling file `bookmarks` reports. + +## Notifications 📫 + +Termscp will send Desktop notifications for these kind of events: + +- on **Transfer completed**: The notification will be sent once a transfer has been successfully completed. + - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. +- on **Transfer failed**: The notification will be sent once a transfer has failed due to an error. + - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. +- on **Update available**: Whenever a new version of termscp is available, a notification will be displayed. +- on **Update installed**: Whenever a new version of termscp has been installed, a notification will be displayed. +- on **Update failed**: Whenever the installation of the update fails, a notification will be displayed. + +❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. +❗ If you want to change the minimum transfer size to display notifications, you can change the value in the configuration with key `Notifications: minimum transfer size` and set it to whatever suits better for you 🙂. diff --git a/docs/es/README.md b/docs/es/README.md index bed58b2e..51e631a8 100644 --- a/docs/es/README.md +++ b/docs/es/README.md @@ -4,13 +4,13 @@

-

~ A feature rich terminal file transfer ~

+

~ Una transferencia de archivos de terminal rica en funciones ~

@@ -62,8 +62,8 @@ />

-

Developed by @veeso

-

Current version: 0.7.0 (12/10/2021)

+

Desarrollado por @veeso

+

Versión actual: 0.7.0 (12/10/2021)

[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) @@ -71,131 +71,131 @@ --- -## About termscp 🖥 +## Sobre termscp 🖥 -Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **FreeBSD** and **Windows** compatible. +Termscp es un explorador y transferencia de archivos de terminal rico en funciones, con apoyo para SCP/SFTP/FTP/S3. Básicamente, es una utilidad de terminal con una TUI para conectarse a un servidor remoto para recuperar y cargar archivos e interactuar con el sistema de archivos local. Es compatible con **Linux**, **MacOS**, **FreeBSD** y **Windows**. ![Explorer](/assets/images/explorer.gif) --- -## Features 🎁 +## Características 🎁 -- 📁 Different communication protocols +- 📁 Diferentes protocolos de comunicación - **SFTP** - **SCP** - - **FTP** and **FTPS** + - **FTP** y **FTPS** - **Aws S3** -- 🖥 Explore and operate on the remote and on the local machine file system with a handy UI - - Create, remove, rename, search, view and edit files -- ⭐ Connect to your favourite hosts through built-in bookmarks and recent connections -- 📝 View and edit files with your favourite applications -- 💁 SFTP/SCP authentication with SSH keys and username/password -- 🐧 Compatible with Windows, Linux, FreeBSD and MacOS -- 🎨 Make it yours! - - Themes - - Custom file explorer format - - Customizable text editor - - Customizable file sorting - - and many other parameters... -- 📫 Get notified via Desktop Notifications when a large file has been transferred -- 🔐 Save your password in your operating system key vault +- 🖥 Explore y opere en el sistema de archivos de la máquina local y remota con una interfaz de usuario práctica + - Cree, elimine, cambie el nombre, busque, vea y edite archivos +- ⭐ Conéctese a sus hosts favoritos y conexiones recientes +- 📝 Ver y editar archivos con sus aplicaciones favoritas +- 💁 Autenticación SFTP / SCP con claves SSH y nombre de usuario / contraseña +- 🐧 compatible con Linux, MacOS, FreeBSD y Windows +- 🎨 Haz lo tuyo! + - Temas + - Formato de explorador de archivos personalizado + - Editor de texto personalizable + - Clasificación de archivos personalizable + - y muchos otros parámetros ... +- 📫 Reciba una notificación cuando se haya transferido un archivo grande +- 🔐 Guarde su contraseña en el almacén de claves de su sistema operativo - 🦀 Rust-powered -- 👀 Developed keeping an eye on performance -- 🦄 Frequent awesome updates +- 👀 Desarrollado sin perder de vista el rendimiento +- 🦄 Actualizaciones frecuentes --- -## Get started 🚀 +## Para iniciar 🚀 -If you're considering to install termscp I want to thank you 💜 ! I hope you will enjoy termscp! -If you want to contribute to this project, don't forget to check out our [contribute guide](../../CONTRIBUTING.md). +Si estás considerando instalar termscp, ¡quiero darte las gracias 💜! ¡Espero que disfrutes de termscp! +Si desea contribuir a este proyecto, no olvide consultar nuestra [guía de contribución](../../CONTRIBUTING.md). -If you are a Linux, a FreeBSD or a MacOS user this simple shell script will install termscp on your system with a single command: +Si tu eres un usuario de Linux, FreeBSD o MacOS, este sencillo script de shell instalará termscp en tu sistema con un solo comando: ```sh curl --proto '=https' --tlsv1.2 -sSLf "https://git.io/JBhDb" | sh ``` -while if you're a Windows user, you can install termscp with [Chocolatey](https://chocolatey.org/): +mientras que si eres un usuario de Windows, puedes instalar termscp con [Chocolatey](https://chocolatey.org/): ```sh choco install termscp ``` -For more information or other platforms, please visit [veeso.github.io](https://veeso.github.io/termscp/#get-started) to view all installation methods. +Para obtener más información u otras plataformas, visite [veeso.github.io](https://veeso.github.io/termscp/#get-started) para ver todos los métodos de instalación. -⚠️ If you're looking on how to update termscp just run termscp from CLI with: `(sudo) termscp --update` ⚠️ +⚠️ Si estás buscando cómo actualizar termscp, simplemente ejecute termscp desde CLI con:: `(sudo) termscp --update` ⚠️ -### Requirements ❗ +### Requisitos ❗ -- **Linux** users: +- Usuarios **Linux**: - libssh - libdbus-1 - pkg-config -- **FreeBSD** users: +- Usuarios **FreeBSD**: - libssh - dbus - pkgconf -### Optional Requirements ✔️ +### Requisitos opcionales ✔️ These requirements are not forced required to run termscp, but to enjoy all of its features -- **Linux/FreeBSD** users: - - To **open** files via `V` (at least one of these) +- Usuarios **Linux/FreeBSD**: + - Para **abrir** archivos con `V` (al menos uno de estos) - *xdg-open* - *gio* - *gnome-open* - *kde-open* -- **Linux** users: - - A keyring manager: read more in the [User manual](man.md#linux-keyring) -- **WSL** users - - To **open** files via `V` (at least one of these) +- Usuarios **Linux**: + - Un keyring manager: leer más en el [manual de usuario](man.md#linux-keyring) +- Usuarios **WSL** + - Para **abrir** archivos con `V` (al menos uno de estos) - [wslu](https://github.com/wslutilities/wslu) --- -## Support me ☕ +## Apoyame ☕ -If you like termscp and you'd love to see the project to grow and to improve, please consider a little donation to support me on **Buy me a coffee** 🥳 +Si te gusta termscp y te encantaría que el proyecto crezca y mejore, considera una pequeña donación para apoyarme en **Buy me a coffee** 🥳 [![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) --- -## User manual and Documentation 📚 +## Manual de usuario y documentación 📚 -The user manual can be found on the [termscp's website](https://veeso.github.io/termscp/#user-manual) or on [Github](man.md). +El manual del usuario se puede encontrar en el [sitio web de termscp](https://veeso.github.io/termscp/#user-manual) o en [Github](man.md). -The developer documentation can be found on Rust Docs at +La documentación para desarrolladores se puede encontrar en Rust Docs en --- -## Known issues 🧻 +## Problemas conocidos 🧻 -- `NoSuchFileOrDirectory` on connect (WSL1): I know about this issue and it's a glitch of WSL I guess. Don't worry about it, just move the termscp executable into another PATH location, such as `/usr/bin`, or install it through the appropriate package format (e.g. deb). +- `NoSuchFileOrDirectory` al conectar (WSL1): Conozco este problema y supongo que es un problema técnico de WSL. No se preocupe, simplemente mueva el ejecutable termscp a otra ubicación en el PATH, como `/usr/bin`, o instálelo a través del formato de paquete apropiado (por ejemplo, deb). --- -## Contributing and issues 🤝🏻 +## Contribuir y problemas 🤝🏻 -Contributions, bug reports, new features and questions are welcome! 😉 -If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termscp, feel free to open an issue or a PR. +¡Las contribuciones, los informes de errores, las nuevas funciones y las preguntas son bienvenidas! 😉 +Si tiene alguna pregunta o inquietud, o si desea sugerir una nueva función, o simplemente desea mejorar termscp, no dude en abrir un problema o un PR. -Please follow [our contributing guidelines](../../CONTRIBUTING.md) +Sigue [nuestras pautas de contribución](../../CONTRIBUTING.md) --- ## Changelog ⏳ -View termscp's changelog [HERE](../../CHANGELOG.md) +Ver registro de cambios de termscp [AQUÍ](../../CHANGELOG.md) --- ## Powered by 💪 -termscp is powered by these awesome projects: +termscp funciona con estos increíbles proyectos: - [bytesize](https://github.com/hyunsik/bytesize) - [crossterm](https://github.com/crossterm-rs/crossterm) @@ -215,7 +215,7 @@ termscp is powered by these awesome projects: --- -## Gallery 🎬 +## Galería 🎬 > Termscp Home @@ -235,8 +235,8 @@ termscp is powered by these awesome projects: --- -## License 📃 +## Licencia 📃 -termscp is licensed under the MIT license. +termscp tiene la licencia MIT. -You can read the entire license [HERE](../../LICENSE) +Puede leer la licencia completa [AQUÍ](../../LICENSE) diff --git a/docs/es/man.md b/docs/es/man.md new file mode 100644 index 00000000..bd130fd1 --- /dev/null +++ b/docs/es/man.md @@ -0,0 +1,486 @@ +# User manual 🎓 + +- [User manual 🎓](#user-manual-) + - [Usage ❓](#usage-) + - [Address argument 🌎](#address-argument-) + - [AWS S3 address argument](#aws-s3-address-argument) + - [How Password can be provided 🔐](#how-password-can-be-provided-) + - [File explorer 📂](#file-explorer-) + - [Keybindings ⌨](#keybindings-) + - [Work on multiple files 🥷](#work-on-multiple-files-) + - [Synchronized browsing ⏲️](#synchronized-browsing-️) + - [Open and Open With 🚪](#open-and-open-with-) + - [Bookmarks ⭐](#bookmarks-) + - [Are my passwords Safe 😈](#are-my-passwords-safe-) + - [Linux Keyring](#linux-keyring) + - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) + - [Aws S3 credentials 🦊](#aws-s3-credentials-) + - [Configuration ⚙️](#configuration-️) + - [SSH Key Storage 🔐](#ssh-key-storage-) + - [File Explorer Format](#file-explorer-format) + - [Themes 🎨](#themes-) + - [My theme won't load 😱](#my-theme-wont-load-) + - [Styles 💈](#styles-) + - [Authentication page](#authentication-page) + - [Transfer page](#transfer-page) + - [Misc](#misc) + - [Text Editor ✏](#text-editor-) + - [Logging 🩺](#logging-) + - [Notifications 📫](#notifications-) + +## Usage ❓ + +termscp can be started with the following options: + +`termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]` + +- `-P, --password ` if address is provided, password will be this argument +- `-c, --config` Open termscp starting from the configuration page +- `-q, --quiet` Disable logging +- `-t, --theme ` Import specified theme +- `-u, --update` Update termscp to latest version +- `-v, --version` Print version info +- `-h, --help` Print help page + +termscp can be started in two different mode, if no extra arguments is provided, termscp will show the authentication form, where the user will be able to provide the parameters required to connect to the remote peer. + +Alternatively, the user can provide an address as argument to skip the authentication form and starting directly the connection to the remote server. + +If address argument is provided you can also provide the start working directory for local host + +### Address argument 🌎 + +The address argument has the following syntax: + +```txt +[protocol://][username@]
[:port][:wrkdir] +``` + +Let's see some example of this particular syntax, since it's very comfortable and you'll probably going to use this instead of the other one... + +- Connect using default protocol (*defined in configuration*) to 192.168.1.31, port if not provided is default for the selected protocol (in this case depends on your configuration); username is current user's name + + ```sh + termscp 192.168.1.31 + ``` + +- Connect using default protocol (*defined in configuration*) to 192.168.1.31; username is `root` + + ```sh + termscp root@192.168.1.31 + ``` + +- Connect using scp to 192.168.1.31, port is 4022; username is `omar` + + ```sh + termscp scp://omar@192.168.1.31:4022 + ``` + +- Connect using scp to 192.168.1.31, port is 4022; username is `omar`. You will start in directory `/tmp` + + ```sh + termscp scp://omar@192.168.1.31:4022:/tmp + ``` + +#### AWS S3 address argument + +Aws S3 has a different syntax for CLI address argument, for obvious reasons, but I managed to keep it the more similar as possible to the generic address argument: + +```txt +s3://@[:profile][:/wrkdir] +``` + +e.g. + +```txt +s3://buckethead@eu-central-1:default:/assets +``` + +#### How Password can be provided 🔐 + +You have probably noticed, that, when providing the address as argument, there's no way to provide the password. +Password can be basically provided through 3 ways when address argument is provided: + +- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very unsecure (since you might keep the password in the shell history) +- Via `sshpass`: you can provide password via `sshpass`, e.g. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` +- You will be prompted for it: if you don't use any of the previous methods, you will be prompted for the password, as happens with the more classics tools such as `scp`, `ssh`, etc. + +--- + +## File explorer 📂 + +When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. +These panels are basically 3 (yes, three actually): + +- Local explorer panel: it is displayed on the left of your screen and shows the current directory entries for localhost +- Remote explorer panel: it is displayed on the right of your screen and shows the current directory entries for the remote host. +- Find results panel: depending on where you're searching for files (local/remote) it will replace the local or the explorer panel. This panel shows the entries matching the search query you performed. + +In order to change panel you need to type `` to move the remote explorer panel and `` to move back to the local explorer panel. Whenever you are in the find results panel, you need to press `` to exit panel and go back to the previous panel. + +### Keybindings ⌨ + +| Key | Command | Reminder | +|---------------|-------------------------------------------------------|-------------| +| `` | Disconnect from remote; return to authentication page | | +| `` | Switch between log tab and explorer | | +| `` | Go to previous directory in stack | | +| `` | Move to remote explorer tab | | +| `` | Move to local explorer tab | | +| `` | Move up in selected list | | +| `` | Move down in selected list | | +| `` | Move up in selected list by 8 rows | | +| `` | Move down in selected list by 8 rows | | +| `` | Enter directory | | +| `` | Upload / download selected file | | +| `` | Toggle hidden files | All | +| `` | Sort files by | Bubblesort? | +| `` | Copy file/directory | Copy | +| `` | Make directory | Directory | +| `` | Delete file (Same as `DEL`) | Erase | +| `` | Search for files (wild match is supported) | Find | +| `` | Go to supplied path | Go to | +| `` | Show help | Help | +| `` | Show info about selected file or directory | Info | +| `` | Reload current directory's content / Clear selection | List | +| `` | Select a file | Mark | +| `` | Create new file with provided name | New | +| `` | Edit file; see Text editor | Open | +| `` | Quit termscp | Quit | +| `` | Rename file | Rename | +| `` | Save file as... | Save | +| `` | Go to parent directory | Upper | +| `` | Open file with default program for filetype | View | +| `` | Open file with provided program | With | +| `` | Execute a command | eXecute | +| `` | Toggle synchronized browsing | sYnc | +| `` | Delete file | | +| `` | Select all files | | +| `` | Abort file transfer process | | + +### Work on multiple files 🥷 + +You can opt to work on multiple files, selecting them pressing ``, in order to select the current file, or pressing ``, which will select all the files in the working directory. +Once a file is marked for selection, it will be displayed with a `*` on the left. +When working on selection, only selected file will be processed for actions, while the current highlighted item will be ignored. +It is possible to work on multiple files also when in the find result panel. +All the actions are available when working with multiple files, but be aware that some actions work in a slightly different way. Let's dive in: + +- *Copy*: whenever you copy a file, you'll be prompted to insert the destination name. When working with multiple file, this name refers to the destination directory where all these files will be copied. +- *Rename*: same as copy, but will move files there. +- *Save as*: same as copy, but will write them there. + +### Synchronized browsing ⏲️ + +When enabled, synchronized browsing, will allow you to synchronize the navigation between the two panels. +This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browsing state will be reported on the status bar on `ON`. + +> ❗ at the moment, whenever you try to access an unexisting directory, you won't be prompted to create it. This might change in a future update. + +### Open and Open With 🚪 + +Open and open with commands are powered by [open-rs](https://docs.rs/crate/open/1.7.0). +When opening files with View command (``), the system default application for the file type will be used. To do so, the default operting system service will be used, so be sure to have at least one of these installed on your system: + +- **Windows** users: you don't have to worry about it, since the crate will use the `start` command. +- **MacOS** users: you don't have to worry either, since the crate will use `open`, which is already installed on your system. +- **Linux** users: one of these should be installed + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **WSL** users: *wslview* is required, you must install [wslu](https://github.com/wslutilities/wslu). + +> Q: Can I edit remote files using the view command? +> A: No, at least not directly from the "remote panel". You have to download it to a local directory first, that's due to the fact that when you open a remote file, the file is downloaded into a temporary directory, but there's no way to create a watcher for the file to check when the program you used to open it was closed, so termscp is not able to know when you're done editing the file. + +--- + +## Bookmarks ⭐ + +In termscp it is possible to save favourites hosts, which can be then loaded quickly from the main layout of termscp. +termscp will also save the last 16 hosts you connected to. +This feature allows you to load all the parameters required to connect to a certain remote, simply selecting the bookmark in the tab under the authentication form. + +Bookmarks will be saved, if possible at: + +- `$HOME/.config/termscp/` on Linux/BSD +- `$HOME/Library/Application Support/termscp` on MacOs +- `FOLDERID_RoamingAppData\termscp\` on Windows + +For bookmarks only (this won't apply to recent hosts) it is also possible to save the password used to authenticate. The password is not saved by default and must be specified through the prompt when saving a new Bookmark. +If you're concerned about the security of the password saved for your bookmarks, please read the [chapter below 👀](#are-my-passwords-safe-). + +In order to create a new bookmark, just follow these steps: + +1. Type in the authentication form the parameters to connect to your remote server +2. Press `` +3. Type in the name you want to give to the bookmark +4. Choose whether to remind the password or not +5. Press `` to submit + +whenever you want to use the previously saved connection, just press `` to navigate to the bookmarks list and load the bookmark parameters into the form pressing ``. + +![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) + +### Are my passwords Safe 😈 + +Sure 😉. +As said before, bookmarks are saved in your configuration directory along with passwords. Passwords are obviously not plain text, they are encrypted with **AES-128**. Does this make them safe? Absolutely! (except for BSD and WSL users 😢) + +On **Windows**, **Linux** and **MacOS** the key used to encrypt passwords is stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. + +❗ Please, notice that if you're a Linux user, you'd better to read the [chapter below 👀](#linux-keyring), because the keyring might not be enabled or supported on your system! + +On *BSD* and *WSL*, on the other hand, the key used to encrypt your passwords is stored on your drive (at $HOME/.config/termscp). It is then, still possible to retrieve the key to decrypt passwords. Luckily, the location of the key guarantees your key can't be read by users different from yours, but yeah, I still wouldn't save the password for a server exposed on the internet 😉. + +#### Linux Keyring + +We all love Linux thanks to the freedom it gives to the users. You can basically do anything you want as a Linux user, but this has also some cons, such as the fact that often there is no standard applications across different distributions. And this involves keyring too. +This means that on Linux there might be no keyring installed on your system. Unfortunately the library we use to work with the key storage requires a service which exposes `org.freedesktop.secrets` on D-BUS and the worst fact is that there only two services exposing it. + +- ❗ If you use GNOME as desktop environment (e.g. ubuntu users), you should already be fine, since keyring is already provided by `gnome-keyring` and everything should already be working. +- ❗ For other desktop environment users there is a nice program you can use to get a keyring which is [KeepassXC](https://keepassxc.org/), which I use on my Manjaro installation (with KDE) and works fine. The only problem is that you have to setup it to be used along with termscp (but it's quite simple). To get started with KeepassXC read more [here](#keepassxc-setup-for-termscp). +- ❗ What about you don't want to install any of these services? Well, there's no problem! **termscp will keep working as usual**, but it will save the key in a file, as it usually does for BSD and WSL. + +##### KeepassXC setup for termscp + +Follow these steps in order to setup keepassXC for termscp: + +1. Install KeepassXC +2. Go to "tools" > "settings" in toolbar +3. Select "Secret service integration" and toggle "Enable KeepassXC freedesktop.org secret service integration" +4. Create a database, if you don't have one yet: from toolbar "Database" > "New database" +5. From toolbar: "Database" > "Database settings" +6. Select "Secret service integration" and toggle "Expose entries under this group" +7. Select the group in the list where you want the termscp secret to be kept. Remember that this group might be used by any other application to store secrets via DBUS. + +--- + +## Aws S3 credentials 🦊 + +In order to connect to an Aws S3 bucket you must obviously provide some credentials. +There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. +So these are the ways you can provide the credentials for s3: + +1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. +2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: + + These should always be mandatory: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: the secret access key + + In case you've configured a stronger security, you *may* require these too: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. +In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + +## Configuration ⚙️ + +termscp supports some user defined parameters, which can be defined in the configuration. +Underhood termscp has a TOML file and some other directories where all the parameters will be saved, but don't worry, you won't touch any of these files manually, since I made possible to configure termscp from its user interface entirely. + +termscp, like for bookmarks, just requires to have these paths accessible: + +- `$HOME/.config/termscp/` on Linux/BSD +- `$HOME/Library/Application Support/termscp` on MacOs +- `FOLDERID_RoamingAppData\termscp\` on Windows + +To access configuration, you just have to press `` from the home of termscp. + +These parameters can be changed: + +- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process so if you ask: yes, you can use `notepad.exe`, and no: **Visual Studio Code doesn't work**. +- **Default Protocol**: the default protocol is the default value for the file transfer protocol to be used in termscp. This applies for the login page and for the address CLI argument. +- **Show Hidden Files**: select whether hidden files shall be displayed by default. You will be able to decide whether to show or not hidden files at runtime pressing `A` anyway. +- **Check for updates**: if set to `yes`, termscp will fetch the Github API to check if there is a new version of termscp available. +- **Prompt when replacing existing files?**: If set to `yes`, termscp will prompt for confirmation you whenever a file transfer would cause an existing file on target host to be replaced. +- **Group Dirs**: select whether directories should be groupped or not in file explorers. If `Display first` is selected, directories will be sorted using the configured method but displayed before files, viceversa if `Display last` is selected. +- **Remote File formatter syntax**: syntax to display file info for each file in the remote explorer. See [File explorer format](#file-explorer-format) +- **Local File formatter syntax**: syntax to display file info for each file in the local explorer. See [File explorer format](#file-explorer-format) +- **Enable notifications?**: If set to `Yes`, notifications will be displayed. +- **Notifications: minimum transfer size**: if transfer size is greater or equal than the specified value, notifications for transfer will be displayed. The accepted values are in format `{UNSIGNED} B/KB/MB/GB/TB/PB` + +### SSH Key Storage 🔐 + +Along with configuration, termscp provides also an **essential** feature for **SFTP/SCP clients**: the SSH key storage. + +You can access the SSH key storage, from configuration moving to the `SSH Keys` tab, once there you can: + +- **Add a new key**: just press `` and you will be prompted to create a new key. Provide the hostname/ip address and the username associated to the key and finally a text editor will open up: paste the **PRIVATE** ssh key into the text editor, save and quit. +- **Remove an existing key**: just press `` or `` on the key you want to remove, to delete persistently the key from termscp. +- **Edit an existing key**: just press `` on the key you want to edit, to change the private key. + +> Q: Wait, my private key is protected with password, can I use it? +> A: Of course you can. The password provided for authentication in termscp, is valid both for username/password authentication and for RSA key authentication. + +### File Explorer Format + +It is possible through configuration to define a custom format for the file explorer. This is possible both for local and remote host, so you can have two different syntax in use. These fields, with name `File formatter syntax (local)` and `File formatter syntax (remote)` will define how the file entries will be displayed in the file explorer. +The syntax for the formatter is the following `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. +Each key in bracket will be replaced with the related attribute, while everything outside brackets will be left unchanged. + +- The key name is mandatory and must be one of the keys below +- The length describes the length reserved to display the field. Static attributes doesn't support this (GROUP, PEX, SIZE, USER) +- Extra is supported only by some parameters and is an additional options. See keys to check if extra is supported. + +These are the keys supported by the formatter: + +- `ATIME`: Last access time (with default syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{ATIME:8:%H:%M}`) +- `CTIME`: Creation time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{CTIME:8:%H:%M}`) +- `GROUP`: Owner group +- `MTIME`: Last change time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{MTIME:8:%H:%M}`) +- `NAME`: File name (Elided if longer than LENGTH) +- `PEX`: File permissions (UNIX format) +- `SIZE`: File size (omitted for directories) +- `SYMLINK`: Symlink (if any `-> {FILE_PATH}`) +- `USER`: Owner user + +If left empty, the default formatter syntax will be used: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` + +--- + +## Themes 🎨 + +Termscp provides you with an awesome feature: the possibility to set the colors for several components in the application. +If you want to customize termscp there are two available ways to do so: + +- From the **configuration menu** +- Importing a **theme file** + +In order to create your own customization from termscp, all you have to do so is to enter the configuration from the auth activity, pressing `` and then `` twice. You should have now moved to the `themes` panel. + +Here you can move with `` and `` to change the style you want to change, as shown in the gif below: + +![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) + +termscp supports both the traditional explicit hex (`#rrggbb`) and rgb `rgb(r, g, b)` syntax to provide colors, but also **[css colors](https://www.w3schools.com/cssref/css_colors.asp)** (such as `crimson`) are accepted 😉. There is also a special keywork which is `Default`. Default means that the color used will be the default foreground or background color based on the situation (foreground for texts and lines, background for well, guess what). + +As said before, you can also import theme files. You can take inspiration from or directly use one of the themes provided along with termscp, located in the `themes/` directory of this repository and import them running termscp as `termscp -t `. If everything was fine, it should tell you the theme has successfully been imported. + +### My theme won't load 😱 + +This is probably due to a recent update which has broken the theme. Whenever I add a new key to themes, the saved theme won't load. To fix this issues there are two really quick-fix solutions: + +1. Reload theme: whenever I release an update I will also patch the "official" themes, so you just have to download it from the repository again and re-import the theme via `-t` option + + ```sh + termscp -t + ``` + +2. Fix your theme: If you're using a custom theme, then you can edit via `vim` and add the missing key. The theme is located at `$CONFIG_DIR/termscp/theme.toml` where `$CONFIG_DIR` is: + + - FreeBSD/GNU-Linux: `$HOME/.config/` + - MacOs: `$HOME/Library/Application Support` + - Windows: `%appdata%` + + ❗ Missing keys are reported in the CHANGELOG under `BREAKING CHANGES` for the version you've just installed. + +### Styles 💈 + +You can find in the table below, the description for each style field. +Please, notice that **styles won't apply to configuration page**, in order to make it always accessible in case you mess everything up + +#### Authentication page + +| Key | Description | +|----------------|------------------------------------------| +| auth_address | Color of the input field for IP address | +| auth_bookmarks | Color of the bookmarks panel | +| auth_password | Color of the input field for password | +| auth_port | Color of the input field for port number | +| auth_protocol | Color of the radio group for protocol | +| auth_recents | Color of the recents panel | +| auth_username | Color of the input field for username | + +#### Transfer page + +| Key | Description | +|--------------------------------------|---------------------------------------------------------------------------| +| transfer_local_explorer_background | Background color of localhost explorer | +| transfer_local_explorer_foreground | Foreground coloor of localhost explorer | +| transfer_local_explorer_highlighted | Border and highlighted color for localhost explorer | +| transfer_remote_explorer_background | Background color of remote explorer | +| transfer_remote_explorer_foreground | Foreground coloor of remote explorer | +| transfer_remote_explorer_highlighted | Border and highlighted color for remote explorer | +| transfer_log_background | Background color for log panel | +| transfer_log_window | Window color for log panel | +| transfer_progress_bar_partial | Partial progress bar color | +| transfer_progress_bar_total | Total progress bar color | +| transfer_status_hidden | Color for status bar "hidden" label | +| transfer_status_sorting | Color for status bar "sorting" label; applies also to file sorting dialog | +| transfer_status_sync_browsing | Color for status bar "sync browsing" label | + +#### Misc + +These styles applie to different part of the application. + +| Key | Description | +|-------------------|---------------------------------------------| +| misc_error_dialog | Color for error messages | +| misc_info_dialog | Color for info dialogs | +| misc_input_dialog | Color for input dialogs (such as copy file) | +| misc_keys | Color of text for key strokes | +| misc_quit_dialog | Color for quit dialogs | +| misc_save_dialog | Color for save dialogs | +| misc_warn_dialog | Color for warn dialogs | + +--- + +## Text Editor ✏ + +termscp has, as you might have noticed, many features, one of these is the possibility to view and edit text file. It doesn't matter if the file is located on the local host or on the remote host, termscp provides the possibility to open a file in your favourite text editor. +In case the file is located on remote host, the file will be first downloaded into your temporary file directory and then, **only** if changes were made to the file, re-uploaded to the remote host. termscp checks if you made changes to the file verifying the last modification time of the file. + +Just a reminder: **you can edit only textual file**; binary files are not supported. + +--- + +## Logging 🩺 + +termscp writes a log file for each session, which is written at + +- `$HOME/.config/termscp/termscp.log` on Linux/BSD +- `$HOME/Library/Application Support/termscp/termscp.log` on MacOs +- `FOLDERID_RoamingAppData\termscp\termscp.log` on Windows + +the log won't be rotated, but will just be truncated after each launch of termscp, so if you want to report an issue and you want to attach your log file, keep in mind to save the log file in a safe place before using termscp again. +The log file always reports in *trace* level, so it is kinda verbose. +I know you might have some questions regarding log files, so I made a kind of a Q/A: + +> Is it possible to reduce verbosity? + +No. The reason is quite simple: when an issue happens, you must be able to know what's causing it and the only way to do that, is to have the log file with the maximum verbosity level set. + +> If trace level is set for logging, is the file going to reach a huge size? + +Probably not, unless you never quit termscp, but I think that's unlikely to happen. A long session may produce up to 10MB of log files (I said a long session), but I think a normal session won't exceed 2MB. + +> I don't want logging, can I turn it off? + +Yes, you can. Just start termscp with `-q or --quiet` option. You can alias termscp to make it persistent. Remember that logging is used to diagnose issues, so since behind every open source project, there should always be this kind of mutual help, keeping log files might be your way to support the project 😉. I don't want you to feel guilty, but just to say. + +> Is logging safe? + +If you're concerned about security, the log file doesn't contain any plain password, so don't worry and exposes the same information the sibling file `bookmarks` reports. + +## Notifications 📫 + +Termscp will send Desktop notifications for these kind of events: + +- on **Transfer completed**: The notification will be sent once a transfer has been successfully completed. + - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. +- on **Transfer failed**: The notification will be sent once a transfer has failed due to an error. + - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. +- on **Update available**: Whenever a new version of termscp is available, a notification will be displayed. +- on **Update installed**: Whenever a new version of termscp has been installed, a notification will be displayed. +- on **Update failed**: Whenever the installation of the update fails, a notification will be displayed. + +❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. +❗ If you want to change the minimum transfer size to display notifications, you can change the value in the configuration with key `Notifications: minimum transfer size` and set it to whatever suits better for you 🙂. diff --git a/docs/fr/man.md b/docs/fr/man.md new file mode 100644 index 00000000..bd130fd1 --- /dev/null +++ b/docs/fr/man.md @@ -0,0 +1,486 @@ +# User manual 🎓 + +- [User manual 🎓](#user-manual-) + - [Usage ❓](#usage-) + - [Address argument 🌎](#address-argument-) + - [AWS S3 address argument](#aws-s3-address-argument) + - [How Password can be provided 🔐](#how-password-can-be-provided-) + - [File explorer 📂](#file-explorer-) + - [Keybindings ⌨](#keybindings-) + - [Work on multiple files 🥷](#work-on-multiple-files-) + - [Synchronized browsing ⏲️](#synchronized-browsing-️) + - [Open and Open With 🚪](#open-and-open-with-) + - [Bookmarks ⭐](#bookmarks-) + - [Are my passwords Safe 😈](#are-my-passwords-safe-) + - [Linux Keyring](#linux-keyring) + - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) + - [Aws S3 credentials 🦊](#aws-s3-credentials-) + - [Configuration ⚙️](#configuration-️) + - [SSH Key Storage 🔐](#ssh-key-storage-) + - [File Explorer Format](#file-explorer-format) + - [Themes 🎨](#themes-) + - [My theme won't load 😱](#my-theme-wont-load-) + - [Styles 💈](#styles-) + - [Authentication page](#authentication-page) + - [Transfer page](#transfer-page) + - [Misc](#misc) + - [Text Editor ✏](#text-editor-) + - [Logging 🩺](#logging-) + - [Notifications 📫](#notifications-) + +## Usage ❓ + +termscp can be started with the following options: + +`termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]` + +- `-P, --password ` if address is provided, password will be this argument +- `-c, --config` Open termscp starting from the configuration page +- `-q, --quiet` Disable logging +- `-t, --theme ` Import specified theme +- `-u, --update` Update termscp to latest version +- `-v, --version` Print version info +- `-h, --help` Print help page + +termscp can be started in two different mode, if no extra arguments is provided, termscp will show the authentication form, where the user will be able to provide the parameters required to connect to the remote peer. + +Alternatively, the user can provide an address as argument to skip the authentication form and starting directly the connection to the remote server. + +If address argument is provided you can also provide the start working directory for local host + +### Address argument 🌎 + +The address argument has the following syntax: + +```txt +[protocol://][username@]
[:port][:wrkdir] +``` + +Let's see some example of this particular syntax, since it's very comfortable and you'll probably going to use this instead of the other one... + +- Connect using default protocol (*defined in configuration*) to 192.168.1.31, port if not provided is default for the selected protocol (in this case depends on your configuration); username is current user's name + + ```sh + termscp 192.168.1.31 + ``` + +- Connect using default protocol (*defined in configuration*) to 192.168.1.31; username is `root` + + ```sh + termscp root@192.168.1.31 + ``` + +- Connect using scp to 192.168.1.31, port is 4022; username is `omar` + + ```sh + termscp scp://omar@192.168.1.31:4022 + ``` + +- Connect using scp to 192.168.1.31, port is 4022; username is `omar`. You will start in directory `/tmp` + + ```sh + termscp scp://omar@192.168.1.31:4022:/tmp + ``` + +#### AWS S3 address argument + +Aws S3 has a different syntax for CLI address argument, for obvious reasons, but I managed to keep it the more similar as possible to the generic address argument: + +```txt +s3://@[:profile][:/wrkdir] +``` + +e.g. + +```txt +s3://buckethead@eu-central-1:default:/assets +``` + +#### How Password can be provided 🔐 + +You have probably noticed, that, when providing the address as argument, there's no way to provide the password. +Password can be basically provided through 3 ways when address argument is provided: + +- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very unsecure (since you might keep the password in the shell history) +- Via `sshpass`: you can provide password via `sshpass`, e.g. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` +- You will be prompted for it: if you don't use any of the previous methods, you will be prompted for the password, as happens with the more classics tools such as `scp`, `ssh`, etc. + +--- + +## File explorer 📂 + +When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. +These panels are basically 3 (yes, three actually): + +- Local explorer panel: it is displayed on the left of your screen and shows the current directory entries for localhost +- Remote explorer panel: it is displayed on the right of your screen and shows the current directory entries for the remote host. +- Find results panel: depending on where you're searching for files (local/remote) it will replace the local or the explorer panel. This panel shows the entries matching the search query you performed. + +In order to change panel you need to type `` to move the remote explorer panel and `` to move back to the local explorer panel. Whenever you are in the find results panel, you need to press `` to exit panel and go back to the previous panel. + +### Keybindings ⌨ + +| Key | Command | Reminder | +|---------------|-------------------------------------------------------|-------------| +| `` | Disconnect from remote; return to authentication page | | +| `` | Switch between log tab and explorer | | +| `` | Go to previous directory in stack | | +| `` | Move to remote explorer tab | | +| `` | Move to local explorer tab | | +| `` | Move up in selected list | | +| `` | Move down in selected list | | +| `` | Move up in selected list by 8 rows | | +| `` | Move down in selected list by 8 rows | | +| `` | Enter directory | | +| `` | Upload / download selected file | | +| `` | Toggle hidden files | All | +| `` | Sort files by | Bubblesort? | +| `` | Copy file/directory | Copy | +| `` | Make directory | Directory | +| `` | Delete file (Same as `DEL`) | Erase | +| `` | Search for files (wild match is supported) | Find | +| `` | Go to supplied path | Go to | +| `` | Show help | Help | +| `` | Show info about selected file or directory | Info | +| `` | Reload current directory's content / Clear selection | List | +| `` | Select a file | Mark | +| `` | Create new file with provided name | New | +| `` | Edit file; see Text editor | Open | +| `` | Quit termscp | Quit | +| `` | Rename file | Rename | +| `` | Save file as... | Save | +| `` | Go to parent directory | Upper | +| `` | Open file with default program for filetype | View | +| `` | Open file with provided program | With | +| `` | Execute a command | eXecute | +| `` | Toggle synchronized browsing | sYnc | +| `` | Delete file | | +| `` | Select all files | | +| `` | Abort file transfer process | | + +### Work on multiple files 🥷 + +You can opt to work on multiple files, selecting them pressing ``, in order to select the current file, or pressing ``, which will select all the files in the working directory. +Once a file is marked for selection, it will be displayed with a `*` on the left. +When working on selection, only selected file will be processed for actions, while the current highlighted item will be ignored. +It is possible to work on multiple files also when in the find result panel. +All the actions are available when working with multiple files, but be aware that some actions work in a slightly different way. Let's dive in: + +- *Copy*: whenever you copy a file, you'll be prompted to insert the destination name. When working with multiple file, this name refers to the destination directory where all these files will be copied. +- *Rename*: same as copy, but will move files there. +- *Save as*: same as copy, but will write them there. + +### Synchronized browsing ⏲️ + +When enabled, synchronized browsing, will allow you to synchronize the navigation between the two panels. +This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browsing state will be reported on the status bar on `ON`. + +> ❗ at the moment, whenever you try to access an unexisting directory, you won't be prompted to create it. This might change in a future update. + +### Open and Open With 🚪 + +Open and open with commands are powered by [open-rs](https://docs.rs/crate/open/1.7.0). +When opening files with View command (``), the system default application for the file type will be used. To do so, the default operting system service will be used, so be sure to have at least one of these installed on your system: + +- **Windows** users: you don't have to worry about it, since the crate will use the `start` command. +- **MacOS** users: you don't have to worry either, since the crate will use `open`, which is already installed on your system. +- **Linux** users: one of these should be installed + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- **WSL** users: *wslview* is required, you must install [wslu](https://github.com/wslutilities/wslu). + +> Q: Can I edit remote files using the view command? +> A: No, at least not directly from the "remote panel". You have to download it to a local directory first, that's due to the fact that when you open a remote file, the file is downloaded into a temporary directory, but there's no way to create a watcher for the file to check when the program you used to open it was closed, so termscp is not able to know when you're done editing the file. + +--- + +## Bookmarks ⭐ + +In termscp it is possible to save favourites hosts, which can be then loaded quickly from the main layout of termscp. +termscp will also save the last 16 hosts you connected to. +This feature allows you to load all the parameters required to connect to a certain remote, simply selecting the bookmark in the tab under the authentication form. + +Bookmarks will be saved, if possible at: + +- `$HOME/.config/termscp/` on Linux/BSD +- `$HOME/Library/Application Support/termscp` on MacOs +- `FOLDERID_RoamingAppData\termscp\` on Windows + +For bookmarks only (this won't apply to recent hosts) it is also possible to save the password used to authenticate. The password is not saved by default and must be specified through the prompt when saving a new Bookmark. +If you're concerned about the security of the password saved for your bookmarks, please read the [chapter below 👀](#are-my-passwords-safe-). + +In order to create a new bookmark, just follow these steps: + +1. Type in the authentication form the parameters to connect to your remote server +2. Press `` +3. Type in the name you want to give to the bookmark +4. Choose whether to remind the password or not +5. Press `` to submit + +whenever you want to use the previously saved connection, just press `` to navigate to the bookmarks list and load the bookmark parameters into the form pressing ``. + +![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) + +### Are my passwords Safe 😈 + +Sure 😉. +As said before, bookmarks are saved in your configuration directory along with passwords. Passwords are obviously not plain text, they are encrypted with **AES-128**. Does this make them safe? Absolutely! (except for BSD and WSL users 😢) + +On **Windows**, **Linux** and **MacOS** the key used to encrypt passwords is stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. + +❗ Please, notice that if you're a Linux user, you'd better to read the [chapter below 👀](#linux-keyring), because the keyring might not be enabled or supported on your system! + +On *BSD* and *WSL*, on the other hand, the key used to encrypt your passwords is stored on your drive (at $HOME/.config/termscp). It is then, still possible to retrieve the key to decrypt passwords. Luckily, the location of the key guarantees your key can't be read by users different from yours, but yeah, I still wouldn't save the password for a server exposed on the internet 😉. + +#### Linux Keyring + +We all love Linux thanks to the freedom it gives to the users. You can basically do anything you want as a Linux user, but this has also some cons, such as the fact that often there is no standard applications across different distributions. And this involves keyring too. +This means that on Linux there might be no keyring installed on your system. Unfortunately the library we use to work with the key storage requires a service which exposes `org.freedesktop.secrets` on D-BUS and the worst fact is that there only two services exposing it. + +- ❗ If you use GNOME as desktop environment (e.g. ubuntu users), you should already be fine, since keyring is already provided by `gnome-keyring` and everything should already be working. +- ❗ For other desktop environment users there is a nice program you can use to get a keyring which is [KeepassXC](https://keepassxc.org/), which I use on my Manjaro installation (with KDE) and works fine. The only problem is that you have to setup it to be used along with termscp (but it's quite simple). To get started with KeepassXC read more [here](#keepassxc-setup-for-termscp). +- ❗ What about you don't want to install any of these services? Well, there's no problem! **termscp will keep working as usual**, but it will save the key in a file, as it usually does for BSD and WSL. + +##### KeepassXC setup for termscp + +Follow these steps in order to setup keepassXC for termscp: + +1. Install KeepassXC +2. Go to "tools" > "settings" in toolbar +3. Select "Secret service integration" and toggle "Enable KeepassXC freedesktop.org secret service integration" +4. Create a database, if you don't have one yet: from toolbar "Database" > "New database" +5. From toolbar: "Database" > "Database settings" +6. Select "Secret service integration" and toggle "Expose entries under this group" +7. Select the group in the list where you want the termscp secret to be kept. Remember that this group might be used by any other application to store secrets via DBUS. + +--- + +## Aws S3 credentials 🦊 + +In order to connect to an Aws S3 bucket you must obviously provide some credentials. +There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. +So these are the ways you can provide the credentials for s3: + +1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. +2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: + + These should always be mandatory: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: the secret access key + + In case you've configured a stronger security, you *may* require these too: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. +In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + +## Configuration ⚙️ + +termscp supports some user defined parameters, which can be defined in the configuration. +Underhood termscp has a TOML file and some other directories where all the parameters will be saved, but don't worry, you won't touch any of these files manually, since I made possible to configure termscp from its user interface entirely. + +termscp, like for bookmarks, just requires to have these paths accessible: + +- `$HOME/.config/termscp/` on Linux/BSD +- `$HOME/Library/Application Support/termscp` on MacOs +- `FOLDERID_RoamingAppData\termscp\` on Windows + +To access configuration, you just have to press `` from the home of termscp. + +These parameters can be changed: + +- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process so if you ask: yes, you can use `notepad.exe`, and no: **Visual Studio Code doesn't work**. +- **Default Protocol**: the default protocol is the default value for the file transfer protocol to be used in termscp. This applies for the login page and for the address CLI argument. +- **Show Hidden Files**: select whether hidden files shall be displayed by default. You will be able to decide whether to show or not hidden files at runtime pressing `A` anyway. +- **Check for updates**: if set to `yes`, termscp will fetch the Github API to check if there is a new version of termscp available. +- **Prompt when replacing existing files?**: If set to `yes`, termscp will prompt for confirmation you whenever a file transfer would cause an existing file on target host to be replaced. +- **Group Dirs**: select whether directories should be groupped or not in file explorers. If `Display first` is selected, directories will be sorted using the configured method but displayed before files, viceversa if `Display last` is selected. +- **Remote File formatter syntax**: syntax to display file info for each file in the remote explorer. See [File explorer format](#file-explorer-format) +- **Local File formatter syntax**: syntax to display file info for each file in the local explorer. See [File explorer format](#file-explorer-format) +- **Enable notifications?**: If set to `Yes`, notifications will be displayed. +- **Notifications: minimum transfer size**: if transfer size is greater or equal than the specified value, notifications for transfer will be displayed. The accepted values are in format `{UNSIGNED} B/KB/MB/GB/TB/PB` + +### SSH Key Storage 🔐 + +Along with configuration, termscp provides also an **essential** feature for **SFTP/SCP clients**: the SSH key storage. + +You can access the SSH key storage, from configuration moving to the `SSH Keys` tab, once there you can: + +- **Add a new key**: just press `` and you will be prompted to create a new key. Provide the hostname/ip address and the username associated to the key and finally a text editor will open up: paste the **PRIVATE** ssh key into the text editor, save and quit. +- **Remove an existing key**: just press `` or `` on the key you want to remove, to delete persistently the key from termscp. +- **Edit an existing key**: just press `` on the key you want to edit, to change the private key. + +> Q: Wait, my private key is protected with password, can I use it? +> A: Of course you can. The password provided for authentication in termscp, is valid both for username/password authentication and for RSA key authentication. + +### File Explorer Format + +It is possible through configuration to define a custom format for the file explorer. This is possible both for local and remote host, so you can have two different syntax in use. These fields, with name `File formatter syntax (local)` and `File formatter syntax (remote)` will define how the file entries will be displayed in the file explorer. +The syntax for the formatter is the following `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. +Each key in bracket will be replaced with the related attribute, while everything outside brackets will be left unchanged. + +- The key name is mandatory and must be one of the keys below +- The length describes the length reserved to display the field. Static attributes doesn't support this (GROUP, PEX, SIZE, USER) +- Extra is supported only by some parameters and is an additional options. See keys to check if extra is supported. + +These are the keys supported by the formatter: + +- `ATIME`: Last access time (with default syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{ATIME:8:%H:%M}`) +- `CTIME`: Creation time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{CTIME:8:%H:%M}`) +- `GROUP`: Owner group +- `MTIME`: Last change time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{MTIME:8:%H:%M}`) +- `NAME`: File name (Elided if longer than LENGTH) +- `PEX`: File permissions (UNIX format) +- `SIZE`: File size (omitted for directories) +- `SYMLINK`: Symlink (if any `-> {FILE_PATH}`) +- `USER`: Owner user + +If left empty, the default formatter syntax will be used: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` + +--- + +## Themes 🎨 + +Termscp provides you with an awesome feature: the possibility to set the colors for several components in the application. +If you want to customize termscp there are two available ways to do so: + +- From the **configuration menu** +- Importing a **theme file** + +In order to create your own customization from termscp, all you have to do so is to enter the configuration from the auth activity, pressing `` and then `` twice. You should have now moved to the `themes` panel. + +Here you can move with `` and `` to change the style you want to change, as shown in the gif below: + +![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) + +termscp supports both the traditional explicit hex (`#rrggbb`) and rgb `rgb(r, g, b)` syntax to provide colors, but also **[css colors](https://www.w3schools.com/cssref/css_colors.asp)** (such as `crimson`) are accepted 😉. There is also a special keywork which is `Default`. Default means that the color used will be the default foreground or background color based on the situation (foreground for texts and lines, background for well, guess what). + +As said before, you can also import theme files. You can take inspiration from or directly use one of the themes provided along with termscp, located in the `themes/` directory of this repository and import them running termscp as `termscp -t `. If everything was fine, it should tell you the theme has successfully been imported. + +### My theme won't load 😱 + +This is probably due to a recent update which has broken the theme. Whenever I add a new key to themes, the saved theme won't load. To fix this issues there are two really quick-fix solutions: + +1. Reload theme: whenever I release an update I will also patch the "official" themes, so you just have to download it from the repository again and re-import the theme via `-t` option + + ```sh + termscp -t + ``` + +2. Fix your theme: If you're using a custom theme, then you can edit via `vim` and add the missing key. The theme is located at `$CONFIG_DIR/termscp/theme.toml` where `$CONFIG_DIR` is: + + - FreeBSD/GNU-Linux: `$HOME/.config/` + - MacOs: `$HOME/Library/Application Support` + - Windows: `%appdata%` + + ❗ Missing keys are reported in the CHANGELOG under `BREAKING CHANGES` for the version you've just installed. + +### Styles 💈 + +You can find in the table below, the description for each style field. +Please, notice that **styles won't apply to configuration page**, in order to make it always accessible in case you mess everything up + +#### Authentication page + +| Key | Description | +|----------------|------------------------------------------| +| auth_address | Color of the input field for IP address | +| auth_bookmarks | Color of the bookmarks panel | +| auth_password | Color of the input field for password | +| auth_port | Color of the input field for port number | +| auth_protocol | Color of the radio group for protocol | +| auth_recents | Color of the recents panel | +| auth_username | Color of the input field for username | + +#### Transfer page + +| Key | Description | +|--------------------------------------|---------------------------------------------------------------------------| +| transfer_local_explorer_background | Background color of localhost explorer | +| transfer_local_explorer_foreground | Foreground coloor of localhost explorer | +| transfer_local_explorer_highlighted | Border and highlighted color for localhost explorer | +| transfer_remote_explorer_background | Background color of remote explorer | +| transfer_remote_explorer_foreground | Foreground coloor of remote explorer | +| transfer_remote_explorer_highlighted | Border and highlighted color for remote explorer | +| transfer_log_background | Background color for log panel | +| transfer_log_window | Window color for log panel | +| transfer_progress_bar_partial | Partial progress bar color | +| transfer_progress_bar_total | Total progress bar color | +| transfer_status_hidden | Color for status bar "hidden" label | +| transfer_status_sorting | Color for status bar "sorting" label; applies also to file sorting dialog | +| transfer_status_sync_browsing | Color for status bar "sync browsing" label | + +#### Misc + +These styles applie to different part of the application. + +| Key | Description | +|-------------------|---------------------------------------------| +| misc_error_dialog | Color for error messages | +| misc_info_dialog | Color for info dialogs | +| misc_input_dialog | Color for input dialogs (such as copy file) | +| misc_keys | Color of text for key strokes | +| misc_quit_dialog | Color for quit dialogs | +| misc_save_dialog | Color for save dialogs | +| misc_warn_dialog | Color for warn dialogs | + +--- + +## Text Editor ✏ + +termscp has, as you might have noticed, many features, one of these is the possibility to view and edit text file. It doesn't matter if the file is located on the local host or on the remote host, termscp provides the possibility to open a file in your favourite text editor. +In case the file is located on remote host, the file will be first downloaded into your temporary file directory and then, **only** if changes were made to the file, re-uploaded to the remote host. termscp checks if you made changes to the file verifying the last modification time of the file. + +Just a reminder: **you can edit only textual file**; binary files are not supported. + +--- + +## Logging 🩺 + +termscp writes a log file for each session, which is written at + +- `$HOME/.config/termscp/termscp.log` on Linux/BSD +- `$HOME/Library/Application Support/termscp/termscp.log` on MacOs +- `FOLDERID_RoamingAppData\termscp\termscp.log` on Windows + +the log won't be rotated, but will just be truncated after each launch of termscp, so if you want to report an issue and you want to attach your log file, keep in mind to save the log file in a safe place before using termscp again. +The log file always reports in *trace* level, so it is kinda verbose. +I know you might have some questions regarding log files, so I made a kind of a Q/A: + +> Is it possible to reduce verbosity? + +No. The reason is quite simple: when an issue happens, you must be able to know what's causing it and the only way to do that, is to have the log file with the maximum verbosity level set. + +> If trace level is set for logging, is the file going to reach a huge size? + +Probably not, unless you never quit termscp, but I think that's unlikely to happen. A long session may produce up to 10MB of log files (I said a long session), but I think a normal session won't exceed 2MB. + +> I don't want logging, can I turn it off? + +Yes, you can. Just start termscp with `-q or --quiet` option. You can alias termscp to make it persistent. Remember that logging is used to diagnose issues, so since behind every open source project, there should always be this kind of mutual help, keeping log files might be your way to support the project 😉. I don't want you to feel guilty, but just to say. + +> Is logging safe? + +If you're concerned about security, the log file doesn't contain any plain password, so don't worry and exposes the same information the sibling file `bookmarks` reports. + +## Notifications 📫 + +Termscp will send Desktop notifications for these kind of events: + +- on **Transfer completed**: The notification will be sent once a transfer has been successfully completed. + - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. +- on **Transfer failed**: The notification will be sent once a transfer has failed due to an error. + - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. +- on **Update available**: Whenever a new version of termscp is available, a notification will be displayed. +- on **Update installed**: Whenever a new version of termscp has been installed, a notification will be displayed. +- on **Update failed**: Whenever the installation of the update fails, a notification will be displayed. + +❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. +❗ If you want to change the minimum transfer size to display notifications, you can change the value in the configuration with key `Notifications: minimum transfer size` and set it to whatever suits better for you 🙂. From e307b6a8ac597f7ce7235b1776dd3fd840d14dd5 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 6 Oct 2021 10:37:36 +0200 Subject: [PATCH 07/11] Align badges --- README.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bc672ffd..84e4bcc0 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,69 @@

Current version: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crate Version](https://img.shields.io/crates/v/termscp.svg)](https://crates.io/crates/termscp) - -[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) +

+ License-MIT +   + Repo stars +   + Downloads counter +   + Latest version +

+

+ Linux CI +   + MacOS CI +   + Windows CI +   + FreeBSD CI +   + Coveralls +   + Docs +   +

--- From bc90fb1038a41076205e7337e180d7ee823097d1 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 6 Oct 2021 10:38:03 +0200 Subject: [PATCH 08/11] Align badges --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 84e4bcc0..177ed0f2 100644 --- a/README.md +++ b/README.md @@ -71,19 +71,16 @@ src="https://img.shields.io/badge/License-MIT-teal.svg" alt="License-MIT" /> -   Repo stars -   Downloads counter -   Linux CI -   MacOS CI -   Windows CI -   FreeBSD CI -   Coveralls -   Docs -  

--- From a7a116cb33e8a5e990d3d7527b862ad08592e8b8 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 6 Oct 2021 10:38:57 +0200 Subject: [PATCH 09/11] Badges aligned --- docs/de/README.md | 57 +++++++++++++++++++++++++++++++++++++++--- docs/es/README.md | 57 +++++++++++++++++++++++++++++++++++++++--- docs/fr/README.md | 57 +++++++++++++++++++++++++++++++++++++++--- docs/it/README.md | 59 +++++++++++++++++++++++++++++++++++++++++--- docs/zh-CN/README.md | 59 +++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 272 insertions(+), 17 deletions(-) diff --git a/docs/de/README.md b/docs/de/README.md index 68facf83..c4a36bc0 100644 --- a/docs/de/README.md +++ b/docs/de/README.md @@ -65,9 +65,60 @@

Entwickelt von @veeso

Aktuelle Version: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) - -[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) +

+ License-MIT + Repo stars + Downloads counter + Latest version +

+

+ Linux CI + MacOS CI + Windows CI + FreeBSD CI + Coveralls + Docs +

--- diff --git a/docs/es/README.md b/docs/es/README.md index 51e631a8..0f46bd65 100644 --- a/docs/es/README.md +++ b/docs/es/README.md @@ -65,9 +65,60 @@

Desarrollado por @veeso

Versión actual: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) - -[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) +

+ License-MIT + Repo stars + Downloads counter + Latest version +

+

+ Linux CI + MacOS CI + Windows CI + FreeBSD CI + Coveralls + Docs +

--- diff --git a/docs/fr/README.md b/docs/fr/README.md index 453b9380..c6671766 100644 --- a/docs/fr/README.md +++ b/docs/fr/README.md @@ -65,9 +65,60 @@

Développé par @veeso

Version actuelle: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) - -[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) +

+ License-MIT + Repo stars + Downloads counter + Latest version +

+

+ Linux CI + MacOS CI + Windows CI + FreeBSD CI + Coveralls + Docs +

--- diff --git a/docs/it/README.md b/docs/it/README.md index e80b2fe9..99dd230b 100644 --- a/docs/it/README.md +++ b/docs/it/README.md @@ -65,13 +65,64 @@

Sviluppato da @veeso

Versione corrente: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) - -[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) +

+ License-MIT + Repo stars + Downloads counter + Latest version +

+

+ Linux CI + MacOS CI + Windows CI + FreeBSD CI + Coveralls + Docs +

--- -## Riguardo termscp 🖥 +## Riguardo a termscp 🖥 Termscp è un file transfer ed explorer ricco di funzionalità, con supporto a SCP/SFTP/FTP/S3. Basicamente è un utility su terminale con una terminal user-interface per connettersi a server remoti per scambiare file ed interagire con il file system sia locale che remoto. È compatibile con **Linux**, **MacOS**, **FreeBSD** e **Windows**. diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 6afddd48..b56b2e1b 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -65,9 +65,60 @@

@veeso 开发

当前版本: 0.7.0 (12/10/2021)

-[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.7.0-orange.svg)](https://crates.io/crates/termscp) - -[![Linux](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![MacOs](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Windows](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![FreeBSD](https://github.com/veeso/termscp/workflows/FreeBSD/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) +

+ License-MIT + Repo stars + Downloads counter + Latest version +

+

+ Linux CI + MacOS CI + Windows CI + FreeBSD CI + Coveralls + Docs +

--- @@ -159,7 +210,7 @@ choco install termscp ## 支持我 ☕ -如果您喜欢 termscp 并且希望看到该项目不断发展和改进,请考虑在**给我买杯咖啡**上捐款以支持我🥳 +如果您喜欢 termscp 并且希望看到该项目不断发展和改进,请考虑在 **Buy me a coffee** 上捐款以支持我🥳 [![给我买一杯咖啡](https://img.buymeacoffee.com/button-api/?text=%E7%BB%99%E6%88%91%E4%B9%B0%E4%B8%80%E6%9D%AF%E5%92%96%E5%95%A1&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) From 9a63f5b2cc31ab270ae14ed545c159cc5c60b600 Mon Sep 17 00:00:00 2001 From: veeso Date: Wed, 6 Oct 2021 11:12:15 +0200 Subject: [PATCH 10/11] copy template --- .github/ISSUE_TEMPLATE/copy.md | 35 ++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 16 ++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/copy.md diff --git a/.github/ISSUE_TEMPLATE/copy.md b/.github/ISSUE_TEMPLATE/copy.md new file mode 100644 index 00000000..b26f9de3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/copy.md @@ -0,0 +1,35 @@ +--- +name: Copy +about: Report a typo/error in a repository document +title: "[COPY] - ISSUE_TITLE" +labels: documentation +assignees: veeso + +--- + +## Report + +### DOCUMENT NAME + +This sentence at row ROW_NUMBER doesn't seem right: + +> Write down here the wrong sentence + +and I think it should be changed to: + +> Write down here the correct sentence + +`Copy paste the template above for all the sentences to fix` + +--- + +`Copy paste the template above for all the documents to fix` + +## Additional information + +> ❗ Report LANGUAGE checks only if it concerns the documents above +> ❗ If the documents concerns more than one language, copy paste the checks below for each check you want to report +> ❗ The PR mention regards the indicated language. If you check the box, I may add you to a PR where I need to translate a new section of the user manual/README or other documents. I promise I won't stress you anyway. + +- [ ] I am C1/C2 speaker for this language: LANGUAGE + - [ ] You can mention me in a PR in case a review for translations is needed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 80083a76..93c8c566 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,6 +9,7 @@ Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it in - [Open an issue](#open-an-issue) - [Questions](#questions) - [Bug reports](#bug-reports) + - [Copy error](#copy-error) - [Feature requests](#feature-requests) - [Preferred contributions](#preferred-contributions) - [Pull Request Process](#pull-request-process) @@ -45,6 +46,7 @@ Open an issue when: - You have questions or concerns regarding the project or the application itself. - You have a bug to report. +- You have a copy error to report. (Error in documentation; bad translation or sentence) - You have a feature or a suggestion to improve termscp to submit. ### Questions @@ -71,6 +73,15 @@ Maintainers will may add additional labels to your issue: - **sorcery**: it is not possible to find out what's causing your bug, nor is reproducible on our test environments. - **wontfix**: your bug has a very high ratio between the difficulty to fix it and the probability to encounter it, or it just isn't a bug, but a feature. +### Copy error + +If you want to report a copy error, create an issue using the `copy` template. +The `Documentation` label should already be set and the issue should already be assigned to `veeso`. + +If you want to fix the copy by yourself you can fork the project and open a PR, otherwise I will fix it by myself. +The copy issue is accepted **also if you're not a C1/C2 speaker**, but a speaker of that level in case the language is different from Italian/English is preferred. +Please fullfil the form on the bottom of the template if you want. + ### Feature requests Whenever you have a good idea which chould improve the project, it is a good idea to submit it to the project owner. @@ -97,9 +108,10 @@ Always mind that your suggestion, may be rejected: I'll always provide a feedbac At the moment, these kind of contributions are more appreciated and should be preferred: - Fix for issues described in [Known Issues](./README.md#known-issues-) or [issues reported by the community](https://github.com/veeso/termscp/issues) -- New file transfers: for further details see [Implementing File Transfer](#implementing-file-transfers) -- Code optimizations: any optimization to the code is welcome +- **New file transfers**: for further details see [Implementing File Transfer](#implementing-file-transfers). ⚠️ this is going to be deprecated SOON! We're moving the file transfers into another library. Please see [remotefs-rs](https://github.com/veeso/remotefs-rs). +- **Code optimizations**: any optimization to the code is welcome - See also features described in [Upcoming features](./README.md##upcoming-features-). Open an issue first though. +- README/User manual **translations**: really appreciated atm. Please just add a folder into `docs/` with the language code. Language code with two characters is used in case the language is understandable by all the countries where this language is spoken (e.g. `it-CH`, `it-IT` are not really different, so I just created `it`, but there is a big difference from `zh-CN` and `zh-TW` for instance). Don't worry about flags in README, I will implement that part if it's too complicated. For any other kind of contribution, especially for new features, please submit a new issue first. From 8b2b834818aa735eefabf38f65ef46963a5061c4 Mon Sep 17 00:00:00 2001 From: veeso Date: Thu, 7 Oct 2021 09:37:34 +0200 Subject: [PATCH 11/11] User manuals --- docs/de/man.md | 52 ++-- docs/es/man.md | 541 ++++++++++++++++++++--------------------- docs/fr/man.md | 603 +++++++++++++++++++++++----------------------- docs/it/man.md | 52 ++-- docs/man.md | 60 ++--- docs/zh-CN/man.md | 52 ++-- 6 files changed, 681 insertions(+), 679 deletions(-) diff --git a/docs/de/man.md b/docs/de/man.md index bd130fd1..c0a00a53 100644 --- a/docs/de/man.md +++ b/docs/de/man.md @@ -5,6 +5,7 @@ - [Address argument 🌎](#address-argument-) - [AWS S3 address argument](#aws-s3-address-argument) - [How Password can be provided 🔐](#how-password-can-be-provided-) + - [Aws S3 credentials 🦊](#aws-s3-credentials-) - [File explorer 📂](#file-explorer-) - [Keybindings ⌨](#keybindings-) - [Work on multiple files 🥷](#work-on-multiple-files-) @@ -14,7 +15,6 @@ - [Are my passwords Safe 😈](#are-my-passwords-safe-) - [Linux Keyring](#linux-keyring) - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) - - [Aws S3 credentials 🦊](#aws-s3-credentials-) - [Configuration ⚙️](#configuration-️) - [SSH Key Storage 🔐](#ssh-key-storage-) - [File Explorer Format](#file-explorer-format) @@ -28,6 +28,8 @@ - [Logging 🩺](#logging-) - [Notifications 📫](#notifications-) +> ❗ I need a help to translate this manual into German. If you want to contribute to the translations, please open a PR 🙏 + ## Usage ❓ termscp can be started with the following options: @@ -107,6 +109,30 @@ Password can be basically provided through 3 ways when address argument is provi --- +## Aws S3 credentials 🦊 + +In order to connect to an Aws S3 bucket you must obviously provide some credentials. +There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. +So these are the ways you can provide the credentials for s3: + +1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. +2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: + + These should always be mandatory: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: the secret access key + + In case you've configured a stronger security, you *may* require these too: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. +In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + ## File explorer 📂 When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. @@ -257,30 +283,6 @@ Follow these steps in order to setup keepassXC for termscp: --- -## Aws S3 credentials 🦊 - -In order to connect to an Aws S3 bucket you must obviously provide some credentials. -There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. -So these are the ways you can provide the credentials for s3: - -1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. -2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: - - These should always be mandatory: - - - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) - - `AWS_SECRET_ACCESS_KEY`: the secret access key - - In case you've configured a stronger security, you *may* require these too: - - - `AWS_SECURITY_TOKEN`: security token - - `AWS_SESSION_TOKEN`: session token - -⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. -In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ - ---- - ## Configuration ⚙️ termscp supports some user defined parameters, which can be defined in the configuration. diff --git a/docs/es/man.md b/docs/es/man.md index bd130fd1..70cf88c5 100644 --- a/docs/es/man.md +++ b/docs/es/man.md @@ -1,391 +1,392 @@ # User manual 🎓 - [User manual 🎓](#user-manual-) - - [Usage ❓](#usage-) - - [Address argument 🌎](#address-argument-) - - [AWS S3 address argument](#aws-s3-address-argument) - - [How Password can be provided 🔐](#how-password-can-be-provided-) - - [File explorer 📂](#file-explorer-) + - [Uso ❓](#uso-) + - [Argumento dirección 🌎](#argumento-dirección-) + - [Argumento dirección por AWS S3](#argumento-dirección-por-aws-s3) + - [Cómo se puede proporcionar la contraseña 🔐](#cómo-se-puede-proporcionar-la-contraseña-) + - [Credenciales de AWS S3 🦊](#credenciales-de-aws-s3-) + - [Explorador de archivos 📂](#explorador-de-archivos-) - [Keybindings ⌨](#keybindings-) - - [Work on multiple files 🥷](#work-on-multiple-files-) - - [Synchronized browsing ⏲️](#synchronized-browsing-️) - - [Open and Open With 🚪](#open-and-open-with-) - - [Bookmarks ⭐](#bookmarks-) - - [Are my passwords Safe 😈](#are-my-passwords-safe-) + - [Trabaja en varios archivos 🥷](#trabaja-en-varios-archivos-) + - [Navegación sincronizada ⏲️](#navegación-sincronizada-️) + - [Abierta y abierta con 🚪](#abierta-y-abierta-con-) + - [Marcadores ⭐](#marcadores-) + - [¿Son seguras mis contraseñas? 😈](#son-seguras-mis-contraseñas-) - [Linux Keyring](#linux-keyring) - - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) - - [Aws S3 credentials 🦊](#aws-s3-credentials-) - - [Configuration ⚙️](#configuration-️) + - [KeepassXC setup por termscp](#keepassxc-setup-por-termscp) + - [Configuración ⚙️](#configuración--️) - [SSH Key Storage 🔐](#ssh-key-storage-) - - [File Explorer Format](#file-explorer-format) - - [Themes 🎨](#themes-) - - [My theme won't load 😱](#my-theme-wont-load-) - - [Styles 💈](#styles-) + - [Formato del explorador de archivos](#formato-del-explorador-de-archivos) + - [Temas 🎨](#temas-) + - [Mi tema no se carga 😱](#mi-tema-no-se-carga-) + - [Estilos 💈](#estilos-) - [Authentication page](#authentication-page) - [Transfer page](#transfer-page) - [Misc](#misc) - [Text Editor ✏](#text-editor-) - [Logging 🩺](#logging-) - - [Notifications 📫](#notifications-) + - [Notificaciones 📫](#notificaciones-) -## Usage ❓ +> ❗ Este documento ha sido traducido con Google Translator (y luego lo he revisado a grandes rasgos, pero no puedo hablar el idioma muy bien). Si habla l'idioma, abra un [issue](https://github.com/veeso/termscp/issues/new/choose) utilizando la label COPY o abra un PR 🙏 -termscp can be started with the following options: +## Uso ❓ + +termscp se puede iniciar con las siguientes opciones: `termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]` -- `-P, --password ` if address is provided, password will be this argument -- `-c, --config` Open termscp starting from the configuration page -- `-q, --quiet` Disable logging -- `-t, --theme ` Import specified theme -- `-u, --update` Update termscp to latest version -- `-v, --version` Print version info -- `-h, --help` Print help page +- `-P, --password ` si se proporciona la dirección, la contraseña será este argumento +- `-c, --config` Abrir termscp comenzando desde la página de configuración +- `-q, --quiet` Deshabilitar el registro +- `-t, --theme ` Importar tema especificado +- `-u, --update` Actualizar termscp a la última versión +- `-v, --version` Imprimir información de la versión +- `-h, --help` Imprimir página de ayuda -termscp can be started in two different mode, if no extra arguments is provided, termscp will show the authentication form, where the user will be able to provide the parameters required to connect to the remote peer. +termscp se puede iniciar en dos modos diferentes, si no se proporcionan argumentos adicionales, termscp mostrará el formulario de autenticación, donde el usuario podrá proporcionar los parámetros necesarios para conectarse al par remoto. -Alternatively, the user can provide an address as argument to skip the authentication form and starting directly the connection to the remote server. +Alternativamente, el usuario puede proporcionar una dirección como argumento para omitir el formulario de autenticación e iniciar directamente la conexión al servidor remoto. -If address argument is provided you can also provide the start working directory for local host +Si se proporciona un argumento de dirección, también puede proporcionar el directorio de inicio de trabajo para el host local -### Address argument 🌎 +### Argumento dirección 🌎 -The address argument has the following syntax: +El argumento dirección tiene la siguiente sintaxis: ```txt [protocol://][username@]
[:port][:wrkdir] ``` -Let's see some example of this particular syntax, since it's very comfortable and you'll probably going to use this instead of the other one... +Veamos algún ejemplo de esta sintaxis en particular, ya que es muy cómoda y probablemente usarás esta en lugar de la otra ... -- Connect using default protocol (*defined in configuration*) to 192.168.1.31, port if not provided is default for the selected protocol (in this case depends on your configuration); username is current user's name +- Conéctese usando el protocolo predeterminado (*definido en la configuración*) a 192.168.1.31, el puerto, si no se proporciona, es el predeterminado para el protocolo seleccionado (en este caso, depende de su configuración); nombre de usuario es el nombre del usuario actual ```sh termscp 192.168.1.31 ``` -- Connect using default protocol (*defined in configuration*) to 192.168.1.31; username is `root` +- Conéctese usando el protocolo predeterminado (*definido en la configuración*) a 192.168.1.31; el nombre de usuario es `root` ```sh termscp root@192.168.1.31 ``` -- Connect using scp to 192.168.1.31, port is 4022; username is `omar` +- Conéctese usando scp a 192.168.1.31, el puerto es 4022; nombre de usuario es `omar` ```sh termscp scp://omar@192.168.1.31:4022 ``` -- Connect using scp to 192.168.1.31, port is 4022; username is `omar`. You will start in directory `/tmp` +- Conéctese usando scp a 192.168.1.31, el puerto es 4022; El nombre de usuario es `omar`. Comenzará en el directorio `/ tmp` ```sh termscp scp://omar@192.168.1.31:4022:/tmp ``` -#### AWS S3 address argument +#### Argumento dirección por AWS S3 -Aws S3 has a different syntax for CLI address argument, for obvious reasons, but I managed to keep it the more similar as possible to the generic address argument: +Aws S3 tiene una sintaxis diferente para el argumento de la dirección CLI, por razones obvias, pero logré mantenerlo lo más similar posible al argumento de la dirección genérica: ```txt s3://@[:profile][:/wrkdir] ``` -e.g. +por ejemplo ```txt s3://buckethead@eu-central-1:default:/assets ``` -#### How Password can be provided 🔐 +#### Cómo se puede proporcionar la contraseña 🔐 + +Probablemente haya notado que, al proporcionar la dirección como argumento, no hay forma de proporcionar la contraseña. +La contraseña se puede proporcionar básicamente a través de 3 formas cuando se proporciona un argumento de dirección: + +- `-P, --password` opción: simplemente use esta opción CLI proporcionando la contraseña. No recomiendo este método, ya que es muy inseguro (ya que puede mantener la contraseña en el historial de shell) +- Con `sshpass`: puede proporcionar la contraseña a través de `sshpass`, p. ej. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` +- Se te pedirá que ingreses: si no utilizas ninguno de los métodos anteriores, se te pedirá la contraseña, como ocurre con las herramientas más clásicas como `scp`, `ssh`, etc. + +--- + +## Credenciales de AWS S3 🦊 + +Para conectarse a un bucket de Aws S3, obviamente debe proporcionar algunas credenciales. +Básicamente, hay dos formas de lograr esto, y como probablemente ya hayas notado, **no puedes** hacerlo a través del formulario de autenticación. +Entonces, estas son las formas en que puede proporcionar las credenciales para s3: -You have probably noticed, that, when providing the address as argument, there's no way to provide the password. -Password can be basically provided through 3 ways when address argument is provided: +1. Use su archivo de credenciales: simplemente configure la cli de AWS a través de `aws configure` y sus credenciales ya deberían estar ubicadas en`~/.aws/credentials`. En caso de que esté usando un perfil diferente al "predeterminado", simplemente proporciónelo en el campo de perfil en el formulario de autenticación. +2. **Variables de entorno**: siempre puede proporcionar sus credenciales como variables de entorno. Tenga en cuenta que estas credenciales **siempre anularán** las credenciales ubicadas en el archivo `credentials`. Vea cómo configurar el entorno a continuación: + + Estos siempre deben ser obligatorios: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (generalmente comienza con `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: la secret access key + + En caso de que haya configurado una seguridad más fuerte, *puede* requerir estos también: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token -- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very unsecure (since you might keep the password in the shell history) -- Via `sshpass`: you can provide password via `sshpass`, e.g. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` -- You will be prompted for it: if you don't use any of the previous methods, you will be prompted for the password, as happens with the more classics tools such as `scp`, `ssh`, etc. +⚠️ Sus credenciales están seguras: ¡termscp no manipulará estos valores directamente! Sus credenciales son consumidas directamente por la caja **s3**. +En caso de que tenga alguna inquietud con respecto a la seguridad, comuníquese con el autor de la biblioteca en [Github](https://github.com/durch/rust-s3) ⚠️ --- -## File explorer 📂 +## Explorador de archivos 📂 -When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. -These panels are basically 3 (yes, three actually): +Cuando nos referimos a exploradores de archivos en termscp, nos referimos a los paneles que puede ver después de establecer una conexión con el control remoto. +Estos paneles son básicamente 3: -- Local explorer panel: it is displayed on the left of your screen and shows the current directory entries for localhost -- Remote explorer panel: it is displayed on the right of your screen and shows the current directory entries for the remote host. -- Find results panel: depending on where you're searching for files (local/remote) it will replace the local or the explorer panel. This panel shows the entries matching the search query you performed. +- Panel del explorador local: se muestra a la izquierda de la pantalla y muestra las entradas del directorio actual para localhost +- Panel del explorador remoto: se muestra a la derecha de la pantalla y muestra las entradas del directorio actual para el host remoto. +- Panel de resultados de búsqueda: dependiendo de dónde esté buscando archivos (local / remoto), reemplazará el panel local o del explorador. Este panel muestra las entradas que coinciden con la consulta de búsqueda que realizó. -In order to change panel you need to type `` to move the remote explorer panel and `` to move back to the local explorer panel. Whenever you are in the find results panel, you need to press `` to exit panel and go back to the previous panel. +Para cambiar de panel, debe escribir `` para mover el panel del explorador remoto y `` para volver al panel del explorador local. Siempre que se encuentre en el panel de resultados de búsqueda, debe presionar `` para salir del panel y volver al panel anterior. ### Keybindings ⌨ | Key | Command | Reminder | |---------------|-------------------------------------------------------|-------------| -| `` | Disconnect from remote; return to authentication page | | -| `` | Switch between log tab and explorer | | -| `` | Go to previous directory in stack | | -| `` | Move to remote explorer tab | | -| `` | Move to local explorer tab | | -| `` | Move up in selected list | | -| `` | Move down in selected list | | -| `` | Move up in selected list by 8 rows | | -| `` | Move down in selected list by 8 rows | | -| `` | Enter directory | | -| `` | Upload / download selected file | | -| `` | Toggle hidden files | All | -| `` | Sort files by | Bubblesort? | -| `` | Copy file/directory | Copy | -| `` | Make directory | Directory | -| `` | Delete file (Same as `DEL`) | Erase | -| `` | Search for files (wild match is supported) | Find | -| `` | Go to supplied path | Go to | -| `` | Show help | Help | -| `` | Show info about selected file or directory | Info | -| `` | Reload current directory's content / Clear selection | List | -| `` | Select a file | Mark | -| `` | Create new file with provided name | New | -| `` | Edit file; see Text editor | Open | -| `` | Quit termscp | Quit | -| `` | Rename file | Rename | -| `` | Save file as... | Save | -| `` | Go to parent directory | Upper | -| `` | Open file with default program for filetype | View | -| `` | Open file with provided program | With | -| `` | Execute a command | eXecute | -| `` | Toggle synchronized browsing | sYnc | -| `` | Delete file | | -| `` | Select all files | | -| `` | Abort file transfer process | | - -### Work on multiple files 🥷 - -You can opt to work on multiple files, selecting them pressing ``, in order to select the current file, or pressing ``, which will select all the files in the working directory. -Once a file is marked for selection, it will be displayed with a `*` on the left. -When working on selection, only selected file will be processed for actions, while the current highlighted item will be ignored. -It is possible to work on multiple files also when in the find result panel. -All the actions are available when working with multiple files, but be aware that some actions work in a slightly different way. Let's dive in: - -- *Copy*: whenever you copy a file, you'll be prompted to insert the destination name. When working with multiple file, this name refers to the destination directory where all these files will be copied. -- *Rename*: same as copy, but will move files there. -- *Save as*: same as copy, but will write them there. - -### Synchronized browsing ⏲️ - -When enabled, synchronized browsing, will allow you to synchronize the navigation between the two panels. -This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browsing state will be reported on the status bar on `ON`. - -> ❗ at the moment, whenever you try to access an unexisting directory, you won't be prompted to create it. This might change in a future update. - -### Open and Open With 🚪 - -Open and open with commands are powered by [open-rs](https://docs.rs/crate/open/1.7.0). -When opening files with View command (``), the system default application for the file type will be used. To do so, the default operting system service will be used, so be sure to have at least one of these installed on your system: - -- **Windows** users: you don't have to worry about it, since the crate will use the `start` command. -- **MacOS** users: you don't have to worry either, since the crate will use `open`, which is already installed on your system. -- **Linux** users: one of these should be installed +| `` | Desconecte; volver a la página de autenticación | | +| `` | Cambiar entre la pestaña de registro y el explorador | | +| `` | Ir al directorio anterior en la pila | | +| `` | Mover a la pestaña del explorador remoto | | +| `` | Mover a la pestaña del explorador local | | +| `` | Subir en la lista seleccionada | | +| `` | Bajar en la lista seleccionada | | +| `` | Subir 8 filas en la lista seleccionada | | +| `` | Bajar 8 filas en la lista seleccionada | | +| `` | Entrar directorio | | +| `` | Cargar / descargar el archivo seleccionado | | +| `` | Alternar archivos ocultos | All | +| `` | Ordenar archivos por | Bubblesort? | +| `` | Copiar archivo / directorio | Copy | +| `` | Hacer directorio | Directory | +| `` | Eliminar archivo (igual que `DEL`) | Erase | +| `` | Búsqueda de archivos | Find | +| `` | Ir a la ruta proporcionada | Go to | +| `` | Mostrar ayuda | Help | +| `` | Mostrar información sobre el archivo | Info | +| `` | Recargar contenido del directorio / Borrar selección | List | +| `` | Seleccione un archivo | Mark | +| `` | Crear un nuevo archivo con el nombre proporcionado | New | +| `` | Editar archivo | Open | +| `` | Salir de termscp | Quit | +| `` | Renombrar archivo | Rename | +| `` | Guardar archivo como... | Save | +| `` | Ir al directorio principal | Upper | +| `` | Abrir archivo con el programa predeterminado | View | +| `` | Abrir archivo con el programa proporcionado | With | +| `` | Ejecutar un comando | eXecute | +| `` | Alternar navegación sincronizada | sYnc | +| `` | Eliminar archivo | | +| `` | Seleccionar todos los archivos | | +| `` | Abortar el proceso de transferencia de archivos | | + +### Trabaja en varios archivos 🥷 + +Puede optar por trabajar en varios archivos, seleccionándolos presionando ``, para seleccionar el archivo actual, o presionando ``, que seleccionará todos los archivos en el directorio de trabajo. +Una vez que un archivo está marcado para su selección, se mostrará con un `*` a la izquierda. +Al trabajar en la selección, solo se procesará el archivo seleccionado para las acciones, mientras que el elemento resaltado actual se ignorará. +También es posible trabajar en varios archivos desde el panel de resultados de búsqueda. +Todas las acciones están disponibles cuando se trabaja con varios archivos, pero tenga en cuenta que algunas acciones funcionan de forma ligeramente diferente. Vamos a sumergirnos en: + +- *Copy*: cada vez que copie un archivo, se le pedirá que inserte el nombre de destino. Cuando se trabaja con varios archivos, este nombre se refiere al directorio de destino donde se copiarán todos estos archivos. +- *Rename*: igual que copiar, pero moverá archivos allí. +- *Save as*: igual que copiar, pero los escribirá allí. + +### Navegación sincronizada ⏲️ + +Cuando está habilitada, la navegación sincronizada le permitirá sincronizar la navegación entre los dos paneles. +Esto significa que siempre que cambie el directorio de trabajo en un panel, la misma acción se reproducirá en el otro panel. Si desea habilitar la navegación sincronizada, simplemente presione ``; presione dos veces para deshabilitar. Mientras está habilitado, el estado de navegación sincronizada se informará en la barra de estado en "ON". + +> ❗ Por el momento, cada vez que intente acceder a un directorio que no existe, no se le pedirá que lo cree. Esto podría cambiar en una actualización futura. + +### Abierta y abierta con 🚪 + +Al abrir archivos con el comando Ver (``), se utilizará la aplicación predeterminada del sistema para el tipo de archivo. Para hacerlo, se utilizará el servicio del sistema operativo predeterminado, así que asegúrese de tener al menos uno de estos instalado en su sistema: + +- Usuarios **Windows**: no tiene que preocuparse por eso, ya que la caja usará el comando `start`. +- Usuarios **MacOS**: tampoco tiene que preocuparse, ya que la caja usará `open`, que ya está instalado en su sistema. +- Usuarios **Linux**: uno de estos debe estar instalado - *xdg-open* - *gio* - *gnome-open* - *kde-open* -- **WSL** users: *wslview* is required, you must install [wslu](https://github.com/wslutilities/wslu). +- Usuarios **WSL**: *wslview* es obligatorio, debe instalar [wslu](https://github.com/wslutilities/wslu). -> Q: Can I edit remote files using the view command? -> A: No, at least not directly from the "remote panel". You have to download it to a local directory first, that's due to the fact that when you open a remote file, the file is downloaded into a temporary directory, but there's no way to create a watcher for the file to check when the program you used to open it was closed, so termscp is not able to know when you're done editing the file. +> Q: ¿Puedo editar archivos remotos usando el comando de vista? +> A: No, al menos no directamente desde el "panel remoto". Primero debe descargarlo en un directorio local, eso se debe al hecho de que cuando abre un archivo remoto, el archivo se descarga en un directorio temporal, pero no hay forma de crear un observador para que el archivo verifique cuándo el programa utilizado para abrirlo estaba cerrado, por lo que termscp no puede saber cuándo ha terminado de editar el archivo. --- -## Bookmarks ⭐ +## Marcadores ⭐ -In termscp it is possible to save favourites hosts, which can be then loaded quickly from the main layout of termscp. -termscp will also save the last 16 hosts you connected to. -This feature allows you to load all the parameters required to connect to a certain remote, simply selecting the bookmark in the tab under the authentication form. +En termscp es posible guardar hosts favoritos, que luego se pueden cargar rápidamente desde el diseño principal de termscp. +termscp también guardará los últimos 16 hosts a los que se conectó. +Esta función le permite cargar todos los parámetros necesarios para conectarse a un determinado control remoto, simplemente seleccionando el marcador en la pestaña debajo del formulario de autenticación. -Bookmarks will be saved, if possible at: +Los marcadores se guardarán, si es posible, en: -- `$HOME/.config/termscp/` on Linux/BSD -- `$HOME/Library/Application Support/termscp` on MacOs -- `FOLDERID_RoamingAppData\termscp\` on Windows +- `$HOME/.config/termscp/` en Linux/BSD +- `$HOME/Library/Application Support/termscp` en MacOs +- `FOLDERID_RoamingAppData\termscp\` en Windows -For bookmarks only (this won't apply to recent hosts) it is also possible to save the password used to authenticate. The password is not saved by default and must be specified through the prompt when saving a new Bookmark. -If you're concerned about the security of the password saved for your bookmarks, please read the [chapter below 👀](#are-my-passwords-safe-). +Solo para marcadores (esto no se aplicará a hosts recientes) también es posible guardar la contraseña utilizada para autenticarse. La contraseña no se guarda de forma predeterminada y debe especificarse a través del indicador al guardar un nuevo marcador. +Si le preocupa la seguridad de la contraseña guardada para sus marcadores, lea el [capítulo siguiente 👀](#are-my-passwords-safe-). -In order to create a new bookmark, just follow these steps: +Para crear un nuevo marcador, simplemente siga estos pasos: -1. Type in the authentication form the parameters to connect to your remote server -2. Press `` -3. Type in the name you want to give to the bookmark -4. Choose whether to remind the password or not -5. Press `` to submit +1. Escriba en el formulario de autenticación los parámetros para conectarse a su servidor remoto +2. Presionar `` +3. Escriba el nombre que desea darle al marcador +4. Elija si recordar la contraseña o no +5. Presionar `` -whenever you want to use the previously saved connection, just press `` to navigate to the bookmarks list and load the bookmark parameters into the form pressing ``. +siempre que desee utilizar la conexión previamente guardada, simplemente presione `` para navegar a la lista de marcadores y cargue los parámetros del marcador en el formulario presionando ``. ![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) -### Are my passwords Safe 😈 +### ¿Son seguras mis contraseñas? 😈 -Sure 😉. -As said before, bookmarks are saved in your configuration directory along with passwords. Passwords are obviously not plain text, they are encrypted with **AES-128**. Does this make them safe? Absolutely! (except for BSD and WSL users 😢) +Seguro 😉. +Como se dijo antes, los marcadores se guardan en su directorio de configuración junto con las contraseñas. Las contraseñas obviamente no son texto sin formato, están encriptadas con **AES-128**. ¿Esto los hace seguros? ¡Absolutamente! (excepto para usuarios de BSD y WSL 😢) -On **Windows**, **Linux** and **MacOS** the key used to encrypt passwords is stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. +En **Windows**, **Linux** y **MacOS**, la clave utilizada para cifrar las contraseñas se almacena, si es posible (pero debería estar), respectivamente, en *Windows Vault*, en el *anillo de claves del sistema* y en el *Llavero*. Esto es realmente muy seguro y lo administra directamente su sistema operativo. -❗ Please, notice that if you're a Linux user, you'd better to read the [chapter below 👀](#linux-keyring), because the keyring might not be enabled or supported on your system! +❗ Por favor, tenga en cuenta que si es un usuario de Linux, es mejor que lea el [capítulo siguiente 👀](#linux-keyring), ¡porque es posible que el llavero no esté habilitado o no sea compatible con su sistema! -On *BSD* and *WSL*, on the other hand, the key used to encrypt your passwords is stored on your drive (at $HOME/.config/termscp). It is then, still possible to retrieve the key to decrypt passwords. Luckily, the location of the key guarantees your key can't be read by users different from yours, but yeah, I still wouldn't save the password for a server exposed on the internet 😉. +En *BSD* y *WSL*, por otro lado, la clave utilizada para cifrar sus contraseñas se almacena en su disco (en `$HOME/.config/ termscp`). Entonces, todavía es posible recuperar la clave para descifrar las contraseñas. Afortunadamente, la ubicación de la clave garantiza que su clave no pueda ser leída por usuarios diferentes al suyo, pero sí, todavía no guardaría la contraseña para un servidor expuesto en Internet 😉. #### Linux Keyring -We all love Linux thanks to the freedom it gives to the users. You can basically do anything you want as a Linux user, but this has also some cons, such as the fact that often there is no standard applications across different distributions. And this involves keyring too. -This means that on Linux there might be no keyring installed on your system. Unfortunately the library we use to work with the key storage requires a service which exposes `org.freedesktop.secrets` on D-BUS and the worst fact is that there only two services exposing it. +A todos nos encanta Linux gracias a la libertad que ofrece a los usuarios. Básicamente, puede hacer lo que quiera como usuario de Linux, pero esto también tiene algunas desventajas, como el hecho de que a menudo no hay aplicaciones estándar en las diferentes distribuciones. Y esto también implica el llavero. +Esto significa que en Linux puede que no haya un llavero instalado en su sistema. Desafortunadamente, la biblioteca que usamos para trabajar con el almacenamiento de claves requiere un servicio que exponga `org.freedesktop.secrets` en D-BUS y el peor hecho es que solo hay dos servicios que lo exponen. -- ❗ If you use GNOME as desktop environment (e.g. ubuntu users), you should already be fine, since keyring is already provided by `gnome-keyring` and everything should already be working. -- ❗ For other desktop environment users there is a nice program you can use to get a keyring which is [KeepassXC](https://keepassxc.org/), which I use on my Manjaro installation (with KDE) and works fine. The only problem is that you have to setup it to be used along with termscp (but it's quite simple). To get started with KeepassXC read more [here](#keepassxc-setup-for-termscp). -- ❗ What about you don't want to install any of these services? Well, there's no problem! **termscp will keep working as usual**, but it will save the key in a file, as it usually does for BSD and WSL. +- ❗ Si usa GNOME como entorno de escritorio (por ejemplo, usuarios de ubuntu), ya debería estar bien, ya que `gnome-keyring` ya proporciona el llavero y todo debería estar funcionando. +- ❗ Para otros usuarios de entornos de escritorio, hay un buen programa que pueden usar para obtener un llavero que es [KeepassXC](https://keepassxc.org/), que utilizo en mi instalación de Manjaro (con KDE) y funciona bien. El único problema es que debe configurarlo para que se use junto con termscp (pero es bastante simple). Para comenzar con KeepassXC, lea más [aquí](#keepassxc-setup-por-termscp). +- ❗ ¿Qué pasa si no desea instalar ninguno de estos servicios? Bueno, ¡no hay problema! **termscp seguirá funcionando como de costumbre**, pero guardará la clave en un archivo, como suele hacer para BSD y WSL. -##### KeepassXC setup for termscp +##### KeepassXC setup por termscp -Follow these steps in order to setup keepassXC for termscp: - -1. Install KeepassXC -2. Go to "tools" > "settings" in toolbar -3. Select "Secret service integration" and toggle "Enable KeepassXC freedesktop.org secret service integration" -4. Create a database, if you don't have one yet: from toolbar "Database" > "New database" -5. From toolbar: "Database" > "Database settings" -6. Select "Secret service integration" and toggle "Expose entries under this group" -7. Select the group in the list where you want the termscp secret to be kept. Remember that this group might be used by any other application to store secrets via DBUS. - ---- - -## Aws S3 credentials 🦊 - -In order to connect to an Aws S3 bucket you must obviously provide some credentials. -There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. -So these are the ways you can provide the credentials for s3: - -1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. -2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: - - These should always be mandatory: - - - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) - - `AWS_SECRET_ACCESS_KEY`: the secret access key - - In case you've configured a stronger security, you *may* require these too: - - - `AWS_SECURITY_TOKEN`: security token - - `AWS_SESSION_TOKEN`: session token +Siga estos pasos para configurar keepassXC para termscp: -⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. -In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ +1. Instalar KeepassXC +2. Vaya a "tools" > "settings" en la barra de herramientas +3. Seleccione "Secret service integration" y abilita "Enable KeepassXC freedesktop.org secret service integration" +4. Cree una base de datos, si aún no tiene una: desde la barra de herramientas "Database" > "New database" +5. Desde la barra de herramientas: "Database" > "Database settings" +6. Seleccione "Secret service integration" y abilita "Expose entries under this group" +7. Seleccione el grupo de la lista donde desea que se mantenga el secreto de termscp. Recuerde que este grupo puede ser utilizado por cualquier otra aplicación para almacenar secretos a través de DBUS. --- -## Configuration ⚙️ +## Configuración ⚙️ -termscp supports some user defined parameters, which can be defined in the configuration. -Underhood termscp has a TOML file and some other directories where all the parameters will be saved, but don't worry, you won't touch any of these files manually, since I made possible to configure termscp from its user interface entirely. +termscp admite algunos parámetros definidos por el usuario, que se pueden definir en la configuración. +Underhood termscp tiene un archivo TOML y algunos otros directorios donde se guardarán todos los parámetros, pero no se preocupe, no tocará ninguno de estos archivos manualmente, ya que hice posible configurar termscp desde su interfaz de usuario por completo. -termscp, like for bookmarks, just requires to have these paths accessible: +termscp, al igual que para los marcadores, solo requiere tener estas rutas accesibles: -- `$HOME/.config/termscp/` on Linux/BSD -- `$HOME/Library/Application Support/termscp` on MacOs -- `FOLDERID_RoamingAppData\termscp\` on Windows +- `$HOME/.config/termscp/` en Linux/BSD +- `$HOME/Library/Application Support/termscp` en MacOs +- `FOLDERID_RoamingAppData\termscp\` en Windows -To access configuration, you just have to press `` from the home of termscp. +Para acceder a la configuración, solo tiene que presionar `` desde el inicio de termscp. -These parameters can be changed: +Estos parámetros se pueden cambiar: -- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process so if you ask: yes, you can use `notepad.exe`, and no: **Visual Studio Code doesn't work**. -- **Default Protocol**: the default protocol is the default value for the file transfer protocol to be used in termscp. This applies for the login page and for the address CLI argument. -- **Show Hidden Files**: select whether hidden files shall be displayed by default. You will be able to decide whether to show or not hidden files at runtime pressing `A` anyway. -- **Check for updates**: if set to `yes`, termscp will fetch the Github API to check if there is a new version of termscp available. -- **Prompt when replacing existing files?**: If set to `yes`, termscp will prompt for confirmation you whenever a file transfer would cause an existing file on target host to be replaced. -- **Group Dirs**: select whether directories should be groupped or not in file explorers. If `Display first` is selected, directories will be sorted using the configured method but displayed before files, viceversa if `Display last` is selected. -- **Remote File formatter syntax**: syntax to display file info for each file in the remote explorer. See [File explorer format](#file-explorer-format) -- **Local File formatter syntax**: syntax to display file info for each file in the local explorer. See [File explorer format](#file-explorer-format) -- **Enable notifications?**: If set to `Yes`, notifications will be displayed. -- **Notifications: minimum transfer size**: if transfer size is greater or equal than the specified value, notifications for transfer will be displayed. The accepted values are in format `{UNSIGNED} B/KB/MB/GB/TB/PB` +- **Text Editor**: l editor de texto a utilizar. Por defecto, termscp encontrará el editor predeterminado para usted; con esta opción puede forzar el uso de un editor (por ejemplo, `vim`). **También se admiten los editores de GUI**, a menos que hagan "nohup" del proceso principal. +- **Default Protocol**: el protocolo predeterminado es el valor predeterminado para el protocolo de transferencia de archivos que se utilizará en termscp. Esto se aplica a la página de inicio de sesión y al argumento de la CLI de la dirección. +- **Show Hidden Files**: seleccione si los archivos ocultos se mostrarán de forma predeterminada. Podrás decidir si mostrar o no archivos ocultos en tiempo de ejecución presionando "A" de todos modos. +- **Check for updates**: si se establece en `yes`, termscp buscará la API de Github para comprobar si hay una nueva versión de termscp disponible. +- **Prompt when replacing existing files?**: Si se establece en "sí", termscp le pedirá confirmación cada vez que una transferencia de archivo provoque la sustitución de un archivo existente en el host de destino. +- **Group Dirs**: seleccione si los directorios deben agruparse o no en los exploradores de archivos. Si se selecciona `Display first`, los directorios se ordenarán usando el método configurado pero se mostrarán antes de los archivos, y viceversa si se selecciona`Display last`. +- **Remote File formatter syntax**: sintaxis para mostrar información de archivo para cada archivo en el explorador remoto. Consulte [Formato del explorador de archivos](#formato-del-explorador-de-archivos). +- **Local File formatter syntax**: sintaxis para mostrar información de archivo para cada archivo en el explorador local. Consulte [Formato del explorador de archivos](#formato-del-explorador-de-archivos). +- **Enable notifications?**: Si se establece en "Sí", se mostrarán las notificaciones. +- **Notifications: minimum transfer size**: si el tamaño de la transferencia es mayor o igual que el valor especificado, se mostrarán notificaciones de transferencia. Los valores aceptados están en formato `{UNSIGNED} B/KB/MB/GB/TB/PB` ### SSH Key Storage 🔐 -Along with configuration, termscp provides also an **essential** feature for **SFTP/SCP clients**: the SSH key storage. +Junto con la configuración, termscp también proporciona una característica **esencial** para **clientes SFTP / SCP**: el almacenamiento de claves SSH. -You can access the SSH key storage, from configuration moving to the `SSH Keys` tab, once there you can: +Puede acceder al almacenamiento de claves SSH, desde la configuración pasando a la pestaña `Claves SSH`, una vez allí puede: -- **Add a new key**: just press `` and you will be prompted to create a new key. Provide the hostname/ip address and the username associated to the key and finally a text editor will open up: paste the **PRIVATE** ssh key into the text editor, save and quit. -- **Remove an existing key**: just press `` or `` on the key you want to remove, to delete persistently the key from termscp. -- **Edit an existing key**: just press `` on the key you want to edit, to change the private key. +- **Agregar una nueva clave**: simplemente presione `` y se le pedirá que cree una nueva clave. Proporcione el nombre de host / dirección IP y el nombre de usuario asociado a la clave y finalmente se abrirá un editor de texto: pegue la clave ssh **PRIVATE** en el editor de texto, guarde y salga. +- **Eliminar una clave existente**: simplemente presione `` o `` en la clave que desea eliminar, para eliminar persistentemente la clave de termscp. +- **Editar una clave existente**: simplemente presione `` en la clave que desea editar, para cambiar la clave privada. -> Q: Wait, my private key is protected with password, can I use it? -> A: Of course you can. The password provided for authentication in termscp, is valid both for username/password authentication and for RSA key authentication. +> Q: Mi clave privada está protegida con contraseña, ¿puedo usarla? +> A: Por supuesto que puede. La contraseña proporcionada para la autenticación en termscp es válida tanto para la autenticación de nombre de usuario / contraseña como para la autenticación de clave RSA. -### File Explorer Format +### Formato del explorador de archivos -It is possible through configuration to define a custom format for the file explorer. This is possible both for local and remote host, so you can have two different syntax in use. These fields, with name `File formatter syntax (local)` and `File formatter syntax (remote)` will define how the file entries will be displayed in the file explorer. -The syntax for the formatter is the following `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. -Each key in bracket will be replaced with the related attribute, while everything outside brackets will be left unchanged. +Es posible a través de la configuración definir un formato personalizado para el explorador de archivos. Esto es posible tanto para el host local como para el remoto, por lo que puede tener dos sintaxis diferentes en uso. Estos campos, con el nombre `File formatter syntax (local)` y `File formatter syntax (remote)` definirán cómo se mostrarán las entradas del archivo en el explorador de archivos. +La sintaxis del formateador es la siguiente `{KEY1} ... {KEY2:LENGTH} ... {KEY3:LENGTH:EXTRA} {KEYn} ...`. +Cada clave entre corchetes se reemplazará con el atributo relacionado, mientras que todo lo que esté fuera de los corchetes se dejará sin cambios. -- The key name is mandatory and must be one of the keys below -- The length describes the length reserved to display the field. Static attributes doesn't support this (GROUP, PEX, SIZE, USER) -- Extra is supported only by some parameters and is an additional options. See keys to check if extra is supported. +- El nombre de la clave es obligatorio y debe ser una de las claves siguientes +- La longitud describe la longitud reservada para mostrar el campo. Los atributos estáticos no admiten esto (GROUP, PEX, SIZE, USER) +- Extra es compatible solo con algunos parámetros y es una opción adicional. Consulte las claves para comprobar si se admite extra. -These are the keys supported by the formatter: +Estas son las claves admitidas por el formateador: -- `ATIME`: Last access time (with default syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{ATIME:8:%H:%M}`) -- `CTIME`: Creation time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{CTIME:8:%H:%M}`) -- `GROUP`: Owner group -- `MTIME`: Last change time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{MTIME:8:%H:%M}`) -- `NAME`: File name (Elided if longer than LENGTH) -- `PEX`: File permissions (UNIX format) -- `SIZE`: File size (omitted for directories) -- `SYMLINK`: Symlink (if any `-> {FILE_PATH}`) -- `USER`: Owner user +- `ATIME`: Hora del último acceso (con la sintaxis predeterminada`%b %d %Y %H:%M`); Se puede proporcionar un extra como la sintaxis de tiempo (por ejemplo, "{ATIME: 8:% H:% M}") +- `CTIME`: Hora de creación (con sintaxis`%b %d %Y %H:%M`); Se puede proporcionar un extra como sintaxis de tiempo (p. Ej., `{CTIME:8:%H:%M}`) +- `GROUP`: Grupo propietario +- `MTIME`: Hora del último cambio (con sintaxis`%b %d %Y %H:%M`); Se puede proporcionar extra como sintaxis de tiempo (p. Ej., `{MTIME: 8:% H:% M}`) +- `NAME`: nombre de archivo (se omite si es más largo que LENGTH) +- `PEX`: permisos de archivo (formato UNIX) +- `SIZE`: Tamaño del archivo (se omite para directorios) +- `SYMLINK`: Symlink (si existe` -> {FILE_PATH} `) +- `USER`: Usuario propietario -If left empty, the default formatter syntax will be used: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` +Si se deja vacío, se utilizará la sintaxis del formateador predeterminada: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` --- -## Themes 🎨 +## Temas 🎨 -Termscp provides you with an awesome feature: the possibility to set the colors for several components in the application. -If you want to customize termscp there are two available ways to do so: +Termscp le ofrece una característica asombrosa: la posibilidad de configurar los colores para varios componentes de la aplicación. +Si desea personalizar termscp, hay dos formas disponibles de hacerlo: -- From the **configuration menu** -- Importing a **theme file** +- Desde el **menú de configuración** +- Importando un **archivo de tema** -In order to create your own customization from termscp, all you have to do so is to enter the configuration from the auth activity, pressing `` and then `` twice. You should have now moved to the `themes` panel. +Para crear su propia personalización desde termscp, todo lo que tiene que hacer es ingresar a la configuración desde la actividad de autenticación, presionando `` y luego `` dos veces. Deberías haberte movido ahora al panel de `temas`. -Here you can move with `` and `` to change the style you want to change, as shown in the gif below: +Aquí puede moverse con `` y `` para cambiar el estilo que desea cambiar, como se muestra en el siguiente gif: ![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) -termscp supports both the traditional explicit hex (`#rrggbb`) and rgb `rgb(r, g, b)` syntax to provide colors, but also **[css colors](https://www.w3schools.com/cssref/css_colors.asp)** (such as `crimson`) are accepted 😉. There is also a special keywork which is `Default`. Default means that the color used will be the default foreground or background color based on the situation (foreground for texts and lines, background for well, guess what). +termscp admite la sintaxis tradicional hexadecimal explícita (`#rrggbb`) y rgb `rgb(r, g, b)` para proporcionar colores, pero se aceptan también **[colores css](https://www.w3schools.com/cssref/css_colors.asp)** (como `crimson`) 😉. También hay un teclado especial que es `Default`. Predeterminado significa que el color utilizado será el color de primer plano o de fondo predeterminado según la situación (primer plano para textos y líneas, fondo para bien, adivinen qué). -As said before, you can also import theme files. You can take inspiration from or directly use one of the themes provided along with termscp, located in the `themes/` directory of this repository and import them running termscp as `termscp -t `. If everything was fine, it should tell you the theme has successfully been imported. +Como se dijo antes, también puede importar archivos de temas. Puede inspirarse o utilizar directamente uno de los temas proporcionados junto con termscp, ubicado en el directorio `themes/` de este repositorio e importarlos ejecutando termscp como `termscp -t `. Si todo estuvo bien, debería decirle que el tema se ha importado correctamente. -### My theme won't load 😱 +### Mi tema no se carga 😱 -This is probably due to a recent update which has broken the theme. Whenever I add a new key to themes, the saved theme won't load. To fix this issues there are two really quick-fix solutions: +Esto probablemente se deba a una actualización reciente que ha roto el tema. Siempre que agrego una nueva clave a los temas, el tema guardado no se carga. Para solucionar este problema, existen dos soluciones realmente rápidas: -1. Reload theme: whenever I release an update I will also patch the "official" themes, so you just have to download it from the repository again and re-import the theme via `-t` option +1. Recargar tema: cada vez que publique una actualización, también parchearé los temas "oficiales", por lo que solo tiene que descargarlo del repositorio nuevamente y volver a importar el tema a través de la opción `-t` ```sh termscp -t ``` -2. Fix your theme: If you're using a custom theme, then you can edit via `vim` and add the missing key. The theme is located at `$CONFIG_DIR/termscp/theme.toml` where `$CONFIG_DIR` is: +2. Corrija su tema: si está utilizando un tema personalizado, puede editarlo a través de `vim` y agregar la clave que falta. El tema se encuentra en `$CONFIG_DIR/termscp/theme.toml` donde `$CONFIG_DIR` es: - FreeBSD/GNU-Linux: `$HOME/.config/` - MacOs: `$HOME/Library/Application Support` - Windows: `%appdata%` - ❗ Missing keys are reported in the CHANGELOG under `BREAKING CHANGES` for the version you've just installed. + ❗ Las claves que faltan se informan en el CAMBIO en `BREAKING CHANGES` para la versión que acaba de instalar. -### Styles 💈 +### Estilos 💈 -You can find in the table below, the description for each style field. -Please, notice that **styles won't apply to configuration page**, in order to make it always accessible in case you mess everything up +Puede encontrar en la tabla siguiente la descripción de cada campo de estilo. +Tenga en cuenta que **los estilos no se aplicarán a la página de configuración**, para que sea siempre accesible en caso de que lo estropee todo #### Authentication page @@ -435,52 +436,52 @@ These styles applie to different part of the application. ## Text Editor ✏ -termscp has, as you might have noticed, many features, one of these is the possibility to view and edit text file. It doesn't matter if the file is located on the local host or on the remote host, termscp provides the possibility to open a file in your favourite text editor. -In case the file is located on remote host, the file will be first downloaded into your temporary file directory and then, **only** if changes were made to the file, re-uploaded to the remote host. termscp checks if you made changes to the file verifying the last modification time of the file. +termscp tiene, como habrás notado, muchas características, una de ellas es la posibilidad de ver y editar archivos de texto. No importa si el archivo está ubicado en el host local o en el host remoto, termscp brinda la posibilidad de abrir un archivo en su editor de texto favorito. +En caso de que el archivo esté ubicado en un host remoto, el archivo se descargará primero en su directorio de archivos temporales y luego, **solo** si se realizaron cambios en el archivo, se volverá a cargar en el host remoto. termscp comprueba si realizó cambios en el archivo verificando la última hora de modificación del archivo. -Just a reminder: **you can edit only textual file**; binary files are not supported. +> ❗ Just a reminder: **you can edit only textual file**; binary files are not supported. --- ## Logging 🩺 -termscp writes a log file for each session, which is written at +termscp escribe un archivo de registro para cada sesión, que se escribe en -- `$HOME/.config/termscp/termscp.log` on Linux/BSD -- `$HOME/Library/Application Support/termscp/termscp.log` on MacOs -- `FOLDERID_RoamingAppData\termscp\termscp.log` on Windows +- `$HOME/.config/termscp/termscp.log` en Linux/BSD +- `$HOME/Library/Application Support/termscp/termscp.log` en MacOs +- `FOLDERID_RoamingAppData\termscp\termscp.log` en Windows -the log won't be rotated, but will just be truncated after each launch of termscp, so if you want to report an issue and you want to attach your log file, keep in mind to save the log file in a safe place before using termscp again. -The log file always reports in *trace* level, so it is kinda verbose. -I know you might have some questions regarding log files, so I made a kind of a Q/A: +el registro no se rotará, sino que se truncará después de cada lanzamiento de termscp, por lo que si desea informar un problema y desea adjuntar su archivo de registro, recuerde guardar el archivo de registro en un lugar seguro antes de usar termscp de nuevo. +El archivo de registro siempre informa en el nivel de *seguimiento*, por lo que es un poco detallado. +Sé que es posible que tenga algunas preguntas sobre los archivos de registro, así que hice una especie de Q/A: -> Is it possible to reduce verbosity? +> ¿Es posible reducir la verbosidad? -No. The reason is quite simple: when an issue happens, you must be able to know what's causing it and the only way to do that, is to have the log file with the maximum verbosity level set. +No. La razón es bastante simple: cuando ocurre un problema, debe poder saber qué lo está causando y la única forma de hacerlo es tener el archivo de registro con el nivel de verbosidad máximo establecido. -> If trace level is set for logging, is the file going to reach a huge size? +> Si el nivel de seguimiento está configurado para el registro, ¿el archivo alcanzará un tamaño enorme? -Probably not, unless you never quit termscp, but I think that's unlikely to happen. A long session may produce up to 10MB of log files (I said a long session), but I think a normal session won't exceed 2MB. +Probablemente no, a menos que nunca cerra termscp, pero creo que es poco probable que eso suceda. Una sesión larga puede producir hasta 10 MB de archivos de registro (dije una sesión larga), pero creo que una sesión normal no excederá los 2 MB. -> I don't want logging, can I turn it off? +> No quiero el registro, ¿puedo apagarlo? -Yes, you can. Just start termscp with `-q or --quiet` option. You can alias termscp to make it persistent. Remember that logging is used to diagnose issues, so since behind every open source project, there should always be this kind of mutual help, keeping log files might be your way to support the project 😉. I don't want you to feel guilty, but just to say. +Sí tu puedes. Simplemente inicie termscp con la opción `-q o --quiet`. Puede alias termscp para que sea persistente. Recuerde que el registro se usa para diagnosticar problemas, por lo que, dado que detrás de cada proyecto de código abierto, siempre debe haber este tipo de ayuda mutua, mantener los archivos de registro puede ser su forma de respaldar el proyecto 😉. -> Is logging safe? +> ¿Es seguro el registro? -If you're concerned about security, the log file doesn't contain any plain password, so don't worry and exposes the same information the sibling file `bookmarks` reports. +Si le preocupa la seguridad, el archivo de registro no contiene ninguna contraseña simple, así que no se preocupe y expone la misma información que informa el archivo hermano `marcadores`. -## Notifications 📫 +## Notificaciones 📫 -Termscp will send Desktop notifications for these kind of events: +Termscp enviará notificaciones de escritorio para este tipo de eventos: -- on **Transfer completed**: The notification will be sent once a transfer has been successfully completed. - - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. -- on **Transfer failed**: The notification will be sent once a transfer has failed due to an error. - - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. -- on **Update available**: Whenever a new version of termscp is available, a notification will be displayed. -- on **Update installed**: Whenever a new version of termscp has been installed, a notification will be displayed. -- on **Update failed**: Whenever the installation of the update fails, a notification will be displayed. +- en **Transferencia completada**: la notificación se enviará una vez que la transferencia se haya completado con éxito. + - ❗ La notificación se mostrará solo si el tamaño total de la transferencia es al menos el `Notifications: minimum transfer size` especificado en la configuración. +- en **Transferencia fallida**: la notificación se enviará una vez que la transferencia haya fallado debido a un error. + - ❗ La notificación se mostrará solo si el tamaño total de la transferencia es al menos el `Notifications: minimum transfer size` especificado en la configuración. +- en **Actualización disponible**: siempre que haya una nueva versión de termscp disponible, se mostrará una notificación. +- en **Actualización instalada**: siempre que se haya instalado una nueva versión de termscp, se mostrará una notificación. +- en **Actualización fallida**: siempre que falle la instalación de la actualización, se mostrará una notificación. -❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. -❗ If you want to change the minimum transfer size to display notifications, you can change the value in the configuration with key `Notifications: minimum transfer size` and set it to whatever suits better for you 🙂. +❗ Si prefiere mantener las notificaciones desactivadas, puede simplemente ingresar a la configuración y configurar `Enable notifications?` En `No` 😉. +❗ Si desea cambiar el tamaño mínimo de transferencia para mostrar notificaciones, puede cambiar el valor en la configuración con la tecla `Notifications: minimum transfer size` y configurarlo como mejor le convenga 🙂. diff --git a/docs/fr/man.md b/docs/fr/man.md index bd130fd1..c77f3adf 100644 --- a/docs/fr/man.md +++ b/docs/fr/man.md @@ -2,89 +2,89 @@ - [User manual 🎓](#user-manual-) - [Usage ❓](#usage-) - - [Address argument 🌎](#address-argument-) - - [AWS S3 address argument](#aws-s3-address-argument) - - [How Password can be provided 🔐](#how-password-can-be-provided-) - - [File explorer 📂](#file-explorer-) - - [Keybindings ⌨](#keybindings-) - - [Work on multiple files 🥷](#work-on-multiple-files-) - - [Synchronized browsing ⏲️](#synchronized-browsing-️) - - [Open and Open With 🚪](#open-and-open-with-) - - [Bookmarks ⭐](#bookmarks-) - - [Are my passwords Safe 😈](#are-my-passwords-safe-) + - [Argument d'adresse 🌎](#argument-dadresse-) + - [Argument d'adresse AWS S3](#argument-dadresse-aws-s3) + - [Comment le mot de passe peut être fourni 🔐](#comment-le-mot-de-passe-peut-être-fourni-) + - [Identifiants AWS S3 🦊](#identifiants-aws-s3-) + - [Explorateur de fichiers 📂](#explorateur-de-fichiers-) + - [Raccourcis clavier ⌨](#raccourcis-clavier-) + - [Travailler sur plusieurs fichiers 🥷](#travailler-sur-plusieurs-fichiers-) + - [Navigation synchronisée ⏲️](#navigation-synchronisée-️) + - [Ouvrir et ouvrir avec 🚪](#ouvrir-et-ouvrir-avec-) + - [Signets ⭐](#signets-) + - [Mes mots de passe sont-ils sûrs 😈](#mes-mots-de-passe-sont-ils-sûrs-) - [Linux Keyring](#linux-keyring) - - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) - - [Aws S3 credentials 🦊](#aws-s3-credentials-) + - [Configuration de KeepassXC pour termscp](#configuration-de-keepassxc-pour-termscp) - [Configuration ⚙️](#configuration-️) - [SSH Key Storage 🔐](#ssh-key-storage-) - - [File Explorer Format](#file-explorer-format) - - [Themes 🎨](#themes-) - - [My theme won't load 😱](#my-theme-wont-load-) - - [Styles 💈](#styles-) + - [Format de l'explorateur de fichiers](#format-de-lexplorateur-de-fichiers) + - [Thèmes 🎨](#thèmes-) + - [Mon thème ne se charge pas 😱](#mon-thème-ne-se-charge-pas-) + - [Modes 💈](#modes-) - [Authentication page](#authentication-page) - [Transfer page](#transfer-page) - [Misc](#misc) - - [Text Editor ✏](#text-editor-) - - [Logging 🩺](#logging-) + - [Éditeur de texte ✏](#éditeur-de-texte-) + - [Enregistrement 🩺](#enregistrement-) - [Notifications 📫](#notifications-) ## Usage ❓ -termscp can be started with the following options: +termscp peut être démarré avec les options suivantes : `termscp [options]... [protocol://user@address:port:wrkdir] [local-wrkdir]` -- `-P, --password ` if address is provided, password will be this argument -- `-c, --config` Open termscp starting from the configuration page -- `-q, --quiet` Disable logging -- `-t, --theme ` Import specified theme -- `-u, --update` Update termscp to latest version -- `-v, --version` Print version info -- `-h, --help` Print help page +- `-P, --password ` si l'adresse est fournie, le mot de passe sera cet argument +- `-c, --config` Ouvrir termscp à partir de la page de configuration +- `-q, --quiet` Désactiver la journalisation +- `-t, --theme ` Importer le thème spécifié +- `-u, --update` Mettre à jour termscp vers la dernière version +- `-v, --version` Imprimer les informations sur la version +- `-h, --help` Imprimer la page d'aide -termscp can be started in two different mode, if no extra arguments is provided, termscp will show the authentication form, where the user will be able to provide the parameters required to connect to the remote peer. +termscp peut être démarré dans deux modes différents, si aucun argument supplémentaire n'est fourni, termscp affichera le formulaire d'authentification, où l'utilisateur pourra fournir les paramètres requis pour se connecter au pair distant. -Alternatively, the user can provide an address as argument to skip the authentication form and starting directly the connection to the remote server. +Alternativement, l'utilisateur peut fournir une adresse comme argument pour ignorer le formulaire d'authentification et démarrer directement la connexion au serveur distant. -If address argument is provided you can also provide the start working directory for local host +Si l'argument d'adresse est fourni, vous pouvez également fournir le répertoire de démarrage de l'hôte local -### Address argument 🌎 +### Argument d'adresse 🌎 -The address argument has the following syntax: +L'argument adresse a la syntaxe suivante : ```txt -[protocol://][username@]
[:port][:wrkdir] +[protocole://][nom-utilisateur@][:port][:wrkdir] ``` -Let's see some example of this particular syntax, since it's very comfortable and you'll probably going to use this instead of the other one... +Voyons un exemple de cette syntaxe particulière, car elle est très confortable et vous allez probablement l'utiliser à la place de l'autre... -- Connect using default protocol (*defined in configuration*) to 192.168.1.31, port if not provided is default for the selected protocol (in this case depends on your configuration); username is current user's name +- Se connecter en utilisant le protocole par défaut (*défini dans la configuration*) à 192.168.1.31, le port s'il n'est pas fourni est par défaut pour le protocole sélectionné (dans ce cas dépend de votre configuration) ; nom d'utilisateur est le nom de l'utilisateur actuel ```sh termscp 192.168.1.31 ``` -- Connect using default protocol (*defined in configuration*) to 192.168.1.31; username is `root` +- Se connecter en utilisant le protocole par défaut (*défini dans la configuration*) à 192.168.1.31 ; le nom d'utilisateur est "root" ```sh termscp root@192.168.1.31 ``` -- Connect using scp to 192.168.1.31, port is 4022; username is `omar` +- Se connecter en utilisant scp à 192.168.1.31, le port est 4022 ; le nom d'utilisateur est "omar" ```sh termscp scp://omar@192.168.1.31:4022 ``` -- Connect using scp to 192.168.1.31, port is 4022; username is `omar`. You will start in directory `/tmp` +- Se connecter en utilisant scp à 192.168.1.31, le port est 4022 ; le nom d'utilisateur est "omar". Vous commencerez dans le répertoire `/tmp` ```sh termscp scp://omar@192.168.1.31:4022:/tmp ``` -#### AWS S3 address argument +#### Argument d'adresse AWS S3 -Aws S3 has a different syntax for CLI address argument, for obvious reasons, but I managed to keep it the more similar as possible to the generic address argument: +Aws S3 a une syntaxe différente pour l'argument d'adresse CLI, pour des raisons évidentes, mais j'ai réussi à le garder le plus similaire possible à l'argument d'adresse générique : ```txt s3://@[:profile][:/wrkdir] @@ -96,326 +96,325 @@ e.g. s3://buckethead@eu-central-1:default:/assets ``` -#### How Password can be provided 🔐 +#### Comment le mot de passe peut être fourni 🔐 -You have probably noticed, that, when providing the address as argument, there's no way to provide the password. -Password can be basically provided through 3 ways when address argument is provided: +Vous avez probablement remarqué que, lorsque vous fournissez l'adresse comme argument, il n'y a aucun moyen de fournir le mot de passe. +Le mot de passe peut être fourni de 3 manières lorsque l'argument d'adresse est fourni : -- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very unsecure (since you might keep the password in the shell history) -- Via `sshpass`: you can provide password via `sshpass`, e.g. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` -- You will be prompted for it: if you don't use any of the previous methods, you will be prompted for the password, as happens with the more classics tools such as `scp`, `ssh`, etc. +- `-P, --password` option : utilisez simplement cette option CLI en fournissant le mot de passe. Je déconseille fortement cette méthode, car elle n'est pas sécurisée (puisque vous pouvez conserver le mot de passe dans l'historique du shell) +- Avec `sshpass`: vous pouvez fournir un mot de passe via `sshpass`, par ex. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` +- Il vous sera demandé : si vous n'utilisez aucune des méthodes précédentes, le mot de passe vous sera demandé, comme c'est le cas avec les outils plus classiques tels que `scp`, `ssh`, etc. --- -## File explorer 📂 - -When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. -These panels are basically 3 (yes, three actually): - -- Local explorer panel: it is displayed on the left of your screen and shows the current directory entries for localhost -- Remote explorer panel: it is displayed on the right of your screen and shows the current directory entries for the remote host. -- Find results panel: depending on where you're searching for files (local/remote) it will replace the local or the explorer panel. This panel shows the entries matching the search query you performed. - -In order to change panel you need to type `` to move the remote explorer panel and `` to move back to the local explorer panel. Whenever you are in the find results panel, you need to press `` to exit panel and go back to the previous panel. - -### Keybindings ⌨ - -| Key | Command | Reminder | -|---------------|-------------------------------------------------------|-------------| -| `` | Disconnect from remote; return to authentication page | | -| `` | Switch between log tab and explorer | | -| `` | Go to previous directory in stack | | -| `` | Move to remote explorer tab | | -| `` | Move to local explorer tab | | -| `` | Move up in selected list | | -| `` | Move down in selected list | | -| `` | Move up in selected list by 8 rows | | -| `` | Move down in selected list by 8 rows | | -| `` | Enter directory | | -| `` | Upload / download selected file | | -| `` | Toggle hidden files | All | -| `` | Sort files by | Bubblesort? | -| `` | Copy file/directory | Copy | -| `` | Make directory | Directory | -| `` | Delete file (Same as `DEL`) | Erase | -| `` | Search for files (wild match is supported) | Find | -| `` | Go to supplied path | Go to | -| `` | Show help | Help | -| `` | Show info about selected file or directory | Info | -| `` | Reload current directory's content / Clear selection | List | -| `` | Select a file | Mark | -| `` | Create new file with provided name | New | -| `` | Edit file; see Text editor | Open | -| `` | Quit termscp | Quit | -| `` | Rename file | Rename | -| `` | Save file as... | Save | -| `` | Go to parent directory | Upper | -| `` | Open file with default program for filetype | View | -| `` | Open file with provided program | With | -| `` | Execute a command | eXecute | -| `` | Toggle synchronized browsing | sYnc | -| `` | Delete file | | -| `` | Select all files | | -| `` | Abort file transfer process | | - -### Work on multiple files 🥷 - -You can opt to work on multiple files, selecting them pressing ``, in order to select the current file, or pressing ``, which will select all the files in the working directory. -Once a file is marked for selection, it will be displayed with a `*` on the left. -When working on selection, only selected file will be processed for actions, while the current highlighted item will be ignored. -It is possible to work on multiple files also when in the find result panel. -All the actions are available when working with multiple files, but be aware that some actions work in a slightly different way. Let's dive in: - -- *Copy*: whenever you copy a file, you'll be prompted to insert the destination name. When working with multiple file, this name refers to the destination directory where all these files will be copied. -- *Rename*: same as copy, but will move files there. -- *Save as*: same as copy, but will write them there. - -### Synchronized browsing ⏲️ - -When enabled, synchronized browsing, will allow you to synchronize the navigation between the two panels. -This means that whenever you'll change the working directory on one panel, the same action will be reproduced on the other panel. If you want to enable synchronized browsing just press ``; press twice to disable. While enabled, the synchronized browsing state will be reported on the status bar on `ON`. - -> ❗ at the moment, whenever you try to access an unexisting directory, you won't be prompted to create it. This might change in a future update. - -### Open and Open With 🚪 - -Open and open with commands are powered by [open-rs](https://docs.rs/crate/open/1.7.0). -When opening files with View command (``), the system default application for the file type will be used. To do so, the default operting system service will be used, so be sure to have at least one of these installed on your system: - -- **Windows** users: you don't have to worry about it, since the crate will use the `start` command. -- **MacOS** users: you don't have to worry either, since the crate will use `open`, which is already installed on your system. -- **Linux** users: one of these should be installed - - *xdg-open* - - *gio* - - *gnome-open* - - *kde-open* -- **WSL** users: *wslview* is required, you must install [wslu](https://github.com/wslutilities/wslu). +## Identifiants AWS S3 🦊 -> Q: Can I edit remote files using the view command? -> A: No, at least not directly from the "remote panel". You have to download it to a local directory first, that's due to the fact that when you open a remote file, the file is downloaded into a temporary directory, but there's no way to create a watcher for the file to check when the program you used to open it was closed, so termscp is not able to know when you're done editing the file. +Afin de vous connecter à un compartiment Aws S3, vous devez évidemment fournir des informations d'identification. +Il existe essentiellement deux manières d'y parvenir, et comme vous l'avez probablement déjà remarqué, vous ne pouvez **pas** le faire via le formulaire d'authentification. +Voici donc les moyens de fournir les informations d'identification pour s3 : ---- +1. Utilisez votre fichier d'informations d'identification : configurez simplement l'AWS cli via `aws configure` et vos informations d'identification doivent déjà se trouver dans `~/.aws/credentials`. Si vous utilisez un profil différent de "default", fournissez-le simplement dans le champ profile du formulaire d'authentification. +2. **Variables d'environnement** : vous pouvez toujours fournir vos informations d'identification en tant que variables d'environnement. Gardez à l'esprit que ces informations d'identification **remplaceront toujours** les informations d'identification situées dans le fichier « credentials ». Voir comment configurer l'environnement ci-dessous : -## Bookmarks ⭐ + Ceux-ci devraient toujours être obligatoires: -In termscp it is possible to save favourites hosts, which can be then loaded quickly from the main layout of termscp. -termscp will also save the last 16 hosts you connected to. -This feature allows you to load all the parameters required to connect to a certain remote, simply selecting the bookmark in the tab under the authentication form. + - `AWS_ACCESS_KEY_ID`: aws access key ID (commence généralement par `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: la secret access key -Bookmarks will be saved, if possible at: + Au cas où vous auriez configuré une sécurité renforcée, vous *pourriez* également en avoir besoin : -- `$HOME/.config/termscp/` on Linux/BSD -- `$HOME/Library/Application Support/termscp` on MacOs -- `FOLDERID_RoamingAppData\termscp\` on Windows + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token -For bookmarks only (this won't apply to recent hosts) it is also possible to save the password used to authenticate. The password is not saved by default and must be specified through the prompt when saving a new Bookmark. -If you're concerned about the security of the password saved for your bookmarks, please read the [chapter below 👀](#are-my-passwords-safe-). +⚠️ Vos identifiants sont en sécurité : les termscp ne manipuleront pas ces valeurs directement ! Vos identifiants sont directement consommés par la caisse **s3**. +Si vous avez des inquiétudes concernant la sécurité, veuillez contacter l'auteur de la bibliothèque sur [Github](https://github.com/durch/rust-s3) ⚠️ -In order to create a new bookmark, just follow these steps: +--- -1. Type in the authentication form the parameters to connect to your remote server -2. Press `` -3. Type in the name you want to give to the bookmark -4. Choose whether to remind the password or not -5. Press `` to submit +## Explorateur de fichiers 📂 + +Lorsque nous nous référons aux explorateurs de fichiers en termscp, nous nous référons aux panneaux que vous pouvez voir après avoir établi une connexion avec la télécommande. +Ces panneaux sont essentiellement 3 (oui, trois en fait): + +- Panneau de l'explorateur local : il s'affiche sur la gauche de votre écran et affiche les entrées du répertoire en cours pour localhost +- Panneau de l'explorateur distant : il s'affiche à droite de votre écran et affiche les entrées du répertoire en cours pour l'hôte distant. +- Panneau de résultats de recherche : selon l'endroit où vous recherchez des fichiers (local/distant), il remplacera le panneau local ou l'explorateur. Ce panneau affiche les entrées correspondant à la requête de recherche que vous avez effectuée. + +Pour changer de panneau, vous devez taper `` pour déplacer le panneau de l'explorateur distant et `` pour revenir au panneau de l'explorateur local. Chaque fois que vous êtes dans le panneau des résultats de recherche, vous devez appuyer sur `` pour quitter le panneau et revenir au panneau précédent. + +### Raccourcis clavier ⌨ + +| Key | Command | Reminder | +|---------------|---------------------------------------------------------------------|-------------| +| `` | Se Déconnecter de le serveur; retour à la page d'authentification | | +| `` | Basculer entre l'onglet journal et l'explorateur | | +| `` | Aller au répertoire précédent dans la pile | | +| `` | Déplacer vers l'onglet explorateur distant | | +| `` | Déplacer vers l'onglet explorateur local | | +| `` | Remonter dans la liste sélectionnée | | +| `` | Descendre dans la liste sélectionnée | | +| `` | Remonter dans la liste sélectionnée de 8 lignes | | +| `` | Descendre dans la liste sélectionnée de 8 lignes | | +| `` | Entrer dans le directoire | | +| `` | Télécharger le fichier sélectionné | | +| `` | Basculer les fichiers cachés | All | +| `` | Trier les fichiers par | Bubblesort? | +| `` | Copier le fichier/répertoire | Copy | +| `` | Créer un dossier | Directory | +| `` | Supprimer le fichier (Identique à `DEL`) | Erase | +| `` | Rechercher des fichiers | Find | +| `` | Aller au chemin fourni | Go to | +| `` | Afficher l'aide | Help | +| `` | Afficher les informations sur le fichier ou le dossier sélectionné | Info | +| `` | Recharger le contenu du répertoire actuel / Effacer la sélection | List | +| `` | Sélectionner un fichier | Mark | +| `` | Créer un nouveau fichier avec le nom fourni | New | +| `` | Modifier le fichier | Open | +| `` | Quitter termscp | Quit | +| `` | Renommer le fichier | Rename | +| `` | Enregistrer le fichier sous... | Save | +| `` | Aller dans le répertoire parent | Upper | +| `` | Ouvrir le fichier avec le programme défaut pour le type de fichier | View | +| `` | Ouvrir le fichier avec le programme spécifié | With | +| `` | Exécuter une commande | eXecute | +| `` | Basculer la navigation synchronisée | sYnc | +| `` | Supprimer le fichier | | +| `` | Sélectionner tous les fichiers | | +| `` | Abandonner le processus de transfert de fichiers | | + +### Travailler sur plusieurs fichiers 🥷 + +Vous pouvez choisir de travailler sur plusieurs fichiers, en les sélectionnant en appuyant sur ``, afin de sélectionner le fichier actuel, ou en appuyant sur ``, ce qui sélectionnera tous les fichiers dans le répertoire de travail. +Une fois qu'un fichier est marqué pour la sélection, il sera affiché avec un `*` sur la gauche. +Lorsque vous travaillez sur la sélection, seul le fichier sélectionné sera traité pour les actions, tandis que l'élément en surbrillance actuel sera ignoré. +Il est également possible de travailler sur plusieurs fichiers dans le panneau des résultats de recherche. +Toutes les actions sont disponibles lorsque vous travaillez avec plusieurs fichiers, mais sachez que certaines actions fonctionnent de manière légèrement différente. Plongeons dans: + +- *Copy*: chaque fois que vous copiez un fichier, vous serez invité à insérer le nom de destination. Lorsque vous travaillez avec plusieurs fichiers, ce nom fait référence au répertoire de destination où tous ces fichiers seront copiés. +- *Rename*: identique à la copie, mais y déplacera les fichiers. +- *Save as*: identique à la copie, mais les y écrira. + +### Navigation synchronisée ⏲️ + +Lorsqu'elle est activée, la navigation synchronisée vous permettra de synchroniser la navigation entre les deux panneaux. +Cela signifie que chaque fois que vous changerez de répertoire de travail sur un panneau, la même action sera reproduite sur l'autre panneau. Si vous souhaitez activer la navigation synchronisée, appuyez simplement sur `` ; appuyez deux fois pour désactiver. Lorsqu'il est activé, l'état de navigation synchronisé sera signalé dans la barre d'état sur `ON` + +> ❗ pour le moment, chaque fois que vous essayez d'accéder à un répertoire inexistant, vous ne serez pas invité à le créer. Cela pourrait changer dans une future mise à jour. + +### Ouvrir et ouvrir avec 🚪 + +Lors de l'ouverture de fichiers avec la commande Afficher (``), l'application par défaut du système pour le type de fichier sera utilisée. Pour ce faire, le service du système d'exploitation par défaut sera utilisé, alors assurez-vous d'avoir au moins l'un de ceux-ci installé sur votre système : + +- Utilisateurs **Windows** : vous n'avez pas à vous en soucier, puisque la caisse utilisera la commande `start`. +- Utilisateurs **MacOS** : vous n'avez pas à vous inquiéter non plus, puisque le crate utilisera `open`, qui est déjà installé sur votre système. +- Utilisateurs **Linux** : l'un d'eux doit être installé + - *xdg-open* + - *gio* + - *gnome-open* + - *kde-open* +- Utilisateurs **WSL** : *wslview* est requis, vous devez installer [wslu](https://github.com/wslutilities/wslu). -whenever you want to use the previously saved connection, just press `` to navigate to the bookmarks list and load the bookmark parameters into the form pressing ``. +> Q: Puis-je modifier des fichiers distants à l'aide de la commande view ? +> A: Non, du moins pas directement depuis le "panneau distant". Vous devez d'abord le télécharger dans un répertoire local, cela est dû au fait que lorsque vous ouvrez un fichier distant, le fichier est téléchargé dans un répertoire temporaire, mais il n'y a aucun moyen de créer un observateur pour que le fichier vérifie quand le programme que vous utilisé pour l'ouvrir était fermé, donc termscp n'est pas en mesure de savoir quand vous avez fini de modifier le fichier. -![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) +--- -### Are my passwords Safe 😈 +## Signets ⭐ -Sure 😉. -As said before, bookmarks are saved in your configuration directory along with passwords. Passwords are obviously not plain text, they are encrypted with **AES-128**. Does this make them safe? Absolutely! (except for BSD and WSL users 😢) +Dans termscp, il est possible de sauvegarder les hôtes favoris, qui peuvent ensuite être chargés rapidement à partir de la mise en page principale de termscp. +termscp enregistrera également les 16 derniers hôtes auxquels vous vous êtes connecté. +Cette fonctionnalité vous permet de charger tous les paramètres nécessaires pour vous connecter à une certaine télécommande, en sélectionnant simplement le signet dans l'onglet sous le formulaire d'authentification. -On **Windows**, **Linux** and **MacOS** the key used to encrypt passwords is stored, if possible (but should be), respectively in the *Windows Vault*, in the *system keyring* and into the *Keychain*. This is actually super-safe and is directly managed by your operating system. +Les signets seront enregistrés, si possible à l'adresse : -❗ Please, notice that if you're a Linux user, you'd better to read the [chapter below 👀](#linux-keyring), because the keyring might not be enabled or supported on your system! +- `$HOME/.config/termscp/` sous Linux/BSD +- `$HOME/Library/Application Support/termscp` sous MacOs +- `FOLDERID_RoamingAppData\termscp\` sous Windows -On *BSD* and *WSL*, on the other hand, the key used to encrypt your passwords is stored on your drive (at $HOME/.config/termscp). It is then, still possible to retrieve the key to decrypt passwords. Luckily, the location of the key guarantees your key can't be read by users different from yours, but yeah, I still wouldn't save the password for a server exposed on the internet 😉. +Pour les signets uniquement (cela ne s'appliquera pas aux hôtes récents), il est également possible de sauvegarder le mot de passe utilisé pour s'authentifier. Le mot de passe n'est pas enregistré par défaut et doit être spécifié via l'invite lors de l'enregistrement d'un nouveau signet. +Si vous êtes préoccupé par la sécurité du mot de passe enregistré pour vos favoris, veuillez lire le [chapitre ci-dessous 👀](#mes-mots-de-passe-sont-ils-sûrs-). -#### Linux Keyring +Pour créer un nouveau signet, suivez simplement ces étapes : -We all love Linux thanks to the freedom it gives to the users. You can basically do anything you want as a Linux user, but this has also some cons, such as the fact that often there is no standard applications across different distributions. And this involves keyring too. -This means that on Linux there might be no keyring installed on your system. Unfortunately the library we use to work with the key storage requires a service which exposes `org.freedesktop.secrets` on D-BUS and the worst fact is that there only two services exposing it. +1. Tapez dans le formulaire d'authentification les paramètres pour vous connecter à votre serveur distant +2. Appuyez sur `` +3. Tapez le nom que vous souhaitez donner au signet +4. Choisissez de rappeler ou non le mot de passe +5. Appuyez sur `` pour soumettre -- ❗ If you use GNOME as desktop environment (e.g. ubuntu users), you should already be fine, since keyring is already provided by `gnome-keyring` and everything should already be working. -- ❗ For other desktop environment users there is a nice program you can use to get a keyring which is [KeepassXC](https://keepassxc.org/), which I use on my Manjaro installation (with KDE) and works fine. The only problem is that you have to setup it to be used along with termscp (but it's quite simple). To get started with KeepassXC read more [here](#keepassxc-setup-for-termscp). -- ❗ What about you don't want to install any of these services? Well, there's no problem! **termscp will keep working as usual**, but it will save the key in a file, as it usually does for BSD and WSL. +chaque fois que vous souhaitez utiliser la connexion précédemment enregistrée, appuyez simplement sur `` pour accéder à la liste des signets et chargez les paramètres des signets dans le formulaire en appuyant sur ``. -##### KeepassXC setup for termscp +![Bookmarks](https://github.com/veeso/termscp/blob/main/assets/images/bookmarks.gif?raw=true) -Follow these steps in order to setup keepassXC for termscp: +### Mes mots de passe sont-ils sûrs 😈 -1. Install KeepassXC -2. Go to "tools" > "settings" in toolbar -3. Select "Secret service integration" and toggle "Enable KeepassXC freedesktop.org secret service integration" -4. Create a database, if you don't have one yet: from toolbar "Database" > "New database" -5. From toolbar: "Database" > "Database settings" -6. Select "Secret service integration" and toggle "Expose entries under this group" -7. Select the group in the list where you want the termscp secret to be kept. Remember that this group might be used by any other application to store secrets via DBUS. +Bien sûr 😉. +Comme dit précédemment, les signets sont enregistrés dans votre répertoire de configuration avec les mots de passe. Les mots de passe ne sont évidemment pas en texte brut, ils sont cryptés avec **AES-128**. Est-ce que cela les sécurise ? Absolument! (sauf pour les utilisateurs BSD et WSL 😢) ---- +Sous **Windows**, **Linux** et **MacOS**, la clé utilisée pour crypter les mots de passe est stockée, si possible (mais devrait l'être), respectivement dans le *Windows Vault*, dans le *porte-clés système* et dans le *Porte-clés*. Ceci est en fait super sûr et est directement géré par votre système d'exploitation. -## Aws S3 credentials 🦊 +❗ Veuillez noter que si vous êtes un utilisateur Linux, vous feriez mieux de lire le [chapitre ci-dessous 👀](#linux-keyring), car le trousseau peut ne pas être activé ou pris en charge sur votre système ! -In order to connect to an Aws S3 bucket you must obviously provide some credentials. -There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. -So these are the ways you can provide the credentials for s3: +Sur *BSD* et *WSL*, en revanche, la clé utilisée pour crypter vos mots de passe est stockée sur votre disque (dans $HOME/.config/termscp). Il est alors, toujours possible de récupérer la clé pour déchiffrer les mots de passe. Heureusement, l'emplacement de la clé garantit que votre clé ne peut pas être lue par des utilisateurs différents du vôtre, mais oui, je n'enregistrerais toujours pas le mot de passe pour un serveur exposé sur Internet 😉. -1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. -2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: +#### Linux Keyring - These should always be mandatory: +Nous aimons tous Linux grâce à la liberté qu'il donne aux utilisateurs. En tant qu'utilisateur Linux, vous pouvez essentiellement faire tout ce que vous voulez, mais cela présente également des inconvénients, tels que le fait qu'il n'y a souvent pas d'applications standard dans différentes distributions. Et cela implique aussi un porte-clés. +Cela signifie que sous Linux, aucun trousseau de clés n'est peut-être installé sur votre système. Malheureusement, la bibliothèque que nous utilisons pour travailler avec le stockage des clés nécessite un service qui expose `org.freedesktop.secrets` sur D-BUS et le pire est qu'il n'y a que deux services qui l'exposent. - - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) - - `AWS_SECRET_ACCESS_KEY`: the secret access key +- ❗ Si vous utilisez GNOME comme environnement de bureau (par exemple, les utilisateurs d'ubuntu), ça devrait déjà aller, car le trousseau de clés est déjà fourni par `gnome-keyring` et tout devrait déjà fonctionner. +- ❗ Pour les autres utilisateurs d'environnement de bureau, il existe un programme sympa que vous pouvez utiliser pour obtenir un trousseau de clés qui est [KeepassXC](https://keepassxc.org/), que j'utilise sur mon installation Manjaro (avec KDE) et qui fonctionne bien. Le seul problème est que vous devez le configurer pour qu'il soit utilisé avec termscp (mais c'est assez simple). Pour commencer avec KeepassXC, lisez la suite [ici](#configuration-de-keepassxc-pour-termscp). +- ❗ Et si vous ne souhaitez installer aucun de ces services ? Eh bien, il n'y a pas de problème ! **termscp continuera à fonctionner comme d'habitude**, mais il enregistrera la clé dans un fichier, comme il le fait habituellement pour BSD et WSL. - In case you've configured a stronger security, you *may* require these too: +##### Configuration de KeepassXC pour termscp - - `AWS_SECURITY_TOKEN`: security token - - `AWS_SESSION_TOKEN`: session token +Suivez ces étapes afin de configurer keepassXC pour termscp : -⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. -In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ +1. Installer KeepassXC +2. Allez dans "outils" > "paramètres" dans la barre d'outils +3. Selectioner "Secret service integration" et basculer "Enable KeepassXC freedesktop.org secret service integration" +4. Creer une base de données, si vous n'en avez pas encore : à partir de la barre d'outils "Database" > "New database" +5. De la barre d'outils: "Database" > "Database settings" +6. Selectioner "Secret service integration" et basculer "Expose entries under this group" +7. Sélectionnez le groupe dans la liste où vous souhaitez conserver le secret du termscp. N'oubliez pas que ce groupe peut être utilisé par toute autre application pour stocker des secrets via DBUS. --- ## Configuration ⚙️ -termscp supports some user defined parameters, which can be defined in the configuration. -Underhood termscp has a TOML file and some other directories where all the parameters will be saved, but don't worry, you won't touch any of these files manually, since I made possible to configure termscp from its user interface entirely. +termscp prend en charge certains paramètres définis par l'utilisateur, qui peuvent être définis dans la configuration. +Underhood termscp a un fichier TOML et quelques autres répertoires où tous les paramètres seront enregistrés, mais ne vous inquiétez pas, vous ne toucherez à aucun de ces fichiers manuellement, car j'ai rendu possible la configuration complète de termscp à partir de son interface utilisateur. -termscp, like for bookmarks, just requires to have these paths accessible: +termscp, comme pour les signets, nécessite juste d'avoir ces chemins accessibles : -- `$HOME/.config/termscp/` on Linux/BSD -- `$HOME/Library/Application Support/termscp` on MacOs -- `FOLDERID_RoamingAppData\termscp\` on Windows +- `$HOME/.config/termscp/` sous Linux/BSD +- `$HOME/Library/Application Support/termscp` sous MacOs +- `FOLDERID_RoamingAppData\termscp\` sous Windows -To access configuration, you just have to press `` from the home of termscp. +Pour accéder à la configuration, il vous suffit d'appuyer sur `` depuis l'accueil de termscp. -These parameters can be changed: +Ces paramètres peuvent être modifiés : -- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process so if you ask: yes, you can use `notepad.exe`, and no: **Visual Studio Code doesn't work**. -- **Default Protocol**: the default protocol is the default value for the file transfer protocol to be used in termscp. This applies for the login page and for the address CLI argument. -- **Show Hidden Files**: select whether hidden files shall be displayed by default. You will be able to decide whether to show or not hidden files at runtime pressing `A` anyway. -- **Check for updates**: if set to `yes`, termscp will fetch the Github API to check if there is a new version of termscp available. -- **Prompt when replacing existing files?**: If set to `yes`, termscp will prompt for confirmation you whenever a file transfer would cause an existing file on target host to be replaced. -- **Group Dirs**: select whether directories should be groupped or not in file explorers. If `Display first` is selected, directories will be sorted using the configured method but displayed before files, viceversa if `Display last` is selected. -- **Remote File formatter syntax**: syntax to display file info for each file in the remote explorer. See [File explorer format](#file-explorer-format) -- **Local File formatter syntax**: syntax to display file info for each file in the local explorer. See [File explorer format](#file-explorer-format) -- **Enable notifications?**: If set to `Yes`, notifications will be displayed. -- **Notifications: minimum transfer size**: if transfer size is greater or equal than the specified value, notifications for transfer will be displayed. The accepted values are in format `{UNSIGNED} B/KB/MB/GB/TB/PB` +- **Text Editor**: l'éditeur de texte à utiliser. Par défaut, termscp trouvera l'éditeur par défaut pour vous ; avec cette option, vous pouvez forcer l'utilisation d'un éditeur (par exemple `vim`). **Les éditeurs d'interface graphique sont également pris en charge**, à moins qu'ils ne soient `nohup` à partir du processus parent. +- **Default Protocol**: le protocole par défaut est la valeur par défaut du protocole de transfert de fichiers à utiliser dans termscp. Cela s'applique à la page de connexion et à l'argument de l'adresse CLI. +- **Show Hidden Files**: sélectionnez si les fichiers cachés doivent être affichés par défaut. Vous pourrez décider d'afficher ou non les fichiers cachés au moment de l'exécution en appuyant sur `A` de toute façon. +- **Check for updates**: s'il est défini sur `yes`, Termscp récupère l'API Github pour vérifier si une nouvelle version de Termscp est disponible. +- **Prompt when replacing existing files?**: S'il est défini sur `yes`, Termscp vous demandera une confirmation chaque fois qu'un transfert de fichier entraînera le remplacement d'un fichier existant sur l'hôte cible. +- **Group Dirs**: sélectionnez si les répertoires doivent être regroupés ou non dans les explorateurs de fichiers. Si `Display first` est sélectionné, les répertoires seront triés en utilisant la méthode configurée mais affichés avant les fichiers, vice-versa si `Display last` est sélectionné. +- **Remote File formatter syntax**: syntaxe pour afficher les informations de fichier pour chaque fichier dans l'explorateur distant. Voir [File explorer format](#format-de-lexplorateur-de-fichiers) +- **Local File formatter syntax**: syntaxe pour afficher les informations de fichier pour chaque fichier dans l'explorateur local. Voir [File explorer format](#format-de-lexplorateur-de-fichiers) +- **Enable notifications?**: S'il est défini sur `Yes`, les notifications seront affichées. +- **Notifications: minimum transfer size**: si la taille du transfert est supérieure ou égale à la valeur spécifiée, les notifications de transfert seront affichées. Les valeurs acceptées sont au format `{UNSIGNED} B/KB/MB/GB/TB/PB` ### SSH Key Storage 🔐 -Along with configuration, termscp provides also an **essential** feature for **SFTP/SCP clients**: the SSH key storage. +n plus de la configuration, termscp fournit également une fonctionnalité **essentielle** pour les **clients SFTP/SCP** : le stockage de clés SSH. -You can access the SSH key storage, from configuration moving to the `SSH Keys` tab, once there you can: +Vous pouvez accéder au stockage des clés SSH, de la configuration à l'onglet « Clés SSH », une fois là-bas, vous pouvez : -- **Add a new key**: just press `` and you will be prompted to create a new key. Provide the hostname/ip address and the username associated to the key and finally a text editor will open up: paste the **PRIVATE** ssh key into the text editor, save and quit. -- **Remove an existing key**: just press `` or `` on the key you want to remove, to delete persistently the key from termscp. -- **Edit an existing key**: just press `` on the key you want to edit, to change the private key. +- **Ajouter une neuf clé SSH**: appuyez simplement sur `` et vous serez invité à créer une nouvelle clé. Fournissez le nom d'hôte/l'adresse IP et le nom d'utilisateur associé à la clé et enfin un éditeur de texte s'ouvrira : collez la clé ssh **PRIVÉE** dans l'éditeur de texte, enregistrez et quittez. +- **Supprimer une clé existante**: appuyez simplement sur `` ou `` sur la clé que vous souhaitez supprimer, pour supprimer de manière persistante la clé de termscp. +- **Modifier une clé existante**: appuyez simplement sur `` sur la clé que vous souhaitez modifier, pour changer la clé privée. -> Q: Wait, my private key is protected with password, can I use it? -> A: Of course you can. The password provided for authentication in termscp, is valid both for username/password authentication and for RSA key authentication. +> Q: Ma clé privée est protégée par mot de passe, puis-je l'utiliser ? +> A: Bien sûr vous pouvez. Le mot de passe fourni pour l'authentification dans termscp est valide à la fois pour l'authentification par nom d'utilisateur/mot de passe et pour l'authentification par clé RSA. -### File Explorer Format +### Format de l'explorateur de fichiers -It is possible through configuration to define a custom format for the file explorer. This is possible both for local and remote host, so you can have two different syntax in use. These fields, with name `File formatter syntax (local)` and `File formatter syntax (remote)` will define how the file entries will be displayed in the file explorer. -The syntax for the formatter is the following `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. -Each key in bracket will be replaced with the related attribute, while everything outside brackets will be left unchanged. +Il est possible via la configuration de définir un format personnalisé pour l'explorateur de fichiers. Ceci est possible à la fois pour l'hôte local et distant, vous pouvez donc utiliser deux syntaxes différentes. Ces champs, nommés `File formatter syntax (local)` et `File formatter syntax (remote)` définiront comment les entrées de fichier seront affichées dans l'explorateur de fichiers. +La syntaxe du formateur est la suivante `{KEY1}... {KEY2:LENGTH}... {KEY3:LENGTH:EXTRA} {KEYn}...`. +Chaque clé entre crochets sera remplacée par l'attribut associé, tandis que tout ce qui se trouve en dehors des crochets restera inchangé. -- The key name is mandatory and must be one of the keys below -- The length describes the length reserved to display the field. Static attributes doesn't support this (GROUP, PEX, SIZE, USER) -- Extra is supported only by some parameters and is an additional options. See keys to check if extra is supported. +- Le nom de la clé est obligatoire et doit être l'une des clés ci-dessous +- La longueur décrit la longueur réservée pour afficher le champ. Les attributs statiques ne prennent pas en charge cela (GROUP, PEX, SIZE, USER) +- Extra n'est pris en charge que par certains paramètres et constitue une option supplémentaire. Voir les touches pour vérifier si les extras sont pris en charge. -These are the keys supported by the formatter: +Voici les clés prises en charge par le formateur : -- `ATIME`: Last access time (with default syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{ATIME:8:%H:%M}`) -- `CTIME`: Creation time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{CTIME:8:%H:%M}`) -- `GROUP`: Owner group -- `MTIME`: Last change time (with syntax `%b %d %Y %H:%M`); Extra might be provided as the time syntax (e.g. `{MTIME:8:%H:%M}`) -- `NAME`: File name (Elided if longer than LENGTH) -- `PEX`: File permissions (UNIX format) -- `SIZE`: File size (omitted for directories) -- `SYMLINK`: Symlink (if any `-> {FILE_PATH}`) -- `USER`: Owner user +- `ATIME`: Heure du dernier accès (avec la syntaxe par défaut `%b %d %Y %H:%M`) ; Un supplément peut être fourni comme syntaxe de l'heure (par exemple, `{ATIME:8:%H:%M}`) +- `CTIME`: Heure de création (avec la syntaxe `%b %d %Y %H:%M`); Un supplément peut être fourni comme syntaxe de l'heure (par exemple, `{CTIME:8:%H:%M}`) +- `GROUP`: Groupe de propriétaires +- `MTIME`: Heure du dernier changement (avec la syntaxe `%b %d %Y %H:%M`); Un supplément peut être fourni comme syntaxe de l'heure (par exemple, `{MTIME:8:%H:%M}`) +- `NAME`: Nom du fichier (élidé si plus long que LENGTH) +- `PEX`: Autorisations de fichiers (format UNIX) +- `SIZE`: Taille du fichier (omis pour les répertoires) +- `SYMLINK`: Lien symbolique (le cas échéant `-> {FILE_PATH}`) +- `USER`: Utilisateur propriétaire -If left empty, the default formatter syntax will be used: `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` +Si elle est laissée vide, la syntaxe par défaut du formateur sera utilisée : `{NAME:24} {PEX} {USER} {SIZE} {MTIME:17:%b %d %Y %H:%M}` --- -## Themes 🎨 +## Thèmes 🎨 -Termscp provides you with an awesome feature: the possibility to set the colors for several components in the application. -If you want to customize termscp there are two available ways to do so: +Termscp vous offre une fonctionnalité géniale : la possibilité de définir les couleurs de plusieurs composants de l'application. +Si vous souhaitez personnaliser termscp, il existe deux manières de le faire : -- From the **configuration menu** -- Importing a **theme file** +- Depuis le **menu de configuration** +- Importation d'un **fichier de thème** -In order to create your own customization from termscp, all you have to do so is to enter the configuration from the auth activity, pressing `` and then `` twice. You should have now moved to the `themes` panel. +Afin de créer votre propre personnalisation à partir de termscp, il vous suffit de saisir la configuration à partir de l'activité d'authentification, en appuyant sur `` puis sur `` deux fois. Vous devriez être maintenant passé au panneau `thèmes`. -Here you can move with `` and `` to change the style you want to change, as shown in the gif below: +Ici, vous pouvez vous déplacer avec `` et `` pour changer le style que vous souhaitez modifier, comme indiqué dans le gif ci-dessous : ![Themes](https://github.com/veeso/termscp/blob/main/assets/images/themes.gif?raw=true) -termscp supports both the traditional explicit hex (`#rrggbb`) and rgb `rgb(r, g, b)` syntax to provide colors, but also **[css colors](https://www.w3schools.com/cssref/css_colors.asp)** (such as `crimson`) are accepted 😉. There is also a special keywork which is `Default`. Default means that the color used will be the default foreground or background color based on the situation (foreground for texts and lines, background for well, guess what). +termscp prend en charge à la fois la syntaxe hexadécimale explicite traditionnelle (`#rrggbb`) et rgb `rgb(r, g, b)` pour fournir des couleurs, mais aussi **[couleurs css](https://www.w3schools.com/cssref/css_colors.asp)** (comme `crimson`) sont acceptés 😉. Il y a aussi un keywork spécial qui est `Default`. Par défaut signifie que la couleur utilisée sera la couleur de premier plan ou d'arrière-plan par défaut en fonction de la situation (premier plan pour les textes et les lignes, arrière-plan pour bien, devinez quoi) -As said before, you can also import theme files. You can take inspiration from or directly use one of the themes provided along with termscp, located in the `themes/` directory of this repository and import them running termscp as `termscp -t `. If everything was fine, it should tell you the theme has successfully been imported. +Comme dit précédemment, vous pouvez également importer des fichiers de thème. Vous pouvez vous inspirer de ou utiliser directement l'un des thèmes fournis avec termscp, situé dans le répertoire `themes/` de ce référentiel et les importer en exécutant termscp en tant que `termscp -t `. Si tout allait bien, cela devrait vous dire que le thème a été importé avec succès. -### My theme won't load 😱 +### Mon thème ne se charge pas 😱 -This is probably due to a recent update which has broken the theme. Whenever I add a new key to themes, the saved theme won't load. To fix this issues there are two really quick-fix solutions: +Cela est probablement dû à une mise à jour récente qui a cassé le thème. Chaque fois que j'ajoute une nouvelle clé aux thèmes, le thème enregistré ne se charge pas. Pour résoudre ces problèmes, il existe deux solutions vraiment rapides : -1. Reload theme: whenever I release an update I will also patch the "official" themes, so you just have to download it from the repository again and re-import the theme via `-t` option +1. Recharger le thème : chaque fois que je publie une mise à jour, je corrige également les thèmes "officiels", il vous suffit donc de le télécharger à nouveau depuis le référentiel et de réimporter le thème via l'option `-t` ```sh termscp -t ``` -2. Fix your theme: If you're using a custom theme, then you can edit via `vim` and add the missing key. The theme is located at `$CONFIG_DIR/termscp/theme.toml` where `$CONFIG_DIR` is: +2. Corrigez votre thème : si vous utilisez un thème personnalisé, vous pouvez le modifier via `vim` et ajouter la clé manquante. Le thème est situé dans `$CONFIG_DIR/termscp/theme.toml` où `$CONFIG_DIR` est : - FreeBSD/GNU-Linux: `$HOME/.config/` - MacOs: `$HOME/Library/Application Support` - Windows: `%appdata%` - ❗ Missing keys are reported in the CHANGELOG under `BREAKING CHANGES` for the version you've just installed. + ❗ Les clés manquantes sont signalées dans le CHANGELOG sous `BREAKING CHANGES` pour la version que vous venez d'installer. -### Styles 💈 +### Modes 💈 -You can find in the table below, the description for each style field. -Please, notice that **styles won't apply to configuration page**, in order to make it always accessible in case you mess everything up +Vous pouvez trouver dans le tableau ci-dessous, la description de chaque champ de style. +Veuillez noter que **les styles ne s'appliqueront pas à la page de configuration**, afin de la rendre toujours accessible au cas où vous gâcheriez tout #### Authentication page | Key | Description | |----------------|------------------------------------------| -| auth_address | Color of the input field for IP address | -| auth_bookmarks | Color of the bookmarks panel | -| auth_password | Color of the input field for password | -| auth_port | Color of the input field for port number | -| auth_protocol | Color of the radio group for protocol | -| auth_recents | Color of the recents panel | -| auth_username | Color of the input field for username | +| auth_address | Couleur du champ pour adresse IP | +| auth_bookmarks | Couleur du panneau des signets | +| auth_password | Couleur du champ pour mot de passe | +| auth_port | Couleur du champ pour nombre de port | +| auth_protocol | Couleur du groupe radio pour protocole | +| auth_recents | Couleur du panneau récent | +| auth_username | Couleur du champ pour nom d'utilisateur | #### Transfer page | Key | Description | |--------------------------------------|---------------------------------------------------------------------------| -| transfer_local_explorer_background | Background color of localhost explorer | -| transfer_local_explorer_foreground | Foreground coloor of localhost explorer | -| transfer_local_explorer_highlighted | Border and highlighted color for localhost explorer | -| transfer_remote_explorer_background | Background color of remote explorer | -| transfer_remote_explorer_foreground | Foreground coloor of remote explorer | -| transfer_remote_explorer_highlighted | Border and highlighted color for remote explorer | -| transfer_log_background | Background color for log panel | -| transfer_log_window | Window color for log panel | -| transfer_progress_bar_partial | Partial progress bar color | -| transfer_progress_bar_total | Total progress bar color | -| transfer_status_hidden | Color for status bar "hidden" label | -| transfer_status_sorting | Color for status bar "sorting" label; applies also to file sorting dialog | -| transfer_status_sync_browsing | Color for status bar "sync browsing" label | +| transfer_local_explorer_background | Couleur d'arrière-plan de l'explorateur localhost | +| transfer_local_explorer_foreground | Couleur de premier plan de l'explorateur localhost | +| transfer_local_explorer_highlighted | Bordure et couleur surlignée pour l'explorateur localhost | +| transfer_remote_explorer_background | Couleur d'arrière-plan de l'explorateur distant | +| transfer_remote_explorer_foreground | Couleur de premier plan de l'explorateur distant | +| transfer_remote_explorer_highlighted | Bordure et couleur en surbrillance pour l'explorateur distant | +| transfer_log_background | Couleur d'arrière-plan du panneau de journal | +| transfer_log_window | Couleur de la fenêtre du panneau de journal | +| transfer_progress_bar_partial | Couleur de la barre de progression partielle | +| transfer_progress_bar_total | Couleur de la barre de progression totale | +| transfer_status_hidden | Couleur de l'étiquette "hidden" de la barre d'état | +| transfer_status_sorting | Couleur de l'étiquette "sorting" de la barre d'état | +| transfer_status_sync_browsing | Couleur de l'étiquette "sync browsing" de la barre d'état | #### Misc @@ -423,64 +422,64 @@ These styles applie to different part of the application. | Key | Description | |-------------------|---------------------------------------------| -| misc_error_dialog | Color for error messages | -| misc_info_dialog | Color for info dialogs | -| misc_input_dialog | Color for input dialogs (such as copy file) | -| misc_keys | Color of text for key strokes | -| misc_quit_dialog | Color for quit dialogs | -| misc_save_dialog | Color for save dialogs | -| misc_warn_dialog | Color for warn dialogs | +| misc_error_dialog | Couleur des messages d'erreur | +| misc_info_dialog | Couleur des messages d'info | +| misc_input_dialog | Couleur des messages de input | +| misc_keys | Couleur du texte pour les frappes de touches| +| misc_quit_dialog | Couleur des messages de quit | +| misc_save_dialog | Couleur des messages d'enregistrement | +| misc_warn_dialog | Couleur des messages de attention | --- -## Text Editor ✏ +## Éditeur de texte ✏ -termscp has, as you might have noticed, many features, one of these is the possibility to view and edit text file. It doesn't matter if the file is located on the local host or on the remote host, termscp provides the possibility to open a file in your favourite text editor. -In case the file is located on remote host, the file will be first downloaded into your temporary file directory and then, **only** if changes were made to the file, re-uploaded to the remote host. termscp checks if you made changes to the file verifying the last modification time of the file. +termscp a, comme vous l'avez peut-être remarqué, de nombreuses fonctionnalités, l'une d'entre elles est la possibilité de visualiser et de modifier un fichier texte. Peu importe que le fichier se trouve sur l'hôte local ou sur l'hôte distant, termscp offre la possibilité d'ouvrir un fichier dans votre éditeur de texte préféré. +Si le fichier se trouve sur l'hôte distant, le fichier sera d'abord téléchargé dans votre répertoire de fichiers temporaires, puis **uniquement** si des modifications ont été apportées au fichier, rechargé sur l'hôte distant. termscp vérifie si vous avez apporté des modifications au fichier en vérifiant l'heure de la dernière modification du fichier. -Just a reminder: **you can edit only textual file**; binary files are not supported. +> ❗ Juste un rappel : **vous ne pouvez éditer que des fichiers texte** ; les fichiers binaires ne sont pas pris en charge. --- -## Logging 🩺 +## Enregistrement 🩺 -termscp writes a log file for each session, which is written at +termscp écrit un fichier journal pour chaque session, qui est écrit à -- `$HOME/.config/termscp/termscp.log` on Linux/BSD -- `$HOME/Library/Application Support/termscp/termscp.log` on MacOs -- `FOLDERID_RoamingAppData\termscp\termscp.log` on Windows +- `$HOME/.config/termscp/termscp.log` sous Linux/BSD +- `$HOME/Library/Application Support/termscp/termscp.log` sous MacOs +- `FOLDERID_RoamingAppData\termscp\termscp.log` sous Windows -the log won't be rotated, but will just be truncated after each launch of termscp, so if you want to report an issue and you want to attach your log file, keep in mind to save the log file in a safe place before using termscp again. -The log file always reports in *trace* level, so it is kinda verbose. -I know you might have some questions regarding log files, so I made a kind of a Q/A: +le journal ne sera pas tourné, mais sera simplement tronqué après chaque lancement de termscp, donc si vous souhaitez signaler un problème et que vous souhaitez joindre votre fichier journal, n'oubliez pas de sauvegarder le fichier journal dans un endroit sûr avant de l'utiliser termscp à nouveau. +Le fichier journal rapporte toujours au niveau *trace*, il est donc un peu détaillé. +Je sais que vous pourriez avoir des questions concernant les fichiers journaux, alors j'ai fait une sorte de Q/R : -> Is it possible to reduce verbosity? +> Est-il possible de réduire la verbosité ? -No. The reason is quite simple: when an issue happens, you must be able to know what's causing it and the only way to do that, is to have the log file with the maximum verbosity level set. +Non. La raison est assez simple : lorsqu'un problème survient, vous devez être capable de savoir ce qui en est la cause et la seule façon de le faire est d'avoir le fichier journal avec le niveau de verbosité maximum défini. -> If trace level is set for logging, is the file going to reach a huge size? +> Si le niveau de trace est défini pour la journalisation, le fichier va-t-il atteindre une taille énorme ? -Probably not, unless you never quit termscp, but I think that's unlikely to happen. A long session may produce up to 10MB of log files (I said a long session), but I think a normal session won't exceed 2MB. +Probablement pas, à moins que vous ne quittiez jamais termscp, mais je pense que cela est peu probable. Une longue session peut produire jusqu'à 10 MB de fichiers journaux (j'ai dit une longue session), mais je pense qu'une session normale ne dépassera pas 2 MB. -> I don't want logging, can I turn it off? +> Je ne veux pas me connecter, puis-je le désactiver ? -Yes, you can. Just start termscp with `-q or --quiet` option. You can alias termscp to make it persistent. Remember that logging is used to diagnose issues, so since behind every open source project, there should always be this kind of mutual help, keeping log files might be your way to support the project 😉. I don't want you to feel guilty, but just to say. +Oui, vous pouvez. Démarrez simplement termscp avec l'option `-q ou --quiet`. Vous pouvez créer un alias termcp pour le rendre persistant. N'oubliez pas que la journalisation est utilisée pour diagnostiquer les problèmes, donc puisque derrière chaque projet open source, il devrait toujours y avoir ce genre d'aide mutuelle, la conservation des fichiers journaux peut être votre moyen de soutenir le projet 😉. Je ne veux pas que tu te sentes coupable, mais juste pour dire. -> Is logging safe? +> La journalisation est-elle sûre ? -If you're concerned about security, the log file doesn't contain any plain password, so don't worry and exposes the same information the sibling file `bookmarks` reports. +Si vous êtes préoccupé par la sécurité, le fichier journal ne contient aucun mot de passe simple, alors ne vous inquiétez pas et expose les mêmes informations que le fichier frère "signets". ## Notifications 📫 -Termscp will send Desktop notifications for these kind of events: +Termscp enverra des notifications de bureau pour ce type d'événements : -- on **Transfer completed**: The notification will be sent once a transfer has been successfully completed. - - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. -- on **Transfer failed**: The notification will be sent once a transfer has failed due to an error. - - ❗ The notification will be displayed only if the transfer total size is at least the specified `Notifications: minimum transfer size` in the configuration. -- on **Update available**: Whenever a new version of termscp is available, a notification will be displayed. -- on **Update installed**: Whenever a new version of termscp has been installed, a notification will be displayed. -- on **Update failed**: Whenever the installation of the update fails, a notification will be displayed. +- sur **Transfert terminé** : La notification sera envoyée une fois le transfert terminé avec succès. + - ❗ La notification ne s'affichera que si la taille totale du transfert est au moins la `Notifications: minimum transfer size` spécifiée dans la configuration. +- sur **Transfert échoué** : La notification sera envoyée une fois qu'un transfert a échoué en raison d'une erreur. + - ❗ La notification ne s'affichera que si la taille totale du transfert est au moins la `Notifications: minimum transfer size` spécifiée dans la configuration. +- sur **Mise à jour disponible** : chaque fois qu'une nouvelle version de Termscp est disponible, une notification s'affiche. +- sur **Mise à jour installée** : chaque fois qu'une nouvelle version de Termscp est installée, une notification s'affiche. +- sur **Échec de la mise à jour** : chaque fois que l'installation de la mise à jour échoue, une notification s'affiche. -❗ If you prefer to keep notifications turned off, you can just enter setup and set `Enable notifications?` to `No` 😉. -❗ If you want to change the minimum transfer size to display notifications, you can change the value in the configuration with key `Notifications: minimum transfer size` and set it to whatever suits better for you 🙂. +❗ Si vous préférez désactiver les notifications, vous pouvez simplement accéder à la configuration et définir `Enable notifications?` sur `No` 😉. +❗ Si vous souhaitez modifier la taille de transfert minimale pour afficher les notifications, vous pouvez modifier la valeur dans la configuration avec la touche `Notifications: minimum transfer size` et la définir sur ce qui vous convient le mieux 🙂. diff --git a/docs/it/man.md b/docs/it/man.md index f964ebc7..1c219c2d 100644 --- a/docs/it/man.md +++ b/docs/it/man.md @@ -5,6 +5,7 @@ - [Argomento indirizzo 🌎](#argomento-indirizzo-) - [Argomento indirizzo per AWS S3](#argomento-indirizzo-per-aws-s3) - [Come fornire la password 🔐](#come-fornire-la-password-) + - [Credenziali Aws S3 🦊](#credenziali-aws-s3-) - [File explorer 📂](#file-explorer-) - [Abbinamento tasti ⌨](#abbinamento-tasti-) - [Lavora su più file 🥷](#lavora-su-più-file-) @@ -14,7 +15,6 @@ - [Le mie password sono al sicuro 😈](#le-mie-password-sono-al-sicuro-) - [Linux Keyring](#linux-keyring) - [KeepassXC setup per termscp](#keepassxc-setup-per-termscp) - - [Credenziali Aws S3 🦊](#credenziali-aws-s3-) - [Configurazione ⚙️](#configurazione-️) - [SSH Key Storage 🔐](#ssh-key-storage-) - [File Explorer Format](#file-explorer-format) @@ -104,6 +104,29 @@ Quando si usa l'argomento indirizzo non è possibile fornire la password diretta --- +## Credenziali Aws S3 🦊 + +Per connettersi ad un bucket S3 devi come già saprai fornire le credenziali fornite da AWS. +Ci sono due modi per passare queste credenziali a termscp e come avrai già notato **non puoi** farlo dal form di autenticazione. +Questi sono quindi i due modi per passare le chiavi: + +1. Utilizza il file delle credenziali s3: configurando aws via `aws configure` le tue credenziali dovrebbero già venir salvate in `~/.aws/credentials`. Nel caso tu debba usare un profile diverso da `default`, puoi fornire un profilo diverso nell'authentication form. +2. **Variabili d'ambiente**: nel caso il primo metodo non sia utilizzabile, puoi comunque fornirle come variabili d'ambiente. Considera però che queste variabili sovrascriveranno sempre le credenziali situate nel file credentials. Vediamo come impostarle: + + Queste sono sempre obbligatorie: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (di solito inizia per `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: la secret access key + + nel caso tu abbia impostato un maggiore livello di sicurezza, potrebbero servirti anche queste: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ le tue credenziali sono al sicuro: termscp non manipola direttamente questi dati! Le credenziali sono direttamente lette dal crate di **s3**. Nel caso tu abbia dei dubbi sulla sicurezza, puoi contattare l'autore della libreria su [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + ## File explorer 📂 Quando ci riferiamo al file explorer in termscp, intendiamo i pannelli che puoi vedere quando stabilisci una connessione con il server remoto. @@ -255,29 +278,6 @@ Questo tutorial spiega come impostare KeepassXC per termscp. --- -## Credenziali Aws S3 🦊 - -Per connettersi ad un bucket S3 devi come già saprai fornire le credenziali fornite da AWS. -Ci sono due modi per passare queste credenziali a termscp e come avrai già notato **non puoi** farlo dal form di autenticazione. -Questi sono quindi i due modi per passare le chiavi: - -1. Utilizza il file delle credenziali s3: configurando aws via `aws configure` le tue credenziali dovrebbero già venir salvate in `~/.aws/credentials`. Nel caso tu debba usare un profile diverso da `default`, puoi fornire un profilo diverso nell'authentication form. -2. **Variabili d'ambiente**: nel caso il primo metodo non sia utilizzabile, puoi comunque fornirle come variabili d'ambiente. Considera però che queste variabili sovrascriveranno sempre le credenziali situate nel file credentials. Vediamo come impostarle: - - Queste sono sempre obbligatorie: - - - `AWS_ACCESS_KEY_ID`: aws access key ID (di solito inizia per `AKIA...`) - - `AWS_SECRET_ACCESS_KEY`: la secret access key - - nel caso tu abbia impostato un maggiore livello di sicurezza, potrebbero servirti anche queste: - - - `AWS_SECURITY_TOKEN`: security token - - `AWS_SESSION_TOKEN`: session token - -⚠️ le tue credenziali sono al sicuro: termscp non manipola direttamente questi dati! Le credenziali sono direttamente lette dal crate di **s3**. Nel caso tu abbia dei dubbi sulla sicurezza, puoi contattare l'autore della libreria su [Github](https://github.com/durch/rust-s3) ⚠️ - ---- - ## Configurazione ⚙️ termscp supporta diversi parametri definiti dall'utente, che possono essere impostati nella configurazione. @@ -293,7 +293,7 @@ Per accedere alla configurazione è sufficiente premere `` dall'authenti Questi parametri possono essere impostati: -- **Text Editor**: l'editor di testo da utilizzare per aprire i file. Di default termscp userà quello definito nella variabile `EDITOR` od il primo che troverà installato tra quelli più popolari. Puoi tuttavia definire quello che vuoi (ad esempio `vim`). **Anche gli editor GUI sono supportati**, a meno che loro non partano in `nohup` dal processo padre, quindi se vuoi saperlo: sì puoi utilizzare `notepad.exe`, ma non **Visual Studio Code**. +- **Text Editor**: l'editor di testo da utilizzare per aprire i file. Di default termscp userà quello definito nella variabile `EDITOR` od il primo che troverà installato tra quelli più popolari. Puoi tuttavia definire quello che vuoi (ad esempio `vim`). **Anche gli editor GUI sono supportati**, a meno che loro non partano in `nohup` dal processo padre. - **Default Protocol**: il protocollo di default da visualizzare come prima opzione nell'authentication form. Questa opzione sarà anche utilizzata quando si usa l'argomento indirizzo da CLI e non si specifica un protocollo. - **Show Hidden Files**: seleziona se mostrare di default i file nascosti. A runtime potrai comunque scegliere se visualizzarli o meno premendo ``. - **Check for updates**: se impostato a `YES` all'avvio termscp controllerà l'eventuale presenza di aggiornamenti. Per farlo utilizzerà una chiamata GET all'API di Github. @@ -436,7 +436,7 @@ Con termscp puoi anche modificare i file di testo direttamente da terminale, uti Non importa se il file si trova in locale od in remoto, termscp ti consente di modificare e sincronizzare le modifiche per entrambi. Nel caso il file si trovi su host remoto, il file verrà prima scaricato temporaneamente in locale, modificato e poi nel caso ci siano state modifiche, reinviato in remoto. -Ricorda: **puoi modificare solo i file testuali**; non puoi modificare i file binari. +> ❗ Ricorda: **puoi modificare solo i file testuali**; non puoi modificare i file binari. --- diff --git a/docs/man.md b/docs/man.md index bd130fd1..ed77ddf5 100644 --- a/docs/man.md +++ b/docs/man.md @@ -5,6 +5,7 @@ - [Address argument 🌎](#address-argument-) - [AWS S3 address argument](#aws-s3-address-argument) - [How Password can be provided 🔐](#how-password-can-be-provided-) + - [Aws S3 credentials 🦊](#aws-s3-credentials-) - [File explorer 📂](#file-explorer-) - [Keybindings ⌨](#keybindings-) - [Work on multiple files 🥷](#work-on-multiple-files-) @@ -14,7 +15,6 @@ - [Are my passwords Safe 😈](#are-my-passwords-safe-) - [Linux Keyring](#linux-keyring) - [KeepassXC setup for termscp](#keepassxc-setup-for-termscp) - - [Aws S3 credentials 🦊](#aws-s3-credentials-) - [Configuration ⚙️](#configuration-️) - [SSH Key Storage 🔐](#ssh-key-storage-) - [File Explorer Format](#file-explorer-format) @@ -101,12 +101,36 @@ s3://buckethead@eu-central-1:default:/assets You have probably noticed, that, when providing the address as argument, there's no way to provide the password. Password can be basically provided through 3 ways when address argument is provided: -- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very unsecure (since you might keep the password in the shell history) +- `-P, --password` option: just use this CLI option providing the password. I strongly unrecommend this method, since it's very insecure (since you might keep the password in the shell history) - Via `sshpass`: you can provide password via `sshpass`, e.g. `sshpass -f ~/.ssh/topsecret.key termscp cvisintin@192.168.1.31` - You will be prompted for it: if you don't use any of the previous methods, you will be prompted for the password, as happens with the more classics tools such as `scp`, `ssh`, etc. --- +## Aws S3 credentials 🦊 + +In order to connect to an Aws S3 bucket you must obviously provide some credentials. +There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. +So these are the ways you can provide the credentials for s3: + +1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. +2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: + + These should always be mandatory: + + - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) + - `AWS_SECRET_ACCESS_KEY`: the secret access key + + In case you've configured a stronger security, you *may* require these too: + + - `AWS_SECURITY_TOKEN`: security token + - `AWS_SESSION_TOKEN`: session token + +⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. +In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ + +--- + ## File explorer 📂 When we refer to file explorers in termscp, we refer to the panels you can see after establishing a connection with the remote. @@ -257,30 +281,6 @@ Follow these steps in order to setup keepassXC for termscp: --- -## Aws S3 credentials 🦊 - -In order to connect to an Aws S3 bucket you must obviously provide some credentials. -There are basically two ways to achieve this, and as you've probably already noticed you **can't** do that via the authentication form. -So these are the ways you can provide the credentials for s3: - -1. Use your credentials file: just configure the AWS cli via `aws configure` and your credentials should already be located at `~/.aws/credentials`. In case you're using a profile different from `default`, just provide it in the profile field in the authentication form. -2. **Environment variables**: you can always provide your credentials as environment variables. Keep in mind that these credentials **will always override** the credentials located in the `credentials` file. See how to configure the environment below: - - These should always be mandatory: - - - `AWS_ACCESS_KEY_ID`: aws access key ID (usually starts with `AKIA...`) - - `AWS_SECRET_ACCESS_KEY`: the secret access key - - In case you've configured a stronger security, you *may* require these too: - - - `AWS_SECURITY_TOKEN`: security token - - `AWS_SESSION_TOKEN`: session token - -⚠️ Your credentials are safe: termscp won't manipulate these values directly! Your credentials are directly consumed by the **s3** crate. -In case you've got some concern regarding security, please contact the library author on [Github](https://github.com/durch/rust-s3) ⚠️ - ---- - ## Configuration ⚙️ termscp supports some user defined parameters, which can be defined in the configuration. @@ -296,7 +296,7 @@ To access configuration, you just have to press `` from the home of term These parameters can be changed: -- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process so if you ask: yes, you can use `notepad.exe`, and no: **Visual Studio Code doesn't work**. +- **Text Editor**: the text editor to use. By default termscp will find the default editor for you; with this option you can force an editor to be used (e.g. `vim`). **Also GUI editors are supported**, unless they `nohup` from the parent process. - **Default Protocol**: the default protocol is the default value for the file transfer protocol to be used in termscp. This applies for the login page and for the address CLI argument. - **Show Hidden Files**: select whether hidden files shall be displayed by default. You will be able to decide whether to show or not hidden files at runtime pressing `A` anyway. - **Check for updates**: if set to `yes`, termscp will fetch the Github API to check if there is a new version of termscp available. @@ -404,10 +404,10 @@ Please, notice that **styles won't apply to configuration page**, in order to ma | Key | Description | |--------------------------------------|---------------------------------------------------------------------------| | transfer_local_explorer_background | Background color of localhost explorer | -| transfer_local_explorer_foreground | Foreground coloor of localhost explorer | +| transfer_local_explorer_foreground | Foreground color of localhost explorer | | transfer_local_explorer_highlighted | Border and highlighted color for localhost explorer | | transfer_remote_explorer_background | Background color of remote explorer | -| transfer_remote_explorer_foreground | Foreground coloor of remote explorer | +| transfer_remote_explorer_foreground | Foreground color of remote explorer | | transfer_remote_explorer_highlighted | Border and highlighted color for remote explorer | | transfer_log_background | Background color for log panel | | transfer_log_window | Window color for log panel | @@ -438,7 +438,7 @@ These styles applie to different part of the application. termscp has, as you might have noticed, many features, one of these is the possibility to view and edit text file. It doesn't matter if the file is located on the local host or on the remote host, termscp provides the possibility to open a file in your favourite text editor. In case the file is located on remote host, the file will be first downloaded into your temporary file directory and then, **only** if changes were made to the file, re-uploaded to the remote host. termscp checks if you made changes to the file verifying the last modification time of the file. -Just a reminder: **you can edit only textual file**; binary files are not supported. +> ❗ Just a reminder: **you can edit only textual file**; binary files are not supported. --- diff --git a/docs/zh-CN/man.md b/docs/zh-CN/man.md index d4684152..6489fdb1 100644 --- a/docs/zh-CN/man.md +++ b/docs/zh-CN/man.md @@ -5,6 +5,7 @@ - [地址参数](#地址参数) - [AWS S3 地址参数](#aws-s3-地址参数) - [如何输入密码](#如何输入密码) + - [Aws S3 凭证](#aws-s3-凭证) - [文件浏览](#文件浏览) - [快捷键](#快捷键) - [处理多个文件](#处理多个文件) @@ -14,7 +15,6 @@ - [我的密码安全吗?](#我的密码安全吗) - [Linux Keyring](#linux-keyring) - [用于 termscp 的 KeepassXC 设置](#用于-termscp-的-keepassxc-设置) - - [Aws S3 凭证](#aws-s3-凭证) - [配置](#配置) - [SSH Key Storage](#ssh-key-storage) - [资源管理器格式](#资源管理器格式) @@ -105,6 +105,30 @@ s3://buckethead@eu-central-1:default:/assets --- +## Aws S3 凭证 + +为了连接到 Aws S3 存储桶,您显然必须提供一些凭据。 +基本上有两种方法可以实现这一点,而且您可能已经注意到您**不能**通过身份验证表单来做到这一点。 +因此,您可以通过以下方式为 s3 提供凭据: + +1. 使用您的凭证文件:只需通过`aws configure` 配置AWS cli,您的凭证应该已经位于`~/.aws/credentials`。 如果您使用的配置文件不同于“默认”,只需在身份验证表单的配置文件字段中提供它。 +2. **环境变量**: 您始终可以将您的凭据作为环境变量提供。 请记住,这些凭据**将始终覆盖**位于 `credentials` 文件中的凭据。 下面看看如何配置环境: + + 这些应该始终是强制性的: + + - `AWS_ACCESS_KEY_ID`: aws 访问密钥 ID(通常以 `AKIA...` 开头) + - `AWS_SECRET_ACCESS_KEY`: 秘密访问密钥 + + 如果您配置了更强的安全性,您*可能*也需要这些: + + - `AWS_SECURITY_TOKEN`: 安全令牌 + - `AWS_SESSION_TOKEN`: 会话令牌 + +⚠️ 您的凭据是安全的:termscp 不会直接操作这些值! 您的凭据直接由 **s3** crate 使用。 +如果您对安全有一些担忧,请联系 [Github](https://github.com/durch/rust-s3) 上的库作者 ⚠️ + +--- + ## 文件浏览 termscp中的文件资源管理器是指你与远程建立连接后可以看到的面板。 @@ -250,30 +274,6 @@ termscp中的文件资源管理器是指你与远程建立连接后可以看到 --- -## Aws S3 凭证 - -为了连接到 Aws S3 存储桶,您显然必须提供一些凭据。 -基本上有两种方法可以实现这一点,而且您可能已经注意到您**不能**通过身份验证表单来做到这一点。 -因此,您可以通过以下方式为 s3 提供凭据: - -1. 使用您的凭证文件:只需通过`aws configure` 配置AWS cli,您的凭证应该已经位于`~/.aws/credentials`。 如果您使用的配置文件不同于“默认”,只需在身份验证表单的配置文件字段中提供它。 -2. **环境变量**: 您始终可以将您的凭据作为环境变量提供。 请记住,这些凭据**将始终覆盖**位于 `credentials` 文件中的凭据。 下面看看如何配置环境: - - 这些应该始终是强制性的: - - - `AWS_ACCESS_KEY_ID`: aws 访问密钥 ID(通常以 `AKIA...` 开头) - - `AWS_SECRET_ACCESS_KEY`: 秘密访问密钥 - - 如果您配置了更强的安全性,您*可能*也需要这些: - - - `AWS_SECURITY_TOKEN`: 安全令牌 - - `AWS_SESSION_TOKEN`: 会话令牌 - -⚠️ 您的凭据是安全的:termscp 不会直接操作这些值! 您的凭据直接由 **s3** crate 使用。 -如果您对安全有一些担忧,请联系 [Github](https://github.com/durch/rust-s3) 上的库作者 ⚠️ - ---- - ## 配置 termscp支持一些用户定义参数,这些参数可以通过配置来修改。 @@ -431,7 +431,7 @@ termscp支持传统的十六进制(`#rrggbb`)和RGB`rgb(r, g, b)`语法来 Termscp有很多功能,你可能已经注意到了,其中之一就是可以查看和编辑文本文件。不管文件是在本地主机还是在远程主机上,termscp都提供了在你喜欢的文本编辑器中打开文件的功能。 如果文件位于远程主机上,该文件将首先被下载到你的临时文件目录中,然后,**只有**在对该文件进行了修改的情况下,才会重新上传至远程主机上。 -多说一句,**你只能编辑文本文件**;二进制文件是不可以的。 +> ❗ 多说一句,**你只能编辑文本文件**;二进制文件是不可以的。 ---

Developed by @veeso

- Website + Sitio Web · - Installation + Instalación · - User manual + Manual de usuario