为什么要做这个?

目前市面上大多数客户端都是基于 Electron 或 HTML 开发,我个人不太喜欢这种“塑料的感觉”(并不是贬义,缺乏真实触感的体验)。因此,我选择使用 Java Swing 开发一个桌面端客户端。

核心部分采用 Kotlin 开发,最终目标是通过 Kotlin Multiplatform 打造一款全平台的 SSH/终端 工具。

功能特色

  • 支持多标签页
  • 数据加密存储
  • 通过 Gist 同步配置
  • 宏功能
  • 密钥管理
  • Find Everywhere
  • ...

目前尚不支持 SFTP/FTP 等

XTerm 协议部分

使用 Kotlin 实现了 XTerm 协议(尚未完全实现)。桌面端的渲染层基于 Java Swing ,未来计划将这一部分迁移到 KMP ,从而实现真正的跨平台支持(包括移动端)。

在实现协议的过程中,参考了许多经典的客户端,例如:

预览


后续发展

  • 命令提示(这部分我还在构思,如何准确获取用户输入的命令?)
  • AI 功能
  • 增加团队协同功能
  • 支持 Telnet
  • 支持 X-Server
  • 支持 VNC Viewer
  • SFTP/FTP
  • 串口
  • ...

这是一个长期发展的项目。


希望大家给点建议 🙏

项目地址:https://github.com/TermoraDev/termora

举报· 5465 次点击
登录 注册 站外分享
52 条回复  
Ccf 小成 5 天前
等 macos 正式版
sn0wdr1am 小成 5 天前
x11 Forwarding.
lscho 小成 5 天前
Java 和 Electron 谁也别说谁,半斤对八两。。。。
powersee 楼主 初学 5 天前
@Lowae 后续有开发移动端的计划,主要是核心渲染部分。会抽象出 VisualTerminalDisplay ,然后底层使用 skiko 绑定到各个平台就好,改动的确不会太小
Lowae 小成 5 天前
居然看到 kmp 的项目了,star 了。 不过要迁移的话可能改动也不小,ui 层基本需要替换为 compose
powersee 楼主 初学 5 天前
@w292614191 #46 相比于 xterminal 、termius 、electerm 这类的最大区别是前者使用 electron 开发,而 termora 使用 java 开发,个人觉得在丝滑程度略层一筹。 相比于 finalshell ,虽然与 termora 都是 java 开发,前者渲染基于 jediterm ,在性能和易用性不如 termora (通过调用输入法可以对比出来),finalshell 的内存占用异常的高,termora 就好很多。但不可否认的是,finalshell 目前的功能是比 termora 多的。
w292614191 小成 5 天前
相比: https://xterminal.cn/ https://www.hostbuf.com/ 有什么优势或者特别点吗?
minami 小成 5 天前
@powersee #20 就是下拉式终端,比如 KDE 的 Yakuake
minami 小成 5 天前
只要不是 Electron/CEF 就点赞
返回顶部