1 Star 0 Fork 0

liushixiong / platypus

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

简体中文 | English

GitHub release

1、是什么?

platypus 是一个对git bash窗口的管理,效果就是类似chrome浏览器那样,对bash窗口进行管理,可以随意的切换和创建。 目前支持windows x64。 为什么仅支持Windows x64? 因为其他的平台不需要😊,mac && linux都自带了更好用的bash,体验也很好。

在使用此软件之前,你需要自行安装git bash。我相信你已经安装过了。😊

软件截图:

用法:

1、开箱即用,双击platypus.exe即可运行。前提是你需要手动安装git bash。

2、快捷键支持,支持配置文件。配置文件名称:config.json,和platypus.exe在同级目录下。

为了避免和git bash的功能有冲突,建议你关闭git bash 的快捷键处理。

3、一些方便的脚本:

所有的脚本都是sh脚本,放在platypus.exe 同级目录下的ext_shell里面。

打开platypus.exe后,cd到ext_shell,执行source ./install.sh 就会自动安装脚本

2、为什么写这个软件?

我尝试很多的软件,都不尽如人意。比如powershell,在powershell可以使用git bash。但是体验不好,比如我不能使用bash的快捷键。

这对我来说很受打击。

再比如在vs code中也集成了git命令,体验也达不到原生的bash。

mintty其实本身也支持tab管理,但是效果需要提升。

其实我是把git bash的作用完全扩大化了,不再把他当作一个源码管理命令行,而是完完全全的linux的bash。

这样可以给我工作效率的提升。

我本人一直在做windows的开发,其实我对linux十分感兴趣,所以对命令行有种青睐的感觉。

3、如何编译

此软件是基于Qt 5.15.2版本开发的,当然你可以使用更高的版本。

IDE: vs2019 c++20

notice: 因为现在估计开发者很少用x86 os,所以我着重测试了x64环境,你在编译的时候需要选择x64模式。

4、简单介绍原理

这里我介绍几个技术点:

1、如何获取mintty.exe 的标题栏信息:

利用线程注入技术,将dll通过windows API注入mintty.exe。

2、如何将mintty.exe窗口嵌入到我们自己的程序中:

利用Qt API。

3、如何获取触发的快捷键:

利用键盘hook,监听全局的键盘消息。notice:但是我过滤算法很差劲,效果并不很好。

4、进程间通信:

剩下的感兴趣就自己看下代码吧。😄,hava fun.

5、要做的事情很多

TODO:

  • 1、需要支持扩展命令

解决方案:使用sh脚本启动exe,进行进程间通信传递命令

  • 2、优化键盘过滤算法

  • 3、有时候不能获取mintty窗口

  • 4、IPC稳定性需要加强

  • 5、tab 窗口需要重构

  • 6、将错误的消息放到消息队列中处理

如果你感兴趣,有想法,希望你来一起参加。

MIT License Copyright (c) 2023 刘世雄 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

manager git bash window 展开 收起
C++ 等 6 种语言
MIT
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/liushixiong/platypus.git
git@gitee.com:liushixiong/platypus.git
liushixiong
platypus
platypus
main

搜索帮助

53164aa7 5694891 3bd8fe86 5694891