[Share Experiences] 深度终端deepin-terminal雷神模式quake去动画
Tofloor
poster avatar
deepin
2021-12-20 05:41
Author

初次修改软件编译,按照网友思路为UOS家庭版深度终端5.4.12版(amd64)去掉拖拖拉拉的动画,修改软件使得当雷神终端在不是当前激活界面,快捷键不聚焦到雷神终端,而是直接隐藏

我只有amd64 主机,其他版本系统和其他类型处理器的请自行尝试编译

参考原帖地址:https://bbs.deepin.org/post/209537

先上效果图

1) 查看当前版本

deepin-terminal -v

2) 下载对应版本源码并解压

https://github.com/linuxdeepin/deepin-terminal

3) 定位函数

vscode打开文件夹,搜索animation,定位到文件 /src/main/mainwindow.h 的两个函数

topToBottomAnimation

bottomToTopAnimation

4) 定位调用动画函数的函数

一、去掉隐藏时动画

搜索 bottomToTopAnimation

定位到文件 /src/main/mainwindow.cpp的函数

void QuakeWindow::hideQuakeWindow()

注释掉该函数中的

// bottomToTopAnimation();

并在函数内添加

this->hide();

二、去掉显示时动画

搜索 topToBottomAnimation

定位到 src/main/windowsmanager.cpp中两个函数

void WindowsManager::quakeWindowShowOrHide()

void WindowsManager::runQuakeWindow(TermProperties properties)

注释掉这两个函数中的

// m_quakeWindow->topToBottomAnimation();

三、如果有“当雷神终端在不是当前激活界面,快捷键不聚焦到雷神终端,而是直接隐藏”的需求的话

在文件 src/main/windowsmanager.cpp

的函数 void WindowsManager::quakeWindowShowOrHide()中注释掉下面代码

//终端未激活则激活

// if (!m_quakeWindow->isActiveWindow()) {

// m_quakeWindow->activateWindow();

// m_quakeWindow->focusCurrentPage();

// return;

// }

5) 编译

执行下面代码自动安装编译依赖包,注意有个小数点

sudo apt build-dep .

执行下面四句代码进行编译

mkdir build

cd build

cmake ..

make

等待编译完成,可在 build目录中找到 deepin-terminal文件

  1. 替换

备份原终端

sudo cp /usr/bin/deepin-terminal /usr/bin/deepin-terminal-bak

杀死终端进程

killall deepin-terminal

最后用文件管理器,右键管理员权限,复制编译好的 deepin-terminal文件到 /usr/bin目录即可

  1. 这里也为不想编译的同学提供一个我自己编译的版本

https://www.aliyundrive.com/s/R3yhcV8FMU3

注意UOS系统amd64位5.4.12版的才能替换我这个哦 ,其他版本建议自行编译

先备份好原来的版本,然后下载好了改名,添加可执行权限,移动到 /usr/bin目录即可

Reply Favorite View the author
All Replies
DebuggerX
deepin
2021-12-20 18:49
#1

like

但是每次更新都自己编译,确实还是太麻烦了,dtk依赖在其他发行版又不好搞,所以很难弄稳定的自动编译环境……

还是直接给官方提issue和pr吧,代码合进去了就一劳永逸了。。

https://github.com/linuxdeepin/deepin-terminal/issues/106

支持的朋友可以给上面的issue点个支持~

Reply View the author
DebuggerX
deepin
2021-12-20 18:51
#2
DebuggerX

like

但是每次更新都自己编译,确实还是太麻烦了,dtk依赖在其他发行版又不好搞,所以很难弄稳定的自动编译环境……

还是直接给官方提issue和pr吧,代码合进去了就一劳永逸了。。

https://github.com/linuxdeepin/deepin-terminal/issues/106

支持的朋友可以给上面的issue点个支持~

@壳 刚看到你的pr了😂

Reply View the author
deepin
2021-12-20 23:29
#3
DebuggerX

@壳 刚看到你的pr了😂

我还不会用github,不知道怎么弄的,就提交了一个pr,另一个修改找不到在哪儿了

Reply View the author
DebuggerX
deepin
2021-12-20 23:44
#4

我还不会用github,不知道怎么弄的,就提交了一个pr,另一个修改找不到在哪儿了

估计是因为你直接编辑的单个源文件,所以一次提交只会有当前文件的修改。

一般是两种模式:

  1. fork整个项目,然后把自己名下的仓库clone到本地,修改好所有代码后提交上传,然后创建pr,从自己仓库的修改分支提交到原仓库的活动分支。
  2. 直接在github里用新推出的在线版vscode,也就是在仓库页面下按键盘的‘。’键,在新弹出的vscode页面修改好所有的代码后创建分支提交并创建pr。
Reply View the author
deepin
2021-12-20 23:48
#5
DebuggerX

估计是因为你直接编辑的单个源文件,所以一次提交只会有当前文件的修改。

一般是两种模式:

  1. fork整个项目,然后把自己名下的仓库clone到本地,修改好所有代码后提交上传,然后创建pr,从自己仓库的修改分支提交到原仓库的活动分支。
  2. 直接在github里用新推出的在线版vscode,也就是在仓库页面下按键盘的‘。’键,在新弹出的vscode页面修改好所有的代码后创建分支提交并创建pr。

对对,我就是在线编辑的,我还以为fork之后是自己的项目了,修改不会传到主分支去呢,就直接修改提交了。

Reply View the author