> This is the Dutch translation of the siggy README.
> Last updated against English commit: 8b5890e
> The [English version](../README.md) is authoritative. If this translation has drifted, trust the English.
> This translation is maintainer-provided and awaiting native-speaker review. Corrections welcome - see issue #353.
English
|
Dansk
|
Deutsch
|
Español
|
Français
|
Italiano
|
Nederlands
|
Português
|
Suomi
|
Svenska
|
Русский
|
Українська
|
简体中文
|
Draag een vertaling bij
Een Signal-messengerclient voor de terminal, met een IRC-uitstraling. Gebruikt [signal-cli](https://github.com/AsamK/signal-cli) via JSON-RPC als messaging-backend.

## Installatie
### Homebrew (macOS)
```sh
brew tap johnsideserf/siggy
brew install siggy
```
### Voorgecompileerde binaries
Download de nieuwste release voor jouw platform via [Releases](https://github.com/johnsideserf/siggy/releases).
**Linux / macOS** (oneliner):
```sh
curl -fsSL https://raw.githubusercontent.com/johnsideserf/siggy/master/install.sh | bash
```
**Windows** (PowerShell):
```powershell
irm https://raw.githubusercontent.com/johnsideserf/siggy/master/install.ps1 | iex
```
Beide scripts downloaden de nieuwste release-binary en controleren of signal-cli aanwezig is.
### Via crates.io
Vereist Rust 1.70+.
```sh
cargo install siggy
```
### Bouwen vanuit de broncode
Of kloon de repository en bouw lokaal:
```sh
git clone https://github.com/johnsideserf/siggy.git
cd siggy
cargo build --release
# De binary staat in target/release/siggy
```
## Vereisten
- [signal-cli](https://github.com/AsamK/signal-cli) geïnstalleerd en bereikbaar via PATH (of ingesteld via `signal_cli_path`)
- Een Signal-account dat als secundair apparaat is gekoppeld (de installatiewizard regelt dit)
## Gebruik
```sh
siggy # Starten (gebruikt het configuratiebestand)
siggy -a +15551234567 # Account opgeven
siggy -c /path/to/config.toml # Eigen pad naar het configuratiebestand
siggy --setup # Installatiewizard opnieuw uitvoeren
siggy --demo # Starten met voorbeeldgegevens (geen signal-cli nodig)
siggy --incognito # Geen lokale berichtopslag (alleen in het geheugen)
```
Bij de eerste start leidt de installatiewizard je door het vinden van signal-cli, het invoeren van je telefoonnummer en het koppelen van je apparaat via een QR-code.
## Configuratie
De configuratie wordt geladen vanuit:
- **Linux/macOS:** `~/.config/siggy/config.toml`
- **Windows:** `%APPDATA%\siggy\config.toml`
```toml
account = "+15551234567"
signal_cli_path = "signal-cli"
download_dir = "/home/user/signal-downloads"
notify_direct = true
notify_group = true
desktop_notifications = false
inline_images = true
mouse_enabled = true
send_read_receipts = true
theme = "Default"
proxy = ""
```
Alle velden zijn optioneel. `signal_cli_path` is standaard `"signal-cli"` (gevonden via PATH) en `download_dir` is standaard `~/signal-downloads/`. Gebruik op Windows het volledige pad naar `signal-cli.bat` als die niet in je PATH staat.
### Inline afbeeldingen binnen tmux
Buiten tmux detecteert siggy automatisch Kitty / iTerm2 / WezTerm / Ghostty en worden bijlagen als native pixelafbeeldingen weergegeven. Binnen tmux moet je twee dingen instellen, omdat tmux de buitenste terminal voor siggy verbergt:
1. Laat tmux onbekende escape-sequenties doorgeven. Vereist tmux 3.3+:
```
set -g allow-passthrough on
```
Oudere tmux-versies gebruiken `set -g allow-passthrough all`.
2. Vertel siggy welk protocol de buitenste terminal spreekt (de autodetectie ziet alleen tmux):
```sh
SIGGY_IMAGE_PROTOCOL=kitty siggy # of iterm2 / sixel / halfblock
```
Als `SIGGY_IMAGE_PROTOCOL` niet is ingesteld, draait de gewone autodetectie (correct buiten tmux, valt binnen tmux terug op halfblock). Sixel wordt vanaf tmux 3.4+ native doorgegeven en heeft de omgevingsvariabele niet nodig.
## Functies
- **Berichten** -- Verstuur en ontvang 1-op-1- en groepsberichten
- **Bijlagen** -- Voorbeelden van afbeeldingen worden inline weergegeven als halfblok-art; andere bijlagen verschijnen als `[attachment: bestandsnaam]`
- **Klikbare links** -- URL's en bestandspaden zijn OSC 8-hyperlinks (klikbaar in terminals zoals Windows Terminal, iTerm2, enz.)
- **Typindicatoren** -- Laat zien wie er aan het typen is, met weergave van de contactnaam
- **Berichtsynchronisatie** -- Berichten die je vanaf je telefoon verstuurt, verschijnen in de TUI
- **Persistentie** -- Berichtopslag in SQLite met WAL-modus; gesprekken en leesmarkeringen blijven bewaard na een herstart
- **Ongelezen berichten** -- Tellers voor ongelezen berichten in de zijbalk, met een "nieuwe berichten"-scheidingslijn in de chat
- **Meldingen** -- Terminalbel bij nieuwe berichten (apart instelbaar voor directe en groepsgesprekken, dempen per gesprek) en bureaubladmeldingen via het besturingssysteem
- **Contactnamen** -- Namen uit je Signal-adresboek; groepen worden bij het opstarten automatisch geladen
- **Reacties op berichten** -- Reageer met `r` in de Normal-modus; emojikiezer met badgeweergave (`👍 2 ❤️ 1`)
- **Beantwoorden / citeren** -- Druk op `q` bij een geselecteerd bericht om te antwoorden met geciteerde context
- **Berichten bewerken** -- Druk op `e` om je eigen verzonden berichten te bewerken
- **Berichten verwijderen** -- Druk op `d` om lokaal of op afstand te verwijderen (voor je eigen berichten)
- **Gesprekken verwijderen** -- Gebruik `/delete` om het huidige gesprek lokaal te verwijderen (wijst openstaande berichtverzoeken af)
- **Berichten zoeken** -- `/search ` met `n`/`N` om tussen de resultaten te springen
- **@vermeldingen** -- Typ `@` in groepsgesprekken om leden te vermelden, met autocomplete
- **Berichtselectie** -- Het geselecteerde bericht wordt gemarkeerd tijdens het scrollen; spring met `J`/`K` van bericht naar bericht
- **Leesbevestigingen** -- Statussymbolen bij uitgaande berichten (Verzenden → Verzonden → Afgeleverd → Gelezen → Bekeken)
- **Verdwijnende berichten** -- Respecteert de timers voor verdwijnende berichten van Signal; per gesprek in te stellen met `/disappearing`
- **Groepsbeheer** -- Groepen aanmaken, leden toevoegen of verwijderen, hernoemen en verlaten via `/group`
- **Berichtverzoeken** -- Accepteer of verwijder berichten van onbekende afzenders
- **Blokkeren / deblokkeren** -- Blokkeer contacten of groepen met `/block` en `/unblock`
- **Muisondersteuning** -- Klik op gesprekken in de zijbalk, scroll door berichten, klik om de cursor te plaatsen
- **Kleurthema's** -- Kies een thema via `/theme` of `/settings`
- **Installatiewizard** -- Begeleide eerste configuratie met apparaatkoppeling via QR-code
- **Vim-toetsbindingen** -- Modaal bewerken (Normal/Insert) met volledige cursorbesturing
- **Autocomplete voor commando's** -- Tab-completion-popup voor slash-commando's
- **Instellingenoverlay** -- Schakel meldingen, de zijbalk en inline afbeeldingen in of uit vanuit de app
- **Responsieve indeling** -- Verstelbare zijbalk die zich automatisch verbergt op smalle terminals (<60 kolommen)
- **Incognitomodus** -- `--incognito` gebruikt opslag in het geheugen; na afsluiten blijft er niets bewaard
- **Proxyondersteuning** -- Stel via het configuratieveld `proxy` een Signal TLS-proxy in voor gebruik op beperkte netwerken
- **Demomodus** -- Probeer de interface zonder signal-cli (`--demo`)
## Commando's
| Commando | Alias | Beschrijving |
|---|---|---|
| `/join ` | `/j` | Ga naar een gesprek op contactnaam, nummer of groep |
| `/part` | `/p` | Verlaat het huidige gesprek |
| `/delete` | | Verwijder het huidige gesprek (wijst openstaande berichtverzoeken af) |
| `/attach` | `/a` | Open de bestandsbrowser om een bestand bij te voegen |
| `/search ` | `/s` | Zoek berichten in het huidige gesprek (of in alle gesprekken) |
| `/sidebar` | `/sb` | Toon of verberg de zijbalk |
| `/bell [type]` | `/notify` | Meldingen in- of uitschakelen (`direct`, `group` of beide) |
| `/mute [duur]` | | Demp het huidige gesprek of hef het dempen op (bijv. `1h`, `8h`, `1d`, `1w`) |
| `/block` | | Blokkeer het huidige contact of de huidige groep |
| `/unblock` | | Deblokkeer het huidige contact of de huidige groep |
| `/disappearing ` | `/dm` | Stel de timer voor verdwijnende berichten in (`off`, `30s`, `5m`, `1h`, `1d`, `1w`) |
| `/group` | `/g` | Open het groepsbeheermenu |
| `/theme` | `/t` | Open de themakiezer |
| `/contacts` | `/c` | Blader door gesynchroniseerde contacten |
| `/settings` | | Open de instellingenoverlay |
| `/lock` | | Vergrendel de sessie |
| `/lock-reset` | | Wijzig de wachtwoordzin van de vergrendeling (huidige wachtwoordzin vereist) |
| `/help` | `/h` | Toon de hulpoverlay |
| `/quit` | `/q` | Sluit siggy af |
Typ `/` om de autocomplete-popup te openen. Gebruik `Tab` om aan te vullen en de pijltjestoetsen om te navigeren.
Een nieuw contact een bericht sturen: `/join +15551234567` (E.164-formaat).
**Wachtwoordzin van de vergrendeling vergeten?** Sluit siggy af (of beëindig het proces) en voer `siggy --reset-lock` uit. Dit verwijdert de opgeslagen hash van de wachtwoordzin en toont het pad dat is verwijderd. Bij de eerstvolgende `/lock` stel je een nieuwe wachtwoordzin in.
## Sneltoetsen
De app gebruikt modaal bewerken in vim-stijl met twee modi: **Insert** (standaard) en **Normal**.
### Globaal (beide modi)
| Toets | Actie |
|---|---|
| `Ctrl+C` | Afsluiten |
| `Tab` / `Shift+Tab` | Volgend / vorig gesprek |
| `PgUp` / `PgDn` | Door berichten scrollen (5 regels) |
| `Ctrl+Left` / `Ctrl+Right` | Zijbalk vergroten of verkleinen |
### Normal-modus
Druk op `Esc` om naar de Normal-modus te gaan.
| Toets | Actie |
|---|---|
| `j` / `k` | 1 regel omlaag / omhoog scrollen |
| `J` / `K` | Naar het vorige / volgende bericht springen |
| `Ctrl+D` / `Ctrl+U` | Een halve pagina omlaag / omhoog scrollen |
| `g` / `G` | Naar boven / beneden scrollen |
| `h` / `l` | Cursor naar links / rechts |
| `w` / `b` | Een woord vooruit / terug |
| `0` / `$` | Begin / einde van de regel |
| `x` | Teken onder de cursor verwijderen |
| `D` | Verwijderen vanaf de cursor tot het einde |
| `y` / `Y` | Berichttekst / volledige regel kopiëren |
| `r` | Reageren op het geselecteerde bericht |
| `q` | Het geselecteerde bericht beantwoorden / citeren |
| `e` | Eigen verzonden bericht bewerken |
| `d` | Bericht verwijderen (lokaal of op afstand) |
| `n` / `N` | Naar het volgende / vorige zoekresultaat springen |
| `i` | Naar de Insert-modus |
| `a` | Naar de Insert-modus (cursor 1 naar rechts) |
| `I` / `A` | Naar de Insert-modus aan het begin / einde van de regel |
| `o` | Naar de Insert-modus (buffer leegmaken) |
| `/` | Naar de Insert-modus met `/` al ingetypt |
### Insert-modus (standaard)
| Toets | Actie |
|---|---|
| `Esc` | Naar de Normal-modus |
| `Enter` | Bericht versturen / commando uitvoeren |
| `Shift+Enter` / `Alt+Enter` | Nieuwe regel invoegen (voor berichten van meerdere regels) |
| `Backspace` / `Delete` | Tekens verwijderen |
| `Up` / `Down` | Invoergeschiedenis terughalen |
| `Left` / `Right` | Cursor verplaatsen |
| `Home` / `End` | Naar het begin / einde van de regel |
## Architectuur
```
Keyboard --> InputAction --> App state --> SignalClient (mpsc) --> signal-cli (JSON-RPC stdin/stdout)
signal-cli --> JsonRpcResponse --> SignalEvent (mpsc) --> App state --> SQLite + Ratatui render
```
```
+------------+ mpsc channels +----------------+
| TUI | <---------------> | Signal |
| (main | SignalEvent | Backend |
| thread) | UserCommand | (tokio task) |
+------------+ +--------+-------+
|
stdin/stdout
|
+--------v-------+
| signal-cli |
| (child proc) |
+----------------+
```
Gebouwd met [Ratatui](https://ratatui.rs/) + [Crossterm](https://github.com/crossterm-rs/crossterm) op de asynchrone [Tokio](https://tokio.rs/)-runtime.
## Licentie
[GPL-3.0](../LICENSE)