Files
lvgl/Kconfig
T
André CostaandGitHub a73e59f6d1
Arduino Lint / lint (push) Waiting to run
Build Examples with C++ Compiler / build-examples (push) Waiting to run
MicroPython CI / Build esp32 port (push) Waiting to run
MicroPython CI / Build rp2 port (push) Waiting to run
MicroPython CI / Build stm32 port (push) Waiting to run
MicroPython CI / Build unix port (push) Waiting to run
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Waiting to run
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Waiting to run
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Waiting to run
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Waiting to run
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Waiting to run
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Waiting to run
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Waiting to run
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Waiting to run
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Waiting to run
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Waiting to run
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Waiting to run
C/C++ CI / Build ESP IDF ESP32S3 (push) Waiting to run
C/C++ CI / Run tests with 32bit build (push) Waiting to run
C/C++ CI / Run tests with 64bit build (push) Waiting to run
BOM Check / bom-check (push) Waiting to run
Verify GDB constants are up-to-date / verify-gdb-consts (push) Waiting to run
Verify the widget property name / verify-property-name (push) Waiting to run
Verify code formatting / verify-formatting (push) Waiting to run
Compare file templates with file names / template-check (push) Waiting to run
Code Generation / Code Generation (push) Waiting to run
Build Docs / build-and-deploy (push) Waiting to run
Build .deb packages / build (push) Waiting to run
Validate pkg-config and CMake config / cmake (linux) (push) Waiting to run
Validate pkg-config and CMake config / pkgconfig (linux) (push) Waiting to run
Validate pkg-config and CMake config / cmake (linux-3d) (push) Waiting to run
Validate pkg-config and CMake config / pkgconfig (linux-3d) (push) Waiting to run
Test API JSON generator / Test API JSON (push) Waiting to run
Install LVGL using CMake / build-examples (private) (push) Waiting to run
Install LVGL using CMake / build-examples (public) (push) Waiting to run
Check Makefile / Build using Makefile (push) Canceled after 0s
Check Makefile for UEFI / Build using Makefile for UEFI (push) Canceled after 0s
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/benchmark_results_comment/test.sh) (push) Canceled after 0s
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/filter_docker_logs/test.sh) (push) Canceled after 0s
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/serialize_results/test.sh) (push) Canceled after 0s
Hardware Performance Test / Hardware Performance Benchmark (push) Canceled after 0s
Hardware Performance Test / HW Benchmark - Save PR Number (push) Canceled after 0s
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_32B - Ubuntu (push) Canceled after 0s
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_64B - Ubuntu (push) Canceled after 0s
Port repo release update / run-release-branch-updater (push) Canceled after 0s
Static Checks / Static Checks (push) Canceled after 0s
Verify Font License / verify-font-license (push) Canceled after 0s
Verify Kconfig / verify-kconfig (push) Canceled after 0s
Emulated Performance Test / ARM Emulated Benchmark 32b - lv_conf_perf32b (push) Canceled after 0s
Emulated Performance Test / ARM Emulated Benchmark 64b - lv_conf_perf64b (push) Canceled after 0s
Emulated Performance Test / ARM Emulated Benchmark - Save PR Number (push) Canceled after 0s
arch(config): split kconfig, add missing configs and generate lv_conf headers from it (#10292)
2026-07-16 08:30:55 +02:00

3645 lines
89 KiB
Plaintext

# Generated file. DO NOT EDIT!
menu "LVGL"
menu "Memory and Standard Library"
config LV_STDLIB_BUILTIN
int
default 0
config LV_STDLIB_CLIB
int
default 1
config LV_STDLIB_MICROPYTHON
int
default 2
config LV_STDLIB_RTTHREAD
int
default 3
config LV_STDLIB_CUSTOM
int
default 255
choice
prompt "Malloc functions source"
default LV_USE_BUILTIN_MALLOC
config LV_USE_BUILTIN_MALLOC
bool "LVGL's built in implementation"
config LV_USE_CLIB_MALLOC
bool "Standard C functions malloc/realloc/free"
config LV_USE_MICROPYTHON_MALLOC
bool "MicroPython functions malloc/realloc/free"
config LV_USE_RTTHREAD_MALLOC
bool "RT-Thread functions malloc/realloc/free"
config LV_USE_CUSTOM_MALLOC
bool "Implement the functions externally"
endchoice # "Malloc functions"
config LV_USE_STDLIB_MALLOC
int
default LV_STDLIB_BUILTIN if LV_USE_BUILTIN_MALLOC
default LV_STDLIB_CLIB if LV_USE_CLIB_MALLOC
default LV_STDLIB_MICROPYTHON if LV_USE_MICROPYTHON_MALLOC
default LV_STDLIB_RTTHREAD if LV_USE_RTTHREAD_MALLOC
default LV_STDLIB_CUSTOM if LV_USE_CUSTOM_MALLOC
choice
prompt "String functions source"
default LV_USE_BUILTIN_STRING
config LV_USE_BUILTIN_STRING
bool "LVGL's built in implementation"
config LV_USE_CLIB_STRING
bool "Standard C functions memcpy/memset/strlen/strcpy"
config LV_USE_RTTHREAD_STRING
bool "RT-Thread functions rt_memcpy/rt_memset/rt_strlen/rt_strcpy"
config LV_USE_CUSTOM_STRING
bool "Implement the functions externally"
endchoice
config LV_USE_STDLIB_STRING
int
default LV_STDLIB_BUILTIN if LV_USE_BUILTIN_STRING
default LV_STDLIB_CLIB if LV_USE_CLIB_STRING
default LV_STDLIB_RTTHREAD if LV_USE_RTTHREAD_STRING
default LV_STDLIB_CUSTOM if LV_USE_CUSTOM_STRING
choice
prompt "Sprintf functions source"
default LV_USE_BUILTIN_SPRINTF
config LV_USE_BUILTIN_SPRINTF
bool "LVGL's built in implementation"
config LV_USE_CLIB_SPRINTF
bool "Standard C function vsnprintf"
config LV_USE_RTTHREAD_SPRINTF
bool "RT-Thread function rt_vsnprintf"
config LV_USE_CUSTOM_SPRINTF
bool "Implement the functions externally"
endchoice # "Sprintf functions"
config LV_USE_STDLIB_SPRINTF
int
default LV_STDLIB_BUILTIN if LV_USE_BUILTIN_SPRINTF
default LV_STDLIB_CLIB if LV_USE_CLIB_SPRINTF
default LV_STDLIB_RTTHREAD if LV_USE_RTTHREAD_SPRINTF
default LV_STDLIB_CUSTOM if LV_USE_CUSTOM_SPRINTF
if LV_USE_BUILTIN_MALLOC
menu "Builtin Malloc Settings"
config LV_MEM_SIZE
int "Memory size in bytes (Needs to be at least 2kB (2048))"
default 65536
config LV_MEM_SIZE_KILOBYTES
int "Memory size (KB) [DEPRECATED: use LV_MEM_SIZE]"
default 0
help
Deprecated. Use LV_MEM_SIZE (in bytes) instead.
config LV_MEM_POOL_EXPAND_SIZE_KILOBYTES
int "Size of the memory expand for `lv_malloc()` in kilobytes [DEPRECATED: use LV_MEM_SIZE directly]"
default 0
help
Deprecated. Modify LV_MEM_SIZE (in bytes) directly instead.
config LV_MEM_ADR
hex "Address for the memory pool instead of allocating it as a normal array. 0: unused"
default 0x0
endmenu
endif #LV_USE_BUILTIN_MALLOC
# Standard library headers LVGL includes. Keep the angle brackets / quotes in
# the value: it is emitted verbatim (unquoted) as the #include argument.
config LV_STDINT_INCLUDE
string "Header for integer types (stdint)"
default "stdint.h"
config LV_STDDEF_INCLUDE
string "Header for standard definitions (stddef)"
default "stddef.h"
config LV_STDBOOL_INCLUDE
string "Header for boolean types (stdbool)"
default "stdbool.h"
config LV_INTTYPES_INCLUDE
string "Header for fixed-width integer format macros (inttypes)"
default "inttypes.h"
config LV_LIMITS_INCLUDE
string "Header for implementation limits (limits)"
default "limits.h"
config LV_STDARG_INCLUDE
string "Header for variadic argument handling (stdarg)"
default "stdarg.h"
endmenu
menu "Operating System (OS)"
choice LV_USE_OS
prompt "Default operating system to use"
default LV_OS_NONE
config LV_OS_NONE
bool "NONE"
config LV_OS_PTHREAD
bool "PTHREAD"
select LV_OS_USE_PTHREAD
config LV_OS_FREERTOS
bool "FREERTOS"
select LV_OS_USE_FREERTOS
config LV_OS_CMSIS_RTOS2
bool "CMSIS_RTOS2"
select LV_OS_USE_CMSIS_RTOS2
config LV_OS_RTTHREAD
bool "RTTHREAD"
select LV_OS_USE_RTTHREAD
config LV_OS_WINDOWS
bool "WINDOWS"
select LV_OS_USE_WINDOWS
config LV_OS_MQX
bool "MQX"
select LV_OS_USE_MQX
config LV_OS_SDL2
bool "SDL2"
select LV_OS_USE_SDL2
config LV_OS_CUSTOM
bool "CUSTOM"
select LV_OS_USE_CUSTOM_INCLUDE
endchoice
config LV_USE_OS
int
default 0 if LV_OS_NONE
default 1 if LV_OS_PTHREAD
default 2 if LV_OS_FREERTOS
default 3 if LV_OS_CMSIS_RTOS2
default 4 if LV_OS_RTTHREAD
default 5 if LV_OS_WINDOWS
default 6 if LV_OS_MQX
default 7 if LV_OS_SDL2
default 255 if LV_OS_CUSTOM
# Internal flags that can be used to
# generate cmake variables during build
config LV_OS_USE_PTHREAD
bool
config LV_OS_USE_FREERTOS
bool
config LV_OS_USE_CMSIS_RTOS2
bool
config LV_OS_USE_RTTHREAD
bool
config LV_OS_USE_WINDOWS
bool
config LV_OS_USE_MQX
bool
config LV_OS_USE_SDL2
bool
config LV_OS_USE_CUSTOM_INCLUDE
bool
config LV_OS_USE_CUSTOM_INCLUDE
bool
config LV_OS_CUSTOM_INCLUDE
string "Custom OS include header"
default ""
depends on LV_OS_CUSTOM
if LV_OS_FREERTOS
menu "FreeRTOS Configuration"
config LV_USE_FREERTOS_TASK_NOTIFY
bool "Use RTOS task with a direct notification for synchronization"
default y
help
Unblocking an RTOS task with a direct notification is 45% faster and uses less RAM
than unblocking a task using an intermediary object such as a binary semaphore.
RTOS task notifications can only be used when there is only one task that can be the recipient of the event.
config LV_OS_IDLE_PERCENT_CUSTOM
bool "Custom idle percentage calculation"
default n
help
Enable this to provide a custom implementation of lv_os_get_idle_percent.
This is useful for multi-core systems where the default
FreeRTOS implementation might not sufficiently track idle time across all cores.
endmenu
endif #LV_OS_FREERTOS
endmenu
menu "Rendering Configuration"
menu "Color Settings"
choice
prompt "Color depth"
default LV_COLOR_DEPTH_16
help
Color depth to be used.
config LV_COLOR_DEPTH_32
bool "32: XRGB8888"
imply LV_FONT_MONTSERRAT_14
config LV_COLOR_DEPTH_24
bool "24: RGB888"
imply LV_FONT_MONTSERRAT_14
config LV_COLOR_DEPTH_16
bool "16: RGB565"
imply LV_FONT_MONTSERRAT_14
config LV_COLOR_DEPTH_8
bool "8: RGB232"
imply LV_FONT_UNSCII_8
config LV_COLOR_DEPTH_1
bool "1: 1 byte per pixel"
imply LV_FONT_MONTSERRAT_14
endchoice
config LV_COLOR_DEPTH
int
default 1 if LV_COLOR_DEPTH_1
default 8 if LV_COLOR_DEPTH_8
default 16 if LV_COLOR_DEPTH_16
default 24 if LV_COLOR_DEPTH_24
default 32 if LV_COLOR_DEPTH_32
help
Color depth: 1 (I1), 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888)
config LV_COLOR_MIX_ROUND_OFS
int "Adjust color mix functions rounding"
default 0
range 0 254
help
0: no adjustment, get the integer part of the result (round down)
64: round up from x.75
128: round up from half
192: round up from x.25
254: round up
endmenu
# Capability configs, these are set internally by draw units. Can be used by eg: widgets that depend
# on a specific draw feature
config LV_DRAW_HAS_VECTOR_SUPPORT
bool
default n
config LV_DRAW_HAS_3D_SUPPORT
bool
default n
config LV_DEF_REFR_PERIOD
int "Default refresh period (ms)"
default 33
help
Default display refresh, input device read and animation step period.
config LV_DPI_DEF
int "Default Dots Per Inch (in px/inch)"
default 130
help
Used to initialize default sizes such as widgets sizes and style paddings.
(Not so important, you can adjust it to modify default sizes and spaces)
config LV_DRAW_BUF_STRIDE_ALIGN
int "Buffer stride alignment"
default 1
help
Align the stride of all layers and images to this many bytes.
config LV_DRAW_BUF_ALIGN
int "Buffer address alignment"
default 4
help
Align the start address of draw_buf addresses to this many bytes.
config LV_USE_MATRIX
bool "Enable matrix support"
default n
select LV_USE_FLOAT
help
Enable matrix support
config LV_DRAW_TRANSFORM_USE_MATRIX
bool "Using matrix for transformations"
default n
depends on LV_USE_MATRIX
help
Requirements: The rendering engine needs to support 3x3 matrix transformations.
config LV_DRAW_LAYER_SIMPLE_BUF_SIZE
int "Optimal size to buffer the widget with opacity"
default 24576
help
If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode
it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks.
"Transformed layers" (if `transform_angle/zoom` are set) use larger buffers and can't be drawn in chunks.
config LV_DRAW_LAYER_MAX_MEMORY
int "The maximum amount of memory that can be used for layers"
default 0
help
Limit the max allocated memory for simple and transformed layers.
It should be at least `LV_DRAW_LAYER_SIMPLE_BUF_SIZE` sized but if transformed layers are also used
it should be enough to store the largest widget too (width x height x 4 area).
Set it to 0 to have no limit.
config LV_DRAW_THREAD_STACK_SIZE
int "Stack size of draw thread in bytes"
default 8192
depends on !LV_OS_NONE
help
If FreeType or ThorVG is enabled, it is recommended to set it to 32KB or more.
config LV_DRAW_THREAD_PRIO
int "Thread priority for the drawing thread"
range 0 4
default 3
depends on !LV_OS_NONE
help
Thread priority controls the relative importance of the drawing threads.
Values correspond to lv_thread_prio_t enum in lv_os.h:
0: LV_THREAD_PRIO_LOWEST
1: LV_THREAD_PRIO_LOW
2: LV_THREAD_PRIO_MID (default)
3: LV_THREAD_PRIO_HIGH
4: LV_THREAD_PRIO_HIGHEST
Higher priority can improve rendering performance but might cause
starvation of lower priority tasks.
config LV_USE_VECTOR_GRAPHIC
bool "Use Vector Graphic APIs"
default n
select LV_USE_MATRIX
help
Enable drawing support vector graphic APIs.
config LV_USE_SNAPSHOT
bool "Enable API to take snapshot"
default n
help
Enable API to take snapshot for object
config LV_USE_THORVG
bool "ThorVG library for vector graphics support"
default n
select LV_DRAW_HAS_VECTOR_SUPPORT if LV_USE_DRAW_SW
config LV_USE_THORVG_INTERNAL
bool "Internal ThorVG library bundled with LVGL"
default y
depends on LV_USE_THORVG
# These are menus because they contain a lot of configuration options
menu "Software Rendering (SW)"
config LV_USE_DRAW_SW
bool "Enable software rendering"
default y
help
Required to draw anything on the screen.
if LV_USE_DRAW_SW
config LV_DRAW_SW_SUPPORT_RGB565
bool "Enable support for RGB565 color format"
default y
config LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
bool "Enable support for RGB565 swapped color format"
default y
config LV_DRAW_SW_SUPPORT_RGB565A8
bool "Enable support for RGB565A8 color format"
default y
config LV_DRAW_SW_SUPPORT_RGB888
bool "Enable support for RGB888 color format"
default y
config LV_DRAW_SW_SUPPORT_XRGB8888
bool "Enable support for XRGB8888 color format"
default y
config LV_DRAW_SW_SUPPORT_ARGB8888
bool "Enable support for ARGB8888 color format"
default y
config LV_DRAW_SW_SUPPORT_ARGB8888_PREMULTIPLIED
bool "Enable support for ARGB8888 premultiplied color format"
default y
config LV_DRAW_SW_SUPPORT_L8
bool "Enable support for L8 color format"
default y
config LV_DRAW_SW_SUPPORT_AL88
bool "Enable support for AL88 color format"
default y
config LV_DRAW_SW_SUPPORT_A8
bool "Enable support for A8 color format"
default y
config LV_DRAW_SW_SUPPORT_I1
bool "Enable support for I1 color format"
default y
config LV_DRAW_SW_I1_LUM_THRESHOLD
int "Luminance threshold for a pixel to be active"
default 127
range 0 254
depends on LV_DRAW_SW_SUPPORT_I1
config LV_DRAW_SW_DRAW_UNIT_CNT
int "Number of draw units"
default 1
depends on !LV_OS_NONE
help
Number of threads used to render a frame in parallel
config LV_USE_DRAW_ARM2D_SYNC
bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors"
default n
help
Must deploy arm-2d library to your project and add include PATH for "arm_2d.h".
config LV_USE_NATIVE_HELIUM_ASM
bool "Enable native helium assembly"
default n
help
Disabling this allows arm2d to work on its own (for testing only)
config LV_DRAW_SW_COMPLEX
bool "Enable complex draw engine"
default y
help
0: use a simple renderer capable of drawing only simple rectangles with gradient, images, texts, and straight lines only,
1: use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too.
config LV_GRADIENT_MAX_STOPS
int "Number of stops allowed per gradient"
default 2
help
Increase this to allow more stops.
This adds (sizeof(lv_color_t) + 1) bytes per additional stop
config LV_USE_DRAW_SW_COMPLEX_GRADIENTS
bool "Enable drawing complex gradients in software"
default n
help
0: do not enable complex gradients
1: enable complex gradients (linear at an angle, radial or conical)
config LV_DRAW_SW_SHADOW_CACHE_SIZE
int "Allow buffering some shadow calculation"
depends on LV_DRAW_SW_COMPLEX
default 0
help
LV_DRAW_SW_SHADOW_CACHE_SIZE is the max shadow size to buffer, where
shadow size is `shadow_width + radius`.
Caching has LV_DRAW_SW_SHADOW_CACHE_SIZE^2 RAM cost.
config LV_DRAW_SW_CIRCLE_CACHE_SIZE
int "Set number of maximally cached circle data"
depends on LV_DRAW_SW_COMPLEX
default 4
help
The circumference of 1/4 circle are saved for anti-aliasing
radius * 4 bytes are used per circle (the most often used
radiuses are saved).
Set to 0 to disable caching.
choice LV_USE_DRAW_SW_ASM
prompt "Asm mode in sw draw"
default LV_DRAW_SW_ASM_NONE
help
ASM mode to be used
config LV_DRAW_SW_ASM_NONE
bool "0: NONE"
config LV_DRAW_SW_ASM_NEON
bool "1: NEON"
config LV_DRAW_SW_ASM_HELIUM
bool "2: HELIUM"
config LV_DRAW_SW_ASM_RISCV_V
bool "3: RISC-V Vector"
config LV_DRAW_SW_ASM_CUSTOM
bool "255: CUSTOM"
select LV_DRAW_SW_ASM_USE_CUSTOM_INCLUDE
endchoice
config LV_USE_DRAW_SW_ASM
int
default 0 if LV_DRAW_SW_ASM_NONE
default 1 if LV_DRAW_SW_ASM_NEON
default 2 if LV_DRAW_SW_ASM_HELIUM
default 3 if LV_DRAW_SW_ASM_RISCV_V
default 255 if LV_DRAW_SW_ASM_CUSTOM
config LV_DRAW_SW_ASM_USE_CUSTOM_INCLUDE
bool
config LV_DRAW_SW_ASM_CUSTOM_INCLUDE
string "Set the custom asm include file"
default ""
depends on LV_DRAW_SW_ASM_CUSTOM
endif #LV_USE_DRAW_SW
endmenu
menu "VGLite"
config LV_USE_DRAW_VG_LITE
bool "Use VG-Lite GPU"
default n
select LV_USE_MATRIX
select LV_DRAW_HAS_VECTOR_SUPPORT
help
Use VG-Lite GPU.
if LV_USE_DRAW_VG_LITE
config LV_VG_LITE_USE_GPU_INIT
bool "Enable VG-Lite custom external 'gpu_init()' function"
default n
config LV_VG_LITE_USE_ASSERT
bool "Enable VG-Lite assert"
default n
config LV_VG_LITE_FLUSH_MAX_COUNT
int "VG-Lite flush commit trigger threshold"
default 8
help
GPU will try to batch these many draw tasks
config LV_VG_LITE_USE_BOX_SHADOW
bool "Enable border to simulate shadow"
default y
help
which usually improves performance,
but does not guarantee the same rendering quality as the software.
config LV_VG_LITE_GRAD_CACHE_CNT
int "VG-Lite gradient maximum cache number"
default 32
help
The memory usage of a single gradient:
linear: 4K bytes.
radial: radius * 4K bytes.
config LV_VG_LITE_STROKE_CACHE_CNT
int "VG-Lite stroke maximum cache number"
default 32
config LV_VG_LITE_BITMAP_FONT_CACHE_CNT
int "VG-Lite unaligned bitmap font maximum cache number"
default 256
config LV_VG_LITE_DISABLE_VLC_OP_CLOSE
bool "Remove VLC_OP_CLOSE path instruction (Workaround for NXP)"
default n
config LV_VG_LITE_DISABLE_LINEAR_GRADIENT_EXT
bool "Disable linear gradient extension for some older versions of drivers"
default n
config LV_VG_LITE_DISABLE_BLIT_RECT_OFFSET
bool "Disable blit rectangular offset to resolve certain hardware errors"
default n
config LV_VG_LITE_PATH_DUMP_MAX_LEN
int "Maximum path dump print length (in points)"
default 1000
config LV_USE_VG_LITE_DRIVER
bool "Use LVGL's built-in vg_lite driver"
default n
if LV_USE_VG_LITE_DRIVER
# The GPU series + revision selects which
# VGLite/Series/<series>/<revision>/vg_lite_options.h is included. A
# free-form string/hex pair can't be represented in Kconfig (the include
# path needs unquoted tokens), so the supported GPUs are offered as a choice
# and mapped to the include in VGLite/vg_lite_options.h.
choice
prompt "VG-Lite GPU (series and revision)"
default LV_VG_LITE_GPU_GC255_0X40A
config LV_VG_LITE_GPU_GC255_0X40A
bool "GC255 (revision 0x40A)"
config LV_VG_LITE_GPU_GC355_0X0_1215
bool "GC355 (revision 0x0_1215)"
config LV_VG_LITE_GPU_GC355_0X0_1216
bool "GC355 (revision 0x0_1216)"
config LV_VG_LITE_GPU_GC555_0X423
bool "GC555 (revision 0x423)"
config LV_VG_LITE_GPU_GC555_0X423_ECO
bool "GC555 (revision 0x423 ECO)"
config LV_VG_LITE_GPU_GCNANOULTRAV_0X1003
bool "GCNanoUltraV (revision 0x1003)"
endchoice
config LV_VG_LITE_GPU
int
default 0 if LV_VG_LITE_GPU_GC255_0X40A
default 1 if LV_VG_LITE_GPU_GC355_0X0_1215
default 2 if LV_VG_LITE_GPU_GC355_0X0_1216
default 3 if LV_VG_LITE_GPU_GC555_0X423
default 4 if LV_VG_LITE_GPU_GC555_0X423_ECO
default 5 if LV_VG_LITE_GPU_GCNANOULTRAV_0X1003
config LV_VG_LITE_HAL_GPU_BASE_ADDRESS
hex "VG-Lite GPU base address"
default 0x40240000
endif #LV_USE_VG_LITE_DRIVER
config LV_USE_VG_LITE_THORVG
bool "VG-Lite Simulator"
default n
select LV_USE_THORVG
help
Use thorvg to simulate VG-Lite hardware behavior, it's useful
for debugging and testing on PC simulator. Enable LV_USE_THORVG,
Either internal ThorVG or external ThorVG library is required.
if LV_USE_VG_LITE_THORVG
config LV_VG_LITE_THORVG_LVGL_BLEND_SUPPORT
bool "Enable LVGL blend mode support"
default n
depends on LV_USE_VG_LITE_THORVG
config LV_VG_LITE_THORVG_YUV_SUPPORT
bool "Enable YUV color format support"
default n
config LV_VG_LITE_THORVG_LINEAR_GRADIENT_EXT_SUPPORT
bool "Enable linear gradient extension support"
default n
config LV_VG_LITE_THORVG_16PIXELS_ALIGN
bool "Enable 16 pixels alignment"
default y
config LV_VG_LITE_THORVG_BUF_ADDR_ALIGN
int "Buffer address alignment"
default 64
config LV_VG_LITE_THORVG_THREAD_RENDER
bool "Enable multi-thread render"
default n
endif #LV_USE_VG_LITE_THORVG
endif #LV_USE_DRAW_VG_LITE
endmenu
menu "DAVE/2D"
config LV_USE_DRAW_DAVE2D
bool "Use Renesas Dave2D on RA platforms"
default n
help
Use Renesas Dave2D on RA platforms.
endmenu
menu "Nema GFX"
config LV_USE_NEMA_GFX
bool "Use NemaGFX acceleration"
default n
help
Use TSi's aka (Think Silicon) NemaGFX
if LV_USE_NEMA_GFX
config LV_NEMA_USE_CACHE
bool "Cache handling of NemaGFX"
default n
config LV_NEMA_CACHE_HAL_INCLUDE
string "NemaGFX Cache HAL include"
default "stm32u5xx_hal.h"
depends on LV_NEMA_USE_CACHE
choice LV_USE_NEMA_LIB
prompt "NemaGFX static library"
default LV_NEMA_LIB_NONE
config LV_NEMA_LIB_NONE
bool "LV_NEMA_LIB_NONE"
config LV_NEMA_LIB_M33_REVC
bool "LV_NEMA_LIB_M33_REVC"
config LV_NEMA_LIB_M33_NEMAPVG
bool "LV_NEMA_LIB_M33_NEMAPVG"
config LV_NEMA_LIB_M55
bool "LV_NEMA_LIB_M55"
config LV_NEMA_LIB_M7
bool "LV_NEMA_LIB_M7"
endchoice
config LV_USE_NEMA_LIB
int
default 0 if LV_NEMA_LIB_NONE
default 1 if LV_NEMA_LIB_M33_REVC
default 2 if LV_NEMA_LIB_M33_NEMAPVG
default 3 if LV_NEMA_LIB_M55
default 4 if LV_NEMA_LIB_M7
choice LV_USE_NEMA_HAL
prompt "NemaGFX HAL"
default LV_NEMA_HAL_CUSTOM
config LV_NEMA_HAL_CUSTOM
bool "LV_NEMA_HAL_CUSTOM"
config LV_NEMA_HAL_STM32
bool "LV_NEMA_HAL_STM32"
endchoice
config LV_USE_NEMA_HAL
int
default 0 if LV_NEMA_HAL_CUSTOM
default 1 if LV_NEMA_HAL_STM32
config LV_NEMA_STM32_HAL_INCLUDE
string "NemaGFX STM32 HAL include"
default "stm32u5xx_hal.h"
depends on LV_NEMA_HAL_STM32
config LV_NEMA_USE_CUSTOM_INCLUDE
bool "Include a custom NemaGFX attribute header"
default n
depends on LV_NEMA_HAL_STM32
help
Include the header given by LV_NEMA_CUSTOM_INCLUDE to override
NemaGFX/STM32 HAL-specific macros such as
LV_NEMA_STM32_HAL_ATTRIBUTE_POOL_MEM.
config LV_NEMA_CUSTOM_INCLUDE
string "Path to custom NemaGFX attribute header"
default ""
depends on LV_NEMA_USE_CUSTOM_INCLUDE
help
Optional header to override NemaGFX/STM32 HAL-specific macros.
LV_NEMA_STM32_HAL_ATTRIBUTE_POOL_MEM
Attribute applied to the NemaGFX memory pool on STM32 targets.
Used to place the pool in a specific RAM region accessible by
the NemaGFX DMA.
e.g. __attribute__((section(".nema_pool")))
config LV_USE_NEMA_VG
bool "Enable NemaVG operations"
select LV_DRAW_HAS_VECTOR_SUPPORT
default n
config LV_NEMA_GFX_MAX_RESX
int "NemaVG max horizontal resolution"
default 800
config LV_NEMA_GFX_MAX_RESY
int "NemaVG max vertical resolution"
default 600
endif
endmenu
menu "NXP PXP"
config LV_USE_PXP
bool "Use PXP (legacy, no effect) [DEPRECATED: use LV_USE_DRAW_PXP]"
default n
help
Deprecated and non-functional. Use LV_USE_DRAW_PXP instead.
config LV_USE_DRAW_PXP
bool "Use PXP for drawing"
default n
if LV_USE_DRAW_PXP
config LV_USE_ROTATE_PXP
bool "Use PXP to rotate the display"
default n
config LV_USE_PXP_DRAW_THREAD
bool "Use additional draw thread for PXP processing"
depends on !LV_OS_NONE
default y
config LV_USE_PXP_ASSERT
bool "Enable PXP asserts"
endif
endmenu
menu "ESP32 PPA"
config LV_USE_PPA
bool "Use Espressif's PPA accelerator for ESP SoCs"
default n
help
Draw using Espressif PPA accelerator
if LV_USE_PPA
config LV_USE_PPA_IMG
bool "Use Espressif's PPA accelerator for Image draw"
default n
config LV_PPA_BURST_LENGTH
int "PPA Burst length in bytes"
default 128
help
PPA burst length size in bytes.
endif
endmenu
menu "DMA2D"
config LV_USE_DRAW_DMA2D
bool "Use DMA2D on the supporting STM32 platforms"
default n
help
Accelerate blends, fills, image decoding, etc. with STM32 DMA2D.
if LV_USE_DRAW_DMA2D
config LV_DRAW_DMA2D_HAL_INCLUDE
string "the header file for LVGL to include for DMA2D"
default "stm32h7xx_hal.h"
config LV_USE_DRAW_DMA2D_INTERRUPT
bool "use the DMA2D transfer complete interrupt"
default n
help
if enabled, the user is required to call
`lv_draw_dma2d_transfer_complete_interrupt_handler`
upon receiving the DMA2D global interrupt
endif
endmenu
menu "EVE"
config LV_USE_DRAW_EVE
bool "Use EVE FT81X GPU"
default n
help
Use EVE FT81X GPU.
if LV_USE_DRAW_EVE
config LV_DRAW_EVE_EVE_GENERATION
int "EVE_GEN value"
default 4
range 2 4
config LV_DRAW_EVE_WRITE_BUFFER_SIZE
int "Max bytes to buffer for each SPI transmission or 0 to disable buffering"
default 2048
endif
endmenu
menu "NXP G2D"
config LV_USE_G2D
bool "Use G2D (legacy, no effect) [DEPRECATED: use LV_USE_DRAW_G2D]"
default n
help
Deprecated and non-functional. Use LV_USE_DRAW_G2D instead.
config LV_USE_DRAW_G2D
bool "Use G2D for drawing"
default n
if LV_USE_DRAW_G2D
config LV_G2D_HASH_TABLE_SIZE
int "Maximum number of buffers that can be stored for G2D draw unit"
default 50
help
Includes the frame buffers and assets.
config LV_USE_G2D_DRAW_THREAD
bool "Use additional draw thread for G2D processing"
depends on !LV_OS_NONE
default y
config LV_USE_G2D_ASSERT
bool "Enable G2D asserts"
depends on LV_USE_DRAW_G2D
default n
endif
endmenu
menu "NanoVG (OpenGL Shaders)"
config LV_USE_DRAW_NANOVG
bool "Use NanoVG Renderer."
default n
select LV_USE_NANOVG
select LV_USE_MATRIX
select LV_DRAW_HAS_VECTOR_SUPPORT
select LV_DRAW_HAS_3D_SUPPORT
help
Use NanoVG Renderer
if LV_USE_DRAW_NANOVG
choice LV_NANOVG_BACKEND
prompt "NanoVG OpenGL backend"
default LV_NANOVG_BACKEND_GLES2
help
Select which OpenGL implementation to use for NanoVG rendering.
config LV_NANOVG_BACKEND_GL2
bool "OpenGL 2.0"
config LV_NANOVG_BACKEND_GL3
bool "OpenGL 3.0+"
config LV_NANOVG_BACKEND_GLES2
bool "OpenGL ES 2.0"
config LV_NANOVG_BACKEND_GLES3
bool "OpenGL ES 3.0+"
endchoice
config LV_NANOVG_BACKEND
int
default 1 if LV_NANOVG_BACKEND_GL2
default 2 if LV_NANOVG_BACKEND_GL3
default 3 if LV_NANOVG_BACKEND_GLES2
default 4 if LV_NANOVG_BACKEND_GLES3
config LV_NANOVG_IMAGE_CACHE_CNT
int "Draw image texture cache count"
default 128
config LV_NANOVG_LETTER_CACHE_CNT
int "Draw letter cache count"
default 512
endif
endmenu
menu "OpenGL Textures"
config LV_USE_DRAW_OPENGLES
bool "Draw using cached OpenGLES textures"
default n
select LV_USE_OPENGLES
select LV_DRAW_HAS_3D_SUPPORT
help
Draw using cached OpenGLES textures.
if LV_USE_DRAW_OPENGLES
config LV_DRAW_OPENGLES_TEXTURE_CACHE_COUNT
int "OpenGLES texture cache count"
default 64
endif
endmenu
menu "SDL Textures"
config LV_USE_DRAW_SDL
bool "Draw using cached SDL textures"
default n
help
Uses SDL renderer API
endmenu
endmenu
menu "Input Devices"
config LV_USE_GRIDNAV
bool "Enable grid navigation"
default n
help
Enable grid navigation
config LV_USE_GESTURE_RECOGNITION
bool "Enable the multi-touch gesture recognition feature"
select LV_USE_FLOAT
default n
help
Enable the multi-touch gesture recognition feature
Gesture recognition requires the use of floats
endmenu
menu "Core"
config LV_OBJ_STYLE_CACHE
bool "Use cache to speed up getting object style properties"
default n
help
Add 2 x 32 bit variables to each lv_obj_t to speed up getting style properties
config LV_USE_OBJ_NAME
bool "Widget names (lv_obj_set_name)"
default n
help
Enable support for widget names
config LV_USE_OBJ_ID
bool "Widget id (lv_obj_set_id)"
default n
help
Add `id` field to `lv_obj_t`
if LV_USE_OBJ_ID
config LV_OBJ_ID_AUTO_ASSIGN
bool "Automatically assign an ID when obj is created"
default y
help
Automatically assign an ID when obj is created
config LV_USE_OBJ_ID_BUILTIN
bool "Use builtin method to deal with obj ID"
default y
help
Use builtin obj ID handler functions:
- lv_obj_assign_id: Called when a widget is created. Use a separate counter for each widget class as an ID.
- lv_obj_id_compare: Compare the ID to decide if it matches with a requested value.
- lv_obj_stringify_id: Return string-ified identifier, e.g. "button3".
- lv_obj_free_id: Does nothing, as there is no memory allocation for the ID.
When disabled these functions needs to be implemented by the user.
endif #LV_USE_OBJ_ID
config LV_USE_OBJ_PROPERTY
bool "Use obj property set/get API"
default n
help
Use obj property set/get API.
if LV_USE_OBJ_PROPERTY
config LV_USE_OBJ_PROPERTY_NAME
bool "Use name to access property"
default y
help
Add a name table to every widget class, so the property can be accessed by name.
Note, the const table will increase flash usage.
endif #LV_USE_OBJ_PROPERTY
config LV_USE_EXT_DATA
bool "External data and destructor"
default n
help
Enable this option to activate external data and destructor functionality,
which assists in resource cleanup when objects are freed by either LVGL core
or applications. Currently supported features include:
- event
- object
- observer
- anim
- timer
- group
- display
- indev (input device)
- theme
config LV_USE_FLOAT
bool "Use float as lv_value_precise_t"
default n
help
Use `float` as `lv_value_precise_t`
config LV_USE_OBSERVER
bool "Observer"
default y
help
Enable an observer pattern implementation
config LV_USE_TRANSLATION
bool "Text translation"
help
Enable text translation support
config LV_USE_COLOR_FILTER
bool "Color filter style"
default n
help
Enable color filter style
endmenu #"Core"
menu "Logging"
config LV_USE_LOG
bool "Enable the log module"
help
Enable log module
if LV_USE_LOG
choice
bool "Default log verbosity"
default LV_LOG_LEVEL_WARN
help
Specify how important log should be added.
config LV_LOG_LEVEL_TRACE
bool "LOG_LEVEL_TRACE: A lot of logs to give detailed information"
config LV_LOG_LEVEL_INFO
bool "LOG_LEVEL_INFO: Log important events"
config LV_LOG_LEVEL_WARN
bool "LOG_LEVEL_WARN: Log if something unwanted happened but didn't cause a problem"
config LV_LOG_LEVEL_ERROR
bool "LOG_LEVEL_ERROR: Only critical issues, when the system may fail"
config LV_LOG_LEVEL_USER
bool "LOG_LEVEL_USER: Only logs added by the user"
config LV_LOG_LEVEL_NONE
bool "LOG_LEVEL_NONE: Do not log anything"
endchoice
config LV_LOG_LEVEL
int
default 0 if LV_LOG_LEVEL_TRACE
default 1 if LV_LOG_LEVEL_INFO
default 2 if LV_LOG_LEVEL_WARN
default 3 if LV_LOG_LEVEL_ERROR
default 4 if LV_LOG_LEVEL_USER
default 5 if LV_LOG_LEVEL_NONE
config LV_LOG_LEVEL_NUM
int
default 5
config LV_LOG_PRINTF
bool "Print the log with 'printf'"
default n
help
Use printf for log output.
If not set the user needs to register a callback with `lv_log_register_print_cb`.
config LV_LOG_USE_TIMESTAMP
bool "Enable print timestamp"
default y
config LV_LOG_USE_FILE_LINE
bool "Enable print file and line number"
default y
config LV_LOG_TRACE_MEM
bool "Enable/Disable LV_LOG_TRACE in mem module"
default y
config LV_LOG_TRACE_TIMER
bool "Enable/Disable LV_LOG_TRACE in timer module"
default y
config LV_LOG_TRACE_INDEV
bool "Enable/Disable LV_LOG_TRACE in indev module"
default y
config LV_LOG_TRACE_DISP_REFR
bool "Enable/Disable LV_LOG_TRACE in disp refr module"
default y
config LV_LOG_TRACE_EVENT
bool "Enable/Disable LV_LOG_TRACE in event module"
default y
config LV_LOG_TRACE_OBJ_CREATE
bool "Enable/Disable LV_LOG_TRACE in obj create module"
default y
config LV_LOG_TRACE_LAYOUT
bool "Enable/Disable LV_LOG_TRACE in layout module"
default y
config LV_LOG_TRACE_ANIM
bool "Enable/Disable LV_LOG_TRACE in anim module"
default y
config LV_LOG_TRACE_CACHE
bool "Enable/Disable LV_LOG_TRACE in cache module"
default y
endif
endmenu
menu "Themes"
config LV_USE_THEME_DEFAULT
bool "A simple, impressive and very complete theme"
default y
help
A simple, impressive and very complete theme
if LV_USE_THEME_DEFAULT
config LV_THEME_DEFAULT_DARK
bool "Yes to set dark mode, No to set light mode"
default n
config LV_THEME_DEFAULT_GROW
bool "Enable grow on press"
default y
config LV_THEME_DEFAULT_TRANSITION_TIME
int "Default transition time in [ms]"
default 80
endif #LV_USE_THEME_DEFAULT
config LV_USE_THEME_SIMPLE
bool "A very simple theme that is a good starting point for a custom theme"
default y
help
A very simple theme that is a good starting point for a custom theme
config LV_USE_THEME_MONO
bool "Monochrome theme, suitable for some E-paper & dot matrix displays"
default y
help
A theme designed for monochrome displays
endmenu
menu "Layouts"
config LV_USE_FLEX
bool "A layout similar to Flexbox in CSS"
default y
help
A layout similar to Flexbox in CSS.
config LV_USE_GRID
bool "A layout similar to Grid in CSS"
default y
help
A layout similar to Grid in CSS.
endmenu
menu "Image Settings"
config LV_CACHE_DEF_SIZE
int "Default image cache size in bytes. 0 to disable caching"
default 0
help
When using only built-in image formats, caching provides little benefit.
For complex image decoders (e.g. PNG or JPG), caching avoids repeatedly
opening and decoding the same images, at the cost of additional RAM usage.
config LV_IMAGE_HEADER_CACHE_DEF_CNT
int "Default image header cache count. 0 to disable caching"
default 0
help
When using only built-in image formats, caching provides little benefit.
For complex image decoders (e.g. PNG or JPG), caching avoids repeatedly
reading image headers, at the cost of additional RAM usage.
config LV_USE_RLE
bool "LVGL's version of RLE compression method"
help
RLE decompress library
config LV_USE_LZ4
bool "Enable LZ4 compress/decompress lib"
default n
config LV_USE_LZ4_INTERNAL
bool "Use lvgl built-in LZ4 lib"
depends on LV_USE_LZ4
default y
help
Use lvgl built-in LZ4 lib
config LV_BIN_DECODER_RAM_LOAD
bool "Decode whole image to RAM when using the bin decoder"
default n
help
Decode bin images to RAM
config LV_USE_LODEPNG
bool "PNG decoder library"
help
LODEPNG decoder library
config LV_USE_LIBPNG
bool "PNG decoder (libpng) library"
help
PNG decoder(libpng) library
config LV_USE_BMP
bool "BMP decoder library"
help
BMP decoder library
config LV_USE_TJPGD
bool "TJPGD decoder library"
help
JPG + split JPG decoder library.
Split JPG is a custom format optimized for embedded systems.
config LV_USE_LIBJPEG_TURBO
bool "libjpeg-turbo decoder library"
help
libjpeg-turbo decoder library.
- Supports complete JPEG specifications and high-performance JPEG decoding.
config LV_USE_LIBWEBP
bool "WebP decoder library"
help
WebP decoder library
config LV_USE_SVG
bool "SVG library"
depends on LV_DRAW_HAS_VECTOR_SUPPORT
select LV_USE_VECTOR_GRAPHIC
help
SVG library
if LV_USE_SVG
config LV_USE_SVG_ANIMATION
bool "SVG animation"
config LV_USE_SVG_DEBUG
bool "Enable SVG debug logs"
default n
endif #LV_USE_SVG
endmenu
menu "Text & Font Settings"
choice LV_TXT_ENC
prompt "Select a character encoding for strings"
help
Select a character encoding for strings. Your IDE or editor should have the same character encoding.
default LV_TXT_ENC_UTF8
config LV_TXT_ENC_UTF8
bool "UTF8"
config LV_TXT_ENC_ASCII
bool "ASCII"
endchoice
config LV_TXT_BREAK_CHARS
string "Can break (wrap) texts on these chars"
default " ,.;:-_)]}"
help
While rendering text strings, break (wrap) text on these chars.
config LV_TXT_LINE_BREAK_LONG_LEN
int "Line break long length"
default 0
help
If a word is at least this long, will break wherever 'prettiest'.
To disable, set to a value <= 0.
config LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
int "Min num chars before break"
default 3
depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
help
Minimum number of characters in a long word to put on a line before a break.
config LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN
int "Min num chars after break"
default 3
depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
help
Minimum number of characters in a long word to put on a line after a break
config LV_TXT_COLOR_CMD
string "The control character to use for signalling text recoloring"
default "\#"
help
The control character to use for signaling text recoloring
config LV_USE_BIDI
bool "Support bidirectional texts"
help
Allows mixing Left-to-Right and Right-to-Left texts.
The direction will be processed according to the Unicode Bidirectional Algorithm:
https://www.w3.org/International/articles/inline-bidi-markup/uba-basics
choice LV_BIDI_BASE_DIR_DEF
prompt "Set the default BIDI base direction"
depends on LV_USE_BIDI
default LV_BASE_DIR_AUTO
config LV_BASE_DIR_LTR
bool "Left-to-Right"
config LV_BASE_DIR_RTL
bool "Right-to-Left"
config LV_BASE_DIR_AUTO
bool "Auto detect"
endchoice
config LV_USE_ARABIC_PERSIAN_CHARS
bool "Enable Arabic/Persian processing"
help
In these languages characters should be replaced with
another form based on their position in the text.
menu "Built-in Fonts"
config LV_FONT_MONTSERRAT_8
bool "Enable Montserrat 8"
help
Montserrat fonts with ASCII range and some symbols using bpp = 4
https://fonts.google.com/specimen/Montserrat
config LV_FONT_MONTSERRAT_10
bool "Enable Montserrat 10"
config LV_FONT_MONTSERRAT_12
bool "Enable Montserrat 12"
config LV_FONT_MONTSERRAT_14
bool "Enable Montserrat 14"
default y
config LV_FONT_MONTSERRAT_16
bool "Enable Montserrat 16"
config LV_FONT_MONTSERRAT_18
bool "Enable Montserrat 18"
config LV_FONT_MONTSERRAT_20
bool "Enable Montserrat 20"
config LV_FONT_MONTSERRAT_22
bool "Enable Montserrat 22"
config LV_FONT_MONTSERRAT_24
bool "Enable Montserrat 24"
config LV_FONT_MONTSERRAT_26
bool "Enable Montserrat 26"
config LV_FONT_MONTSERRAT_28
bool "Enable Montserrat 28"
config LV_FONT_MONTSERRAT_30
bool "Enable Montserrat 30"
config LV_FONT_MONTSERRAT_32
bool "Enable Montserrat 32"
config LV_FONT_MONTSERRAT_34
bool "Enable Montserrat 34"
config LV_FONT_MONTSERRAT_36
bool "Enable Montserrat 36"
config LV_FONT_MONTSERRAT_38
bool "Enable Montserrat 38"
config LV_FONT_MONTSERRAT_40
bool "Enable Montserrat 40"
config LV_FONT_MONTSERRAT_42
bool "Enable Montserrat 42"
config LV_FONT_MONTSERRAT_44
bool "Enable Montserrat 44"
config LV_FONT_MONTSERRAT_46
bool "Enable Montserrat 46"
config LV_FONT_MONTSERRAT_48
bool "Enable Montserrat 48"
config LV_FONT_MONTSERRAT_28_COMPRESSED
bool "Enable Montserrat 28 compressed"
config LV_FONT_DEJAVU_16_PERSIAN_HEBREW
bool "Enable Dejavu 16 Persian, Hebrew, Arabic letters"
config LV_FONT_SOURCE_HAN_SANS_SC_14_CJK
bool "Enable SourceHanSansSC 14 CJK"
config LV_FONT_SOURCE_HAN_SANS_SC_16_CJK
bool "Enable SourceHanSansSC 16 CJK"
config LV_FONT_UNSCII_8
bool "Enable UNSCII 8 (Perfect monospace font)"
help
Pixel perfect monospaced fonts
config LV_FONT_UNSCII_16
bool "Enable UNSCII 16 (Perfect monospace font)"
endmenu
config LV_FONT_USE_CUSTOM_INCLUDE
bool "Include a custom font declaration header"
default n
help
Include the header given by LV_FONT_CUSTOM_INCLUDE to declare custom
fonts (LV_FONT_CUSTOM_DECLARE) or override font-related macros.
config LV_FONT_CUSTOM_INCLUDE
string "Path to custom font declaration header"
default ""
depends on LV_FONT_USE_CUSTOM_INCLUDE
help
Optional header to override font-related macros.
Typical use is to declare extra fonts through LV_FONT_CUSTOM_DECLARE:
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_24)
It can also be used to override the default font to a custom one:
#define LV_FONT_DEFAULT &my_font_24
config LV_USE_CUSTOM_FONT_DEFAULT
bool "Provide a custom default font instead of using a built-in one"
default n
help
Enable this to set LV_FONT_DEFAULT to a font you define yourself
rather than one of the built-in fonts below. When enabled, the
built-in default-font selection is hidden, so you MUST define
LV_FONT_DEFAULT yourself, either:
- from the build system, e.g. -DLV_FONT_DEFAULT='&my_font_24', or
- in the header given by LV_FONT_CUSTOM_INCLUDE, e.g.
#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_24)
#define LV_FONT_DEFAULT &my_font_24
If you do not, LV_FONT_DEFAULT falls back to a builtin font,
which is no longer compiled in, causing a link error.
choice LV_FONT_DEFAULT
prompt "Select theme default text font"
default LV_FONT_DEFAULT_MONTSERRAT_14
depends on !LV_USE_CUSTOM_FONT_DEFAULT
help
Select theme default text font
config LV_FONT_DEFAULT_MONTSERRAT_8
bool "Montserrat 8"
select LV_FONT_MONTSERRAT_8
config LV_FONT_DEFAULT_MONTSERRAT_10
bool "Montserrat 10"
select LV_FONT_MONTSERRAT_10
config LV_FONT_DEFAULT_MONTSERRAT_12
bool "Montserrat 12"
select LV_FONT_MONTSERRAT_12
config LV_FONT_DEFAULT_MONTSERRAT_14
bool "Montserrat 14"
select LV_FONT_MONTSERRAT_14
config LV_FONT_DEFAULT_MONTSERRAT_16
bool "Montserrat 16"
select LV_FONT_MONTSERRAT_16
config LV_FONT_DEFAULT_MONTSERRAT_18
bool "Montserrat 18"
select LV_FONT_MONTSERRAT_18
config LV_FONT_DEFAULT_MONTSERRAT_20
bool "Montserrat 20"
select LV_FONT_MONTSERRAT_20
config LV_FONT_DEFAULT_MONTSERRAT_22
bool "Montserrat 22"
select LV_FONT_MONTSERRAT_22
config LV_FONT_DEFAULT_MONTSERRAT_24
bool "Montserrat 24"
select LV_FONT_MONTSERRAT_24
config LV_FONT_DEFAULT_MONTSERRAT_26
bool "Montserrat 26"
select LV_FONT_MONTSERRAT_26
config LV_FONT_DEFAULT_MONTSERRAT_28
bool "Montserrat 28"
select LV_FONT_MONTSERRAT_28
config LV_FONT_DEFAULT_MONTSERRAT_30
bool "Montserrat 30"
select LV_FONT_MONTSERRAT_30
config LV_FONT_DEFAULT_MONTSERRAT_32
bool "Montserrat 32"
select LV_FONT_MONTSERRAT_32
config LV_FONT_DEFAULT_MONTSERRAT_34
bool "Montserrat 34"
select LV_FONT_MONTSERRAT_34
config LV_FONT_DEFAULT_MONTSERRAT_36
bool "Montserrat 36"
select LV_FONT_MONTSERRAT_36
config LV_FONT_DEFAULT_MONTSERRAT_38
bool "Montserrat 38"
select LV_FONT_MONTSERRAT_38
config LV_FONT_DEFAULT_MONTSERRAT_40
bool "Montserrat 40"
select LV_FONT_MONTSERRAT_40
config LV_FONT_DEFAULT_MONTSERRAT_42
bool "Montserrat 42"
select LV_FONT_MONTSERRAT_42
config LV_FONT_DEFAULT_MONTSERRAT_44
bool "Montserrat 44"
select LV_FONT_MONTSERRAT_44
config LV_FONT_DEFAULT_MONTSERRAT_46
bool "Montserrat 46"
select LV_FONT_MONTSERRAT_46
config LV_FONT_DEFAULT_MONTSERRAT_48
bool "Montserrat 48"
select LV_FONT_MONTSERRAT_48
config LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED
bool "Montserrat 28 compressed"
select LV_FONT_MONTSERRAT_28_COMPRESSED
config LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW
bool "Dejavu 16 Persian, Hebrew, Arabic letters"
select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
config LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_14_CJK
bool "SourceHanSansSC 14 CJK"
select LV_FONT_SOURCE_HAN_SANS_SC_14_CJK
config LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_16_CJK
bool "SourceHanSansSC 16 CJK"
select LV_FONT_SOURCE_HAN_SANS_SC_16_CJK
config LV_FONT_DEFAULT_UNSCII_8
bool "UNSCII 8 (Perfect monospace font)"
select LV_FONT_UNSCII_8
config LV_FONT_DEFAULT_UNSCII_16
bool "UNSCII 16 (Perfect monospace font)"
select LV_FONT_UNSCII_16
endchoice
config LV_FONT_FMT_TXT_LARGE
bool "Enable it if you have fonts with a lot of characters"
help
The limit depends on the font size, font face and format
but with > 10,000 characters if you see issues probably you
need to enable it.
config LV_USE_FONT_COMPRESSED
bool "Sets support for compressed fonts"
help
Enables/disables support for compressed fonts.
config LV_USE_FONT_PLACEHOLDER
bool "Enable drawing placeholders when glyph dsc is not found"
default y
help
Enable drawing placeholders when glyph dsc is not found.
config LV_USE_FONT_MANAGER
bool "Enable Font manager"
default n
help
Enable Font manager
config LV_FONT_MANAGER_NAME_MAX_LEN
int "Font manager name max length"
depends on LV_USE_FONT_MANAGER
default 32
help
Font manager name max length
config LV_USE_IMGFONT
bool "Support using images as font in label or span widgets"
default n
help
Support using images as font in label or span widgets
config LV_USE_FREETYPE
bool "FreeType library"
default n
help
FreeType library
if LV_USE_FREETYPE
config LV_FREETYPE_USE_LVGL_PORT
bool "Use LVGL memory and file system porting for FreeType"
default n
help
When enabled, FreeType will use LVGL's memory allocator and file system
abstraction instead of the platform defaults.
config LV_FREETYPE_CACHE_FT_GLYPH_CNT
int "The maximum number of Glyph in count"
default 256
config LV_FREETYPE_CACHE_FT_GLYPH_L1
bool "Enable L1 glyph metrics cache (lock-free, single-thread only)"
depends on LV_OS_NONE
default y
endif #LV_USE_FREETYPE
config LV_USE_TINY_TTF
bool "Enable Tiny TTF decoder"
default n
help
Built-in TTF decoder
if LV_USE_TINY_TTF
config LV_TINY_TTF_FILE_SUPPORT
bool "Enable loading Tiny TTF data from files"
default n
config LV_TINY_TTF_CACHE_GLYPH_CNT
int "Tiny ttf cache entries count"
default 128
config LV_TINY_TTF_CACHE_KERNING_CNT
int "Tiny ttf kerning cache entries count"
default 256
endif #LV_USE_TINY_TTF
endmenu
menu "Widgets"
config LV_WIDGETS_HAS_DEFAULT_VALUE
bool "Widgets has default value"
default y
help
Causes these widgets to be given default values at creation time.
- lv_buttonmatrix_t: Get default maps: {"Btn1", "Btn2", "Btn3", "\n", "Btn4", "Btn5", ""}, else map not set.
- lv_checkbox_t : String label set to "Check box", else set to empty string.
- lv_dropdown_t : Options set to "Option 1", "Option 2", "Option 3", else no values are set.
- lv_roller_t : Options set to "Option 1", "Option 2", "Option 3", "Option 4", "Option 5", else no values are set.
- lv_label_t : Text set to "Text", else empty string.
- lv_arclabel_t : Text set to "Arced Text", else empty string.
config LV_USE_3DTEXTURE
bool "3D Texture"
depends on LV_DRAW_HAS_3D_SUPPORT
config LV_USE_ANIMIMG
bool "Anim image"
default y
config LV_USE_ARC
bool "Arc"
default y
config LV_USE_ARCLABEL
bool "Arc Label"
default y
config LV_USE_BAR
bool "Bar"
default y
config LV_USE_BARCODE
bool "Barcode library"
select LV_USE_CANVAS
help
Barcode code library
config LV_USE_BUTTON
bool "Button"
default y
config LV_USE_BUTTONMATRIX
bool "Button matrix"
default y
config LV_USE_CALENDAR
bool "Calendar"
default y
if LV_USE_CALENDAR
config LV_CALENDAR_WEEK_STARTS_MONDAY
bool "Calendar week starts monday"
menu "Days name configuration"
depends on LV_USE_CALENDAR
config LV_MONDAY_STR
string "Shortened string for Monday"
default "Mo"
config LV_TUESDAY_STR
string "Shortened string for Tuesday"
default "Tu"
config LV_WEDNESDAY_STR
string "Shortened string for Wednesday"
default "We"
config LV_THURSDAY_STR
string "Shortened string for Thursday"
default "Th"
config LV_FRIDAY_STR
string "Shortened string for Friday"
default "Fr"
config LV_SATURDAY_STR
string "Shortened string for Saturday"
default "Sa"
config LV_SUNDAY_STR
string "Shortened string for Sunday"
default "Su"
endmenu
menu "Month names configuration"
depends on LV_USE_CALENDAR
config LV_JANUARY_STR
string "String for January"
default "January"
config LV_FEBRUARY_STR
string "String for February"
default "February"
config LV_MARCH_STR
string "String for March"
default "March"
config LV_APRIL_STR
string "String for April"
default "April"
config LV_MAY_STR
string "String for May"
default "May"
config LV_JUNE_STR
string "String for June"
default "June"
config LV_JULY_STR
string "String for July"
default "July"
config LV_AUGUST_STR
string "String for August"
default "August"
config LV_SEPTEMBER_STR
string "String for September"
default "September"
config LV_OCTOBER_STR
string "String for October"
default "October"
config LV_NOVEMBER_STR
string "String for November"
default "November"
config LV_DECEMBER_STR
string "String for December"
default "December"
endmenu
config LV_USE_CALENDAR_HEADER_ARROW
bool "Use calendar header arrow"
default y
config LV_USE_CALENDAR_HEADER_DROPDOWN
bool "Use calendar header dropdown"
default y
config LV_USE_CALENDAR_CHINESE
bool "Use chinese calendar"
default n
endif #LV_USE_CALENDAR
config LV_USE_CANVAS
bool "Canvas"
select LV_USE_IMAGE
default y
config LV_USE_CHART
bool "Chart"
default y
config LV_USE_CHECKBOX
bool "Check Box"
default y
config LV_USE_DROPDOWN
bool "Drop down list"
select LV_USE_LABEL
default y
config LV_USE_FFMPEG
bool "FFmpeg player widget"
default n
help
FFmpeg library for image decoding and playing videos.
Supports all major image formats so do not enable other image decoder with it.
if LV_USE_FFMPEG
config LV_FFMPEG_DUMP_FORMAT
bool "Dump format"
default n
config LV_FFMPEG_PLAYER_USE_LV_FS
bool "Use lvgl file path in FFmpeg Player widget"
default n
help
You won't be able to open URLs after enabling this feature.
Note that FFmpeg image decoder will always use lvgl file system.
endif #LV_USE_FFMPEG
config LV_USE_GIF
bool "GIF decoder library"
help
GIF decoder library
config LV_GIF_CACHE_DECODE_DATA
bool "Use extra 16KB RAM to cache decoded data to accelerate"
depends on LV_USE_GIF
config LV_GIF_MAX_WIDTH
int "Maximum GIF canvas width in pixels"
depends on LV_USE_GIF
default 480
help
Increasing this value will consume more memory.
GIFs wider than this are rejected
config LV_GIF_MAX_HEIGHT
int "Maximum GIF canvas height in pixels"
depends on LV_USE_GIF
default 32768
help
This value has no impact on memory usage
GIFs taller than this are rejected
config LV_USE_GLTF
bool "glTF support"
select LV_USE_3DTEXTURE
depends on LV_DRAW_HAS_3D_SUPPORT
help
Enables parsing and rendering of 3D models (.gltf/.glb).
config LV_USE_GSTREAMER
bool "GStreamer widget"
select LV_USE_IMAGE
default n
help
GStreamer library
config LV_USE_IMAGE
bool "Image"
select LV_USE_LABEL
default y
config LV_USE_IMAGEBUTTON
bool "ImageButton"
default y
config LV_USE_IME_PINYIN
bool "Enable Pinyin input method"
default n
select LV_USE_KEYBOARD
help
Enable Pinyin input method
if LV_USE_IME_PINYIN
config LV_IME_PINYIN_USE_K9_MODE
bool "Enable Pinyin input method 9 key input mode"
default y
config LV_IME_PINYIN_K9_CAND_TEXT_NUM
int "Maximum number of candidate panels for 9-key input mode"
depends on LV_IME_PINYIN_USE_K9_MODE
default 3
config LV_IME_PINYIN_USE_DEFAULT_DICT
bool "Use built-in Thesaurus"
default y
help
If you do not use the default thesaurus, be sure to use lv_ime_pinyin after setting the thesaurus
config LV_IME_PINYIN_CAND_TEXT_NUM
int "Maximum number of candidate panels"
default 6
help
Set the maximum number of candidate panels that can be displayed.
This needs to be adjusted according to the size of the screen.
endif #LV_USE_IME_PINYIN
config LV_USE_KEYBOARD
bool "Keyboard"
default y
config LV_USE_LABEL
bool "Label"
default y
if LV_USE_LABEL
config LV_LABEL_TEXT_SELECTION
bool "Enable selecting text of the label"
default y
config LV_LABEL_LONG_TXT_HINT
bool "Store extra some info in labels (12 bytes) to speed up drawing of very long texts"
default y
config LV_LABEL_WAIT_CHAR_COUNT
int "The count of wait chart"
default 3
endif #LV_USE_LABEL
config LV_USE_LED
bool "LED"
default y
config LV_USE_LINE
bool "Line"
default y
config LV_USE_LIST
bool "List"
default y
config LV_USE_LOTTIE
bool "Lottie"
default n
depends on LV_DRAW_HAS_VECTOR_SUPPORT
depends on LV_USE_THORVG # we require thorvg lottie parser
select LV_USE_VECTOR_GRAPHIC
help
Enable Lottie animations
config LV_USE_MENU
bool "Menu"
default y
config LV_USE_MSGBOX
bool "Msgbox"
default y
config LV_USE_QRCODE
bool "QR code library"
select LV_USE_CANVAS
help
QR code library
config LV_USE_RLOTTIE
bool "Lottie library. Deprecated: use LV_USE_LOTTIE instead"
default n
help
Rlottie library (Deprecated: use LV_USE_LOTTIE instead)
config LV_USE_ROLLER
bool "Roller"
select LV_USE_LABEL
default y
config LV_USE_SCALE
bool "Scale"
default y
config LV_USE_SLIDER
bool "Slider"
select LV_USE_BAR
default y
config LV_USE_SPAN
bool "Span"
default y
config LV_SPAN_SNIPPET_STACK_SIZE
int "Maximum number of span descriptor"
default 64
depends on LV_USE_SPAN
config LV_USE_SPINBOX
bool "Spinbox"
default y
config LV_USE_SPINNER
bool "Spinner"
default y
config LV_USE_SWITCH
bool "Switch"
default y
config LV_USE_TEXTAREA
bool "Text area"
select LV_USE_LABEL
default y
config LV_TEXTAREA_DEF_PWD_SHOW_TIME
int "Text area def. pwd show time [ms]"
default 1500
depends on LV_USE_TEXTAREA
config LV_USE_TABLE
bool "Table"
default y
config LV_USE_TABVIEW
bool "Tabview"
default y
config LV_USE_TILEVIEW
bool "Tileview"
default y
config LV_USE_WIN
bool "Win"
default y
endmenu
menu "Drivers"
config LV_USE_LINUX_DRM
bool "Use Linux DRM device"
default n
help
Driver for /dev/dri/card
if LV_USE_LINUX_DRM
config LV_LINUX_DRM_AUTO_BACKEND
bool "Auto-select the DRM backend (legacy)"
default y
help
Legacy behavior, kept for backwards compatibility and slated for removal.
While set, the backend is inferred from LV_USE_OPENGLES (EGL when OpenGLES
is enabled). Disable this and pick a backend explicitly via the Linux DRM
"Rendering backend" choice.
choice
prompt "Rendering backend"
default LV_LINUX_DRM_BACKEND_FBDEV
depends on !LV_LINUX_DRM_AUTO_BACKEND
help
Select how the Linux DRM driver presents rendered frames.
config LV_LINUX_DRM_BACKEND_FBDEV
bool "Dumb buffers (no GPU)"
help
Software rendering into DRM/KMS dumb buffers.
config LV_LINUX_DRM_BACKEND_GBM
bool "GBM DMA buffers"
select LV_USE_LINUX_DRM_GBM_BUFFERS
help
Use MESA GBM for Linux DRM DMA buffers.
config LV_LINUX_DRM_BACKEND_EGL
bool "EGL (OpenGL ES, hardware-accelerated)"
select LV_LINUX_DRM_USE_EGL
select LV_USE_LINUX_DRM_GBM_BUFFERS
select LV_USE_OPENGLES
help
Hardware-accelerated rendering via OpenGL ES 2.0 and EGL.
Requires OpenGL ES 2.0 on the target hardware and linking with
-lEGL. Compatible with LVGL 3D/glTF rendering. Implies GBM buffers.
endchoice
config LV_LINUX_DRM_BACKEND
int
default 0 if LV_LINUX_DRM_BACKEND_FBDEV
default 1 if LV_LINUX_DRM_BACKEND_GBM
default 2 if LV_LINUX_DRM_BACKEND_EGL
config LV_LINUX_DRM_USE_EGL
bool
select LV_USE_EGL
config LV_USE_LINUX_DRM_GBM_BUFFERS
bool
endif # LV_USE_LINUX_DRM
config LV_USE_LINUX_FBDEV
bool "Use Linux framebuffer device"
default n
help
Driver for /dev/fb
if LV_USE_LINUX_FBDEV
config LV_LINUX_FBDEV_BSD
bool "Use BSD flavored framebuffer device"
default n
choice
prompt "Framebuffer device render mode"
default LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
config LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
bool "Partial mode"
help
Use the buffer(s) to render the screen is smaller parts. This way the buffers can be smaller then the display to save RAM. At least 1/10 screen size buffer(s) are recommended.
config LV_LINUX_FBDEV_RENDER_MODE_DIRECT
bool "Direct mode"
help
The buffer(s) has to be screen sized and LVGL will render into the correct location of the buffer. This way the buffer always contain the whole image. Only the changed ares will be updated. With 2 buffers the buffers' content are kept in sync automatically and in flush_cb only address change is required.
config LV_LINUX_FBDEV_RENDER_MODE_FULL
bool "Full mode"
help
Always redraw the whole screen even if only one pixel has been changed. With 2 buffers in flush_cb only and address change is required.
endchoice
choice
prompt "Framebuffer size"
default LV_LINUX_FBDEV_SINGLE_BUFFER
config LV_LINUX_FBDEV_SINGLE_BUFFER
bool "One screen-sized buffer"
config LV_LINUX_FBDEV_DOUBLE_BUFFER
bool "Two screen-sized buffer"
depends on !LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
config LV_LINUX_FBDEV_CUSTOM_BUFFER
bool "Custom-sized buffer"
depends on LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
endchoice
config LV_LINUX_FBDEV_BUFFER_COUNT
int
default 0 if LV_LINUX_FBDEV_CUSTOM_BUFFER
default 1 if LV_LINUX_FBDEV_SINGLE_BUFFER
default 2 if LV_LINUX_FBDEV_DOUBLE_BUFFER
config LV_LINUX_FBDEV_BUFFER_SIZE
int "Custom partial buffer size (in number of rows)"
depends on LV_LINUX_FBDEV_CUSTOM_BUFFER
default 60
config LV_LINUX_FBDEV_MMAP
bool "Framebuffer device supports mmap"
default y
endif #LV_USE_LINUX_FBDEV
config LV_USE_FT81X
bool "Use ft81x EVE driver"
default n
config LV_USE_LOVYAN_GFX
bool "Use LovyanGFX driver"
default n
help
Interface for Lovyan_GFX
if LV_USE_LOVYAN_GFX
config LV_LGFX_USER_INCLUDE
string "Header for LovyanGFX user configuration"
default "lv_lgfx_user.hpp"
endif #LV_USE_LOVYAN_GFX
config LV_USE_GENERIC_MIPI
bool "Generic MIPI driver"
default n
help
Generic MIPI driver for LCD devices connected via SPI or parallel
port. Use this if your specific LCD controller is not listed among
the dedicated drivers below.
config LV_USE_ST7735
bool "Use ST7735 LCD driver"
default n
select LV_USE_GENERIC_MIPI
help
Drivers for LCD devices connected via SPI/parallel port
config LV_USE_ST7789
bool "Use ST7789 LCD driver"
default n
select LV_USE_GENERIC_MIPI
config LV_USE_ST7796
bool "Use ST7796 LCD driver"
default n
select LV_USE_GENERIC_MIPI
config LV_USE_ILI9341
bool "Use ILI9341 LCD driver"
default n
select LV_USE_GENERIC_MIPI
config LV_USE_NV3007
bool "Use NV3007 LCD driver"
default n
select LV_USE_GENERIC_MIPI
config LV_USE_NXP_ELCDIF
bool "Use NXP ELCDIF to generate display"
default n
help
Driver for NXP ELCDIF
config LV_USE_RENESAS_GLCDC
bool "Use Renesas GLCDC driver"
default n
help
Driver for Renesas GLCD
config LV_USE_ST_LTDC
bool "Driver for ST LTDC"
default n
help
Driver for ST LTDC
if LV_USE_ST_LTDC
config LV_ST_LTDC_USE_DMA2D_FLUSH
bool "Only used for created partial mode LTDC displays"
default n
depends on !LV_USE_DRAW_DMA2D
endif #LV_USE_ST_LTDC
config LV_USE_TFT_ESPI
bool "Use TFT_eSPI driver"
default n
help
Interface for TFT_eSPI
config LV_USE_EVDEV
bool "Use evdev input driver"
default n
help
Driver for evdev input devices
config LV_USE_LIBINPUT
bool "Use libinput input driver"
default n
help
Driver for libinput input devices
if LV_USE_LIBINPUT
config LV_LIBINPUT_BSD
bool "Use the BSD variant of the libinput input driver"
default n
config LV_LIBINPUT_XKB
bool "Enable full keyboard support via XKB"
default n
if LV_LIBINPUT_XKB
# `setxkbmap -query` can help find the right values for your keyboard.
config LV_LIBINPUT_XKB_RULES
string "XKB rules"
default ""
config LV_LIBINPUT_XKB_MODEL
string "XKB model"
default "pc101"
config LV_LIBINPUT_XKB_LAYOUT
string "XKB layout"
default "us"
config LV_LIBINPUT_XKB_VARIANT
string "XKB variant"
default ""
config LV_LIBINPUT_XKB_OPTIONS_USE_DEFAULT
bool "Use system default XKB options (pass NULL)"
default y
help
If enabled, NULL is passed for XKB options, letting the system
default apply (e.g. from XKB_DEFAULT_OPTIONS env var).
If disabled, the string from LV_LIBINPUT_XKB_OPTIONS is used instead.
config LV_LIBINPUT_XKB_OPTIONS
string "XKB options"
default ""
depends on !LV_LIBINPUT_XKB_OPTIONS_USE_DEFAULT
endif # LV_LIBINPUT_XKB
endif #LV_USE_LIBINPUT
config LV_USE_NUTTX
bool "Use Nuttx to open window and handle touchscreen"
default n
help
Use Nuttx to open window and handle touchscreen
if LV_USE_NUTTX
config LV_USE_NUTTX_INDEPENDENT_IMAGE_HEAP
bool "Use independent image heap"
default n
config LV_NUTTX_DEFAULT_DRAW_BUF_USE_INDEPENDENT_IMAGE_HEAP
bool "Use independent image heap for default draw buffer"
depends on LV_USE_NUTTX_INDEPENDENT_IMAGE_HEAP
default n
config LV_USE_NUTTX_LIBUV
bool "Use uv loop to replace default timer loop and other fb/indev timers"
default n
config LV_USE_NUTTX_CUSTOM_INIT
bool "Use Custom Nuttx init API to open window and handle touchscreen"
default n
config LV_USE_NUTTX_LCD
bool "Use NuttX LCD device"
default n
choice
prompt "NuttX LCD buffer size"
depends on LV_USE_NUTTX_LCD
default LV_NUTTX_LCD_SINGLE_BUFFER
config LV_NUTTX_LCD_SINGLE_BUFFER
bool "One screen-sized buffer"
config LV_NUTTX_LCD_DOUBLE_BUFFER
bool "Two screen-sized buffer"
config LV_NUTTX_LCD_CUSTOM_BUFFER
bool "Custom-sized buffer"
endchoice
config LV_NUTTX_LCD_BUFFER_COUNT
int
default 0 if LV_NUTTX_LCD_CUSTOM_BUFFER
default 1 if LV_NUTTX_LCD_SINGLE_BUFFER
default 2 if LV_NUTTX_LCD_DOUBLE_BUFFER
config LV_NUTTX_LCD_BUFFER_SIZE
int "Custom partial buffer size (in number of rows)"
depends on LV_NUTTX_LCD_CUSTOM_BUFFER
depends on LV_USE_NUTTX_LCD
default 60
config LV_USE_NUTTX_TOUCHSCREEN
bool "Use NuttX touchscreen driver"
default n
config LV_NUTTX_TOUCHSCREEN_CURSOR_SIZE
int "Touchscreen cursor size in pixels"
depends on LV_USE_NUTTX_TOUCHSCREEN
default 0
help
Set to 0 to disable cursor, or set to a value greater than 0 to set the cursor size in pixels.
config LV_USE_NUTTX_MOUSE
bool "Use NuttX mouse driver"
default n
config LV_USE_NUTTX_MOUSE_MOVE_STEP
int "Mouse movement step (pixels)"
depends on LV_USE_NUTTX_MOUSE
range 1 10
default 1
help
Set the step size of the mouse movement in pixels.
config LV_USE_NUTTX_TRACE_FILE
bool "Use NuttX trace file"
depends on LV_USE_PROFILER_BUILTIN
default n
config LV_NUTTX_TRACE_FILE_PATH
depends on LV_USE_NUTTX_TRACE_FILE
string "NuttX trace file path"
default "/data/lvgl-trace.log"
endif #LV_USE_NUTTX
config LV_USE_OPENGLES
bool "Use LVGL's OpenGL Driver"
select LV_USE_MATRIX
default n
help
Use a generic OpenGL driver that can be used to embed in other applications or used with GLFW/EGL
if LV_USE_OPENGLES
config LV_USE_OPENGLES_DEBUG
bool "Enable debug mode for OpenGL"
default n
endif # LV_USE_OPENGLES
config LV_USE_EGL
bool
default n
config LV_USE_GLFW
bool "Use GLFW and OpenGL to open window on PC and handle mouse and keyboard"
default n
select LV_USE_OPENGLES
depends on !LV_USE_EGL
help
Use GLFW to open window on PC and handle mouse and keyboard.
config LV_USE_QNX
bool "Use a QNX Screen window as a display"
default n
help
QNX Screen display and input drivers
if LV_USE_QNX
config LV_QNX_BUF_COUNT
int "QNX Buffer count"
default 1
endif #LV_USE_QNX
config LV_USE_SDL
bool "Use SDL to open window on PC and handle mouse and keyboard"
default n
help
Use SDL to open window on PC and handle mouse and keyboard.
if LV_USE_SDL
config LV_SDL_INCLUDE_PATH
string "SDL include path"
default "SDL2/SDL.h"
config LV_SDL_AUTO_BACKEND
bool "Auto-select the SDL backend (legacy)"
default y
help
Legacy behavior, kept for backwards compatibility and slated for removal.
While set, EGL is inferred the legacy way (OpenGLES enabled with an OpenGL
draw unit). Disable this and pick a backend explicitly via the SDL
"Rendering backend" choice.
choice
prompt "Rendering backend"
default LV_SDL_BACKEND_SW
depends on !LV_SDL_AUTO_BACKEND
help
Select how the SDL driver presents rendered frames.
config LV_SDL_BACKEND_SW
bool "Software (SDL surface)"
help
Render in software and upload via an SDL surface.
config LV_SDL_BACKEND_TEXTURE
bool "Cached SDL textures"
select LV_USE_DRAW_SDL
help
Render into cached SDL textures. Enables the SDL draw unit.
config LV_SDL_BACKEND_EGL
bool "EGL (OpenGL ES, hardware-accelerated)"
depends on LV_USE_DRAW_OPENGLES || LV_USE_DRAW_NANOVG
select LV_SDL_USE_EGL
help
Present via an EGL/OpenGL ES context
endchoice
# Derived int → the single macro the codegen emits (LV_SDL_BACKEND).
config LV_SDL_BACKEND
int
default 0 if LV_SDL_BACKEND_SW
default 1 if LV_SDL_BACKEND_TEXTURE
default 2 if LV_SDL_BACKEND_EGL
# Hidden flag read by the C driver and (as CONFIG_*) by CMake. Selected by the
# EGL member → DerivedFlag that resolves to `LV_SDL_BACKEND == LV_SDL_BACKEND_EGL`.
config LV_SDL_USE_EGL
bool
select LV_USE_EGL
choice
prompt "SDL rendering mode"
default LV_SDL_RENDER_MODE_DIRECT
help
LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance
config LV_SDL_RENDER_MODE_PARTIAL
bool "Use the buffer(s) to render the screen is smaller parts"
config LV_SDL_RENDER_MODE_DIRECT
bool "Only the changed areas will be updated with 2 screen sized buffers"
config LV_SDL_RENDER_MODE_FULL
bool "Always redraw the whole screen even if only one pixel has been changed with 2 screen sized buffers"
endchoice
config LV_SDL_BUF_COUNT
int "Number of screen-sized buffers (1 or 2)"
range 1 2
default 1
choice
prompt "SDL buffer count [DEPRECATED: use LV_SDL_BUF_COUNT]"
optional
config LV_SDL_SINGLE_BUFFER
bool "One screen-sized buffer [DEPRECATED: set LV_SDL_BUF_COUNT to 1]"
config LV_SDL_DOUBLE_BUFFER
bool "Two screen-sized buffers [DEPRECATED: set LV_SDL_BUF_COUNT to 2]"
endchoice
config LV_SDL_ACCELERATED
bool "Use hardware acceleration"
default y
config LV_SDL_FULLSCREEN
bool "SDL fullscreen"
default n
config LV_SDL_DIRECT_EXIT
bool "Exit the application when all SDL windows are closed"
default y
choice
prompt "SDL mousewheel mode"
default LV_SDL_MOUSEWHEEL_MODE_ENCODER
config LV_SDL_MOUSEWHEEL_MODE_ENCODER
bool "The mousewheel emulates an encoder input device"
config LV_SDL_MOUSEWHEEL_MODE_CROWN
bool "The mousewheel emulates a smart watch crown"
endchoice
config LV_SDL_MOUSEWHEEL_MODE
int
default 0 if LV_SDL_MOUSEWHEEL_MODE_ENCODER
default 1 if LV_SDL_MOUSEWHEEL_MODE_CROWN
endif #LV_USE_SDL
config LV_USE_UEFI
bool "Use LVGL UEFI backend"
default n
help
LVGL UEFI backend
if LV_USE_UEFI
config LV_USE_UEFI_INCLUDE
string "Header that hides the actual framework (EDK2, gnu-efi, ...)"
default "myefi.h"
config LV_UEFI_USE_MEMORY_SERVICES
bool "Use the memory services from the boot services table"
default n
endif #LV_USE_UEFI
config LV_USE_WAYLAND
bool "Use the wayland client to open a window and handle inputs on Linux or BSD"
default n
help
Use Wayland to open a window and handle input on Linux or BSD desktops
if LV_USE_WAYLAND
config LV_WAYLAND_DIRECT_EXIT
bool "Deinitialize LVGL and quit the application when the last wayland window closes"
default y
config LV_WAYLAND_AUTO_BACKEND
bool "Auto-select the Wayland backend (legacy)"
default y
help
Legacy behavior, kept for backwards compatibility and slated for removal.
While set, the backend defaults to SHM and any LV_WAYLAND_USE_* set directly
in lv_conf.h is honored. Disable this and pick a backend explicitly via the
Wayland "Rendering backend" choice.
choice
prompt "Rendering backend"
default LV_WAYLAND_BACKEND_SHM
depends on !LV_WAYLAND_AUTO_BACKEND
help
Select the rendering backend used by the Wayland driver.
config LV_WAYLAND_BACKEND_SHM
bool "SHM (Shared Memory)"
select LV_WAYLAND_USE_SHM
help
Default backend. Uses wl_shm for double-buffered direct rendering.
Compatible with all Wayland compositors; no special hardware required.
config LV_WAYLAND_BACKEND_EGL
bool "EGL (OpenGL ES, hardware-accelerated)"
select LV_WAYLAND_USE_EGL
select LV_USE_OPENGLES
help
Hardware-accelerated rendering via OpenGL ES 2.0 and EGL.
Requires OpenGL ES 2.0 on the target hardware and linking with
wayland-egl (-lwayland-egl). Compatible with 3D/glTF rendering.
config LV_WAYLAND_BACKEND_G2D
bool "G2D (NXP i.MX hardware accelerator)"
select LV_WAYLAND_USE_G2D
select LV_USE_DRAW_G2D
help
Hardware-accelerated 2D rendering via NXP's G2D engine.
Supports NXP i.MX6/i.MX8 platforms with G2D library installed.
endchoice
config LV_WAYLAND_BACKEND
int
default 0 if LV_WAYLAND_BACKEND_SHM
default 1 if LV_WAYLAND_BACKEND_EGL
default 2 if LV_WAYLAND_BACKEND_G2D
config LV_WAYLAND_USE_SHM
bool
config LV_WAYLAND_USE_EGL
bool
select LV_USE_EGL
config LV_WAYLAND_USE_G2D
bool
endif # LV_USE_WAYLAND
config LV_USE_WINDOWS
bool "Use LVGL Windows backend"
depends on LV_OS_WINDOWS
default n
help
LVGL Windows backend
config LV_USE_X11
bool "Use X11 window manager to open window on Linux PC and handle mouse and keyboard"
default n
help
Use X11 to open window on Linux desktop and handle mouse and keyboard
if LV_USE_X11
config LV_X11_DOUBLE_BUFFER
bool "Use double buffers for lvgl rendering"
default y
config LV_X11_DIRECT_EXIT
bool "Exit the application when all X11 windows have been closed"
default y
choice
prompt "X11 device render mode"
default LV_X11_RENDER_MODE_PARTIAL
config LV_X11_RENDER_MODE_PARTIAL
bool "Partial render mode"
help
Use the buffer(s) to render the screen is smaller parts. This way the buffers can be smaller then the display to save RAM.
Appr. 1/10 screen size buffer(s) are used.
config LV_X11_RENDER_MODE_DIRECT
bool "Direct render mode"
help
The buffer(s) has to be screen sized and LVGL will render into the correct location of the buffer. This way the buffer always contain the whole image. Only the changed ares will be updated.
With 2 buffers the buffers' content are kept in sync automatically and in flush_cb only address change is required.
config LV_X11_RENDER_MODE_FULL
bool "Full render mode"
help
Always redraw the whole screen even if only one pixel has been changed.
With 2 buffers in flush_cb only and address change is required.
endchoice
endif #LV_USE_X11
config LV_USE_NANOVG
bool "NanoVG library"
default n
help
Enable NanoVG (vector graphics library)
endmenu
menu "File System"
config LV_FS_DEFAULT_DRIVER_LETTER
int "Default drive letter (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
help
Setting a default drive letter allows skipping the driver
prefix in filepaths.
config LV_USE_FS_STDIO
bool "File system on top of stdio"
if LV_USE_FS_STDIO
config LV_FS_STDIO_LETTER
int "Driver-identifier letter for stdio (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_STDIO_PATH
string "Working directory for stdio"
default ""
config LV_FS_STDIO_CACHE_SIZE
int "Read cache size in bytes for stdio (0 = disabled)"
default 0
range 0 4294967295
endif # LV_USE_FS_STDIO
config LV_USE_FS_POSIX
bool "File system on top of POSIX"
if LV_USE_FS_POSIX
config LV_FS_POSIX_LETTER
int "Driver-identifier letter for POSIX (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_POSIX_PATH
string "Working directory for POSIX"
default ""
config LV_FS_POSIX_CACHE_SIZE
int "Read cache size in bytes for POSIX (0 = disabled)"
default 0
range 0 4294967295
endif # LV_USE_FS_POSIX
config LV_USE_FS_WIN32
bool "File system on top of Win32"
if LV_USE_FS_WIN32
config LV_FS_WIN32_LETTER
int "Driver-identifier letter for Win32 (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_WIN32_PATH
string "Working directory for Win32"
default ""
config LV_FS_WIN32_CACHE_SIZE
int "Read cache size in bytes for Win32 (0 = disabled)"
default 0
range 0 4294967295
endif # LV_USE_FS_WIN32
config LV_USE_FS_FATFS
bool "File system on top of FatFS"
if LV_USE_FS_FATFS
config LV_FS_FATFS_LETTER
int "Driver-identifier letter for FatFS (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_FATFS_PATH
string "Working directory for FatFS"
default ""
config LV_FS_FATFS_CACHE_SIZE
int "Read cache size in bytes for FatFS (0 = disabled)"
default 0
range 0 4294967295
endif # LV_USE_FS_FATFS
config LV_USE_FS_LITTLEFS
bool "File system on top of littlefs"
if LV_USE_FS_LITTLEFS
config LV_FS_LITTLEFS_LETTER
int "Driver-identifier letter for littlefs (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_LITTLEFS_PATH
string "Working directory for littlefs"
default ""
# TODO:
#config LV_FS_LITTLEFS_CACHE_SIZE
# int "Read cache size in bytes for littlefs (0 = disabled)"
# default 0
# range 0 4294967295
endif # LV_USE_FS_LITTLEFS
config LV_USE_FS_ARDUINO_ESP_LITTLEFS
bool "File system on top of Arduino ESP littlefs"
if LV_USE_FS_ARDUINO_ESP_LITTLEFS
config LV_FS_ARDUINO_ESP_LITTLEFS_LETTER
int "Driver-identifier letter for Arduino ESP littlefs (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_ARDUINO_ESP_LITTLEFS_PATH
string "Working directory for Arduino ESP littlefs"
default ""
# TODO:
#config LV_FS_ARDUINO_ESP_LITTLEFS_CACHE_SIZE
# int "Read cache size in bytes for Arduino ESP littlefs (0 = disabled)"
# default 0
# range 0 4294967295
endif # LV_USE_FS_ARDUINO_ESP_LITTLEFS
config LV_USE_FS_ARDUINO_SD
bool "File system on top of Arduino SD"
if LV_USE_FS_ARDUINO_SD
config LV_FS_ARDUINO_SD_LETTER
int "Driver-identifier letter for Arduino SD (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
config LV_FS_ARDUINO_SD_PATH
string "Working directory for Arduino SD"
default ""
# TODO:
#config LV_FS_ARDUINO_SD_CACHE_SIZE
# int "Read cache size in bytes for Arduino SD (0 = disabled)"
# default 0
# range 0 4294967295
endif # LV_USE_FS_ARDUINO_SD
# UEFI and FrogFS are inlined (letter only): they have no working directory
# path or read cache, so the full Kconfig.fs.template does not apply.
config LV_USE_FS_UEFI
bool "File system on top of UEFI"
if LV_USE_FS_UEFI
config LV_FS_UEFI_LETTER
int "Driver-identifier letter for UEFI (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
endif # LV_USE_FS_UEFI
config LV_USE_FS_FROGFS
bool "File system on top of FrogFS"
if LV_USE_FS_FROGFS
config LV_FS_FROGFS_LETTER
int "Driver-identifier letter for FrogFS (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
endif # LV_USE_FS_FROGFS
# MEMFS is inlined here as it's memory-mapped and has no working directory path
config LV_USE_FS_MEMFS
bool "File system on top of memory-mapped API"
help
API for memory-mapped file access.
if LV_USE_FS_MEMFS
config LV_FS_MEMFS_LETTER
int "Driver-identifier letter for memfs (e.g. 65 for 'A', 0 = disabled)"
range 0 90
default 0
endif # LV_USE_FS_MEMFS
endmenu
menu "Debugging"
menu "System Monitoring"
config LV_USE_SYSMON
bool "Enable system monitor component"
default n
help
Enable system monitor component
if LV_USE_SYSMON
config LV_SYSMON_PROC_IDLE_AVAILABLE
bool "Enable process idle measurement"
default n
config LV_USE_PERF_MONITOR
bool "Show CPU usage and FPS count"
default n
choice
prompt "Performance monitor position"
depends on LV_USE_PERF_MONITOR
default LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT
config LV_PERF_MONITOR_ALIGN_TOP_LEFT
bool "Top left"
config LV_PERF_MONITOR_ALIGN_TOP_MID
bool "Top middle"
config LV_PERF_MONITOR_ALIGN_TOP_RIGHT
bool "Top right"
config LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT
bool "Bottom left"
config LV_PERF_MONITOR_ALIGN_BOTTOM_MID
bool "Bottom middle"
config LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT
bool "Bottom right"
config LV_PERF_MONITOR_ALIGN_LEFT_MID
bool "Left middle"
config LV_PERF_MONITOR_ALIGN_RIGHT_MID
bool "Right middle"
config LV_PERF_MONITOR_ALIGN_CENTER
bool "Center"
endchoice
config LV_USE_PERF_MONITOR_LOG_MODE
bool "Prints performance data using log"
depends on LV_USE_PERF_MONITOR
default n
config LV_USE_MEM_MONITOR
bool "Show the used memory and the memory fragmentation"
default n
depends on LV_USE_BUILTIN_MALLOC
choice
prompt "Memory monitor position"
depends on LV_USE_MEM_MONITOR
default LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT
config LV_MEM_MONITOR_ALIGN_TOP_LEFT
bool "Top left"
config LV_MEM_MONITOR_ALIGN_TOP_MID
bool "Top middle"
config LV_MEM_MONITOR_ALIGN_TOP_RIGHT
bool "Top right"
config LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT
bool "Bottom left"
config LV_MEM_MONITOR_ALIGN_BOTTOM_MID
bool "Bottom middle"
config LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT
bool "Bottom right"
config LV_MEM_MONITOR_ALIGN_LEFT_MID
bool "Left middle"
config LV_MEM_MONITOR_ALIGN_RIGHT_MID
bool "Right middle"
config LV_MEM_MONITOR_ALIGN_CENTER
bool "Center"
endchoice
config LV_SYSMON_USE_CUSTOM_INCLUDE
bool "Include a custom sysmon header"
default n
help
Include the header given by LV_SYSMON_CUSTOM_INCLUDE to override system
monitor macros such as LV_SYSMON_GET_IDLE.
config LV_SYSMON_CUSTOM_INCLUDE
string "Path to custom sysmon header"
default ""
depends on LV_SYSMON_USE_CUSTOM_INCLUDE
help
Optional header to override system monitor idle measurement macros.
LV_SYSMON_GET_IDLE
Expression returning the CPU idle percentage (0-100) since last call.
e.g. my_rtos_get_idle_percent()
LV_SYSMON_GET_PROC_IDLE
Expression returning per-process idle percentage, if supported by
the RTOS. Requires LV_SYSMON_PROC_IDLE_AVAILABLE to be enabled
e.g. my_rtos_get_proc_idle_percent()
endif #LV_USE_SYSMON
endmenu
menu "Profiler"
config LV_USE_PROFILER
bool "Runtime performance profiler"
default n
help
Enable runtime performance profiler
config LV_USE_PROFILER_BUILTIN
bool "Enable the built-in profiler"
default n
select LV_USE_PROFILER
if LV_USE_PROFILER_BUILTIN
config LV_PROFILER_BUILTIN_BUF_SIZE
int "Default profiler trace buffer size in bytes"
default 16384
config LV_PROFILER_BUILTIN_DEFAULT_ENABLE
bool "Enable built-in profiler by default"
default y
config LV_USE_PROFILER_BUILTIN_POSIX
bool "Enable POSIX profiler port"
default n
endif #LV_USE_PROFILER_BUILTIN
if LV_USE_PROFILER
config LV_PROFILER_INCLUDE
string "Header to include for the profiler"
default "lvgl/debugging/profiler/lv_profiler_builtin.h"
help
Path to a header that defines the following profiler hook macros:
LV_PROFILER_BEGIN
Called at the start of a profiled scope.
e.g. #define LV_PROFILER_BEGIN my_profiler_begin()
LV_PROFILER_END
Called at the end of a profiled scope.
e.g. #define LV_PROFILER_END my_profiler_end()
LV_PROFILER_BEGIN_TAG(tag)
Called at the start of a profiled scope with a string tag.
e.g. #define LV_PROFILER_BEGIN_TAG(tag) my_profiler_begin_tag(tag)
LV_PROFILER_END_TAG(tag)
Called at the end of a profiled scope with a string tag.
e.g. #define LV_PROFILER_END_TAG(tag) my_profiler_end_tag(tag)
The default header provides these via the built-in profiler.
Set this to your own header to use a custom profiler backend.
config LV_PROFILER_LAYOUT
bool "Enable layout profiler"
default y
config LV_PROFILER_REFR
bool "Enable disp refr profiler"
default y
config LV_PROFILER_DRAW
bool "Enable draw profiler"
default y
config LV_PROFILER_INDEV
bool "Enable indev profiler"
default y
config LV_PROFILER_DECODER
bool "Enable decoder profiler"
default y
config LV_PROFILER_FONT
bool "Enable font profiler"
default y
config LV_PROFILER_FS
bool "Enable fs profiler"
default y
config LV_PROFILER_STYLE
bool "Enable style profiler"
default n
config LV_PROFILER_TIMER
bool "Enable timer profiler"
default y
config LV_PROFILER_CACHE
bool "Enable cache profiler"
default y
config LV_PROFILER_EVENT
bool "Enable event profiler"
default y
endif # LV_USE_PROFILER
endmenu
menu "Test Utilities"
config LV_USE_TEST
bool "Enable emulated input devices, time emulation, and screenshot compares"
help
Enable emulated input devices, time emulation, and screenshot compares
if LV_USE_TEST
config LV_USE_TEST_SCREENSHOT_COMPARE
bool "Screenshot Compare"
select LV_USE_LODEPNG
help
Enable `lv_test_screenshot_compare`.
Requires a few MB of extra RAM.
config LV_TEST_SCREENSHOT_CREATE_REFERENCE_IMAGE
bool "Create a reference image by default if it does not exist"
default y
depends on LV_USE_TEST_SCREENSHOT_COMPARE
endif #LV_USE_TEST
config LV_USE_MONKEY
bool "Enable Monkey test"
default n
help
Enable Monkey test
endmenu
menu "Debug Rendering"
config LV_USE_REFR_DEBUG
bool "Draw random colored rectangles over the redrawn areas"
help
Draw random colored rectangles over the redrawn areas.
config LV_USE_LAYER_DEBUG
bool "Draw a red overlay for ARGB layers and a green overlay for RGB layers"
help
Draw a red overlay for ARGB layers and a green overlay for RGB layers
config LV_USE_PARALLEL_DRAW_DEBUG
bool "Draw overlays with different colors for each draw_unit's tasks"
help
Also add the index number of the draw unit on white background.
For layers add the index number of the draw unit on black background.
endmenu
endmenu
menu "Others"
config LV_USE_FRAGMENT
bool "Enable lv_obj fragment"
default n
help
Enable `lv_obj` fragment logic
config LV_USE_FILE_EXPLORER
bool "Enable file explorer"
default n
select LV_USE_TABLE
help
Enable file explorer.
if LV_USE_FILE_EXPLORER
config LV_FILE_EXPLORER_PATH_MAX_LEN
int "Maximum length of path"
default 128
config LV_FILE_EXPLORER_QUICK_ACCESS
bool "Enable quick access bar"
default y
help
This can save some memory, but not much.
After the quick access bar is created, it can be hidden
by clicking the button at the top left corner of
the browsing area, which is very useful for small screen devices.
endif #LV_USE_FILE_EXPLORER
endmenu
menu "Build"
config LVGL_VERSION_MAJOR
int
default 9
config LVGL_VERSION_MINOR
int
default 6
config LVGL_VERSION_PATCH
int
default 0
config LV_CONF_SKIP
bool "Check this to skip using lv_conf.h"
default y
config LV_CONF_MINIMAL
bool "LVGL minimal configuration [DEPRECATED: use the minimal defconfig]"
default n
help
Deprecated and no longer functional. The minimal preset is now a
defconfig: configs/defconfigs/minimal.defconfig. Setting this has no
effect on the generated configuration and triggers a build warning.
config LV_USE_PRIVATE_API
bool "Include `lvgl_private.h` in `lvgl.h` to access internal data and functions by default"
default n
config LV_ENABLE_GLOBAL_CUSTOM
bool "Enable 'lv_global' customization"
default n
help
By default, LVGL stores all runtime state in a single static
'lv_global_t' variable, sufficient for most single-display
single-threaded applications.
Enable this if you need multiple independent LVGL instances in
the same process, for example:
- Multiple physical displays with separate render loops
- Per-thread LVGL contexts on an RTOS (FreeRTOS, Zephyr, etc.)
- Hot-swappable or sandboxed UI instances
When enabled, every LVGL internal access to global state goes
through LV_GLOBAL_CUSTOM() instead of a static variable. You
must implement 'lv_global_t *lv_global_default(void)' to return
the correct instance for the current context (e.g. by thread-local
storage or a guarded pointer switch).
Returning NULL from that function is safe; LVGL will treat the
library as uninitialized for that context.
if LV_ENABLE_GLOBAL_CUSTOM
config LV_GLOBAL_USE_CUSTOM_INCLUDE
bool "Provide 'lv_global_default()' from a custom header"
help
Use a custom header for the declaration of:
lv_global_t *lv_global_default(void);
config LV_GLOBAL_CUSTOM_INCLUDE
string "Header to include for the custom 'lv_global' function"
depends on LV_GLOBAL_USE_CUSTOM_INCLUDE
default "lv_global.h"
help
Path to the header that declares:
lv_global_t *lv_global_default(void);
This header is included wherever LVGL needs to resolve the
LV_GLOBAL_DEFAULT() macro. Keep it lightweight, it is included
in performance-critical paths.
endif #LV_ENABLE_GLOBAL_CUSTOM
menu "Asserts"
config LV_USE_ASSERT_NULL
bool "Check if the parameter is NULL. (Very fast, recommended)"
default y
config LV_USE_ASSERT_MALLOC
bool "Checks if the memory is successfully allocated or no. (Very fast, recommended)"
default y
config LV_USE_ASSERT_STYLE
bool "Check if the styles are properly initialized. (Very fast, recommended)"
config LV_USE_ASSERT_MEM_INTEGRITY
bool "Check the integrity of `lv_mem` after critical operations. (Slow)"
config LV_USE_ASSERT_OBJ
bool "Check NULL, the object's type and existence (e.g. not deleted). (Slow)"
config LV_ASSERT_HANDLER_INCLUDE
string "Assert handler include [DEPRECATED: use LV_ASSERT_CUSTOM_INCLUDE]"
default ""
help
[DEPRECATED: use LV_ASSERT_CUSTOM_INCLUDE]
Add a custom handler when assert happens e.g. to restart the MCU
Optional header to override assert-related macros.
config LV_WARN_ABOUT_ASSERT_HANDLER_INCLUDE
bool
default y if LV_ASSERT_HANDLER_INCLUDE != ""
config LV_DISABLE_ASSERT_HANDLER_INCLUDE_WARNING
bool "Disable LV_ASSERT_HANDLER_INCLUDE deprecated warning"
default n
help
Disable warning saying `LV_ASSERT_HANDLER_INCLUDE` is deprecated.
This setting allows you to keep using old LVGL versions which rely on
LV_ASSERT_HANDLER_INCLUDE without triggering a compiler warning.
LV_ASSERT_HANDLER_INCLUDE has been deprecated in favor of the new approach:
define LV_ASSERT_CUSTOM_INCLUDE with the header path, and place the
LV_ASSERT_HANDLER macro definition inside that header instead.
Only enable this if you are maintaining compatibility with existing code
that uses LV_ASSERT_HANDLER_INCLUDE and cannot migrate immediately.
New projects should use LV_ASSERT_CUSTOM_INCLUDE and LV_ASSERT_HANDLER
directly.
config LV_ASSERT_USE_CUSTOM_INCLUDE
bool "Use a custom path to define an assertion handler"
default n
help
Use LV_ASSERT_CUSTOM_INCLUDE to define the path to a file defining a
custom LV_ASSERT_HANDLER
config LV_ASSERT_CUSTOM_INCLUDE
string "Path to custom assert handler header"
default ""
depends on LV_ASSERT_USE_CUSTOM_INCLUDE
help
Optional header to override assert-related macros.
LV_ASSERT_HANDLER
Statement to execute when an assertion fails.
e.g. #define LV_ASSERT_HANDLER my_assert_failed(__FILE__, __LINE__);
endmenu
menu "Argument Checks"
config LV_USE_CHECK_ARG
bool "Enable LV_CHECK_ARG macro for runtime argument validation"
default y
help
When enabled, LV_CHECK_ARG checks validate function arguments
at runtime. Failed checks log a warning and execute the specified
action. When disabled, all LV_CHECK_ARG checks compile to nothing.
Disabling this is not recommended unless extreme care is taken and only
in very resource constrained environments where it can be absolutely
ensured that invariants are never violated.
if LV_USE_CHECK_ARG
config LV_CHECK_ARG_ASSERT_ON_FAIL
bool "Call assert handler on LV_CHECK_ARG failure"
default n
help
When enabled, LV_ASSERT_HANDLER is also invoked when an
LV_CHECK_ARG check fails, before the action is executed.
choice
prompt "Log behavior on LV_CHECK_ARG failure"
default LV_CHECK_ARG_LOG_MODE_VERBOSE if LV_USE_LOG
default LV_CHECK_ARG_LOG_MODE_NONE if !LV_USE_LOG
help
Controls what is logged when an LV_CHECK_ARG check fails.
MINIMAL and VERBOSE modes require LV_USE_LOG to be enabled;
selecting either when LV_USE_LOG is disabled will cause a
compile-time error.
config LV_CHECK_ARG_LOG_MODE_NONE
bool "None: no log output on failure"
config LV_CHECK_ARG_LOG_MODE_MINIMAL
bool "Minimal: log 'Check failed' only (file/line from LV_LOG_WARN)"
depends on LV_USE_LOG
config LV_CHECK_ARG_LOG_MODE_VERBOSE
bool "Verbose: log 'Check failed: <cond>' plus caller-supplied message"
depends on LV_USE_LOG
endchoice
config LV_CHECK_ARG_LOG_MODE
int
default 0 if LV_CHECK_ARG_LOG_MODE_NONE
default 1 if LV_CHECK_ARG_LOG_MODE_MINIMAL
default 2 if LV_CHECK_ARG_LOG_MODE_VERBOSE
config LV_USE_CHECK_OBJ_CLASSTYPE
bool "Enable class check in LV_CHECK_OBJ"
default n
help
When enabled, LV_CHECK_OBJ verifies that the object has the
expected class (lv_obj_has_class). When disabled, the class
check is skipped even if a class argument is supplied.
config LV_USE_CHECK_OBJ_VALIDITY
bool "Enable widget-tree validity check in LV_CHECK_OBJ"
default n
help
When enabled, LV_CHECK_OBJ also verifies that the object is
still part of the widget tree (lv_obj_is_valid). When disabled,
the validity check is skipped even if the associated argument
is supplied.
endif
endmenu
endmenu #"Build"
menu "Compiler Settings"
config LV_BIG_ENDIAN_SYSTEM
bool "For big endian systems set to 1"
help
For big endian systems set to 1
config LV_ATTRIBUTE_USE_CUSTOM_INCLUDE
bool "Include a custom attributes header"
default n
help
Include the header given by LV_ATTRIBUTE_CUSTOM_INCLUDE to override the
LV_ATTRIBUTE_* macros for your platform.
config LV_ATTRIBUTE_CUSTOM_INCLUDE
string "Path to custom attributes header"
default ""
depends on LV_ATTRIBUTE_USE_CUSTOM_INCLUDE
help
Optional header to override LV_ATTRIBUTE_* macros for your platform.
Leave empty to use defaults (all expand to nothing).
Create a header file and set this to its path, e.g. "my_lv_attr.h".
The following macros can be defined in it:
LV_ATTRIBUTE_MEM_ALIGN
Where memory needs to be aligned (e.g. with -Os, data may not be
aligned to the required boundary by default).
e.g. __attribute__((aligned(4)))
LV_ATTRIBUTE_TICK_INC
Applied to lv_tick_inc(). Often called from a timer ISR, so fast
memory placement can reduce latency.
e.g. __attribute__((section(".itcm"))) or __ramfunc (IAR)
LV_ATTRIBUTE_TIMER_HANDLER
Applied to lv_timer_handler().
e.g. __attribute__((section(".itcm")))
LV_ATTRIBUTE_FLUSH_READY
Applied to lv_display_flush_ready(). Often called from a DMA or
display ISR.
e.g. __attribute__((section(".itcm")))
LV_ATTRIBUTE_SYNC_READY
Applied to lv_display_sync_ready(). Similar to FLUSH_READY, useful
when called from an ISR context.
e.g. __attribute__((section(".itcm")))
LV_ATTRIBUTE_LARGE_CONST
Applied to large read-only arrays such as font bitmaps. Use to place
them in a specific flash region or external memory.
e.g. __attribute__((section(".ext_flash")))
LV_ATTRIBUTE_LARGE_RAM_ARRAY
Applied to large arrays allocated in RAM.
e.g. __attribute__((section(".ext_ram")))
LV_ATTRIBUTE_FAST_MEM
Applied to performance-critical functions to place them in faster
memory such as ITCM or SRAM.
e.g. __attribute__((section(".itcm"))) or __ramfunc (IAR)
LV_ATTRIBUTE_EXTERN_DATA
Prefix for all global extern data declarations. Useful for placing
shared data in a named section or applying export attributes.
e.g. __attribute__((section(".shared_mem")))
LV_EXPORT_CONST_INT(int_value)
Exports an integer constant to a language binding API such as
MicroPython. Called for all constants in the form LV_<CONST>.
Leave undefined if not using a binding.
e.g. mp_rom_map_elem_t entry = {MP_ROM_QSTR(MP_QSTR_##int_value), MP_ROM_INT(int_value)}
endmenu #"Compiler Settings"
menu "Examples"
config LV_BUILD_EXAMPLES
bool "Enable the examples to be built"
default y
help
Enable examples to be built with the library.
endmenu #"Examples"
menu "Demos"
config LV_BUILD_DEMOS
bool "Build demos"
default y
help
Build the demos
if LV_BUILD_DEMOS
config LV_USE_DEMO_BENCHMARK
bool "Benchmark your system"
default n
select LV_FONT_MONTSERRAT_14
select LV_FONT_MONTSERRAT_20
select LV_FONT_MONTSERRAT_24
select LV_FONT_MONTSERRAT_26
select LV_USE_DEMO_WIDGETS
config LV_DEMO_BENCHMARK_ALIGNED_FONTS
depends on LV_USE_DEMO_BENCHMARK
bool "Use static aligned fonts"
default n
config LV_USE_DEMO_GLTF
bool "glTF demo"
default n
depends on LV_USE_GLTF
config LV_USE_DEMO_KEYPAD_AND_ENCODER
bool "Demonstrate the usage of encoder and keyboard"
default n
config LV_USE_DEMO_MUSIC
bool "Music player demo"
default n
if LV_USE_DEMO_MUSIC
config LV_DEMO_MUSIC_SQUARE
bool "Enable Square"
default n
config LV_DEMO_MUSIC_LANDSCAPE
bool "Enable Landscape"
default n
config LV_DEMO_MUSIC_ROUND
bool "Enable Round"
default n
config LV_DEMO_MUSIC_LARGE
bool "Enable Large"
default n
config LV_DEMO_MUSIC_AUTO_PLAY
bool "Enable Auto play"
default n
endif #LV_USE_DEMO_MUSIC
config LV_USE_DEMO_RENDER
bool "Render test for each primitives. Requires at least 480x272 display"
select LV_USE_GRID
default n
config LV_USE_DEMO_STRESS
bool "Stress test for LVGL"
default n
config LV_USE_DEMO_VECTOR_GRAPHIC
bool "vector graphic demo"
default n
depends on LV_DRAW_HAS_VECTOR_SUPPORT
select LV_USE_VECTOR_GRAPHIC
config LV_USE_DEMO_WIDGETS
bool "Show-case LVGL widgets"
default n
config LV_USE_DEMO_FLEX_LAYOUT
bool "Flex layout previewer"
default n
config LV_USE_DEMO_MULTILANG
bool "multi-language demo"
default n
config LV_USE_DEMO_SMARTWATCH
bool "Smartwatch demo"
config LV_USE_DEMO_EBIKE
bool "Ebike demo"
config LV_DEMO_EBIKE_PORTRAIT
bool "Ebike portrait layout"
depends on LV_USE_DEMO_EBIKE
default n
config LV_USE_DEMO_HIGH_RES
bool "High resolution demo"
endif
endmenu #"Demos"
endmenu #"LVGL"