采用 Java 开发的 SSH/终端工具,希望大家给点建议

20 天前
 powersee

为什么要做这个?

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

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

功能特色

目前尚不支持 SFTP/FTP 等

XTerm 协议部分

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

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

预览


后续发展

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

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


希望大家给点建议 🙏

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

6283 次点击
所在节点    分享创造
117 条回复
shuangbiaog
20 天前
点个星星支持一下,个人觉得 ai 功能不太合适
powersee
20 天前
@shuangbiaog #1 感谢。我也觉得 AI 不合适,因为“太花里胡哨”了,这个优先级不会太高。但是,我对 X-Server 挺感兴趣的,可能会尝试实现一下,会完全采用 Kotlin 开发,后续跨平台也好兼容。
XDiLa
20 天前
感觉和 Termius 差别不大 但是管理主机方便 Termius 更加便捷吧。还有就是这种 ssh 终端工具太多了 很少能有非常吸引人的地方。我看你和 Wave 很像
XDiLa
20 天前
等你证书下来了我在安装体验一下,从你发的截图看 UI ,感觉是尚可的
XDiLa
20 天前
感觉你后续发展的目标非常和 Warp 类似
powersee
20 天前
@XDiLa

#3 目前来说,Termius 是更加方便的

#4 苹果这个证书有点麻烦,我被限制了,苹果团队还在处理中; UI 参考了 IDEA 的

#5 我个人是比较反对终端 “美化” 的,其实我更喜欢 XShell 这种原生质感
czhh
20 天前
和 finalshell 啥区别
powersee
20 天前
@czhh 非常丝滑,可以试试,尤其是使用输入法的时候,可以非常明显的体验出来。

功能来说,finalshell 更完善一些。
yellowstrong
20 天前
下载体验了一下,跟作者观点一致,比一众 chrome 套壳应用体验可好太多了,后续希望能长期发展下去
bobobobob
20 天前
Java Swing ,想起我的大学时光了。。。
powersee
20 天前
@yellowstrong #9 感谢。会持续维护的,个人觉得 JVM 的性能还是比 Electron 的效率高一些。
powersee
20 天前
@bobobobob #10 配合 FlatLaf 还是挺漂亮的
bobobobob
20 天前
@powersee 确实,感觉颜值挺高的
shewhen
20 天前
帅啊,

感觉很流畅
liansishen
20 天前
star 了,等后续更新
iyiluo
20 天前
ssh 客户端加 ai 功能感觉挺离谱的,这不是把命令隐私都泄露了吗,没必要。ftp 的功能反倒优先级更高
shewhen
20 天前
期待加入 SFTP ,干翻 Termius ,FinalShell ,XShell !✨✨✨
powersee
20 天前
@shewhen #14 感谢使用。我通过 history 生成过百万行,也依然非常流畅。

可以通过 “设置 - 终端” 修改历史行数。

我采用全新思路设计了终端渲染和终端协议处理,无论数据再多也不会影响渲染效率,具体可以参考: https://github.com/TermoraDev/termora/blob/1.0.0/src/main/kotlin/app/termora/terminal/Terminal.kt
powersee
20 天前
@iyiluo #16 是这样,我觉得 AI 比较鸡肋,我个人是比较反对的,后续我会考虑如何以 “方便、效率、易用” 的方面来接入 AI 。我比较倾向于: https://plugins.jetbrains.com/plugin/14823-full-line-code-completion 这种,完全本地化运行,但是我没有这方面的经验
lozzow
20 天前
希望加入 Quake Mode

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1101966

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX