andktan
deepin
2022-03-13 07:09 
Reply Like 0 View the author

bug 找到并且修好了。 窗口位置计算逻辑出错了。MainWindow::eventFilter, "Select the first window where the mouse is located" 下面的代码。有时间我提交PR,有时间后续开帖写过程。
bug 找到并且修好了。 窗口位置计算逻辑出错了。MainWindow::eventFilter, "Select the first window where the mouse is located" 下面的代码。有时间我提交PR,有时间后续开帖写过程。
赞,楼主写的很好。我们马上就开始着手把各个项目的readme都更新一下,让它能起到真正的作用
build-dep 这个确实很好用,我一般 sudo apt-get build-dep . 就不需要一个个看报错下载依赖包了
看的津津有味,过程真是一波三折啊,谁能想到有用户会用6块4K的显示屏啊,这得多好的主机才带的动啊。。。
这个库在哪里下载的,有人知道吗?
Popular Ranking
ChangePopular Events
More
出发点
发帖子的时候,发现deepin自带的截屏工具在自己的电脑上工作不正常。确认了一下,自己是最新的版本,确认是一个目前存在的bug了。想着自己怎么的也是一个程序员,改bug最熟练了,而且这应该是一个开源的工具,那么就自己改一改。虽然没有任何的上下文。
俗话说满桶不会响,半桶响叮当。我这个半桶水希望能够记录下来,自己试图解决这样一个bug过程中,遇到的问题。或许其它开发者看到,不说改进,算是帮人蹚雷吧。
bug 描述
如果点击的截图,会保留高亮区域的一部分(如下图所示)
高亮区域和原始窗口位置,不是简单的偏移关系。在不同显示器上(我有多台显示器),偏移的相对关系不一致。有的会到另一个显示器的对应位置,有的会偏移一部份。
具体的配置过程
既然确定了是有bug,下一步就是看源码。这里我遇到了第一个问题,哪里能够找到源代码?
我首先就是想到了到官网找。然后我找到了深度官网深度截屏的 介绍页,在介绍页上,看到了deepin-screenshot,不过可惜,项目已经被存档,不再更新了。后来从官网的介绍页上,找到了screen-recorder
的github地址。可惜,这个github地址依然是readonly的,不是项目地址。后来,在论坛发帖,感谢@deepin-superuser , 给我提供了正确的项目地址。 终于,找到了正确的项目地址。同时也确认了deepin开源项目,目前在github上是在linuxdeepin这个组织下。
对于不会爬墙的同学,我也不知道怎么爬墙。项目组的人估计知道,好奇的同学问他们去吧。找到了代码库, 拉到本地,首先是找开发者文档。 README上有开发者文档的链接,我很开心,点开后,发现高兴得太早了…… 用户文档和开发者文档的链接,早已失效。而且,在这个深度的wiki上,我找不到任何有用的项目引导信息。再次感谢@deepin-superuser,给我提供了开发者引导 , 和 DTK引导页 。非常有帮助。没有这两个链接,我会走很多弯路。当然,这两个链接都是github host的。
终于,代码拉到本地了。我要做的第一件事,是在本地构建最新的项目,并且复现问题 。要构建项目,我需要确认项目是什么语言什么框架的项目。我看到了 .pro 结尾的文件,确认了是QT的项目(碰巧,之前接触过qt5,刚好认识),那我首先要做的,就是准备qt5的环境。
我马上就上了qt官网,下载了QT5.12的opensource offline安装包。可是,即使我注册了用户,也没有办法进行安装,说不能混用协议等等(估计和我使用163邮箱有关。网易是有商业的qt项目的)。所以我只好下载了源码包,手动编译。
在等待漫长地编译过程中,我搜了一下deepin商店的图形化安装,看了一下评论,说版本很老旧,放弃。又在论坛上搜了一下,看到有人说可以用apt安装,顿时有了兴趣。同时,我也翻到了统信的DTK文档,里面刚好有apt 安装qt的指引,那就大致按照这个流程来走了。
进入项目目录后,按照项目README里写的,执行
一点都不意外的,构建失败了。错误信息如下。
看了错误信息,那一个一个修。目前的错误,看起来是有依赖包没有安装好。依次解决,每次安装依赖之后,重新执行一次make:
系统包的依赖解决之后,留下了QT有模块找不到的问题。这几个包的名字,头两个,看起来像是dtk的包。按照UOS的dtk安装教程 , 配置好项目。
在qtcreator构建好这几个项目之后,构建recorder出现的新的错误信息。搜了一下dde-dock的文档,找到了安装指令。图省事,直接安装包,就不从源码构建了。
接着出现错误,X11/extensions/record.h 找不到。依赖包都安装了。我找了一下,这个文件在我本地的 /usr/include 目录下有,但是项目找不到。只好在qtcreator里,多设置了环境变量。
终于,构建成功了!!!!!
同时,运行项目,成功复现了bug。心力交瘁呀!
实用小技巧
心路历程和感受
整个安装和配置的过程,遇到了各种各样的依赖问题。开发者文档的缺失,没有一个手把手传递上下文的开发,开发环境的初始配置,对于我这样的新人,是非常具有挑战性的。对于一个项目,在进行一段时间之后,非常容易留下初始化的坑,毕竟已经在项目里的人,是跟着项目一起推进的,直到有一个新人加入,才会遇到很多配置上的问题。这篇文章配置过程,全程都是在一台干净的deepin 20.04环境的实体电脑下完成。
对于一个开源项目来说,如果每一个想贡献代码的人,都需要花费数个小时,才能够构建初始环境,是非常痛苦的。更不要说,官网找了好几个链接,都不是真正的项目链接,按照README的流程没有办法从零构建项目。
希望官网以后链接能够及时更新,每个开源的代码库更加独立,每个代码库都有一个开箱即用的开发环境初始脚本。加油!