告别千篇一律:AdGuardHome Web界面主题与插件深度定制指南
你是否厌倦了AdGuardHome默认界面的单调外观?是否希望根据个人喜好调整主题配色或扩展功能?本文将详细介绍如何定制AdGuardHome的Web界面主题,以及通过插件扩展其功能,让你的网络广告过滤体验更加个性化。
主题定制基础
AdGuardHome的Web界面主题系统基于client/src/helpers/constants.ts中定义的主题常量实现,目前支持三种主题模式:
export const THEMES = {
auto: 'auto',
dark: 'dark',
light: 'light',
};
- 自动模式(auto): 根据系统设置自动切换深色/浅色主题
- 深色模式(dark): 深色背景配合浅色文字的高对比度主题
- 浅色模式(light): 浅色背景配合深色文字的传统主题
主题切换功能通过client/src/api/Api.ts中的API调用实现,核心代码如下:
const theme = data.theme ? data.theme : THEMES.auto;
const config = { data: { theme, language } };
手动切换主题
- 登录AdGuardHome管理界面
- 点击右上角用户头像,打开设置菜单
- 在"外观"或"界面设置"部分找到主题选项
- 选择偏好的主题模式并保存设置
主题设置会保存在浏览器本地存储中,通过client/src/helpers/localStorageHelper.ts进行管理:
export const STORAGE_KEYS = {
THEME: 'account_theme',
// 其他存储键...
};
自定义主题实现原理
AdGuardHome的主题切换通过修改CSS变量实现界面元素的样式变化。主题切换的状态管理由client/src/reducers/dashboard.ts负责:
case 'SET_THEME':
return {
...state,
theme: payload.theme,
};
要实现自定义主题,需要修改以下几个关键部分:
- 主题样式定义: 在CSS文件中添加自定义主题的样式变量
- 主题切换逻辑: 修改client/src/api/Api.ts中的主题设置代码
- UI控制元素: 添加自定义主题选择的界面控件
插件系统架构
AdGuardHome虽然没有官方正式的插件系统,但可以通过以下方式扩展功能:
- 自定义过滤规则: 通过FILTERS_URLS定义的URL路径管理自定义过滤规则
- DNS重写规则: 使用MODAL_TYPE中的ADD_REWRITE和EDIT_REWRITE模态框添加自定义DNS重写规则
- 外部集成: 通过修改client/src/api/Api.ts中的API调用,实现与外部服务的集成
实用插件推荐
1. 自定义过滤规则插件
通过FILTERS_URLS.dns_blocklists路径添加自定义过滤规则列表,实现更精确的广告和跟踪器过滤。
2. DNS重写管理器
利用MODAL_TYPE.ADD_REWRITE和MODAL_TYPE.EDIT_REWRITE功能,实现自定义DNS重定向规则管理。
3. 统计数据导出工具
修改STATS_NAMES相关代码,添加数据导出功能,将DNS查询统计数据导出为CSV或JSON格式。
高级定制技巧
多主题自动切换
通过修改client/src/api/Api.ts中的主题设置逻辑,可以实现基于时间或系统事件的自动主题切换:
// 示例: 根据时间自动切换主题
const hour = new Date().getHours();
const theme = hour >= 18 || hour < 6 ? THEMES.dark : THEMES.light;
const config = { data: { theme, language } };
自定义主题配色方案
编辑CSS变量定义,创建个性化的主题配色:
/* 自定义主题变量示例 */
:root.theme-custom {
--primary-color: #4a6fa5;
--secondary-color: #8d7b6c;
--background-color: #f1f1f1;
--text-color: #333333;
/* 其他变量... */
}
注意事项与最佳实践
- 备份原始文件: 修改前备份client/src/helpers/constants.ts和client/src/api/Api.ts等核心文件
- 遵循代码规范: 保持与现有代码风格一致,便于后续更新
- 测试兼容性: 验证自定义主题在不同浏览器和设备上的显示效果
- 关注版本更新: AdGuardHome更新可能会覆盖自定义修改,建议使用版本控制工具管理变更
通过本文介绍的方法,你可以轻松定制AdGuardHome的Web界面主题,打造个性化的使用体验。虽然目前AdGuardHome没有官方插件系统,但通过灵活运用其现有功能,同样可以实现丰富的功能扩展。随着项目的不断发展,未来可能会提供更完善的定制化支持,让我们拭目以待。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00