22
33 <img src =" data/media/icon_256.png " alt =" App Icon " width =" 128 " />
44
5- <h1 >
6- SSH-Studio
7- </h1 >
5+ <h1 >SSH-Studio</h1 >
86
97 <img src =" https://img.shields.io/badge/GTK-4.0-4A90E2?style=for-the-badge&logo=gtk&logoColor=white " alt =" GTK " />
108 <img src =" https://img.shields.io/badge/License-GPL%20v3-00D4AA?style=for-the-badge&logo=gnu&logoColor=white " alt =" License " />
119 <img src =" https://img.shields.io/badge/Python-3.12+-3776AB?style=for-the-badge&logo=python&logoColor=white " alt =" Python " />
10+ <img src =" https://img.shields.io/flathub/v/io.github.BuddySirJava.SSH-Studio?logo=flathub&style=for-the-badge " >
1211
1312 <p >A native <strong >GTK4 desktop app</strong > for editing and validating your <code >~/.ssh/config</code >.</p >
1413 <p >Search, edit, and validate SSH hosts with a clean UI — no need to touch terminal editors.</p >
1514
1615</div >
1716
18- ### Preview
17+ ---
18+
19+ ## Preview
1920
2021<div align =" center " >
2122 <img src =" assets/screenshots/ss1.png " alt =" Main Interface " width =" 45% " style =" margin-right : 2% ;" />
2223 <img src =" assets/screenshots/ss2.png " alt =" Preferences Dialog " width =" 45% " />
2324</div >
2425
25- ### Features
26+ ---
2627
27- - ** Visual host editor** : Edit common fields (Host, HostName, User, Port, IdentityFile, ForwardAgent, etc.).
28- - ** Inline validation** : Field-level errors are shown directly under inputs; parser checks for duplicate aliases and invalid ports.
29- - ** Search and filter** : Quickly find hosts across aliases, hostnames, users, and identities.
30- - ** Raw/Diff view** : Edit raw ` ssh_config ` text with instant diff highlighting.
31- - ** Quick actions** : Copy SSH command, test connection, and revert changes.
32- - ** SSH Key Management** : Easily import, generate and use your Public/Private keys.
33- - ** Safe saves** : Automatic backups (configurable), atomic writes, and include support.
34- - ** Keyboard- and mouse-friendly** : Smooth GTK 4 UI, dark theme preference.
28+ ## Features
3529
30+ - ** Visual host editor** – Edit common fields (Host, HostName, User, Port, IdentityFile, ForwardAgent, etc.).
31+ - ** Inline validation** – Field-level errors shown directly under inputs; parser checks for duplicates and invalid ports.
32+ - ** Search and filter** – Quickly find hosts across aliases, hostnames, users, and identities.
33+ - ** Raw/Diff view** – Edit raw ` ssh_config ` text with instant diff highlighting.
34+ - ** Quick actions** – Copy SSH command, test connection, and revert changes.
35+ - ** SSH Key Management** – Import, generate, and use your keys without leaving the app.
36+ - ** Safe saves** – Automatic backups (configurable), atomic writes, and include support.
37+ - ** Keyboard & mouse friendly** – Smooth GTK 4 UI with dark theme preference.
38+ - ** Translations** – Ready for localization (gettext support via ` po/ ` ).
3639
40+ ---
3741
3842## Install
3943
40- ### Build from source
41- You can clone and run from GNOME Builder.
42-
43- ### Build (Flatpak)
44+ ### From Flathub
45+ [ ![ Download on Flathub] ( https://flathub.org/api/badge?svg&locale=en )] ( https://flathub.org/en/apps/io.github.BuddySirJava.SSH-Studio )
4446
45- If you prefer Flatpak, use the manifest to build the project.
47+ ### Build from source
48+ You can build and run with GNOME Builder or ` flatpak-builder ` :
4649
4750``` bash
4851flatpak-builder --user --force-clean --install-deps-from=flathub build-dir io.github.BuddySirJava.SSH-Studio.json --install
@@ -51,25 +54,60 @@ flatpak-builder --user --force-clean --install-deps-from=flathub build-dir io.gi
5154flatpak run io.github.BuddySirJava.SSH-Studio
5255```
5356
54- ### Usage
57+ ---
58+
59+ ## Project structure
60+
61+ - ` src/ssh_config_parser.py ` → Parse/validate/generate SSH config safely.
62+ - ` src/ui/ ` → Custom Adwaita widgets (` MainWindow ` , ` HostList ` , ` HostEditor ` , ` SearchBar ` , ` PreferencesDialog ` , ` TestConnectionDialog ` , ` SSH Key Manager ` ).
63+ - ` data/ui/*.ui ` → GTK Builder UI blueprints.
64+ - ` data/ssh-studio.gresource.xml ` → GResource manifest.
65+ - ` data/media/ ` → App icon and screenshots.
66+ - ` src/main.py ` → Application entry point.
67+ - ` meson.build ` , ` data/meson.build ` , ` src/meson.build ` → Build and install rules.
68+ - ` io.github.BuddySirJava.SSH-Studio.json ` → Flatpak manifest.
69+ - ` po/ ` → Translations.
70+
71+ ---
72+
73+ ## Development
74+
75+ Requirements:
76+ - ** Python 3.12+**
77+ - ** GTK 4 / libadwaita 1.4+**
78+ - ** Meson & Ninja**
79+ - ** Flatpak / flatpak-builder**
80+
81+ Clone and run in dev mode:
82+
83+ ``` bash
84+ git clone https://github.com/BuddySirJava/SSH-Studio.git
85+ cd SSH-Studio
86+ meson setup builddir
87+ meson compile -C builddir
88+ ./builddir/src/ssh-studio
89+ ```
90+
91+ ---
92+
93+ ## Contributing
94+
95+ Contributions are welcome!
96+ - Report bugs or request features in the [ issue tracker] ( https://github.com/BuddySirJava/SSH-Studio/issues ) .
97+ - Submit pull requests with improvements, translations, or new features.
98+ - Follow [ GNOME HIG] ( https://developer.gnome.org/hig/ ) for UI changes.
99+
100+ ---
101+
102+ ## License
55103
56- 1 . The app loads ` ~/.ssh/config ` by default. Use the menu → Preferences to choose a different config file or backup directory.
57- 2 . Click “+” to add a new host or select a host to edit.
58- 3 . Use the Raw/Diff tab for low-level edits; changes are highlighted before saving.
59- 4 . Click Save to write changes. A backup can be created automatically (configurable).
104+ This project is licensed under the ** GNU GPLv3** .
105+ See [ LICENSE] ( LICENSE ) for details.
60106
61- ### Project structure (high-level)
107+ ---
62108
63- - ` src/ssh_config_parser.py ` : Parse/validate/generate SSH config safely.
64- - ` src/ui/ ` : Adw widgets (` MainWindow ` , ` HostList ` , ` HostEditor ` , ` SearchBar ` , ` PreferencesDialog ` , ` TestConnectionDialog ` , ` SSH Key Manager ` ).
65- - ` data/ui/*.ui ` : GTK Builder UI blueprints.
66- - ` data/ssh-studio.gresource.xml ` : GResource manifest.
67- - ` data/media/ ` : App icon and screenshots.
68- - ` src/main.py ` : Application entry point.
69- - ` meson.build ` , ` data/meson.build ` , ` src/meson.build ` : Build and install rules.
70- - ` io.github.BuddySirJava.SSH-Studio.json ` : Flatpak manifest.
71- - ` po/ ` : Translations.
109+ ## Support & Contact
72110
73- ### Support
111+ - [ Open an issue] ( https://github.com/BuddySirJava/SSH-Studio/issues ) on GitHub.
112+ - Check [ Flathub page] ( https://flathub.org/en/apps/io.github.BuddySirJava.SSH-Studio ) .
74113
75- - Open an issue on GitHub: `
0 commit comments