【小白课程】如何在openKylin上个性化定制开关机动画

开关机动画是Linux系统的重要组成部分,其主要功能是在Linux内核启动的早期遮盖内核打印日志,并在内核刷新屏幕分辨率时保证屏幕显示的流畅性。

其中,openKylin操作系统使用plymouth组件作为开关机动画显示程序。Linux系统在启动时,从加载内核到进入登录界面时会进行多次屏幕刷新,影响观感,plymouth通过内核中对“内核模式设置”(Kernel Mode-Setting),能够向用户提供一个更加流畅和连续的开关机观感体验。

一、plymouth的功能

plymouth支持开关机动画定制,通过添加自定义的图片和脚本,用户可以使用自己定制的开关机动画,实现多样化的开关机体验。同时,当需要进行长时间的后台操作(如系统安装、备份)时,可以手动执行命令启动plymouth程序显示动画界面,实时显示进度等信息,同时能够避免在后台操作运行期间用户进行其他操作,保证后台操作不受干扰。

二、如何自定义开关机动画

1.查看plymouth主题相关内容的存放位置

/usr/share/plymouth/themes/目录下存放了各个主题包的素材,以openKylin-logo主题为例,下图是/usr/share/plymouth/themes/openkylin-logo下的内容:

其中,所有的png文件为plymouth动画显示需要的序列帧和显示其他信息(如进度)所需的素材:

openkylin-logo.plymouth文件记录了openKylin-logo主题所需的图片和脚本的路径,如图:

openkylin-logo.script为openkylin-logo主题的运行脚本,包含了该主题的所有显示逻辑。

2.创建自己的主题目录

创建目录:

mkdir /usr/share/plymouth/themes/mytheme

3.在新添加的主题目录中添加自己的素材

添加动画所需的png图片,创建mytheme.plymouth,如图:

创建mytheme.script,内容可参考openkylin-logo.script内容。

4.修改配置文件和显示脚本

在mytheme.plymouth中,指定/usr/share/plymouth/themes/mytheme为图片存放路径,指定/usr/share/plymouth/themes/mytheme.script为显示脚本。根据实际需要,修改mytheme.script脚本。

5.注册配置文件信息

执行命令:

sudo update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/mytheme/mytheme.plymouth 160
sudo update-alternatives --set default.plymouth /usr/share/plymouth/themes/mytheme/mytheme.plymouth

6.更新initramfs

执行命令:

sudo update-initramfs -u

7.重启系统

重启系统后即可使新的自定义主题生效

8.修改前后对比

修改前的开关机动画:

修改后的开关机动画:

三、如何快速修改系统开关机主题

如果需要快速修改系统开关机主题,可以直接将自定义的序列帧图片1.png~72.png复制到/usr/share/plymouth/themes/openkylin-logo/下,替换原有图片(注意,自定义图片数量和序号要和原有文件数量和序号一致,如果原主题有1.png~100.png共一百张图片,则自定义的图片也需要有命名为1.png~100.png的一百张图片),然后执行sudo update-initramfs -u,重启后即可使新主题生效。需要说明的是,这样修改后,旧主题的内容将会被覆盖,不能恢复。

参考资料

plymouth官方网站:

https://www.freedesktop.org/wiki/Software/Plymouth/

plymouth脚本语法:

https://www.freedesktop.org/wiki/Software/Plymouth/Scripts/

plymouth源代码地址:

https://gitlab.freedesktop.org/plymouth/plymouth

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机SCI期刊,中科院2区,收稿范围非常广泛!

一、期刊名称 Journal of Web Semantics 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:2.5 中科院分区:2区 出版方式:开放出版 版面费:$1600 三、期刊征稿范围 《网络语义学杂志》…

【软件测试】5.测试用例

目录 1.测试用例 1.1概念 1.2测试的要素 2.测试用例的万能公式 2.1常规思考逆向思维发散性思维 2.2万能公式 2.2.1功能测试 2.2.2界面测试 2.2.3性能测试 2.2.4兼容性测试 2.2.5易用性测试 2.2.6安全测试 2.3弱网测试 1.测试用例 1.1概念 什么是测试用例&#xf…

Jenkins 构建 Web 项目:构建服务器和部署服务器分离的情况

构建命令 #!/bin/bash node -v pnpm -v pnpm install pnpm build:prod # 将dist打包成dist.zip zip -r dist.zip dist

软件项目运维方案-word原件2024

1. 文档介绍 1.1 文档目的 1.2 文档范围 1.3 读者对象 1.4 参考文献 1.5 术语与缩写解释 2. 人员与责任 2.1 项目建设管理机构 2.2 驻场人员工作时间 2.3 人员培训 2.3.1. 培训需求管理 2.3.2. 培训内容管理 2.4 绩效考核 3. 运维过程内容 3.1. 运维模型 3.2. P…

LangChain - 概念指南

文章目录 一、Architecture1、langchain-core2、partner-packages3、langchain4、langchain-community5、langgraph6、langserve7、langsmith 二、浪链表达语言(LCEL )可运行界面 runnable-interface 三、组件 components1、聊天模型 chat-models2、 LLM…

工程机械租赁平台数字化平台系统油耗与排放管理创新与应用

在快速发展的城市建设和基础设施项目中,工程机械扮演着举足轻重的角色。随着工程规模的扩大和施工技术的不断进步,工程机械租赁平台应运而生,为建设项目提供了灵活高效的解决方案。然而,随着租赁机械数量的增加,如何有…

【GO基础】GO基础语法一

GO基础语法一 一、编写第一个Go程序1、基本程序结构2、应用程序入口3、退出返回值4、获取命令行参数 二、变量,常量以及与其他语言的差异1、编写测试程序2、实现Fibonacci数列3、变量赋值4、常量定义 三、数据类型1、类型转化2、类型的预定义值3、指针类型 四、运算…

微信小程序仿胖东来轮播和背景效果(有效果图)

效果图 .wxml <view class"swiper-index" style"--width--:{{windowWidth}}px;"><image src"{{swiperList[(cardCur bgIndex -1?swiperList.length - 1:cardCur bgIndex > swiperList.length -1?0:cardCur bgIndex)]}}" clas…

【四数之和】python,排序+双指针

四层循环&#xff1f;&#xff08;doge) 和【三数之和】题目很类似 class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:nums.sort()#a,b,c,d四个数&#xff0c;先固定两个数&#xff0c;那就是双指针问题了&#xff0c;令ba1&#xff…

关于搜索引擎链路

一、搜索引擎的的链路 简单流程如下&#xff0c;一般都包括query理解&#xff0c;召回&#xff0c;粗排&#xff0c;精排&#xff0c;重排。 二、query理解&#xff0c;查询词处理 对于进来的query需要有很多道工序做处理。才能让搜索引擎的效果更好、更智能。 2.1 分词 分词…

Ubuntu18.04 OpenSSH升级

升级前版本&#xff1a; rootecs-m2eqyb:/opt# ll total 20912 drwxr-xr-x 2 root root 4096 May 10 16:23 ./ drwxr-xr-x 24 root root 4096 May 10 14:38 ../ -rw-r--r-- 1 root root 1848766 May 10 16:23 openssh-9.7p1.tar.gz -rw-r--r-- 1 root root 18038…

离散数学--图论

目录 1.简单概念 2.握手定理 3.点割集 4.边割集 5.点连通度和边连通度 6.Dijstra算法&&最短路径 7.有向图的连通性 8.图的矩阵表示 9.欧拉图问题 10.哈密尔顿图 1.简单概念 &#xff08;1&#xff09;这个里面的完全图比较重要&#xff0c;完全图是例如k3,k5这…

JMETER工具:以录制手机app为例

JMETER工具&#xff1a;以录制手机app为例子 JMETER安装和环境配置 pc需要安装jdk&#xff0c;并进行jdk的环境配置&#xff0c;安装好jdk并配置好后&#xff0c;通过命令行输入java –version出现以下界面就表示安装成功&#xff1a; &#xff08;对应的jdk版本不可太低&…

selenium环境安装和web自动化基础

webUI自动化背景 因为web页面经常会变化&#xff0c;所以UI自动化测试的维护成本很高。不如接口的适用面广&#xff0c;所以大部分公司会做接口自动化测试&#xff0c;但是未必会做UI自动化测试&#xff1b; UI自动化测试要做也是覆盖冒烟测试&#xff0c;不会到很高的覆盖率&a…

Flink常见面试题总结

文章目录 1. 简单介绍一下Flink2. Flink 的运行必须依赖Hadoop组件吗?3. Flink 和 Spark Streaming 的区别&#xff1f;4. Flink集群角色5. Flink核心概念5.1 并行度5.2 算子链&#xff08;Operator Chain&#xff09;5.3 任务槽&#xff08;Task Slots&#xff09;5.4 任务槽…

掌握Go语言中的net/http包:编写高性能Web服务

掌握Go语言中的net/http包&#xff1a;编写高性能Web服务 引言HTTP服务器构建基础服务器设置路由与处理函数中间件使用高级配置&#xff08;如TLS/SSL&#xff09; HTTP客户端开发创建与使用HTTP客户端处理响应 高级客户端特性 处理JSON与表单数据接收与解析JSON接收与解析表单…

实现一个自定义 hook,用于强制刷新当前组件

写在前面 在 react 中&#xff0c;如果 state 数据发生变化&#xff0c;我们知道&#xff0c;会重新渲染该组件。 但是这个前提是我们需要依赖 state 数据的变化&#xff0c;那比如我们并不想定义 state&#xff0c;又或者说我们的操作不能引起 state 的变化&#xff0c;此时…

无人机行业招投标技术详解

一、招标流程与原则 无人机行业的招投标流程通常包括招标公告发布、招标文件购买与审查、投标单位资格预审、投标书编制与递交、开标评标、中标公示与合同签订等步骤。在此过程中&#xff0c;必须遵循公开、公平、公正的原则&#xff0c;确保所有符合要求的投标单位都能获得平…

SpringBoot Bean

配置优先级 Bean的管理 从IOC容器中获取Bean对象&#xff1a;注入IOC容器对象 bean的作用域 Bean对象默认在容器启动时实例化 Lazy在第一次使用时初始化 Bean的管理&#xff1a;第三方Bean 引入依赖&#xff0c;每次解析创建新对象&#xff0c;浪费资源 将第三方对象交给…

如何搭建springBoot项目中的全局异常处理和自定义异常处理

目录 1 什么是异常 2 异常的种类 3 解决异常的方式 4 全局异常处理器和自定义异常处理器 5 测试异常处理 1 什么是异常 异常&#xff08;Exception&#xff09;是在程序执行过程中出现的一种特殊情况或错误。它可以是由于程序逻辑错误、运行环境问题、用户输入错误等原因…