Ein minimales Terminal-UI (TUI), das die SSH-Login-Ziele aus ~/.ssh/config
in einem zentrierten Fenster anzeigt — nach Servern gruppiert, mit einer
Fußzeile, die die Details des markierten Hosts zeigt. Auswahl per Tastatur
oder Maus — danach ersetzt Flux den eigenen Prozess durch
ssh -- <alias>. Nach dem Ende der SSH-Sitzung bist du wieder in deiner
Shell.
Einfach lostippen: Jede Buchstaben-/Zifferntaste filtert die Liste sofort
(Suche über Alias, HostName, User, su-User und Zielordner); der erste Treffer
ist vorgewählt, Enter verbindet also direkt. Backspace löscht, Esc
leert die Suche.
| Eingabe | Wirkung |
|---|---|
| Tippen | Sofort filtern |
↑/↓, Home/End |
Navigation (Überschriften werden übersprungen) |
Enter oder Linksklick |
Mit dem gewählten Host verbinden |
| Mausrad | Scrollen |
Ctrl+E |
Filter-Ansicht öffnen/schließen (Einträge ein-/ausblenden) |
Ctrl+T |
Theme wechseln (wird gespeichert) |
Ctrl+B |
Banner-Stil wechseln (wird gespeichert) |
Ctrl+A |
Banner-Ausrichtung wechseln (wird gespeichert) |
Ctrl+O |
Optionen/Hilfe öffnen/schließen |
Esc |
Suche leeren → Filter-Ansicht schließen → beenden |
In der Filter-Ansicht schalten Enter, Linksklick oder die Leertaste den
markierten Eintrag um: [x] = sichtbar, [ ] = ausgeblendet. Jede Änderung
wird sofort gespeichert; die Tipp-Suche funktioniert auch hier.
go build -o flux .Benötigt Go ≥ 1.26 und ein ssh-Binary im PATH.
- Die Hosts sind nach Server (
HostName) gruppiert; Überschriftszeilen sind nicht wählbar. Der erste Nicht-Wildcard-Alias einesHost-Blocks ist das Verbindungsziel. Bei einemRemoteCommandim su-Stil (su … -l <user> -c 'cd <ordner> && …') steht der effektive User als→ userdirekt in der Zeile. - Die Fußzeile zeigt die vollen Details des markierten Hosts
(
User@HostName:Port, effektiver User und Ordner, weitere Aliase) sowie das aktive Theme. - Themes:
dark(Dunkel),light(Hell),matrix(Matrix) sowie die farbenblind-freundlichencb-dark(Okabe-Ito Dunkel) undcb-light(Okabe-Ito Hell) auf Basis der Okabe-Ito-Palette (Color Universal Design; für Protanopie, Deuteranopie und Tritanopie unterscheidbar). MitCtrl+Tdurchschalten — der Anzeigename steht in der Fußzeile; die Wahl landet in~/.config/flux/themeund gilt beim nächsten Start wieder. Eine kaputte (leere/unbekannte) Theme-Datei ist ein harter Fehler. - Wildcard-Patterns (
*,?) werden nie angezeigt (Host *ist ein Default-Block, kein Ziel).
Mit Ctrl+B wechselst du der Reihe nach durch fünf sichtbare Banner-Designs,
jeweils als Regenbogen und Monochrom, sowie die Auswahl Kein Banner.
Das ergibt elf Zustände:
- BlurVision — die klassische FLUX-Wortmarke,
- Single — eine kompakte einzeilige Wortmarke,
- ANSI Regular — eine fünfzeilige Blockschrift,
- Banner3 — eine siebenzeilige Rautenschrift,
- ANSI Compact — eine dreizeilige kompakte Blockschrift.
Die Regenbogen-Varianten verwenden rainbow3: zwölf Farben laufen über die
sichtbaren Terminalspalten, wechseln bei mehrzeiligen Bannern alle zwei
Spalten und beginnen je Zeile leicht versetzt. Nur der einzeilige
Single-Banner durchläuft das volle Farbspektrum spaltenweise. Die
monochromen Varianten verwenden die Textfarbe des aktiven Themes und werden
bei einem Theme-Wechsel sofort neu gezeichnet. Kein Banner entfernt
Banner und Abstand vollständig.
Die Wahl wird als stabiler Bezeichner in ~/.config/flux/banner gespeichert
und beim nächsten Start wiederhergestellt. Ältere gespeicherte Werte
ansi, monochrome, wordmark-ansi, terminal-ansi, wordmark-mono und
terminal-mono bleiben kompatibel und werden dem jeweils passenden
BlurVision-, Single- oder ANSI-Regular-Banner zugeordnet.
Die früheren Terrace-Werte werden ebenfalls weiter akzeptiert:
terrace-rainbow3 wird blurvision-rainbow3 zugeordnet und
terrace-monochrome wird blurvision-monochrome zugeordnet.
Mit Ctrl+A wechselst du zwischen den Ausrichtungen Links, Mitte und Rechts.
Flux speichert die Ausrichtung unverändert in
~/.config/flux/banner-alignment. Größe und Sichtbarkeit werden bei jedem
Zeichnen neu bestimmt. Das zentrierte TUI nutzt die gesamte verfügbare Breite
innerhalb von mindestens zwei Terminalspalten Rand auf jeder Seite, höchstens
jedoch 100 Spalten. Ein ausgewählter Banner wird vor der Erweiterung des
Hosts-Bereichs reserviert. BlurVision hat eine feste fünfzeilige Form, die
nur vollständig angezeigt wird und andernfalls verborgen bleibt. Jeder Banner
muss vollständig zusammen mit Fensterrahmen, Suche und mindestens drei Zeilen
des Hosts-Bereichs passen.
Enthält die Hosts-Liste mehr Zeilen als der zugeteilte sichtbare Bereich,
scrollt sie innerhalb dieses Bereichs. Lange Fußzeilen werden innerhalb der
TUI-Breite umgebrochen; ihre Zeilenzahl schrumpft nötigenfalls bis auf null,
bevor ein ansonsten passender Banner verborgen wird. Single, ANSI Regular,
Banner3 und ANSI Compact behalten ebenfalls jeweils ihre feste Form: Sie werden
nur vollständig angezeigt oder vorübergehend verborgen und erscheinen nach
einer passenden Terminal-Größenänderung wieder. Banner werden nie
abgeschnitten oder skaliert. Farbvariante und die mit Ctrl+A gewählte
Ausrichtung bleiben dabei erhalten.
Ctrl+O öffnet die Optionen/Hilfe innerhalb desselben Fensters. Ctrl+O
oder Esc schließt sie wieder. Suchtext, Auswahl, Ansicht, Theme, Banner und
Ausrichtung bleiben beim Öffnen und Schließen unverändert. Solange die Hilfe
geöffnet ist, werden alle anderen Eingaben von den darunterliegenden
Ansichten ferngehalten; Navigationstasten können den Hilfetext scrollen.
Am einfachsten über die Filter-Ansicht (Ctrl+E) pflegen. Die Liste liegt in
~/.config/flux/exclude (ein Alias pro Zeile, # leitet Kommentare ein) und
kann auch von Hand bearbeitet werden — Achtung: Sobald du in der
Filter-Ansicht etwas umschaltest, schreibt Flux die Datei komplett neu;
eigene Kommentare gehen dabei verloren. Einträge, die zu keinem aktuellen
Host passen (z. B. entfernte Hosts), bleiben erhalten. Fehlt die Datei, wird
nichts ausgeschlossen. Die Datei bleibt lokal auf deinem System; sie gehört
nicht ins Repository.
Sind beim Start alle Hosts ausgeblendet, öffnet Flux direkt die Filter-Ansicht statt mit einem Fehler abzubrechen.
Flux bricht mit einer klaren Fehlermeldung ab statt still zu degradieren:
~/.ssh/configfehlt oder ist unlesbar,- die Config enthält
Include- oderMatch-Direktiven (nicht unterstützt), - ein Host-Alias beginnt mit
-(als ssh-Ziel nicht nutzbar), - die Config enthält ausschließlich Wildcard-Blöcke,
sshist nicht imPATH,- Theme-, Banner-, Banner-Ausrichtungs- oder Ausschlussdatei lassen sich nicht lesen/schreiben.
- Flux liest keine Schlüssel oder
known_hostsund führt keine eigenen Netzwerkzugriffe aus. Schreibzugriffe beschränken sich auf seine Dateien unter~/.config/flux/. sshwird ohne Shell-Zwischenschicht mit festen Argumenten gestartet (ssh -- <alias>); das--beendet die Optionsverarbeitung, ein Alias kann nie als ssh-Option interpretiert werden.
Include/Matchwerden nicht unterstützt (harter Fehler statt unvollständiger Liste).- Aliase mit Leerzeichen in Anführungszeichen (
Host "mein host") werden an den Leerzeichen getrennt.