[Topic DIscussion] 自己动手精减字体,10种就够用!
Tofloor
poster avatar
kuxise
deepin
2025-04-17 15:24
Author

昨天看到坛里deepin字体调查报告,显示deepin只有245种字体,在OS中是字体很少的那种,不能再精减了,
image.png

然后我看了下自己的字体文件夹,好象,哦,好像也不少,只是,唉,算了,还是上图吧。

截图_选择区域_20250417150850.png

这是系统自带字体精减后的数量,方法呢是从20用到23,现在又到25,基本上没因字体出现过什么问题。

对了25时要先关闭磐石,然后再去删除字体,然后就是添加自己喜欢的字体和WPS必须要的WIN字体。

03cd34d1adf33cb79993d947b5ea7102.jpg


特别说明:我的方法在我的使用情况下没有出现什么错误,但不代表在你那也是如此情况,所以欢迎交流,拒绝攻击呀。

还有,我每次都是装完系统就清理字体,然后再去装别的软件和应用(有些软件和应用会自带字体)。


最后想对官方说一下,在我们安装系统选择语言时就可以对字体进行一个过渡,我都选择了简体中文了,别的字体就别装了吧。如果用户自己需要,去商店下载不可以吗?又或者在添加语言时再装也可以吧。所以248种字体,580多个字体文件真的不能再精减了吗?

image.png

image.png

Reply Favorite View the author
All Replies
2 / 3
To page
LiuYongzhang
deepin
2025-04-17 17:18
#21
deepin-superuser

你是来看报错的吗joy

image.png

论坛发不出来,发出来就变了

星号杠星号杠星号

如图

图片.png

图片.png

基本上源里有的字体都被一网打尽了。这样搞会在应用商店应用管理里有很多梦源的字体软件,看着烦人。

我一般都是在下载文件夹打开终端sudo aptss update && sudo aptss download fonts*下载所有字体deb包,然后解压提取字体文件ttf otf然后直接添加,这样应用管理没有显示用着舒心。

以下是实现批量解压当前目录下所有deb文件及其内部压缩包的Shell脚本:

#!/bin/bash

# 递归解压函数
unpack_compressed() {
    local file="$1"
    local dir=$(dirname "$file")
    case "$file" in
        *.tar|*.tar.gz|*.tgz|*.tar.xz|*.txz|*.tar.bz2|*.tbz2)
            echo "解压归档文件: $file"
            tar -xaf "$file" -C "$dir" && rm -f "$file"
            # 递归处理新解压的文件
            find "$dir" -type f \( -name '*.tar' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.xz' -o -name '*.txz' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.gz' -o -name '*.xz' -o -name '*.bz2' \) -print0 | while IFS= read -r -d $'\0' newfile; do
                unpack_compressed "$newfile"
            done
            ;;
        *.gz)
            echo "解压gz文件: $file"
            gunzip -f "$file" && unpack_compressed "${file%.gz}"
            ;;
        *.xz)
            echo "解压xz文件: $file"
            unxz -f "$file" && unpack_compressed "${file%.xz}"
            ;;
        *.bz2)
            echo "解压bz2文件: $file"
            bunzip2 -f "$file" && unpack_compressed "${file%.bz2}"
            ;;
    esac
}

# 主处理流程
for deb in *.deb; do
    [ -f "$deb" ] || continue  # 跳过无效文件
    echo "处理文件中: $deb"

    # 创建解压目录
    dir="${deb%.deb}"
    mkdir -p "$dir"
  
    # 解压deb包
    if (cd "$dir" && ar x "../$deb"); then
        pushd "$dir" >/dev/null
    
        # 解包control和data
        for pkg in control.tar.* data.tar.*; do
            [ -f "$pkg" ] && tar -xaf "$pkg" && rm -f "$pkg"
        done
    
        # 递归解压所有压缩文件
        while IFS= read -r -d $'\0' file; do
            unpack_compressed "$file"
        done < <(find . -type f \( -name '*.tar' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.xz' -o -name '*.txz' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.gz' -o -name '*.xz' -o -name '*.bz2' \) -print0)
    
        popd >/dev/null
    else
        echo "错误: 无法解压 $deb"
        rm -rf "$dir"  # 清理失败目录
    fi
done

echo "所有操作完成"

使用方法:

  1. 将上述内容保存为 unpack_debs.sh

  2. 赋予执行权限:chmod +x unpack_debs.sh

  3. 运行脚本:./unpack_debs.sh

功能说明:

  1. 自动创建以deb文件名命名的解压目录

  2. 解压deb包中的control/data.tar.*文件

  3. 递归解压所有嵌套的压缩文件(支持tar/gz/xz/bz2等格式)

  4. 自动清理中间压缩文件

  5. 支持包含空格和特殊字符的文件名

  6. 错误处理和解压失败清理

注意事项:

  1. 需要安装基础解压工具(tar、gzip、xz-utils、bzip2)

  2. 解压后的文件会保留原始目录结构

  3. 每个deb文件对应的解压结果存放在独立目录中

  4. 会递归解压直到没有可解压文件为止

然后搜索*.?tf字体文件添加即可

Reply View the author
LiuYongzhang
deepin
2025-04-17 17:25
#22
LiuYongzhang

论坛发不出来,发出来就变了

星号杠星号杠星号

如图

图片.png

图片.png

基本上源里有的字体都被一网打尽了。这样搞会在应用商店应用管理里有很多梦源的字体软件,看着烦人。

我一般都是在下载文件夹打开终端sudo aptss update && sudo aptss download fonts*下载所有字体deb包,然后解压提取字体文件ttf otf然后直接添加,这样应用管理没有显示用着舒心。

以下是实现批量解压当前目录下所有deb文件及其内部压缩包的Shell脚本:

#!/bin/bash

# 递归解压函数
unpack_compressed() {
    local file="$1"
    local dir=$(dirname "$file")
    case "$file" in
        *.tar|*.tar.gz|*.tgz|*.tar.xz|*.txz|*.tar.bz2|*.tbz2)
            echo "解压归档文件: $file"
            tar -xaf "$file" -C "$dir" && rm -f "$file"
            # 递归处理新解压的文件
            find "$dir" -type f \( -name '*.tar' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.xz' -o -name '*.txz' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.gz' -o -name '*.xz' -o -name '*.bz2' \) -print0 | while IFS= read -r -d $'\0' newfile; do
                unpack_compressed "$newfile"
            done
            ;;
        *.gz)
            echo "解压gz文件: $file"
            gunzip -f "$file" && unpack_compressed "${file%.gz}"
            ;;
        *.xz)
            echo "解压xz文件: $file"
            unxz -f "$file" && unpack_compressed "${file%.xz}"
            ;;
        *.bz2)
            echo "解压bz2文件: $file"
            bunzip2 -f "$file" && unpack_compressed "${file%.bz2}"
            ;;
    esac
}

# 主处理流程
for deb in *.deb; do
    [ -f "$deb" ] || continue  # 跳过无效文件
    echo "处理文件中: $deb"

    # 创建解压目录
    dir="${deb%.deb}"
    mkdir -p "$dir"
  
    # 解压deb包
    if (cd "$dir" && ar x "../$deb"); then
        pushd "$dir" >/dev/null
    
        # 解包control和data
        for pkg in control.tar.* data.tar.*; do
            [ -f "$pkg" ] && tar -xaf "$pkg" && rm -f "$pkg"
        done
    
        # 递归解压所有压缩文件
        while IFS= read -r -d $'\0' file; do
            unpack_compressed "$file"
        done < <(find . -type f \( -name '*.tar' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.xz' -o -name '*.txz' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.gz' -o -name '*.xz' -o -name '*.bz2' \) -print0)
    
        popd >/dev/null
    else
        echo "错误: 无法解压 $deb"
        rm -rf "$dir"  # 清理失败目录
    fi
done

echo "所有操作完成"

使用方法:

  1. 将上述内容保存为 unpack_debs.sh

  2. 赋予执行权限:chmod +x unpack_debs.sh

  3. 运行脚本:./unpack_debs.sh

功能说明:

  1. 自动创建以deb文件名命名的解压目录

  2. 解压deb包中的control/data.tar.*文件

  3. 递归解压所有嵌套的压缩文件(支持tar/gz/xz/bz2等格式)

  4. 自动清理中间压缩文件

  5. 支持包含空格和特殊字符的文件名

  6. 错误处理和解压失败清理

注意事项:

  1. 需要安装基础解压工具(tar、gzip、xz-utils、bzip2)

  2. 解压后的文件会保留原始目录结构

  3. 每个deb文件对应的解压结果存放在独立目录中

  4. 会递归解压直到没有可解压文件为止

然后搜索*.?tf字体文件添加即可

sudo apt install fonts*--

截图_选择区域_20250417172444.png

截图_选择区域_20250417172433.png

Reply View the author
玄圭SwenGway
deepin
2025-04-17 17:35
#23
LiuYongzhang

sudo apt install fonts*--

截图_选择区域_20250417172444.png

截图_选择区域_20250417172433.png

把markdown格式关了试试

Reply View the author
LiuYongzhang
deepin
2025-04-17 17:51
#24
玄圭SwenGway

把markdown格式关了试试

谢谢学费了
Reply View the author
Cryolitia
deepin
2025-04-17 18:05
#25
调查报告是我写的(逃,统计方法也在这里发出来给大家玩一下,可以用这个辅助分析系统上的字体情况:https://gist.github.com/Cryolitia/116be83578eed38e486d7e71c40ab5f1
 
系统的字体不仅需要考虑桌面环境本身支持的语言,同样也需要兼顾各类用户的小众需求。例如,维基百科网站在展现一个地区的语言文化的时候,会直接大量地使用本土语言的字体(比如北欧卢恩文字,埃及圣书体,印度天城文等)而非图片,如果系统里面没有预装对应的字体会给用户造成非常不佳的使用体验。预装全套Noto字体不仅是绝大部分桌面Linux发行版的选择,也是Android操作系统默认的行为。
 
如果确实不需要多余的字体,可以谨慎的删除Noto里面的绝大部分字体,Noto开头的只留下其中的Noto Sans CJK和Noto Serif CJK在理论上是完全足够的,理论上也可以全都删掉换成思源或者更纱等自己喜欢的字体。删除系统字体前请做好备份,小白不要跟风,后果自负~
 
> 最后想对官方说一下,在我们安装系统选择语言时就可以对字体进行一个过渡,我都选择了简体中文了,别的字体就别装了吧。如果用户自己需要,去商店下载不可以吗?又或者在添加语言时再装也可以吧。所以248种字体,580多个字体文件真的不能再精减了吗?
 
这个需求无法实现完全是工程上过于复杂和困难,还请谅解
Reply View the author
buyike
deepin
Solutions Team Moderator
2025-04-17 18:51
#26
Cryolitia
调查报告是我写的(逃,统计方法也在这里发出来给大家玩一下,可以用这个辅助分析系统上的字体情况:https://gist.github.com/Cryolitia/116be83578eed38e486d7e71c40ab5f1
 
系统的字体不仅需要考虑桌面环境本身支持的语言,同样也需要兼顾各类用户的小众需求。例如,维基百科网站在展现一个地区的语言文化的时候,会直接大量地使用本土语言的字体(比如北欧卢恩文字,埃及圣书体,印度天城文等)而非图片,如果系统里面没有预装对应的字体会给用户造成非常不佳的使用体验。预装全套Noto字体不仅是绝大部分桌面Linux发行版的选择,也是Android操作系统默认的行为。
 
如果确实不需要多余的字体,可以谨慎的删除Noto里面的绝大部分字体,Noto开头的只留下其中的Noto Sans CJK和Noto Serif CJK在理论上是完全足够的,理论上也可以全都删掉换成思源或者更纱等自己喜欢的字体。删除系统字体前请做好备份,小白不要跟风,后果自负~
 
> 最后想对官方说一下,在我们安装系统选择语言时就可以对字体进行一个过渡,我都选择了简体中文了,别的字体就别装了吧。如果用户自己需要,去商店下载不可以吗?又或者在添加语言时再装也可以吧。所以248种字体,580多个字体文件真的不能再精减了吗?
 
这个需求无法实现完全是工程上过于复杂和困难,还请谅解

能否将几种核心字体保护起来呢?如果没记错,在WIN中有些字体随便删除,有些字体完全删除不了。

另外,字体就这样吧,有需求的自己参考这贴自己删就是了。

只是主题能减不,自带主题确实比较多了,或者提供一键删除功能。

忙就算了,你们继续加油,等不忙时回头再整理。

Reply View the author
buyike
deepin
Solutions Team Moderator
2025-04-17 18:54
#27
deepin-superuser

完全同意 可以预装主推的那套主题 其他的按需下载删除

agree

Reply View the author
WangZhongyun
deepin
2025-04-17 19:03
#28

首先如何确定几种核心字体?在几种流行系统里筛选共有的字体及必要的中文字体,可能是一种方法。不必要苛求一种字种不多,这样就会太纠结了。

至于主题,其实十种之内也不太多。要说精简,至少要个调查投票,至少满足大多数人的喜好。

Reply View the author
buyike
deepin
Solutions Team Moderator
2025-04-17 19:20
#29
WangZhongyun

首先如何确定几种核心字体?在几种流行系统里筛选共有的字体及必要的中文字体,可能是一种方法。不必要苛求一种字种不多,这样就会太纠结了。

至于主题,其实十种之内也不太多。要说精简,至少要个调查投票,至少满足大多数人的喜好。

主题风格这投票也不靠谱,说白了,各有各的喜欢,这个很难讲,而且论坛的投票也只是在论坛,范围有限,这个还得官方从自己的定位出发,确定风格,用心做好一两种就足够了。

如官方目前是以政府部门为主,就可以根据政府部门的特点去打造稳重大方风格的,我个人是建议这一款的,虽然我不喜欢,但可以为UOS打下基础。

又如官方想和UOS区分开,面向大众,则可根据现在主流的设计风格去打造,不用太过保守,可稍稍超前上点,细心打磨,我个人是建议这个方向的,可在现有的bloom主题上继续优化,可大量节省人力和时间。再就是这一套风格deepin已经用了不少时间,有一定的识别度,完全放弃有些可惜,这也和一些企业logo进行升级时会在原来的基础上稍加修改是一样的道理。

Reply View the author
WangZhongyun
deepin
2025-04-17 19:40
#30
buyike

主题风格这投票也不靠谱,说白了,各有各的喜欢,这个很难讲,而且论坛的投票也只是在论坛,范围有限,这个还得官方从自己的定位出发,确定风格,用心做好一两种就足够了。

如官方目前是以政府部门为主,就可以根据政府部门的特点去打造稳重大方风格的,我个人是建议这一款的,虽然我不喜欢,但可以为UOS打下基础。

又如官方想和UOS区分开,面向大众,则可根据现在主流的设计风格去打造,不用太过保守,可稍稍超前上点,细心打磨,我个人是建议这个方向的,可在现有的bloom主题上继续优化,可大量节省人力和时间。再就是这一套风格deepin已经用了不少时间,有一定的识别度,完全放弃有些可惜,这也和一些企业logo进行升级时会在原来的基础上稍加修改是一样的道理。

从你这主题风格论述来看,开源的Deepin系统应该有的主题至少包括:

1.政府部门的稳重大方风格

2.大众主流风格bloom主题

3.Deepin风格主题

实际上一年四季的每个季节应该有个主题,这是常用的,应该加上。

确定这七种主题,在不同时期,用心做好一两种比较合适。

Reply View the author
buyike
deepin
Solutions Team Moderator
2025-04-17 19:41
#31
WangZhongyun

从你这主题风格论述来看,开源的Deepin系统应该有的主题至少包括:

1.政府部门的稳重大方风格

2.大众主流风格bloom主题

3.Deepin风格主题

实际上一年四季的每个季节应该有个主题,这是常用的,应该加上。

确定这七种主题,在不同时期,用心做好一两种比较合适。

唉,再直白点说吧,一种就可以了,现在大众用得最多的bloom主题就是deepin的风格,明白吗?已经有了不少的传播力度了,最好是以此为基础,再稍稍优化和完善就可以,一方面可以照顾到deepin现在的人力少,时间紧的问题,二是有继承和延续。

至于适合政府部门的风格,在于deepin自己,毕竟现在的UOS是商业版本,而且主流客户是政府部门,这个可以说是定制风格。

至于其他的风格没多大必要去折腾了,费时费力,特别是在现在人力时间紧张的时候,而且是众口难调,照顾了这个群体就会忽视另一个群体,更没必要做很多同类型风格的主题。

deepin应该做的是提供好接口,让我们这些爱好者自己去做其他的风格,然后发布到商店。

至于你说的四季,那是不够的,毕竟中国有24节气,还有国庆、中秋、春节、情人节等众多节日,7个远远不够的。

Reply View the author
caoyuUU
deepin
2025-04-17 20:43
#32
buyike

唉,再直白点说吧,一种就可以了,现在大众用得最多的bloom主题就是deepin的风格,明白吗?已经有了不少的传播力度了,最好是以此为基础,再稍稍优化和完善就可以,一方面可以照顾到deepin现在的人力少,时间紧的问题,二是有继承和延续。

至于适合政府部门的风格,在于deepin自己,毕竟现在的UOS是商业版本,而且主流客户是政府部门,这个可以说是定制风格。

至于其他的风格没多大必要去折腾了,费时费力,特别是在现在人力时间紧张的时候,而且是众口难调,照顾了这个群体就会忽视另一个群体,更没必要做很多同类型风格的主题。

deepin应该做的是提供好接口,让我们这些爱好者自己去做其他的风格,然后发布到商店。

至于你说的四季,那是不够的,毕竟中国有24节气,还有国庆、中秋、春节、情人节等众多节日,7个远远不够的。

现在人手少,建议先修bug,其次是系统优化,最后才是精简

Reply View the author
buyike
deepin
Solutions Team Moderator
2025-04-17 20:52
#33
caoyuUU

现在人手少,建议先修bug,其次是系统优化,最后才是精简

joy支持!

Reply View the author
‌量子巡游者
deepin
Resources Team Moderator
2025-04-17 21:07
#34

想知道版主的本意是要求deepin系统精简自身所带字体?还是不精简字体???

先明确自己的需求再说明精简的理由,最后阐述下精简字体后带来的好处~

秀一个,期待你的精彩表现~

Reply View the author
猫粮
deepin
2025-04-18 06:02
#35
WangZhongyun

从你这主题风格论述来看,开源的Deepin系统应该有的主题至少包括:

1.政府部门的稳重大方风格

2.大众主流风格bloom主题

3.Deepin风格主题

实际上一年四季的每个季节应该有个主题,这是常用的,应该加上。

确定这七种主题,在不同时期,用心做好一两种比较合适。

主题黑白两种就够了,搞那么多跟原来的有区别吗?

Reply View the author
longlong
deepin
Developer
2025-04-18 09:50
#36
buyike

能否将几种核心字体保护起来呢?如果没记错,在WIN中有些字体随便删除,有些字体完全删除不了。

另外,字体就这样吧,有需求的自己参考这贴自己删就是了。

只是主题能减不,自带主题确实比较多了,或者提供一键删除功能。

忙就算了,你们继续加油,等不忙时回头再整理。

主题默认预装1-2种 其他放到商店里面我是支持的。已经和产品那边反馈了

Reply View the author
qiye
deepin
2025-04-18 09:56
#37
longlong

主题默认预装1-2种 其他放到商店里面我是支持的。已经和产品那边反馈了

这么快?这么果断?

scream yeah

Reply View the author
姬志远(白菜男)
deepin
2025-04-18 11:27
#38

几乎把整个Windows的字体都考过来了,不过,还是显示没有Windows上好,能忍受😂

Reply View the author
qiye
deepin
2025-04-19 13:08
#39

快月末了,期待BETA的发布,会有什么样的改变。

Reply View the author
lon
deepin
2025-04-19 13:32
#40

以deb包来说

noto-core noto-cjk noto-mono 这三个必需,留它就行

noto-color-emoji 是表情图标

noto-ui-core noto-extra 中日韩之外的花里胡哨的,比如论坛某些人的名称,根据自己喜爱来,字体量不小,体积也不小

opensymbol 有些程序捆绑时用,没关联,想删就删,留着也行,没多大

其它的一般可以删掉了

像win下的字体,自己喜欢的字体,看情况自己加

Reply View the author
2 / 3
To page