You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作自定义AwesomeWM主题?

AwesomeWM 自定义主题开发入门指南

核心运行逻辑

AwesomeWM的主题本质是一个Lua配置模块,启动时会被内置的beautiful库加载解析,所有定义的主题参数都是可全局调用的Lua变量,会作用于标题栏、窗口边框、工作区指示器、通知弹窗、系统托盘等所有UI组件的渲染逻辑。你可以自由扩展自定义变量,用于适配自己写的特殊组件样式。

基础开发步骤

  • 首先在默认AwesomeWM配置目录~/.config/awesome/下新建themes/文件夹,再在其中创建自定义主题的专属目录,比如my-custom-theme/
  • 在主题目录下新建theme.lua文件,这是你主题的核心配置入口
  • 在theme.lua顶部引入必要依赖,其中dpi方法用于适配不同屏幕密度,所有尺寸参数建议都用该方法包裹,避免高分屏显示异常:
    local beautiful = require("beautiful")
    local gears = require("gears")
    local dpi = beautiful.xresources.apply_dpi
    
    local theme = {}
    
  • 定义基础核心样式参数,示例常用可配置项如下,你可以根据自己的需求增删修改:
    -- 全局基础配色
    theme.bg_normal = "#222222"
    theme.bg_focus = "#535d6c"
    theme.bg_urgent = "#ff0000"
    theme.bg_minimize = "#444444"
    theme.fg_normal = "#aaaaaa"
    theme.fg_focus = "#ffffff"
    theme.fg_urgent = "#ffffff"
    theme.fg_minimize = "#ffffff"
    
    -- 窗口边框与间隙配置
    theme.useless_gap = dpi(4)
    theme.border_width = dpi(2)
    theme.border_normal = "#000000"
    theme.border_focus = "#535d6c"
    theme.border_marked = "#91231c"
    
    -- 标题栏样式配置
    theme.titlebar_bg_focus = theme.bg_focus
    theme.titlebar_bg_normal = theme.bg_normal
    theme.titlebar_fg_focus = theme.fg_focus
    theme.titlebar_fg_normal = theme.fg_normal
    
  • 如果你需要使用本地壁纸、图标等资源,用gears.filesystem.get_configuration_dir()拼接绝对路径,避免相对路径加载失败:
    theme.wallpaper = gears.filesystem.get_configuration_dir() .. "themes/my-custom-theme/wallpaper.jpg"
    theme.titlebar_close_button_normal = gears.filesystem.get_configuration_dir() .. "themes/my-custom-theme/icons/titlebar/close_normal.png"
    
  • 所有参数定义完成后,在theme.lua末尾返回主题对象:
    return theme
    
  • 最后在AwesomeWM主配置文件rc.lua中替换原有主题加载语句,启用你的自定义主题:
    beautiful.init(gears.filesystem.get_configuration_dir() .. "themes/my-custom-theme/theme.lua")
    

调试技巧

  • 修改主题配置后,按下Mod + Ctrl + R重载AwesomeWM即可生效
  • 如果重载后配置不生效、甚至窗口管理器崩溃,可以查看~/.xsession-errors日志定位语法错误或者配置异常项
  • 所有beautiful库下的变量都可以在rc.lua或者其他自定义模块中直接调用,不需要额外导出,你可以自由扩展自定义变量适配特殊组件需求

内容的提问来源于stack exchange,提问作者Clerick X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:00:03