| 1 |
# Alloy schema for shop's config.toml |
| 2 |
# |
| 3 |
# Target file: ~/.config/shop/config.toml |
| 4 |
# Alloy ships defaults at templates/etc/skel/.config/shop/config.toml.in. |
| 5 |
# |
| 6 |
# Format: schema-format v1. See docs/CONSOLE.md#the-schema-format for |
| 7 |
# the DSL reference. `alloy config <path>` renders a form from this |
| 8 |
# schema, edits values in place via toml_edit, and preserves any keys |
| 9 |
# not covered here (unknown_keys = "preserve"). |
| 10 |
# |
| 11 |
# Three fields, where the terminal this replaced had ninety. That is the |
| 12 |
# swap showing through rather than an unfinished schema: shop resolves the |
| 13 |
# sixteen ANSI slots from a makeover theme id and bundles its own font, so |
| 14 |
# the palette and font blocks an adopted terminal needs transcribed into it |
| 15 |
# have nothing to transcribe here. docs/STACK.md#terminal has the reasoning. |
| 16 |
# If this file grows a `[colors]` section, something has gone wrong upstream. |
| 17 |
|
| 18 |
[schema] |
| 19 |
target = "shop.toml" |
| 20 |
target_path = "$XDG_CONFIG_HOME/shop/config.toml" |
| 21 |
target_tool = "shop" |
| 22 |
target_version = ">=0.0.1" |
| 23 |
schema_version = "1" |
| 24 |
unknown_keys = "preserve" |
| 25 |
|
| 26 |
# No [[section]] blocks. Sections buy a header and a fold over a form long |
| 27 |
# enough to need one; three rows is not that form. |
| 28 |
|
| 29 |
[[field]] |
| 30 |
path = "theme" |
| 31 |
type = "string" |
| 32 |
default = "akari-night" |
| 33 |
description = "Theme id, without the .toml. Owned by `alloy theme apply`, which rewrites this whole file when the desktop polarity changes, so an edit here holds until the next theme switch. Change the desktop theme instead if you want it to stick." |
| 34 |
|
| 35 |
# A string and not an enum, though Alloy ships exactly two themes. An enum |
| 36 |
# renders as a picker over the values listed here, which would mean a theme |
| 37 |
# the user drops into ~/.config/alloy/themes could be read by shop and not |
| 38 |
# be selectable in the program Alloy points them at for editing configs. |
| 39 |
# The cost is no completion on a field with two common answers, both named |
| 40 |
# in the description above. |
| 41 |
|
| 42 |
[[field]] |
| 43 |
path = "themes" |
| 44 |
type = "path" |
| 45 |
format = "dir" |
| 46 |
must_exist = false |
| 47 |
default = "/usr/share/alloy/themes" |
| 48 |
description = "An extra theme directory, searched ahead of shop's packaged and embedded tiers. The shipped value is Alloy's own set. shop embeds both Akari themes and comes up themed without this key, so clearing it degrades nothing; it is here so a local edit under /usr/share/alloy/themes reaches the terminal." |
| 49 |
|
| 50 |
# must_exist = false because the default path is Alloy's and shop is not. |
| 51 |
# The same config file on a machine that is not running Alloy names a |
| 52 |
# directory that is not there, and shop treats that as a tier with nothing |
| 53 |
# in it rather than an error. A form that refused to save it would be |
| 54 |
# stricter than the program it configures. |
| 55 |
|
| 56 |
[[field]] |
| 57 |
path = "scrollback_lines" |
| 58 |
type = "int" |
| 59 |
range = [0, 1000000] |
| 60 |
default = 10000 |
| 61 |
description = "Rows of scrollback to keep. Costs lines x columns x 12 bytes, so the default is about 24 MB per window at 200 columns. 0 turns scrollback off. The alt screen never has any, so this does not affect what a wheel turn does inside helix or bottom." |
| 62 |
|