220 lines
6.7 KiB
Plaintext
220 lines
6.7 KiB
Plaintext
.\" Automatically generated by Pandoc 3.5
|
|
.\"
|
|
.TH "WALLREEL" "5" "2026\-03\-24" "WallReel 2.0.1" "File Formats Manual"
|
|
.SH NAME
|
|
wallreel\-config \- configuration format for wallreel
|
|
.SH SYNOPSIS
|
|
\f[CR]\[ti]/.config/wallreel/config.json\f[R]
|
|
.SH DESCRIPTION
|
|
WallReel reads configuration from a JSON document.
|
|
The root object is divided into five sections:
|
|
.IP \[bu] 2
|
|
\f[CR]wallpaper\f[R]
|
|
.IP \[bu] 2
|
|
\f[CR]theme\f[R]
|
|
.IP \[bu] 2
|
|
\f[CR]action\f[R]
|
|
.IP \[bu] 2
|
|
\f[CR]style\f[R]
|
|
.IP \[bu] 2
|
|
\f[CR]cache\f[R]
|
|
.PP
|
|
For complete machine\-readable validation details, refer to
|
|
\f[CR]config.schema.json\f[R].
|
|
.SH WALLPAPER SECTION
|
|
Defines where WallReel looks for images and what to exclude.
|
|
.PP
|
|
If both \f[CR]paths\f[R] and \f[CR]dirs\f[R] are empty or omitted,
|
|
WallReel defaults to recursively scanning the user\[aq]s Pictures
|
|
directory and treating all supported image files as wallpaper
|
|
candidates.
|
|
.PP
|
|
\f[CR]paths\f[R] (array of string, default: \f[CR][]\f[R]) : Exact paths
|
|
to specific image files.
|
|
.PP
|
|
\f[CR]dirs\f[R] (array of object, default: \f[CR][]\f[R]) : Directories
|
|
to scan for images.
|
|
.PP
|
|
Each item has:
|
|
.IP \[bu] 2
|
|
\f[CR]path\f[R] (string)
|
|
.IP \[bu] 2
|
|
\f[CR]recursive\f[R] (boolean)
|
|
.PP
|
|
\f[CR]excludes\f[R] (array of string, default: \f[CR][]\f[R]) : Exclude
|
|
patterns as regular expressions.
|
|
.SH THEME SECTION
|
|
Configures color palettes.
|
|
.PP
|
|
A dominant color is extracted from each wallpaper.
|
|
If a palette is selected, WallReel picks the closest palette color as
|
|
the primary color.
|
|
.PP
|
|
\f[CR]palettes\f[R] (array of object, default: \f[CR][]\f[R]) : Custom
|
|
palette definitions.
|
|
.PP
|
|
Each palette has:
|
|
.IP \[bu] 2
|
|
\f[CR]name\f[R] (string)
|
|
.IP \[bu] 2
|
|
\f[CR]colors\f[R] (array)
|
|
.PP
|
|
Each color item has:
|
|
.IP \[bu] 2
|
|
\f[CR]name\f[R] (string)
|
|
.IP \[bu] 2
|
|
\f[CR]value\f[R] (hex string, for example \f[CR]\[dq]#89b4fa\[dq]\f[R])
|
|
.SH ACTION SECTION
|
|
Configures commands executed for preview, selection, and restore
|
|
behavior.
|
|
.PP
|
|
\f[CR]previewDebounceTime\f[R] (integer, default: \f[CR]300\f[R]) :
|
|
Debounce interval in milliseconds for preview actions.
|
|
.PP
|
|
\f[CR]printSelected\f[R] (boolean, default: \f[CR]true\f[R]) : Print
|
|
selected wallpaper path to stdout on confirmation.
|
|
.PP
|
|
\f[CR]printPreview\f[R] (boolean, default: \f[CR]false\f[R]) : Print
|
|
previewed wallpaper path to stdout on preview.
|
|
.PP
|
|
\f[CR]onSelected\f[R] (string, default: \f[CR]\[dq]\[dq]\f[R]) : Command
|
|
executed when a wallpaper is confirmed.
|
|
.PP
|
|
\f[CR]onPreview\f[R] (string, default: \f[CR]\[dq]\[dq]\f[R]) : Command
|
|
executed when a wallpaper is previewed.
|
|
.PP
|
|
\f[CR]saveState\f[R] (array of object, default: \f[CR][]\f[R]) :
|
|
Commands for capturing system values before changing wallpaper.
|
|
.PP
|
|
Each item has:
|
|
.IP \[bu] 2
|
|
\f[CR]key\f[R] (placeholder key)
|
|
.IP \[bu] 2
|
|
\f[CR]fallback\f[R] (default value)
|
|
.IP \[bu] 2
|
|
\f[CR]command\f[R] (stdout\-mapped command)
|
|
.IP \[bu] 2
|
|
\f[CR]timeout\f[R] (milliseconds)
|
|
.PP
|
|
\f[CR]onRestore\f[R] (string, default: \f[CR]\[dq]\[dq]\f[R]) : Command
|
|
executed on restore.
|
|
Saved state keys are usable as placeholders.
|
|
.PP
|
|
\f[CR]quitOnSelected\f[R] (boolean, default: \f[CR]false\f[R]) : Exit
|
|
application immediately after confirming a selection.
|
|
.PP
|
|
\f[CR]restoreOnClose\f[R] (boolean, default: \f[CR]true\f[R]) : Run
|
|
\f[CR]onRestore\f[R] when application closes without a final selection.
|
|
.SS ACTION PLACEHOLDERS
|
|
The following placeholders are available in \f[CR]onSelected\f[R],
|
|
\f[CR]onPreview\f[R], and \f[CR]onRestore\f[R] (where applicable):
|
|
.PP
|
|
\f[CR]{{ path }}\f[R] : Full path of selected or previewed wallpaper.
|
|
.PP
|
|
\f[CR]{{ name }}\f[R] : File name of selected or previewed wallpaper.
|
|
.PP
|
|
\f[CR]{{ size }}\f[R] : Size in bytes of selected or previewed
|
|
wallpaper.
|
|
.PP
|
|
\f[CR]{{ palette }}\f[R] : Selected palette name
|
|
(\f[CR]\[dq]null\[dq]\f[R] if none).
|
|
.PP
|
|
\f[CR]{{ colorName }}\f[R] : Chosen primary color name
|
|
(\f[CR]\[dq]null\[dq]\f[R] if none).
|
|
.PP
|
|
\f[CR]{{ colorHex }}\f[R] : Chosen primary color hex
|
|
(\f[CR]\[dq]null\[dq]\f[R] if none).
|
|
.PP
|
|
\f[CR]{{ domColorHex }}\f[R] : Dominant color hex extracted from the
|
|
wallpaper.
|
|
.PP
|
|
\f[CR]{{ <key> }}\f[R] : Value of a saved state item with matching key.
|
|
.SH STYLE SECTION
|
|
Controls window layout and thumbnail dimensions.
|
|
.PP
|
|
\f[CR]image_width\f[R] (integer, default: \f[CR]320\f[R]) : Width of
|
|
each thumbnail.
|
|
.PP
|
|
\f[CR]image_height\f[R] (integer, default: \f[CR]180\f[R]) : Height of
|
|
each thumbnail.
|
|
.PP
|
|
\f[CR]image_focus_scale\f[R] (number, default: \f[CR]1.5\f[R]) : Focus
|
|
scale multiplier for highlighted thumbnail.
|
|
.PP
|
|
\f[CR]window_width\f[R] (integer, default: \f[CR]750\f[R]) : Initial
|
|
window width.
|
|
.PP
|
|
\f[CR]window_height\f[R] (integer, default: \f[CR]500\f[R]) : Initial
|
|
window height.
|
|
.SH CACHE SECTION
|
|
Controls persisted UI state.
|
|
.PP
|
|
\f[CR]saveSortMethod\f[R] (boolean, default: \f[CR]true\f[R]) : Persist
|
|
sort method and direction.
|
|
.PP
|
|
\f[CR]savePalette\f[R] (boolean, default: \f[CR]true\f[R]) : Persist
|
|
selected palette.
|
|
.PP
|
|
\f[CR]maxImageEntries\f[R] (integer, default: \f[CR]1000\f[R]) : Maximum
|
|
number of image cache entries.
|
|
Older entries are evicted.
|
|
.SH EXAMPLE
|
|
.IP
|
|
.EX
|
|
{
|
|
\[dq]$schema\[dq]: \[dq]https://raw.githubusercontent.com/Uyanide/WallReel/refs/heads/master/config.schema.json\[dq],
|
|
\[dq]wallpaper\[dq]: {
|
|
\[dq]paths\[dq]: [\[dq]/home/user/Pictures/favorite.jpg\[dq]],
|
|
\[dq]dirs\[dq]: [
|
|
{
|
|
\[dq]path\[dq]: \[dq]/home/user/Pictures/Wallpapers\[dq],
|
|
\[dq]recursive\[dq]: \f[B]true\f[R]
|
|
}
|
|
],
|
|
\[dq]excludes\[dq]: [\[dq]\[rs]\[rs].gif$\[dq]]
|
|
},
|
|
\[dq]theme\[dq]: {
|
|
\[dq]palettes\[dq]: [
|
|
{
|
|
\[dq]name\[dq]: \[dq]Dark\[dq],
|
|
\[dq]colors\[dq]: [
|
|
{ \[dq]name\[dq]: \[dq]blue\[dq], \[dq]value\[dq]: \[dq]#89b4fa\[dq] },
|
|
{ \[dq]name\[dq]: \[dq]red\[dq], \[dq]value\[dq]: \[dq]#f38ba8\[dq] }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
\[dq]action\[dq]: {
|
|
\[dq]previewDebounceTime\[dq]: 500,
|
|
\[dq]quitOnSelected\[dq]: \f[B]true\f[R],
|
|
\[dq]onPreview\[dq]: \[dq]swww img {{ path }}\[dq],
|
|
\[dq]onSelected\[dq]: \[dq]cp {{ path }} \[ti]/.config/wallpaper/current/ && swww img {{ path }}\[dq],
|
|
\[dq]saveState\[dq]: [
|
|
{
|
|
\[dq]key\[dq]: \[dq]current_wp\[dq],
|
|
\[dq]fallback\[dq]: \[dq]/home/user/Pictures/default.jpg\[dq],
|
|
\[dq]command\[dq]: \[dq]find \[ti]/.config/wallpaper/current \-type f | head \-n 1\[dq],
|
|
\[dq]timeout\[dq]: 1000
|
|
}
|
|
],
|
|
\[dq]onRestore\[dq]: \[dq]swww img {{ current_wp }}\[dq]
|
|
},
|
|
\[dq]style\[dq]: {
|
|
\[dq]image_width\[dq]: 640,
|
|
\[dq]image_height\[dq]: 400,
|
|
\[dq]image_focus_scale\[dq]: 1.2,
|
|
\[dq]window_width\[dq]: 1280,
|
|
\[dq]window_height\[dq]: 720
|
|
},
|
|
\[dq]cache\[dq]: {
|
|
\[dq]saveSortMethod\[dq]: \f[B]true\f[R],
|
|
\[dq]savePalette\[dq]: \f[B]true\f[R],
|
|
\[dq]maxImageEntries\[dq]: 300
|
|
}
|
|
}
|
|
.EE
|
|
.SH SEE ALSO
|
|
\f[B]wallreel\f[R](1)
|
|
.SH AUTHOR
|
|
Uyanide <github.com/Uyanide>
|