Fix: crash on failed connect, add sidebar edit/delete, password saving

- Fix crash when SSH connect fails: remove page BEFORE deleting terminal
- Sidebar right-click context menu: Connect / Edit / Delete
- Password field + Save password checkbox in server dialog
- ServerConfig stores password and save_password fields
- Auto-connect uses saved password when available
- Restore original flaticon icon
This commit is contained in:
x3
2026-09-07 15:34:23 +00:00
parent 16ae7ffde2
commit 6e719c3236
7 changed files with 202 additions and 124 deletions
+32 -8
View File
@@ -2,15 +2,16 @@
A GTK3-based SSH client with a tabbed terminal interface, server sidebar, notifications, and SSH key storage.
![Icon](icons/x3-ssh.svg)
![Icon](icons/x3-ssh.png)
## Features
- **Tabbed terminal** - Multiple SSH sessions in tabs
- **Server sidebar** - Saved servers displayed in a sidebar, double-click to connect
- **Server sidebar** - Saved servers in a sidebar, double-click to connect, right-click for Edit/Delete
- **Quick connect** - Connect directly via host/user/port fields in the toolbar
- **Password storage** - Optionally save passwords with servers (stored in config file)
- **SSH key management** - Generate, import, and manage SSH keys
- **Notifications** - Animated notification bar for status messages (saved, connected, disconnected, errors)
- **Notifications** - Animated notification bar for status messages
- **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
@@ -63,11 +64,25 @@ SSH keys are stored in:
## Usage
1. Start the application: `x3-ssh`
2. **Server Sidebar**: Saved servers appear in the left sidebar. Double-click to connect.
2. **Server Sidebar**: Saved servers appear in the left sidebar
- **Double-click** to connect
- **Right-click** for context menu (Connect / Edit / Delete)
- Click `+` to add a new server
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
4. **SSH Keys**: Click "Keys" in the toolbar to generate or import SSH keys
5. **Tabs**: Click "+ Tab" for a new empty tab, "Close Tab" to close the current one
## Server Dialog Fields
| Field | Description |
|-------|-------------|
| Name | Display name for the server |
| Host | Hostname or IP address |
| User | SSH username |
| Port | SSH port (default: 22) |
| Password | Optional, can be saved |
| Save password | Checkbox to store password in config |
| SSH Key | Optional key for public key authentication |
## Notifications
@@ -90,7 +105,7 @@ Notifications auto-hide after 4 seconds.
│ [Server▼] [host___] [user___] [port] [Connect] ...│
├───────────┬────────────────────────────────────────┤
│ Servers │ [Tab: MyServer] [Tab: Prod] [+] │
│ ─────── │ │
│ +─────── │ │
│ MyServer │ user@host:~$ │
│ root@h:22 │ │
│ │ │
@@ -101,6 +116,15 @@ Notifications auto-hide after 4 seconds.
└────────────────────────────────────────────────────┘
```
Right-click on a server in the sidebar:
```
┌──────────┐
│ Connect │
│ Edit │
│ Delete │
└──────────┘
```
## License
MIT