挖井

类库大魔王的挖井日记

挖一口属于自己的井


TabPuTTY

之前很长一段时间都是用ConEmu来实现Tab化的PuTTY,后来由于发现PuTTY的屏幕刷新不如SecureCRT的快,最近用了一段时间的SecureCRT,不过又发现SecureCRT有两个很让我受不了的问题:

  • 如果屏幕输出内容又多又快时,整个程序会卡住
  • 如果一段时间不操作,常常会掉线,我没找到选项让它一直在线

所以我又想起PuTTY的好来。PuTTY对我来说最大的问题就是没有原生支持Tab多页面操作。倒是有很多第三方的工具可以把PuTTY窗口管理起来,就像ConEmu那样,不过仍然感觉不是很舒服。偶然发现了putty-nd,这哥们把PuTTY的代码改了合进去,从Chrome处抠了些代码实现Tab页面,倒是很符合我的要求了。之前用了一下发现使用proxy连接时,会crash。这点很要命,因为我从外面连接公司内网都是走http proxy的。于是下载代码来看看自己能不能改好,单步跟了一下很容易发现有个地方指针没赋值。之后又发现这哥们提供的工程文件只能用debug building,貌似这哥们提供的编译好的可执行文件他也是用debug build的,再用upx压缩了一下传网上的,只好再尝试改一下工程设置,其实很也简单,把各种配置包括各种路径,UNICODE/多字节编码,预定义宏,runtime链接库等等从debug variant复制粘贴到release variant就行了,当然有些小修改,比如DEBUG,_DEBUG之类的宏要换成NDEBUG等等,然后就可以编译出release的来了。结果编译出来静态链接了runtime库后,exe文件有2MB多,用UPX压缩一下也仍然有1MB左右。编译好的可执行文件点击这里下载。

这个小东西还有不少可以优化的地方,比如:

  • 合并最新的官方PuTTY源代码
  • 合并一些第三方的,没被官方接受的patch。前几天在网上瞎逛,发现各种PuTTY的fork,各种patch,最疯狂的是一个日本人的对render的patch,有GDI和Direct2D/DirectWrite两个版本。
  • 断开连接时可以自动关闭tab
  • 配置功能重构
  • 右键上下文菜单

等等等等。先放着吧。

本文地址:

https://minidump.info/blog/2015/01/tabputty/

上一篇

2014回顾,2015计划

2014年这么快过完了,真是有点不知所措,很多计划中的事情依然没有完成,甚至没有开始。2014年最值得一提的是,有三拨人来找我合伙做些东西。不过到现在只有第一个有点点进展,还是因为花了钱的缘故。2014年终于有iOS app上架了,但到目前为止只卖出8份,当然价格确实也不便宜,不过我真心希望这...…

Life 全文阅读
下一篇

想学一下Rust

Rust总用来跟C++,尤其是Go来对比。我也差不多学了并用了近一年的Go,基本上可以用来独自做些并不复杂的程序,最近特别想去学一下Rust,想看看到底和Go各有什么优缺点。不过Rust有几点阻碍了我学习的热情: 语言特性迟迟不能稳定下来,正式版本迟迟不能发布; 周边工具似乎还比较缺,比如...…

Coding 全文阅读