feat(config): Clean up, add themes options

This commit is contained in:
2026-05-16 11:41:00 +02:00
parent 72b477381f
commit 80d7b3d86e
21 changed files with 252 additions and 178 deletions
+107 -93
View File
@@ -26,50 +26,6 @@
"repos": {
"type": "object",
"properties": {
"enabled_repos": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"description": "The repos to set up",
"properties": {
"name": {
"type": "string",
"description": "The repositories to set up",
"pattern": "^(core|extra|core-testing|extra-testing|multilib|multilib-testing|[a-z0-9-]+(?=[a-z0-9]$))"
},
"setup_cmds": {
"type": "array",
"description": "The commands to run to set it up (optional if any of the explicitly supported ones)",
"items": {
"type": "string",
"description": "Command to run"
}
},
"mirrors": {
"type": "object",
"description": "Configure the mirrors to use",
"properties": {
"use_default": {
"type": "boolean",
"description": "Whether to use the default mirrors or not",
"default": true
},
"extra_mirrors": {
"type": "array",
"description": "Any extra mirrors you want to add. At least one mirror needs to be put here if use_default is false. Order matters",
"items": {
"type": "string"
}
}
}
}
},
"required": [
"name"
]
}
},
"reflector": {
"type": "object",
"description": "Use reflector to update the mirrors",
@@ -137,41 +93,6 @@
},
"additionalProperties": false
},
"users": {
"type": "array",
"description": "Users to add, including groups. Users will be diffed and removed if they are removed from here. No files are deleted",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string",
"pattern": "^[a-zA-Z0-9\\-._]{2,19}(?=[a-zA-Z0-9]$)"
},
"groups": {
"type": "array",
"description": "The groups to add the user to. Groups are created if they don't exist. User's own group doesn't have to be listed explicitly",
"items": {
"type": "string",
"pattern": "^[a-zA-Z0-9\\-._]{2,19}(?=[a-zA-Z0-9]$)"
}
},
"sudo_user": {
"type": "boolean",
"default": false,
"description": "Whether a user can use sudo or not. Same as appending them to the `wheel` group"
},
"home_dir": {
"type": "boolean",
"description": "Whether to create a home directory for the user or not",
"default": false
}
},
"required": [
"username"
],
"additionalProperties": false
}
},
"boot": {
"type": "object",
"description": "Settings for the bootloader, such as theme, using os-prober, etc",
@@ -198,6 +119,10 @@
"os_prober": {
"type": "boolean",
"description": "Whether to enable OS prober to search for other operating systems"
},
"kernel_params": {
"type": "string",
"description": "The kernel arguments to pass in"
}
},
"additionalProperties": false,
@@ -207,25 +132,114 @@
},
"themes": {
"type": "object",
"properties": {}
"properties": {
"gtk": {
"type": "string",
"description": "The GTK theme to use. To use the custom generated theme, set this to Adaptive-Theme and set the Qt theme to gtk3"
},
"qt": {
"type": "string",
"description": "The Qt theme to use. Write gtk3 to use the GTK theme instead",
"default": "gtk3"
},
"font": {
"type": "string",
"description": "The font (and size) to use for the interface. Needs to be installed to work",
"default": "Comfortaa 11"
},
"icon_theme": {
"type": "string",
"description": "Which icon theme to use. Needs to be installed to work"
},
"cursor_theme": {
"type": "string",
"description": "The cursor to use. Needs to be installed to work"
},
"selected_custom_theme_color": {
"type": "string",
"description": "The custom theme color to use. archmgr comes with 5 defaults than can be used without custom_theme_colors defined",
"pattern": "^(nordic|deep-dark|material|light|bright|.*)"
},
"color_source": {
"type": "string",
"description": "Where to get the colours from",
"pattern": "^(wallpaper|default)",
"default": "wallpaper"
},
"wallpaper": {
"type": "string",
"description": "Path to the wallpaper to use. If supported by manager for wallpaper, can also be folder. Please note that in that case the theme colours will fall back to the default values and will not use the wallpaper"
},
"custom_theme_colors": {
"type": "array",
"description": "Templates for a custom theme.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the color theme. This can be used as the"
},
"base": {
"type": "string",
"description": "The name of the custom_theme to base it off of. Defaults to deep-dark, which is a default theme provided by archmgr",
"default": "deep-dark"
},
"variables": {
"type": "object",
"description": "The definition of the colors and other variables that override any set in template_data if present there",
"properties": {
"color-fore-primary": {
"type": "string"
},
"color-fore-accent-1": {
"type": "string"
},
"color-fore-accent-2": {
"type": "string"
},
"color-fore-accent-3": {
"type": "string"
},
"color-back-primary": {
"type": "string"
},
"color-back-accent-1": {
"type": "string"
},
"color-back-accent-2": {
"type": "string"
},
"color-shadow": {
"type": "string"
},
"color-fore-inactive": {
"type": "string"
},
"color-back-inactive": {
"type": "string"
},
"font-primary": {
"type": "string"
},
"font-accent": {
"type": "string"
},
"font-mono": {
"type": "string"
}
},
"additionalProperties": true
}
}
}
}
}
},
"git": {
"type": "object",
"description": "Automatically set up credential manager and clone repos",
"properties": {
"creds": {
"type": "object",
"description": "Which git services to log into",
"properties": {
"manager": {
"type": "string",
"description": "The git credential manager to use. Set to none if you don't want one (default)",
"pattern": "^(git-credential-manager|none)",
"default": "none"
}
},
"additionalProperties": false
},
"repos": {
"type": "array",
"description": "Which repos to clone (removing one from here doesn't delete it from the system and only pulls if folder does not exist)",