Initial commit: BTerminal — GTK3 terminal with SSH & Claude Code session management

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
DexterFromLab 2026-03-04 18:34:36 +01:00
commit edc13e2d27
4 changed files with 1796 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
__pycache__/
*.pyc
*.pyo

59
README.md Normal file
View file

@ -0,0 +1,59 @@
# BTerminal
Terminal z panelem sesji w stylu MobaXterm, zbudowany w GTK 3 + VTE. Catppuccin Mocha theme.
![BTerminal](screenshot.png)
## Funkcje
- **Sesje SSH** — zapisywane konfiguracje (host, port, user, klucz, folder, kolor), CRUD z panelem bocznym
- **Claude Code** — zapisywane konfiguracje Claude Code z opcjami sudo, resume, skip-permissions i initial prompt
- **Makra SSH** — wielokrokowe makra (text, key, delay) przypisane do sesji, uruchamiane z sidebara
- **Zakładki** — wiele terminali w tabach, Ctrl+T nowy, Ctrl+Shift+W zamknij, Ctrl+PageUp/Down przełączaj
- **Sudo askpass** — Claude Code z sudo: hasło podawane raz, tymczasowy askpass helper, automatyczne czyszczenie
- **Grupowanie folderami** — sesje SSH i Claude Code mogą być grupowane w foldery na sidebarze
- **Catppuccin Mocha** — pełny theme: terminal, sidebar, taby, kolory sesji
## Wymagania
```
python3 >= 3.8
python3-gi
gir1.2-gtk-3.0
gir1.2-vte-2.91
```
### Instalacja zależności (Debian/Ubuntu/Pop!_OS)
```bash
sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-vte-2.91
```
## Uruchomienie
```bash
python3 bterminal.py
```
## Konfiguracja
Pliki konfiguracyjne w `~/.config/bterminal/`:
| Plik | Opis |
|------|------|
| `sessions.json` | Zapisane sesje SSH + makra |
| `claude_sessions.json` | Zapisane konfiguracje Claude Code |
## Skróty klawiszowe
| Skrót | Akcja |
|-------|-------|
| `Ctrl+T` | Nowa zakładka (local shell) |
| `Ctrl+Shift+W` | Zamknij zakładkę |
| `Ctrl+Shift+C` | Kopiuj |
| `Ctrl+Shift+V` | Wklej |
| `Ctrl+PageUp/Down` | Poprzednia/następna zakładka |
## Licencja
MIT

1734
bterminal.py Executable file

File diff suppressed because it is too large Load diff

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB