DEsk Mod开发者教程:如何为新语言、新设置项和新声音扩展代码
【免费下载链接】DEsk项目地址https://gitcode.com/gh_mirrors/desk7/DEsk点击查看免费下载DEsk 是一款拟物风格的 Wayland Linux 桌面环境把整个桌面画成一张真实的书桌窗口是纸、通知是信箱里的信、声音全部实时合成。想给 DEsk 添加新语言、新设置项或新声音吗这份 Mod 教程将带你完整走通这三类最常见的代码扩展每步都标出要改的文件和检查方法。先阅读官方 Mod 文档 docs/MODDING.md 和架构文档 docs/ARCHITECTURE.md。DEsk 是 MIT 协议修改副本时保留LICENSE并在 README 中说明改动即可。环境搭建三步完成构建与预览meson setup build meson compile -C build meson test -C build # 会校验翻译表改完代码后最轻量的验证方式是desk-preview它不需要合成器直接把画面画成 PNG./build/desk-preview -o out.png -s 1440x900 ./build/desk-preview -o out.png --lang de --shelf # 德语书架视图一、添加新语言让桌面上的文字说你的语言DEsk 的界面文字不读资源文件全部走代码里的翻译表。核心机制很简单英文是键TR(TO DO)在英语下就是 TO DO在其他语言下查表取翻译见 include/i18n.h 的注释。第 1 步注册语言枚举在 include/i18n.h 的enum desk_lang中于DESK_LANG_COUNT之前插入新语言例如DESK_LANG_IT。第 2 步填翻译表与语言码在 src/i18n.c 里做三件事CODES表第 1517 行加一行{ it, italian }它是shell.conf的language键和系统 locale 的识别码WORDS大表的每一行按语言顺序en、ja、zh、ko、es、fr、de…追加一列没有翻译就写NULL会自动回退显示英文所以可以一点点补MONTH_WHOLE、MONTH_SHORT、DAY_WHOLE、DAY_SHORT、DAY_LETTER五张日期表各加一行。如果新语言字间无空格如 CJK还要让desk_lang_wide对返回true第 1575 行。第 3 步更新日期、设置与字体的配套位置src/index.c应用索引的 AM/PM 词表HALFsrc/settings.c语言选项的LANG_WORDS用该语言自称与LANG_VALS各加一项src/wm.cconf_other中language键接受的代码列表src/apps.cREGION表登记该语言常用 locale决定应用按什么语言归档CJK 语言还需在 src/fonts.c 配置字体区域。验证meson test -C build会检查列数、重复键和 printf 占位符再用desk-preview --lang xx分别加--shelf、--console、--calendar、--lock逐视图查看重点看最长的德语和 CJK 语言是否溢出个别地方会自动缩字仍然溢出的要换更短的译文。二、添加新设置项一行 shell.conf一行设置面板一个设置 shell.conf里的一行配置 Shell Settings 面板里的一行表单共 4 处改动。第 1 步配置读取wm.c在 src/wm.c 的struct shell_conf第 205 行加字段shell_conf_defaults里给默认值然后写读取逻辑是/否型挂进shell_conf_read_file的 yes/no 连串里其他取值加进conf_other第 10032 行起参考现成的motion、camera_bounce值不认识就用wlr_log(WLR_ERROR, ...)报出来并保留默认值——DEsk 不认识的键会写日志但不删这正是新旧版本能共享一份shell.conf的原因。最后在shell_apply_all里让设置生效它不仅在启动时跑shell.conf每次变化都会重跑。第 2 步设置面板表单settings.c在 src/settings.c 的SETTINGS数组中放到对应分区下开关用S_CHECK选项用S_CHOICE配*_WORDS显示词如MOTION_WORDS和*_VALS写入 shell.conf 的值两个数组。第 3 步文案与文档标签、说明文字和各选项词都要走WORDS翻译表见上节并把新键写入 docs/CONFIGURATION.md。三、添加新声音从零合成不录一个音DEsk 的所有音效在 src/sfx.c 里用物理建模实时合成敲击是一组谐振衰减mode、摩擦是着色噪声friction、纸是爆响加气流crackleswish、铰链是滑移声creak。加一个新声音只要 3 步注册名字在 include/sound.h 的enum desk_sound中于DESK_SND_COUNT之前加DESK_SND_YOURS写出合成函数在sfx.c里实现s_yours(struct buf *b, struct rng *r, int v)用文件顶部的积木strike、burst、mode、crackle、swish、finish拼出材质感结尾务必调finish(b, rms_db, peak_db)归一响度参数里的随机数r让每次播放略有不同没有任何两个瞬间完全相同登记与播放在SFX表第 1377 行起登记{ yours, 秒数, 变体数, s_yours }然后在事件处调用desk_sound_play(DESK_SND_YOURS, pan, gain, 0.0);pan从 -1左到 1右一般取发声物在屏幕上的位置声音就会从那个方向传来。不吵人的调试技巧设置DESK_SOUNDfile:/tmp/desk-%p.wav运行混音会写成 WAV 文件而不是进音箱方便反复试听。四、分享前的自检清单meson test -C build meson setup b-min -Dpostdisabled -Dsounddisabled -Dxwaylanddisabled meson setup b-werror -Dbuildtypedebug -Dwerrortrue meson compile -C b-min meson compile -C b-werrormeson test通过翻译表列数、键唯一、占位符一致desk-preview下用你的语言、最长假通常是德语和 CJK 假各看一遍图形等级切到 2D Fallbackgraphics 2d确认没变卡日志无[ERROR]行嵌套运行时在 stderr安装后在~/.local/state/desk/session.log。掌握以上三块——翻译表、shell.conf读取链、合成音积木——你就能覆盖 DEsk Mod 的绝大多数扩展需求若改到房间几何记得 src/draw.c 与 src/room.glsl 必须用同样的方式改两处再用desk-gputest --room核对两者一致。赞分享【免费下载链接】DEsk项目地址https://gitcode.com/gh_mirrors/desk7/DEsk点击查看免费下载相关推荐Lan Mouse 开发者指南如何为项目贡献代码和扩展新后端Lan Mouse 开发者指南如何为项目贡献代码和扩展新后端 Lan Mouse 是一款跨平台的鼠标和键盘共享软件类似于 Apple 设备上的 Univer桌面应用网络通信AlertToast实战教程5种弹窗类型的完整使用示例AlertToast实战教程5种弹窗类型的完整使用示例 AlertToast是一款专为SwiftUI打造的轻量级弹窗组件能够帮助开发者快速实现Apple风格UI库/组件移动开发桌面应用PRO Elements深度解析解锁Elementor Pro核心功能的实战指南PRO Elements深度解析解锁Elementor Pro核心功能的实战指南 你是否曾经在构建WordPress网站时因为Elementor Pro的高前端CMS上一篇WinUI 3 引擎内幕DComp 树遍历器DCompTreeHelper的架构原理与重新启用实战指南下一篇用 Cloudflare Agents 构建 Chat SDK 持久化状态agents/chat-sdk 完整接入指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpenCV图像平滑处理详解:四大滤波算法原理与调参实战

OpenCV图像平滑处理详解:四大滤波算法原理与调参实战

最近在HoRain云上配置图像处理实验环境时,我顺手把OpenCV的图像平滑处理重新完整过了一遍。说实话,滤波是计算机视觉里最基础的一步,但也是最容易被忽视的一步——很多人拿到图片第一件事就冲去跑人脸检测、边缘提取、OCR识别,结果…

2026/10/19 3:31:11 阅读更多 →
前端复制粘贴利器clipboard.js:原理、用法与生产实践

前端复制粘贴利器clipboard.js:原理、用法与生产实践

1. 为什么复制粘贴这么小的事还需要一个库先说个我自己的经历。去年给一个后台管理系统做数据导出功能,需求很简单:用户点一下按钮,把一条订单的物流单号复制到剪贴板。听起来五分钟就能搞定的事,结果在兼容性上折腾了大半天。几位…

2026/10/19 3:31:11 阅读更多 →
下载工具越用越卡?全功能绿色版的任务调度与磁盘缓存优化指南

下载工具越用越卡?全功能绿色版的任务调度与磁盘缓存优化指南

简介:需要完整BT下载能力的用户,可选用这份比特彗星64位全功能解锁绿色版资源包,无需安装、解压即用,同时开放了官方免费版通常受限的加速与去广告特性,适合追求高下载速度、多任务管理及纯净界面的中高频P2P用户。资源…

2026/10/19 3:31:11 阅读更多 →

最新新闻

SpringBoot 3.x嵌入式容器调优与SSL证书自动热更新实战

SpringBoot 3.x嵌入式容器调优与SSL证书自动热更新实战

2026 年了,如果你还在用“改配置 -> 重启应用 -> 半夜被叫起来”这套流程处理证书过期问题,那真的有必要看看这章内容。SpringBoot 3.x 的嵌入式容器早就不是当年那个“帮你省个 Tomcat 安装”的毛坯房了,尤其在 HTTPS 证书管理这件事上…

2026/10/19 4:17:39 阅读更多 →
open-code-review:基于Git Diff与LLM Agent的CLI代码审查实践

open-code-review:基于Git Diff与LLM Agent的CLI代码审查实践

1. 这不是又一个“AI代码审查”玩具:open-code-review 是怎么把 Git 差异、CLI 交互和 LLM 推理拧成一股实用绳子的你搜“open-code-review”,大概率会撞上一堆带“AI”“智能”“自动”的宣传页,配着闪烁的蓝色光效和“秒级发现 Bug”的标语…

2026/10/19 4:17:39 阅读更多 →
生产级AI Agent工作流实战:从原型到稳定落地的工程化改造指南

生产级AI Agent工作流实战:从原型到稳定落地的工程化改造指南

带过三个从 Demo 落到线上的 Agent 项目之后,我对“生产级 AI Agent 工作流”这几个字有了完全不同的理解。这个词看上去像是一个技术方案,实际上是一整套关于稳定性、成本、失控风险的系统工程。今天不聊概念,直接讲我是怎么把一条“能用就行…

2026/10/19 4:17:39 阅读更多 →
函数精讲:从定义到递归的全解析

函数精讲:从定义到递归的全解析

, 在第五天的学习笔记中(函数)这个主题是关于函数的问题, 函数可以让代码得到复用, 函数可以接受参数, 函数可以返回结果, 函数可以进行递归操作, 函数还可以是匿名的。一、函数基础这一部分的内容, 第一点就是去搞清楚一个事情, 究竟为什么要使用函数。…

2026/10/19 4:17:39 阅读更多 →
Java Web停车场系统:毕设级可运行项目解析与改造指南

Java Web停车场系统:毕设级可运行项目解析与改造指南

简介:本资源是一套完整的Java Web停车场管理系统毕业设计项目,面向计算机专业本科生及Java初学者,解决校园或中小型商业场景下车位管理、车主信息登记与停车流程数字化等实际问题。压缩包共含源码、数据库脚本、开题报告论文文档及操作视频说…

2026/10/19 4:17:39 阅读更多 →
YOLO26 ONNX后处理实战:从DFL解码到性能优化

YOLO26 ONNX后处理实战:从DFL解码到性能优化

做推理部署的工程师大概率都遇到过这个场景:模型在 PyTorch 里跑得挺正常,一导出 ONNX、换到 ONNX Runtime 或者端侧推理引擎之后,出来的结果就开始“群魔乱舞”——要么框的位置偏得离谱,要么置信度全是负数,要么直接…

2026/10/19 4:16:39 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →