107 lines
3.8 KiB
Markdown
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.
|
|
|
|

|
|
|
|
## 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
|