开源 ssh 客户端:支持自定义主题和颜色,看看你喜欢哪一种? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
LonnyWong
V2EX    程序员

开源 ssh 客户端:支持自定义主题和颜色,看看你喜欢哪一种?

  •  1
     
  •   LonnyWong 2024-01-22 08:24:35 +08:00 7157 次点击
    这是一个创建于 634 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • trzsz ssh ( tssh ) 是个 ssh 客户端,但不是一个终端,而是运行在其他终端的本地 shell 里的 ssh 程序,扩展了 ssh 的功能,协助其他终端提供更好的使用体验,开源地址:https://github.com/trzsz/trzsz-ssh

    • 在开源立项时,我随便写了个主题风格,并没有花太多精力去美化它(想着多人用了再说),而将更多的精力投入到内在美(功能)。现在 GitHub Star 超过 1K 了,是时候打扮的漂漂亮亮的了。

    • 开始选用了 promptui 实现 TUI 界面,后来发现 bubbletea 更强大,更新更积极,但我不想放弃已写的代码,于是就再次魔改 promptui,让它支持 lipgloss,完美解决。

    • 写了三个主题风格,抛砖引玉,我觉得还是不够漂亮,但是我的美术水平有限,期待大家一起来贡献更多漂亮的主题风格,让用户选的“眼花缭乱”。

    • 每个人的审美都不太一样,这里请大家帮忙选出一个最好看的,设为默认值。等以后有人设计出更漂亮的,默认值会根据投票数量进行修改。

    • 主题风格的颜色是可以自定义的,并且与终端的设置有关,除了看我的录屏,最好是自己安装来试试,go install github.com/trzsz/trzsz-ssh/cmd/tssh@main 然后运行 ~/go/bin/tssh

    • 投票链接:https://github.com/trzsz/trzsz-ssh/issues/75

    • 请大家在 V2 讨论,在 issue 里的评论会被我删除,为以后大家贡献的新主题风格预留位置。锁定 issue 好像就不能投票了?

    • tiny 小巧风 https://trzsz.github.io/images/tssh_tiny.gif tiny theme

    • simple 简约风 https://trzsz.github.io/images/tssh_simple.gif simple theme

    • table 表格风 https://trzsz.github.io/images/tssh_table.gif table theme

    65 条回复    2024-11-05 22:04:28 +08:00
    rihkddd
        1
    rihkddd  
       2024-01-22 08:43:23 +08:00
    tiny 一票
    LonnyWong
        2
    LonnyWong  
    OP
       2024-01-22 08:50:01 +08:00
    @rihkddd 不是 table 比较惊艳吗?
    jeanz
        3
    jeanz  
       2024-01-22 09:11:54 +08:00
    tiny +1
    另外两个感觉太空了,信息密度不高
    afutureus
        4
    afutureus  
       2024-01-22 09:20:01 +08:00
    tiny + 1
    LonnyWong
        5
    LonnyWong  
    OP
       2024-01-22 09:22:55 +08:00 via iPhone
    @rihkddd
    @jeanz
    @afutureus

    不是吧?大家这么一致的审美?

    开始的版本就跟 tiny 差不多,我觉得有一点点密了,就简单搞了个 simple 出来,然后又觉得有一点疏了,就想着中间填充一些细线,搞了个 table 出来。

    这就纠结了,默认哪个呢?我更期待有人一起来设计更好看的主题。
    sjtulyj
        6
    sjtulyj  
       2024-01-22 09:28:22 +08:00
    装好 tssh 后没有 trz tsz 命令怎么解决 ?
    shiyuu
        7
    shiyuu  
       2024-01-22 09:30:04 +08:00
    我是 MobaXterm+WindTerm
    LonnyWong
        8
    LonnyWong  
    OP
       2024-01-22 09:36:55 +08:00
    @sjtulyj 我这次还花了很长的时间重写了文档,在 https://github.com/trzsz/trzsz-ssh 中找 trzsz ( trz / tsz ) 那个中文链接。

    简单说,就是服务器上要安装 trzsz ,建议安装 go 版,开源地址: https://github.com/trzsz/trzsz-go


    <https://github.com/trzsz/trzsz-ssh/blob/main/README.cn.md#%E6%94%AF%E6%8C%81-trzsz>
    LonnyWong
        9
    LonnyWong  
    OP
       2024-01-22 10:15:53 +08:00
    @shiyuu #7 试用一下 trzsz-ssh ( tssh ) 可能会发现新大陆?支持在任意有本地 shell 的终端中使用。

    PS:本地 shell 是指正常的,例如原生终端等。不是 xshell 那种阉割的本地 shell 。
    Maysec
        10
    Maysec  
       2024-01-22 10:24:44 +08:00
    tiny 很棒!
    weilongs
        11
    weilongs  
       2024-01-22 10:47:43 +08:00
    喜欢 tiny , 但是我第一次使用这个。我在配置文件写入好像没变化。不清楚怎么去体验到。
    AmaQuinton
        12
    AmaQuinton  
       2024-01-22 10:50:55 +08:00
    windows 安装 tssh ,trz 上传第二个文件时会闪退、上传第一个文件没问题;会偶现鼠标键盘操作无效,过一会儿在任务管理器里面关闭 Terminal 才能解决

    在 intellij idea 里面看日志使用 tssh 很方便,上传文件又换回了 xshell 、xftp 组合
    LonnyWong
        13
    LonnyWong  
    OP
       2024-01-22 10:54:16 +08:00
    @weilongs #11 新的功能还没发布,还在 main 分支中。
    你这样安装 go install github.com/trzsz/trzsz-ssh/cmd/tssh@main 然后运行 ~/go/bin/tssh ,就可以体验到了。
    LonnyWong
        14
    LonnyWong  
    OP
       2024-01-22 10:56:43 +08:00
    @AmaQuinton 闪退时,有错误输出吗?提个 issue ?

    tssh -v 看看是哪个版本?
    tssh 是直接登录到服务器,还是有经过跳板机?
    有没有 ProxyCommand 之类使用代理?
    weilongs
        15
    weilongs  
       2024-01-22 11:20:56 +08:00
    @LonnyWong 哦 我还以为我操作问题。那没事,我就暂时默认主题。等正式版发了再体验主题。tiny 我喜欢,哈哈。
    AmaQuinton
        16
    AmaQuinton  
       2024-01-22 11:43:15 +08:00
    @LonnyWong #14 issue 已提交
    LonnyWong
        17
    LonnyWong  
    OP
       2024-01-22 12:05:34 +08:00
    @AmaQuinton 感谢反馈。换一个文件也会这样?
    sjtulyj
        18
    sjtulyj  
       2024-01-22 12:47:26 +08:00
    @LonnyWong trzsz trzsz-ssh 这些名字也太像了, 根本不知道是同一个软件的不同语言版本还是不同软件
    LonnyWong
        19
    LonnyWong  
    OP
       2024-01-22 13:00:15 +08:00
    @sjtulyj #18 先有 trzsz ( trz / tsz ),后有 tssh ,就是支持 trzsz 的 ssh 。

    本地安装 go 版 trzsz 后,trzsz ssh 这样运行也是可以的,是运行的 trzsz 程序,然后调用 ssh 子程序。

    tssh 是自己实现了 ssh 的功能,然后内置了 trzsz 的功能,都是 go 写的,实际上也是将 trzsz 作为一个 package 来依赖的。
    sjtulyj
        20
    sjtulyj  
       2024-01-22 13:02:07 +08:00
    @LonnyWong 有没有可能 trz tsz tssh 都放在一个仓库里, 3 个一起装 ?
    nxuu
        21
    nxuu  
       2024-01-22 13:02:43 +08:00
    webssh
    sjtulyj
        22
    sjtulyj  
       2024-01-22 13:03:05 +08:00
    或者一行命令全装上
    sjtulyj
        23
    sjtulyj  
       2024-01-22 13:05:11 +08:00
    或者一行命令 3 个全装上
    LonnyWong
        24
    LonnyWong  
    OP
       2024-01-22 13:05:37 +08:00
    @sjtulyj #22 一般来说,是本地安装 tssh ,远程服务器安装 trzsz 就够了。
    LonnyWong
        25
    LonnyWong  
    OP
       2024-01-22 13:07:02 +08:00
    @sjtulyj 本地不需要安装 trz tsz ,所以没放在一个包里。
    LonnyWong
        26
    LonnyWong  
    OP
       2024-01-22 13:10:18 +08:00
    @nxuu #21 tssh 是用 go 写的,可以编译成 wasm ,然后运行在 web 浏览器里。不过,我还没空去研究,可能还要想办法解决读取 ~/.ssh/config 的问题吧,私钥不能读取,只能手输密码登录?
    sjtulyj
        27
    sjtulyj  
       2024-01-22 13:19:25 +08:00
    @LonnyWong 我倒是不介意多装
    LonnyWong
        28
    LonnyWong  
    OP
       2024-01-22 13:26:33 +08:00
    @sjtulyj 你可以一行命令安装的,如:

    brew install trzsz-ssh trzsz-go

    scoop install tssh trzsz

    brew 中,tssh 名字被占了,所以用全名,trzsz 被我自己的 python 版 trzsz 占了,所以加个 -go 后缀。其他基本都是 tssh 和 trzzz 这两个名字。
    LonnyWong
        29
    LonnyWong  
    OP
       2024-01-22 13:28:15 +08:00
    #28 最后的 trzzz 输入错误,是 trzsz 哈。
    timnottom
        30
    timnottom  
       2024-01-22 13:41:44 +08:00
    插楼问一下,能不能在第一次使用 tssh 连接后,自动保存连接信息到~/.ssh/config ?
    LonnyWong
        31
    LonnyWong  
    OP
       2024-01-22 13:45:40 +08:00
    @timnottom 你可以在第一次用 tssh --new-host 登录,就会保存到 ~/.ssh/config 中。
    timnottom
        32
    timnottom  
       2024-01-22 13:55:50 +08:00
    @LonnyWong #31 比如说,我连接信息有变(例如端口号变了),怎样通过 tssh 更新 config ?

    ps:windows 下,着实不想手动打开 config 文件
    LonnyWong
        33
    LonnyWong  
    OP
       2024-01-22 13:59:13 +08:00
    @timnottom 这个现在还不支持哈,或者实现一个 tssh --edit-host 的功能?
    zlhsvc
        34
    zlhsvc  
       2024-01-22 14:06:28 +08:00
    tiny +1
    个人感觉简单实用就好,表格的好看是好看,但用起来信息密度不够,而且有的情况下样式会乱
    timnottom
        35
    timnottom  
       2024-01-22 14:09:17 +08:00
    @LonnyWong #33 我看行,windows 下修改 config 文件要点很多次鼠标,很烦
    LonnyWong
        36
    LonnyWong  
    OP
       2024-01-22 14:17:26 +08:00
    @timnottom Windows 也有 vim 和 nvim 的,不过我用起来感觉还是没有 Linux 和 Mac 的舒适,可能是我没花什么时间去配置它吧。
    nuII
        37
    nuII  
       2024-01-22 14:24:29 +08:00
    table 的表格框太大了,我个人来说 terminal 界面下信息越聚集越好,其他两个列没对齐是个减分项
    LonnyWong
        38
    LonnyWong  
    OP
       2024-01-22 15:21:19 +08:00
    @nuII 好吧,表格对齐不是很好搞,有空时再研究研究。
    rihkddd
        39
    rihkddd  
       2024-01-22 15:48:54 +08:00   1
    @LonnyWong #2 打开 tssh 之后,最快能登录上机器就是最好的体验,一般来说大部分手里十几个机器的情况,tiny 提供了比较高的信息密度,在视野中心区域就能放下所有的机器。我觉得配色之类的不是关键,因为这个界面不是需要长时间停留的(反过来说停留时间太长,反倒是说明功能没做好)。
    kneo
        40
    kneo  
       2024-01-22 16:42:27 +08:00 via Android
    体验都很糟糕。第一个相对好点。
    主要问题是:过滤的时候,底下的 ssh details 跟着一起上下动,右边的 enter to lock 也在左右动。
    相对来说,是表格还是列表,间距是否紧凑,反而都是次要的。
    broken123
        41
    broken123  
       2024-01-22 17:13:01 +08:00
    我用 Warp
    programMrxu
        42
    programMrxu  
       2024-01-22 17:18:13 +08:00
    感觉 tiny 比较好
    LonnyWong
        43
    LonnyWong  
    OP
       2024-01-22 17:36:13 +08:00
    @broken123 #41 tssh 支持在 warp 中使用的,专门为它写了文档。
    sjtulyj
        44
    sjtulyj  
       2024-01-22 18:01:10 +08:00
    放在以前我会用,
    不过现在用 `wezterm ssh` , 冲突了
    LonnyWong
        45
    LonnyWong  
    OP
       2024-01-22 20:38:09 +08:00 via iPhone
    @sjtulyj #44 tssh 与 wezterm 冲突?没有吧。
    sjtulyj
        46
    sjtulyj  
       2024-01-22 21:25:42 +08:00
    `wezterm ssh` 和 tssh 是竞争关系
    LonnyWong
        47
    LonnyWong  
    OP
       2024-01-22 21:33:19 +08:00 via iPhone
    @sjtulyj #46 竞争关系?看来你还是没看懂我本贴的第一句啊。

    wezterm 和 tssh 不是竞争关系,你可以 wezterm tssh 这样用的。tssh 和绝大部分终端都不是竞争关系,是合作关系。

    你如果说 ssh 和 tssh 是竞争关系,那还勉强说的通,但 tssh 也不是要跟 ssh 争,是力求兼容 ssh 的。
    sjtulyj
        48
    sjtulyj  
       2024-01-22 21:47:53 +08:00
    @LonnyWong 不知道你有没有用过 wezterm connect, wezterm ssh
    其实就是 ssh 客户端的选择
    lstz
        49
    lstz  
       2024-01-22 22:00:15 +08:00
    tiny 更喜欢
    LonnyWong
        50
    LonnyWong  
    OP
       2024-01-22 22:03:02 +08:00 via iPhone
    @sjtulyj #48 你把 tssh 重命名为 ssh ,然后放到 /usr/local/bin/ 下,然后用 wezterm connect 看看会不会调起 tssh ? trz tsz 是不是能传文件?

    另外,把 wezterm ssh 中的 ssh 换成 tssh ,即 wezterm tssh 是不是也一切正常,并且支持 trz tsz 传文件?
    yechentide
        51
    yechentide  
       2024-01-22 22:07:31 +08:00
    看到 TUI 的部分感觉有点眼熟,果然是 bubbletea 哈哈
    LonnyWong
        52
    LonnyWong  
    OP
       2024-01-22 22:13:32 +08:00 via iPhone
    @yechentide tiny 和 simple 是 promptui
    addenvex
        53
    addenvex  
       2024-01-22 22:58:42 +08:00
    tiny+1
    hermanarturo
        54
    hermanarturo  
       2024-01-22 23:17:11 +08:00
    tiny + 1
    LonnyWong
        55
    LonnyWong  
    OP
       2024-01-23 09:04:35 +08:00 via iPhone
    这次更新,除了个提供多种主题可选外,最大的特点就是颜色支持自定义,大家无需再看我乱选的颜色了,可以按自己的喜好来设置。
    sjtulyj
        56
    sjtulyj  
       2024-01-23 09:19:04 +08:00
    @LonnyWong fail
    shervy
        57
    shervy  
       2024-01-23 12:24:28 +08:00 via iPhone
    terminus
    Achophiark
        58
    Achophiark  
       2024-01-23 16:30:37 +08:00 via Android
    tiny 还是顺眼
    sungo
        59
    sungo  
       2024-01-23 19:35:36 +08:00 via Android
    遇到过假死的情况,就是上传文件时
    LonnyWong
        60
    LonnyWong  
    OP
       2024-01-23 19:47:10 +08:00
    @sungo 能复现不?是否有超时退出了?大约 20 秒。网络可能突然中断了,那是没办法的,有正常超时退出就好。
    Ehco1996
        61
    Ehco1996  
       2024-01-24 09:03:01 +08:00
    点个赞 感谢付出
    xycost233
        62
    xycost233  
       2024-01-24 09:46:15 +08:00
    tiny + 1
    molezznet
        63
    molezznet  
       345 天前
    10M 确实小巧,有没有可能设置读取当前 exe 程序所在目录 config 和私钥, 想作为 u 盘便携工具带着维护 ……
    LonnyWong
        64
    LonnyWong  
    OP
       345 天前
    @molezznet 可以 -F 指定配置文件,-i 指定私钥文件。
    molezznet
        65
    molezznet  
       345 天前
    @LonnyWong 好使方便,弄成 bat 带着跑。
    readme 里好像真没你说的这个法子
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3744 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 00:51 PVG 08:51 LAX 17:51 JFK 20:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86