Files
x3-ssh/README.md
T

107 lines
3.8 KiB
Markdown

# x3-ssh
A GTK3-based SSH client with a tabbed terminal interface, server sidebar, notifications, and SSH key storage.
![Icon](icons/x3-ssh.svg)
## Features
- **Tabbed terminal** - Multiple SSH sessions in tabs
- **Server sidebar** - Saved servers displayed in a sidebar, double-click to connect
- **Quick connect** - Connect directly via host/user/port fields in the toolbar
- **SSH key management** - Generate, import, and manage SSH keys
- **Notifications** - Animated notification bar for status messages (saved, connected, disconnected, errors)
- **VTE terminal** - Full terminal emulation with 256 color support
- **Resizable pty** - Terminal auto-resizes the remote pty on window resize
- **System integration** - `.desktop` file and icon for application menu entry
## Dependencies
- GTK+ 3.0 (>= 3.24)
- VTE 2.91 (>= 0.50)
- libssh (>= 0.9)
- autotools / autoconf / automake / libtool
- pkg-config
- g++ with C++17 support
## Building
```bash
# Install dependencies (Debian/Ubuntu)
sudo apt install libgtk-3-dev libvte-2.91-dev libssh-dev \
autoconf automake libtool pkg-config
# Build
mkdir -p build-aux
autoreconf -fi
./configure
make
# Install (installs binary, .desktop file, and icon system-wide)
sudo make install
```
## Uninstall
```bash
sudo make uninstall
```
## Configuration
Server configurations are stored in:
```
~/.config/sshclient/servers.conf
```
SSH keys are stored in:
```
~/.config/sshclient/keys.conf
~/.config/sshclient/keys/
```
## Usage
1. Start the application: `x3-ssh`
2. **Server Sidebar**: Saved servers appear in the left sidebar. Double-click to connect.
3. **Quick Connect**: Enter host, user, and port in the toolbar, click "Connect"
4. **Add Server**: Click the `+` button in the sidebar header, or use the "Add Server" dialog
5. **SSH Keys**: Click "Keys" in the toolbar to generate or import SSH keys
6. **Tabs**: Click "+ Tab" for a new empty tab, "Close Tab" to close the current one
## Notifications
The notification bar at the top shows status messages:
- `Server saved: <name>` - when a server config is saved
- `Server connected: <user>@<host>:<port>` - on successful connection
- `Server disconnected` - when disconnecting
- `Server removed: <name>` - when a server is deleted
- `Key generated: <name>` / `Key imported: <name>` / `Key deleted: <name>`
- `Failed to connect to <host>` - on connection failure (red)
Notifications auto-hide after 4 seconds.
## Layout
```
┌────────────────────────────────────────────────────┐
│ [Notification bar - auto-hiding] │
├────────────────────────────────────────────────────┤
│ [Server▼] [host___] [user___] [port] [Connect] ...│
├───────────┬────────────────────────────────────────┤
│ Servers │ [Tab: MyServer] [Tab: Prod] [+] │
│ ─────── │ │
│ MyServer │ user@host:~$ │
│ root@h:22 │ │
│ │ │
│ Prod │ │
│ admin@p:22│ │
├───────────┴────────────────────────────────────────┤
│ Connected to root@host:22 │
└────────────────────────────────────────────────────┘
```
## License
MIT