首页 > 其他分享 >deepinV23编译文件管理器改造

deepinV23编译文件管理器改造

时间:2024-02-08 10:11:23浏览次数:32  
标签:core dfmplugin 管理器 subdirectory sudo 编译 add deepinV23

1. 概述

本篇博客主要介绍在deepinV23和deepinV20.9上改造编译安装dde-file-manager的过程。

其中编译的过程,主要参考了:Deepin深度操作系统中编译和安装dde-file-manager-CSDN博客,感谢这位大佬的分享

自己改造的部分,主要是:

  • 增加文件管理器和桌面通过ctrl+d删除文件或目录
  • 增加桌面通过ctrl+shift+n创建目录

没有实现ctrl+shift+d彻底删除文件,因为这个自己不常用。有需要的同学可以根据本篇博客自行处理

2. 过程

2.1 下载源码

需要下载的源码包括三部分

2.2 安装依赖

首先参考源码包提供的README.zh_CN.md,执行sudo apt build-dep ./安装依赖

然后执行以下命令,安装其他依赖:

sudo apt install liblcms2-dev libopenjp2-7-dev libchardet-dev libudisks2-dev libisoburn-dev libmediainfo-dev fakeroot build-essential libfreetype6-dev

编译deepin-pdfium和util-dfm

#
cd deepin-pdfinum
dpkg-buildpackage -us -uc
sudo dpkg -i ../libdeepin-pdfium*.deb
#
cd ../util-dfm
dpkg-buildpackage -us -uc
sudo dpkg -i ../libdfm*.deb

编译过程中,缺少依赖环境会提示,继续安装即可

2.3 环境配置

首先修复qmake和lrelease路径问题

通过sudo find / -name qmake查找工具的真实路径,不然编译时qmake和lrelease会报错

我本机环境如下

sudo  ln -fs /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /usr/bin/qmake
sudo  ln -fs /usr/lib/x86_64-linux-gnu/qt5/bin/lrelease /usr/bin/lreleases

然后设置不编译保险箱:vim src/plugins/filemanager/CMakeLists.txt,注释add_subdirectory(dfmplugin-vault),如下

cmake_minimum_required(VERSION 3.10)

# add sub dir for business plugins

add_subdirectory(core/dfmplugin-core)
add_subdirectory(core/dfmplugin-recent)
add_subdirectory(core/dfmplugin-sidebar)
add_subdirectory(core/dfmplugin-titlebar)
add_subdirectory(core/dfmplugin-workspace)
add_subdirectory(core/dfmplugin-detailspace)
add_subdirectory(core/dfmplugin-computer)
add_subdirectory(core/dfmplugin-trash)
add_subdirectory(dfmplugin-search)
add_subdirectory(dfmplugin-optical)
#add_subdirectory(dfmplugin-vault)
add_subdirectory(dfmplugin-myshares)
add_subdirectory(dfmplugin-smbbrowser)
add_subdirectory(dfmplugin-avfsbrowser)

这个在20.9上需要配置,否则就会编译出来保险箱,23好像不用

假如编译出来保险箱,采用:sudo mv /usr/lib/x86_64-linux-gnu/dde-file-manager/plugins/filemanager-edge/ libdfmplugin-vault.so /usr/lib/x86_64-linux-gnu/dde-file-manager/plugins/filemanager-edge/ libdfmplugin-vault 即可

处理编译报错问题:

vim docs/CMakeLists.txt,注释最后一行

2.4 修改代码

2.4.1 文件管理器增加ctrl+d删除文件

vim ./src/plugins/filemanager/core/dfmplugin-workspace/utils/shortcuthelper.cpp

case Qt::Key_H上面加上一个case语句

case Qt::Key_D: {
    moveToTrash();
    return true;
}

2.4.2 桌面增加ctrl+d删除文件

vim ./src/plugins/desktop/core/ddplugin-canvas/view/operator/shortcutoper.cpp

case Qt::Key_ H上面加上一个case语句:

case Qt::Key_D:
	FileOperatorPorxyIns->moveToTrash(view);
	return true;

2.4.3 桌面增加ctrl+shift+n创建目录

vim ./src/plugins/desktop/core/ddplugin-canvas/view/operator/shortcutoper.cpp

大概在150行左右的 modifiers = (Qt::ControlModifier | Qt::ShiftModifiler)语句模块下修改,增加ctrl+shift+n的操作选项

if (key == Qt::Key_I) {
	view->d->keySelector->toggleSelect();
	return ture;
}
if (key == Qt::Key_N) {
	QPoint mousePos = QCurosor::pos();
	QPoint localPos = view->mapFromGlobal(mousePos);
	auto gridPos = view->d->gridAt(localPos);
	FileOperatorProxyIns->touchFolder(view, gridPos);
	return true;
}

这部分代码自己写的,专业不专业不知道,但是能用

2.5 编译安装

环境准备好,代码修改完成,准备编译安装。此时可以参考README.zh_CN.md依次执行

cmake -B build -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build #可以cmake --build build -j8,拉升编译速度
sudo cmake --build build --target install

2.6 重登录测试

3. 总结

v23beta3集成的文件管理版本为:dde-file-manager-6.0.40。版本有很多特性我和喜欢的

  • 通过shift+t,直接从终端打开当前路径
  • 增加了列表模式下显示子目录的特性
  • 修复了点击标记时,标记的文档角标颜色延迟出现的问题
  • 可定制的左侧栏
  • 代码更加整洁美观了

不喜欢的文管特性:

  • 点击选中以后的阴影有些重了,还是喜欢v20.9的清淡一些的

目前来说,deepinv23还不是我喜欢的样子,所以我把v23的文件管理拿到20.9上使用,同时增加了自己想要的功能,呜呼爽哉

标签:core,dfmplugin,管理器,subdirectory,sudo,编译,add,deepinV23
From: https://www.cnblogs.com/liwanliangblog/p/18011617

相关文章

  • 编译原理论述
    编译程序工作的几个阶段包括:词法分析(LexicalAnalysis):也称为扫描(Scanning)或词法扫描(LexicalScanning)。这个阶段的任务是从左到右一个字符一个字符地读入源程序,将其划分成一系列的记号(token)。每个记号由两部分组成,一个是记号本身,一个是记号的属性值(比如关键字、变量名、常量值、......
  • 如何基于 spdlog 在编译期提供类 logrus 的日志接口
    如何基于spdlog在编译期提供类logrus的日志接口实现见Github,代码简单,只有一个头文件。前提几年前看到戈君在知乎上的一篇文章,关于打印日志的一些经验总结;实践下来很受用,在golang里结构化日志和logrus非常契合,最常见的使用方式如下。logrus.WithField("addr","127.0......
  • LVM(逻辑卷管理器)
    目录一、LVM概述二、基本术语三、PE、PV、VG、LV之间的关系四、LVM的工作原理五、LVM的使用1、部署逻辑卷第一步:还原快照,并在虚拟机添加两块新硬盘设备,开机第二步:让新添加的两块硬盘设备支持LVM技术第三步:把两块硬盘设备加入到storage卷组中,查看卷组状态第四步:切割出一个148MB的逻......
  • 解决编译报错——too few arguments for template template parameter “Tuple“detec
    一般出现这种问题都是cuda、pytorch和vs版本没配对上。这里出现问题的文件为torch中的cast.h。我看网上很多给的解决方法是修改下面代码:template<template<typename...>classTuple,typename...Ts>classtuple_caster;template<typenameT1,typenameT2>classtyp......
  • Ubuntu安装PHP8.2 编译安装 oci8 pdo_oci扩展
    PHP8.2是PHP语言的最新版本。新特性包括,只读类,允许布尔值作为独立类型等。从mysqli中删除libmysql的支持等。时至今天,主流的HTTP服务器已不是Apache,我们推荐使用Nginx作为HTTP服务器,Nginx相对于Apache来说简单且性能更好。本教程将向您展示如何在Ubuntu20.04安装PHP8.2并将其......
  • 解决使用XYplorer代替系统资源管理器后无法打开控制面板的问题
    1.问题由于赋予了XYexplorer系统权限,每次打开一个文件夹都要提示是否允许来自未知发布者的此应用对你的设备进行更改,经查阅资料后采用以下方案:关闭win10安全警告但是出现新的问题:XYexplorer无法打开虚拟文件夹,如控制面板,垃圾回收站等等,当我们在此电脑中选择属性,会自动被XYplore......
  • app.json 中未定义自定义编译中指定的启动页面
    换了启动页,这里得手动改。。。。。。。。。。。[app.json或自定义编译条件错误]app.json中未定义自定义编译中指定的启动页面./pages/index/index(env:Windows),......
  • 用Java编译一个简单计算器
    作业写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。思路推荐:写4个方法,加减乘除利用循环+switch进行用户交互传递需要操作的两个数输出结构packagecom.hongyi.method;importjava.util.Scanner;//写一个计算器,要实现加减乘除功能,......
  • C#获得项目最后编译时间
    C#获得项目最后编译时间效果具体格式可以自定义核心代码stringGetCompileVersion(){stringOriginVersion=""+System.IO.File.GetLastWriteTime(this.GetType().Assembly.Location);intMsgCnt=0;stringyear="";stringmonth="";......
  • 编译安装LAMP环境及wordpress部署
    一、安装背景及任务需求1.LAMP简介LAMP是公认的最常见、最古老的黄金Web技术栈Linux操作系统Apache/Nginxweb服务器作用是将HTTP请求从前端转发到后端应用上Mysql/MariadbMysql是一款数据库管理系统,也就是一个存储数据的工具,用户可以自行对数据库进行增加、删除......