1# Kconfig file for LVGL v9.3.0-dev
2
3menu "LVGL configuration"
4
5	# Define CONFIG_LV_CONF_SKIP so we can use LVGL
6	# without lv_conf.h file, the lv_conf_internal.h and
7	# lv_conf_kconfig.h files are used instead.
8	config LV_CONF_SKIP
9		bool "Check this to not use custom lv_conf.h"
10		default y
11
12	config LV_CONF_MINIMAL
13		bool "LVGL minimal configuration"
14
15	menu "Color Settings"
16		choice LV_COLOR_DEPTH
17			prompt "Color depth"
18			default LV_COLOR_DEPTH_16
19			help
20				Color depth to be used.
21
22			config LV_COLOR_DEPTH_32
23				bool "32: XRGB8888"
24			config LV_COLOR_DEPTH_24
25				bool "24: RGB888"
26			config LV_COLOR_DEPTH_16
27				bool "16: RGB565"
28			config LV_COLOR_DEPTH_8
29				bool "8: RGB232"
30			config LV_COLOR_DEPTH_1
31				bool "1: 1 byte per pixel"
32		endchoice
33
34		config LV_COLOR_DEPTH
35			int
36			default 1 if LV_COLOR_DEPTH_1
37			default 8 if LV_COLOR_DEPTH_8
38			default 16 if LV_COLOR_DEPTH_16
39			default 24 if LV_COLOR_DEPTH_24
40			default 32 if LV_COLOR_DEPTH_32
41	endmenu
42
43	menu "Memory Settings"
44		choice
45			prompt "Malloc functions source"
46			default LV_USE_BUILTIN_MALLOC
47
48		config LV_USE_BUILTIN_MALLOC
49			bool "LVGL's built in implementation"
50
51		config LV_USE_CLIB_MALLOC
52			bool "Standard C functions malloc/realloc/free"
53
54		config LV_USE_MICROPYTHON_MALLOC
55			bool "MicroPython functions malloc/realloc/free"
56
57		config LV_USE_RTTHREAD_MALLOC
58			bool "RTThread functions malloc/realloc/free"
59
60		config LV_USE_CUSTOM_MALLOC
61			bool "Implement the functions externally"
62
63		endchoice # "Malloc functions"
64
65		choice
66			prompt "String functions source"
67			default LV_USE_BUILTIN_STRING
68
69		config LV_USE_BUILTIN_STRING
70			bool "LVGL's built in implementation"
71
72		config LV_USE_CLIB_STRING
73			bool "Standard C functions memcpy/memset/strlen/strcpy"
74
75		config LV_USE_CUSTOM_STRING
76			bool "Implement the functions externally"
77
78		endchoice # "String functions"
79
80		choice
81			prompt "Sprintf functions source"
82			default LV_USE_BUILTIN_SPRINTF
83
84		config LV_USE_BUILTIN_SPRINTF
85			bool "LVGL's built in implementation"
86
87		config LV_USE_CLIB_SPRINTF
88			bool "Standard C functions vsnprintf"
89
90		config LV_USE_CUSTOM_SPRINTF
91			bool "Implement the functions externally"
92
93		endchoice # "Sprintf functions"
94
95		config LV_MEM_SIZE_KILOBYTES
96			int "Size of the memory used by `lv_malloc()` in kilobytes (>= 2kB)"
97			default 64
98			depends on LV_USE_BUILTIN_MALLOC
99
100		config LV_MEM_POOL_EXPAND_SIZE_KILOBYTES
101			int "Size of the memory expand for `lv_malloc()` in kilobytes"
102			default 0
103			depends on LV_USE_BUILTIN_MALLOC
104
105		config LV_MEM_ADR
106			hex "Address for the memory pool instead of allocating it as a normal array"
107			default 0x0
108			depends on LV_USE_BUILTIN_MALLOC
109
110	endmenu
111
112	menu "HAL Settings"
113		config LV_DEF_REFR_PERIOD
114			int "Default refresh period (ms)"
115			default 33
116			help
117				Default display refresh, input device read and animation step period.
118
119		config LV_DPI_DEF
120			int "Default Dots Per Inch (in px/inch)"
121			default 130
122			help
123				Used to initialize default sizes such as widgets sized, style paddings.
124				(Not so important, you can adjust it to modify default sizes and spaces)
125	endmenu
126
127	menu "Operating System (OS)"
128		choice LV_USE_OS
129			prompt "Default operating system to use"
130			default LV_OS_NONE
131
132			config LV_OS_NONE
133				bool "0: NONE"
134			config LV_OS_PTHREAD
135				bool "1: PTHREAD"
136			config LV_OS_FREERTOS
137				bool "2: FREERTOS"
138			config LV_OS_CMSIS_RTOS2
139				bool "3: CMSIS_RTOS2"
140			config LV_OS_RTTHREAD
141				bool "4: RTTHREAD"
142			config LV_OS_WINDOWS
143				bool "5: WINDOWS"
144			config LV_OS_MQX
145				bool "6: MQX"
146			config LV_OS_CUSTOM
147				bool "255: CUSTOM"
148		endchoice
149
150		config LV_USE_OS
151			int
152			default 0 if LV_OS_NONE
153			default 1 if LV_OS_PTHREAD
154			default 2 if LV_OS_FREERTOS
155			default 3 if LV_OS_CMSIS_RTOS2
156			default 4 if LV_OS_RTTHREAD
157			default 5 if LV_OS_WINDOWS
158			default 6 if LV_OS_MQX
159			default 255 if LV_OS_CUSTOM
160
161		config LV_OS_CUSTOM_INCLUDE
162			string "Custom OS include header"
163			default "stdint.h"
164			depends on LV_OS_CUSTOM
165
166		config LV_USE_FREERTOS_TASK_NOTIFY
167			bool "Use RTOS task with a direct notification for synchronization"
168			default y
169			depends on LV_OS_FREERTOS
170		help
171			Unblocking an RTOS task with a direct notification is 45% faster and uses less RAM
172			than unblocking a task using an intermediary object such as a binary semaphore.
173			RTOS task notifications can only be used when there is only one task that can be the recipient of the event.
174	endmenu
175
176	menu "Rendering Configuration"
177		config LV_DRAW_BUF_STRIDE_ALIGN
178			int "Buffer stride alignment"
179			default 1
180		help
181			Align the stride of all layers and images to this bytes.
182
183		config LV_DRAW_BUF_ALIGN
184			int "Buffer address alignment"
185			default 4
186		help
187			Align the start address of draw_buf addresses to this bytes.
188
189		config LV_DRAW_TRANSFORM_USE_MATRIX
190			bool "Using matrix for transformations"
191			default n
192			depends on LV_USE_MATRIX
193			help
194				Requirements: The rendering engine needs to support 3x3 matrix transformations.
195
196		config LV_DRAW_LAYER_SIMPLE_BUF_SIZE
197			int "Optimal size to buffer the widget with opacity"
198			default 24576
199			depends on LV_USE_DRAW_SW
200			help
201				If a widget has `style_opa < 255` (not `bg_opa`, `text_opa` etc) or not NORMAL blend mode
202				it is buffered into a "simple" layer before rendering. The widget can be buffered in smaller chunks.
203				"Transformed layers" (if `transform_angle/zoom` are set) use larger buffers and can't be drawn in chunks.
204
205		config LV_DRAW_LAYER_MAX_MEMORY
206			int "The maximum amount of memory that can be used for layers"
207			default 0
208			help
209				Limit the max allocated memory for simple and transformed layers.
210				It should be at least `LV_DRAW_LAYER_SIMPLE_BUF_SIZE` sized but if transformed layers are also used
211				it should be enough to store the largest widget too (width x height x 4 area).
212				Set it to 0 to have no limit.
213
214		config LV_DRAW_THREAD_STACK_SIZE
215			int "Stack size of draw thread in bytes"
216			default 8192
217			depends on LV_USE_OS > 0
218			help
219				If FreeType or ThorVG is enabled, it is recommended to set it to 32KB or more.
220
221		config LV_USE_DRAW_SW
222			bool "Enable software rendering"
223			default y
224		help
225			Required to draw anything on the screen.
226
227		config LV_DRAW_SW_SUPPORT_RGB565
228			bool "Enable support for RGB565 color format"
229			default y
230			depends on LV_USE_DRAW_SW
231
232		config LV_DRAW_SW_SUPPORT_RGB565A8
233			bool "Enable support for RGB565A8 color format"
234			default y
235			depends on LV_USE_DRAW_SW
236
237		config LV_DRAW_SW_SUPPORT_RGB888
238			bool "Enable support for RGB888 color format"
239			default y
240			depends on LV_USE_DRAW_SW
241
242		config LV_DRAW_SW_SUPPORT_XRGB8888
243			bool "Enable support for XRGB8888 color format"
244			default y
245			depends on LV_USE_DRAW_SW
246
247		config LV_DRAW_SW_SUPPORT_ARGB8888
248			bool "Enable support for ARGB8888 color format"
249			default y
250			depends on LV_USE_DRAW_SW
251
252		config LV_DRAW_SW_SUPPORT_L8
253			bool "Enable support for L8 color format"
254			default y
255			depends on LV_USE_DRAW_SW
256
257		config LV_DRAW_SW_SUPPORT_AL88
258			bool "Enable support for AL88 color format"
259			default y
260			depends on LV_USE_DRAW_SW
261
262		config LV_DRAW_SW_SUPPORT_A8
263			bool "Enable support for A8 color format"
264			default y
265			depends on LV_USE_DRAW_SW
266
267		config LV_DRAW_SW_SUPPORT_I1
268			bool "Enable support for I1 color format"
269			default y
270			depends on LV_USE_DRAW_SW
271
272		config LV_DRAW_SW_I1_LUM_THRESHOLD
273			int "Luminance threshold for a pixel to be active"
274			default 127
275			range 0 254
276			depends on LV_DRAW_SW_SUPPORT_I1
277
278		config LV_DRAW_SW_DRAW_UNIT_CNT
279			int "Number of draw units"
280			default 1
281			depends on LV_USE_DRAW_SW
282			help
283				> 1 requires an operating system enabled in `LV_USE_OS`
284				> 1 means multiply threads will render the screen in parallel
285
286		config LV_USE_DRAW_ARM2D_SYNC
287			bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors"
288			default n
289			depends on LV_USE_DRAW_SW
290			help
291				Must deploy arm-2d library to your project and add include PATH for "arm_2d.h".
292
293		config LV_USE_NATIVE_HELIUM_ASM
294			bool "Enable native helium assembly"
295			default n
296			depends on LV_USE_DRAW_SW
297			help
298				Disabling this allows arm2d to work on its own (for testing only)
299
300		config LV_DRAW_SW_COMPLEX
301			bool "Enable complex draw engine"
302			default y
303			depends on LV_USE_DRAW_SW
304			help
305				0: use a simple renderer capable of drawing only simple rectangles with gradient, images, texts, and straight lines only,
306				1: use a complex renderer capable of drawing rounded corners, shadow, skew lines, and arcs too.
307
308		config LV_USE_DRAW_SW_COMPLEX_GRADIENTS
309			bool "Enable drawing complex gradients in software"
310			default n
311			depends on LV_USE_DRAW_SW
312			help
313				0: do not enable complex gradients
314				1: enable complex gradients (linear at an angle, radial or conical)
315
316		config LV_DRAW_SW_SHADOW_CACHE_SIZE
317			int "Allow buffering some shadow calculation"
318			depends on LV_DRAW_SW_COMPLEX
319			default 0
320			help
321				LV_DRAW_SW_SHADOW_CACHE_SIZE is the max shadow size to buffer, where
322				shadow size is `shadow_width + radius`.
323				Caching has LV_DRAW_SW_SHADOW_CACHE_SIZE^2 RAM cost.
324
325		config LV_DRAW_SW_CIRCLE_CACHE_SIZE
326			int "Set number of maximally cached circle data"
327			depends on LV_DRAW_SW_COMPLEX
328			default 4
329			help
330				The circumference of 1/4 circle are saved for anti-aliasing
331				radius * 4 bytes are used per circle (the most often used
332				radiuses are saved).
333				Set to 0 to disable caching.
334
335		choice LV_USE_DRAW_SW_ASM
336			prompt "Asm mode in sw draw"
337			default LV_DRAW_SW_ASM_NONE
338			depends on LV_USE_DRAW_SW
339			help
340				ASM mode to be used
341
342			config LV_DRAW_SW_ASM_NONE
343				bool "0: NONE"
344			config LV_DRAW_SW_ASM_NEON
345				bool "1: NEON"
346			config LV_DRAW_SW_ASM_HELIUM
347				bool "2: HELIUM"
348			config LV_DRAW_SW_ASM_CUSTOM
349				bool "255: CUSTOM"
350		endchoice
351
352		config LV_USE_DRAW_SW_ASM
353			int
354			default 0 if LV_DRAW_SW_ASM_NONE
355			default 1 if LV_DRAW_SW_ASM_NEON
356			default 2 if LV_DRAW_SW_ASM_HELIUM
357			default 255 if LV_DRAW_SW_ASM_CUSTOM
358
359		config LV_DRAW_SW_ASM_CUSTOM_INCLUDE
360			string "Set the custom asm include file"
361			default ""
362			depends on LV_DRAW_SW_ASM_CUSTOM
363
364		config LV_USE_DRAW_VGLITE
365			bool "Use NXP's VG-Lite GPU on iMX RTxxx platforms"
366			default n
367
368		config LV_USE_VGLITE_BLIT_SPLIT
369			bool "Enable blit quality degradation workaround recommended for screen's dimension > 352 pixels"
370			depends on LV_USE_DRAW_VGLITE
371			default n
372
373		config LV_USE_VGLITE_DRAW_THREAD
374			bool "Use additional draw thread for VG-Lite processing"
375			depends on LV_USE_DRAW_VGLITE && LV_USE_OS > 0
376			default y
377
378		config LV_USE_VGLITE_DRAW_ASYNC
379			bool "Enable VGLite draw async"
380			depends on LV_USE_VGLITE_DRAW_THREAD
381			default y
382			help
383				Queue multiple tasks and flash them once to the GPU. The task ready state will be send asynchronous to dispatcher.
384
385		config LV_USE_VGLITE_ASSERT
386			bool "Enable VGLite asserts"
387			depends on LV_USE_DRAW_VGLITE
388			default n
389
390		config LV_USE_PXP
391		bool "Use NXP's PXP on iMX RTxxx platforms"
392		default n
393
394		config LV_USE_DRAW_PXP
395		bool "Use PXP for drawing"
396			depends on LV_USE_PXP
397			default y
398
399		config LV_USE_ROTATE_PXP
400			bool "Use PXP to rotate display"
401			depends on LV_USE_PXP
402			default n
403
404		config LV_USE_PXP_DRAW_THREAD
405			bool "Use additional draw thread for PXP processing"
406			depends on LV_USE_DRAW_PXP && LV_USE_OS > 0
407			default y
408
409		config LV_USE_PXP_ASSERT
410			bool "Enable PXP asserts"
411			depends on LV_USE_DRAW_PXP
412			default n
413
414		config LV_USE_DRAW_DAVE2D
415			bool "Use Renesas Dave2D on RA platforms"
416			default n
417
418		config LV_USE_DRAW_SDL
419			bool "Draw using cached SDL textures"
420			default n
421			help
422				Uses SDL renderer API
423
424		config LV_USE_DRAW_VG_LITE
425			bool "Use VG-Lite GPU"
426			default n
427			select LV_USE_MATRIX
428
429		config LV_VG_LITE_USE_GPU_INIT
430			bool "Enable VG-Lite custom external 'gpu_init()' function"
431			default n
432			depends on LV_USE_DRAW_VG_LITE
433
434		config LV_VG_LITE_USE_ASSERT
435			bool "Enable VG-Lite assert"
436			default n
437			depends on LV_USE_DRAW_VG_LITE
438
439		config LV_VG_LITE_FLUSH_MAX_COUNT
440			int "VG-Lite flush commit trigger threshold"
441			default 8
442			depends on LV_USE_DRAW_VG_LITE
443			help
444				GPU will try to batch these many draw tasks
445
446		config LV_VG_LITE_USE_BOX_SHADOW
447			bool "Enable border to simulate shadow"
448			default n
449			depends on LV_USE_DRAW_VG_LITE
450			help
451				which usually improves performance,
452				but does not guarantee the same rendering quality as the software.
453
454		config LV_VG_LITE_GRAD_CACHE_CNT
455			int "VG-Lite gradient maximum cache number."
456			default 32
457			depends on LV_USE_DRAW_VG_LITE
458			help
459				The memory usage of a single gradient:
460					linear: 4K bytes.
461					radial: radius * 4K bytes.
462
463		config LV_VG_LITE_STROKE_CACHE_CNT
464			int "VG-Lite stroke maximum cache number."
465			default 32
466			depends on LV_USE_DRAW_VG_LITE
467
468		config LV_USE_VECTOR_GRAPHIC
469			bool "Use Vector Graphic APIs"
470			default n
471			select LV_USE_MATRIX
472			help
473				Enable drawing support vector graphic APIs.
474
475		config LV_USE_DRAW_DMA2D
476			bool "Use DMA2D on the supporting STM32 platforms"
477			default n
478			help
479				Accelerate blends, fills, image decoding, etc. with STM32 DMA2D.
480
481		config LV_DRAW_DMA2D_HAL_INCLUDE
482			string "the header file for LVGL to include for DMA2D"
483			default "stm32h7xx_hal.h"
484			depends on LV_USE_DRAW_DMA2D
485
486		config LV_USE_DRAW_DMA2D_INTERRUPT
487			bool "use the DMA2D transfer complete interrupt"
488			default n
489			depends on LV_USE_DRAW_DMA2D
490			help
491				if enabled, the user is required to call
492				`lv_draw_dma2d_transfer_complete_interrupt_handler`
493				upon receiving the DMA2D global interrupt
494
495		config LV_USE_DRAW_OPENGLES
496			bool "Draw using cached OpenGLES textures"
497			default n
498			depends on LV_USE_OPENGLES
499	endmenu
500
501	menu "Feature Configuration"
502		menu "Logging"
503			config LV_USE_LOG
504				bool "Enable the log module"
505
506			choice
507				bool "Default log verbosity" if LV_USE_LOG
508				default LV_LOG_LEVEL_WARN
509				help
510					Specify how important log should be added.
511
512				config LV_LOG_LEVEL_TRACE
513					bool "A lot of logs to give detailed information"
514				config LV_LOG_LEVEL_INFO
515					bool "Log important events"
516				config LV_LOG_LEVEL_WARN
517					bool "Log if something unwanted happened but didn't cause a problem"
518				config LV_LOG_LEVEL_ERROR
519					bool "Only critical issues, when the system may fail"
520				config LV_LOG_LEVEL_USER
521					bool "Only logs added by the user"
522				config LV_LOG_LEVEL_NONE
523					bool "Do not log anything"
524			endchoice
525
526			config LV_LOG_LEVEL
527				int
528				default 0 if LV_LOG_LEVEL_TRACE
529				default 1 if LV_LOG_LEVEL_INFO
530				default 2 if LV_LOG_LEVEL_WARN
531				default 3 if LV_LOG_LEVEL_ERROR
532				default 4 if LV_LOG_LEVEL_USER
533				default 5 if LV_LOG_LEVEL_NONE
534
535			config LV_LOG_PRINTF
536				bool "Print the log with 'printf'" if LV_USE_LOG
537				help
538					Use printf for log output.
539					If not set the user needs to register a callback with `lv_log_register_print_cb`.
540
541			config LV_LOG_USE_TIMESTAMP
542				bool "Enable print timestamp"
543				default y
544				depends on LV_USE_LOG
545
546			config LV_LOG_USE_FILE_LINE
547				bool "Enable print file and line number"
548				default y
549				depends on LV_USE_LOG
550
551			config LV_LOG_TRACE_MEM
552				bool "Enable/Disable LV_LOG_TRACE in mem module"
553				default y
554				depends on LV_USE_LOG
555
556			config LV_LOG_TRACE_TIMER
557				bool "Enable/Disable LV_LOG_TRACE in timer module"
558				default y
559				depends on LV_USE_LOG
560
561			config LV_LOG_TRACE_INDEV
562				bool "Enable/Disable LV_LOG_TRACE in indev module"
563				default y
564				depends on LV_USE_LOG
565
566			config LV_LOG_TRACE_DISP_REFR
567				bool "Enable/Disable LV_LOG_TRACE in disp refr module"
568				default y
569				depends on LV_USE_LOG
570
571			config LV_LOG_TRACE_EVENT
572				bool "Enable/Disable LV_LOG_TRACE in event module"
573				default y
574				depends on LV_USE_LOG
575
576			config LV_LOG_TRACE_OBJ_CREATE
577				bool "Enable/Disable LV_LOG_TRACE in obj create module"
578				default y
579				depends on LV_USE_LOG
580
581			config LV_LOG_TRACE_LAYOUT
582				bool "Enable/Disable LV_LOG_TRACE in layout module"
583				default y
584				depends on LV_USE_LOG
585
586			config LV_LOG_TRACE_ANIM
587				bool "Enable/Disable LV_LOG_TRACE in anim module"
588				default y
589				depends on LV_USE_LOG
590
591			config LV_LOG_TRACE_CACHE
592				bool "Enable/Disable LV_LOG_TRACE in cache module"
593				default y
594				depends on LV_USE_LOG
595		endmenu
596
597		menu "Asserts"
598			config LV_USE_ASSERT_NULL
599				bool "Check if the parameter is NULL. (Very fast, recommended)"
600				default y if !LV_CONF_MINIMAL
601
602			config LV_USE_ASSERT_MALLOC
603				bool "Checks if the memory is successfully allocated or no. (Very fast, recommended)"
604				default y if !LV_CONF_MINIMAL
605
606			config LV_USE_ASSERT_STYLE
607				bool "Check if the styles are properly initialized. (Very fast, recommended)"
608
609			config LV_USE_ASSERT_MEM_INTEGRITY
610				bool "Check the integrity of `lv_mem` after critical operations. (Slow)"
611
612			config LV_USE_ASSERT_OBJ
613				bool "Check NULL, the object's type and existence (e.g. not deleted). (Slow)"
614
615			config LV_ASSERT_HANDLER_INCLUDE
616				string "Header to include for the custom assert function"
617				default "assert.h"
618				help
619					Add a custom handler when assert happens e.g. to restart the MCU
620		endmenu
621
622		menu "Debug"
623			config LV_USE_REFR_DEBUG
624				bool "Draw random colored rectangles over the redrawn areas"
625
626			config LV_USE_LAYER_DEBUG
627				bool "Draw a red overlay for ARGB layers and a green overlay for RGB layers"
628
629			config LV_USE_PARALLEL_DRAW_DEBUG
630				bool "Draw overlays with different colors for each draw_unit's tasks"
631				help
632					Also add the index number of the draw unit on white background.
633					For layers add the index number of the draw unit on black background.
634		endmenu
635
636		menu "Others"
637			config LV_ENABLE_GLOBAL_CUSTOM
638				bool "Enable 'lv_global' customization"
639
640			config LV_GLOBAL_CUSTOM_INCLUDE
641				string "Header to include for the custom 'lv_global' function"
642				depends on LV_ENABLE_GLOBAL_CUSTOM
643				default "lv_global.h"
644
645			config LV_CACHE_DEF_SIZE
646				int "Default image cache size. 0 to disable caching"
647				default 0
648				depends on LV_USE_DRAW_SW
649				help
650					If only the built-in image formats are used there is no real advantage of caching.
651					(I.e. no new image decoder is added).
652
653					With complex image decoders (e.g. PNG or JPG) caching can
654					save the continuous open/decode of images.
655					However the opened images might consume additional RAM.
656
657			config LV_IMAGE_HEADER_CACHE_DEF_CNT
658				int "Default image header cache count. 0 to disable caching"
659				default 0
660				depends on LV_USE_DRAW_SW
661				help
662					If only the built-in image formats are used there is no real advantage of caching.
663					(I.e. no new image decoder is added).
664
665					With complex image decoders (e.g. PNG or JPG) caching can
666					save the continuous getting header information of images.
667					However the records of opened images headers might consume additional RAM.
668
669			config LV_GRADIENT_MAX_STOPS
670				int "Number of stops allowed per gradient"
671				default 2
672				depends on LV_USE_DRAW_SW
673				help
674					Increase this to allow more stops.
675					This adds (sizeof(lv_color_t) + 1) bytes per additional stop
676
677			config LV_COLOR_MIX_ROUND_OFS
678				int "Adjust color mix functions rounding"
679				default 128 if !LV_COLOR_DEPTH_32
680				default 0 if LV_COLOR_DEPTH_32
681				range 0 254
682				help
683					0: no adjustment, get the integer part of the result (round down)
684					64: round up from x.75
685					128: round up from half
686					192: round up from x.25
687					254: round up
688
689			config LV_OBJ_STYLE_CACHE
690				bool "Use cache to speed up getting object style properties"
691				default n
692				help
693					Add 2 x 32 bit variables to each lv_obj_t to speed up getting style properties
694
695			config LV_USE_OBJ_ID
696				bool "Add id field to obj"
697				default n
698
699			config LV_OBJ_ID_AUTO_ASSIGN
700				bool "Automatically assign an ID when obj is created"
701				default y
702				depends on LV_USE_OBJ_ID
703
704			config LV_USE_OBJ_ID_BUILTIN
705				bool "Use builtin method to deal with obj ID"
706				default n
707				depends on LV_USE_OBJ_ID
708
709			config LV_USE_OBJ_PROPERTY
710				bool "Use obj property set/get API"
711				default n
712
713			config LV_USE_OBJ_PROPERTY_NAME
714				bool "Use name to access property"
715				default n
716				depends on LV_USE_OBJ_PROPERTY
717				help
718					Add a name table to every widget class, so the property can be accessed by name.
719					Note, the const table will increase flash usage.
720
721			config LV_USE_VG_LITE_THORVG
722				bool "VG-Lite Simulator"
723				default n
724				depends on LV_USE_THORVG
725				help
726					Use thorvg to simulate VG-Lite hardware behavior, it's useful
727					for debugging and testing on PC simulator. Enable LV_USE_THORVG,
728					Either internal ThorVG or external ThorVG library is required.
729
730			config LV_VG_LITE_THORVG_LVGL_BLEND_SUPPORT
731				bool "Enable LVGL blend mode support"
732				default n
733				depends on LV_USE_VG_LITE_THORVG
734
735			config LV_VG_LITE_THORVG_YUV_SUPPORT
736				bool "Enable YUV color format support"
737				default n
738				depends on LV_USE_VG_LITE_THORVG
739
740			config LV_VG_LITE_THORVG_LINEAR_GRADIENT_EXT_SUPPORT
741				bool "Enable linear gradient extension support"
742				default n
743				depends on LV_USE_VG_LITE_THORVG
744
745			config LV_VG_LITE_THORVG_16PIXELS_ALIGN
746				bool "Enable 16 pixels alignment"
747				default y
748				depends on LV_USE_VG_LITE_THORVG
749
750			config LV_VG_LITE_THORVG_BUF_ADDR_ALIGN
751				int "Buffer address alignment"
752				default 64
753				depends on LV_USE_VG_LITE_THORVG
754
755			config LV_VG_LITE_THORVG_THREAD_RENDER
756				bool "Enable multi-thread render"
757				default n
758				depends on LV_USE_VG_LITE_THORVG
759
760			config LV_USE_GESTURE_RECOGNITION
761				bool "Enable the multi-touch gesture recognition feature"
762				depends on LV_USE_FLOAT
763				default n
764		endmenu
765	endmenu
766
767	menu "Compiler Settings"
768		config LV_BIG_ENDIAN_SYSTEM
769			bool "For big endian systems set to 1"
770
771		config LV_ATTRIBUTE_MEM_ALIGN_SIZE
772			int "Required alignment size for buffers"
773			default 1
774
775		config LV_ATTRIBUTE_FAST_MEM_USE_IRAM
776			bool "Set IRAM as LV_ATTRIBUTE_FAST_MEM"
777			help
778				Set this option to configure IRAM as LV_ATTRIBUTE_FAST_MEM
779
780		config LV_USE_FLOAT
781			bool "Use float as lv_value_precise_t"
782			default n
783
784		config LV_USE_MATRIX
785			bool "Enable matrix support"
786			default n
787			select LV_USE_FLOAT
788
789		config LV_USE_PRIVATE_API
790			bool "Include `lvgl_private.h` in `lvgl.h` to access internal data and functions by default"
791			default n
792	endmenu
793
794	menu "Font Usage"
795		menu "Enable built-in fonts"
796			config LV_FONT_MONTSERRAT_8
797				bool "Enable Montserrat 8"
798			config LV_FONT_MONTSERRAT_10
799				bool "Enable Montserrat 10"
800			config LV_FONT_MONTSERRAT_12
801				bool "Enable Montserrat 12"
802			config LV_FONT_MONTSERRAT_14
803				bool "Enable Montserrat 14"
804				default y if !LV_CONF_MINIMAL
805			config LV_FONT_MONTSERRAT_16
806				bool "Enable Montserrat 16"
807			config LV_FONT_MONTSERRAT_18
808				bool "Enable Montserrat 18"
809			config LV_FONT_MONTSERRAT_20
810				bool "Enable Montserrat 20"
811			config LV_FONT_MONTSERRAT_22
812				bool "Enable Montserrat 22"
813			config LV_FONT_MONTSERRAT_24
814				bool "Enable Montserrat 24"
815			config LV_FONT_MONTSERRAT_26
816				bool "Enable Montserrat 26"
817			config LV_FONT_MONTSERRAT_28
818				bool "Enable Montserrat 28"
819			config LV_FONT_MONTSERRAT_30
820				bool "Enable Montserrat 30"
821			config LV_FONT_MONTSERRAT_32
822				bool "Enable Montserrat 32"
823			config LV_FONT_MONTSERRAT_34
824				bool "Enable Montserrat 34"
825			config LV_FONT_MONTSERRAT_36
826				bool "Enable Montserrat 36"
827			config LV_FONT_MONTSERRAT_38
828				bool "Enable Montserrat 38"
829			config LV_FONT_MONTSERRAT_40
830				bool "Enable Montserrat 40"
831			config LV_FONT_MONTSERRAT_42
832				bool "Enable Montserrat 42"
833			config LV_FONT_MONTSERRAT_44
834				bool "Enable Montserrat 44"
835			config LV_FONT_MONTSERRAT_46
836				bool "Enable Montserrat 46"
837			config LV_FONT_MONTSERRAT_48
838				bool "Enable Montserrat 48"
839
840			config LV_FONT_MONTSERRAT_28_COMPRESSED
841				bool "Enable Montserrat 28 compressed"
842			config LV_FONT_DEJAVU_16_PERSIAN_HEBREW
843				bool "Enable Dejavu 16 Persian, Hebrew, Arabic letters"
844			config LV_FONT_SIMSUN_14_CJK
845				bool "Enable Simsun 14 CJK"
846			config LV_FONT_SIMSUN_16_CJK
847				bool "Enable Simsun 16 CJK"
848
849			config LV_FONT_UNSCII_8
850				bool "Enable UNSCII 8 (Perfect monospace font)"
851				default y if LV_CONF_MINIMAL
852			config LV_FONT_UNSCII_16
853				bool "Enable UNSCII 16 (Perfect monospace font)"
854		endmenu
855
856		choice LV_FONT_DEFAULT
857			prompt "Select theme default title font"
858			default LV_FONT_DEFAULT_MONTSERRAT_14 if !LV_CONF_MINIMAL
859			default LV_FONT_DEFAULT_UNSCII_8 if LV_CONF_MINIMAL
860			help
861				Select theme default title font
862
863			config LV_FONT_DEFAULT_MONTSERRAT_8
864				bool "Montserrat 8"
865				select LV_FONT_MONTSERRAT_8
866			config LV_FONT_DEFAULT_MONTSERRAT_10
867				bool "Montserrat 10"
868				select LV_FONT_MONTSERRAT_10
869			config LV_FONT_DEFAULT_MONTSERRAT_12
870				bool "Montserrat 12"
871				select LV_FONT_MONTSERRAT_12
872			config LV_FONT_DEFAULT_MONTSERRAT_14
873				bool "Montserrat 14"
874				select LV_FONT_MONTSERRAT_14
875			config LV_FONT_DEFAULT_MONTSERRAT_16
876				bool "Montserrat 16"
877				select LV_FONT_MONTSERRAT_16
878			config LV_FONT_DEFAULT_MONTSERRAT_18
879				bool "Montserrat 18"
880				select LV_FONT_MONTSERRAT_18
881			config LV_FONT_DEFAULT_MONTSERRAT_20
882				bool "Montserrat 20"
883				select LV_FONT_MONTSERRAT_20
884			config LV_FONT_DEFAULT_MONTSERRAT_22
885				bool "Montserrat 22"
886				select LV_FONT_MONTSERRAT_22
887			config LV_FONT_DEFAULT_MONTSERRAT_24
888				bool "Montserrat 24"
889				select LV_FONT_MONTSERRAT_24
890			config LV_FONT_DEFAULT_MONTSERRAT_26
891				bool "Montserrat 26"
892				select LV_FONT_MONTSERRAT_26
893			config LV_FONT_DEFAULT_MONTSERRAT_28
894				bool "Montserrat 28"
895				select LV_FONT_MONTSERRAT_28
896			config LV_FONT_DEFAULT_MONTSERRAT_30
897				bool "Montserrat 30"
898				select LV_FONT_MONTSERRAT_30
899			config LV_FONT_DEFAULT_MONTSERRAT_32
900				bool "Montserrat 32"
901				select LV_FONT_MONTSERRAT_32
902			config LV_FONT_DEFAULT_MONTSERRAT_34
903				bool "Montserrat 34"
904				select LV_FONT_MONTSERRAT_34
905			config LV_FONT_DEFAULT_MONTSERRAT_36
906				bool "Montserrat 36"
907				select LV_FONT_MONTSERRAT_36
908			config LV_FONT_DEFAULT_MONTSERRAT_38
909				bool "Montserrat 38"
910				select LV_FONT_MONTSERRAT_38
911			config LV_FONT_DEFAULT_MONTSERRAT_40
912				bool "Montserrat 40"
913				select LV_FONT_MONTSERRAT_40
914			config LV_FONT_DEFAULT_MONTSERRAT_42
915				bool "Montserrat 42"
916				select LV_FONT_MONTSERRAT_42
917			config LV_FONT_DEFAULT_MONTSERRAT_44
918				bool "Montserrat 44"
919				select LV_FONT_MONTSERRAT_44
920			config LV_FONT_DEFAULT_MONTSERRAT_46
921				bool "Montserrat 46"
922				select LV_FONT_MONTSERRAT_46
923			config LV_FONT_DEFAULT_MONTSERRAT_48
924				bool "Montserrat 48"
925				select LV_FONT_MONTSERRAT_48
926			config LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED
927				bool "Montserrat 28 compressed"
928				select LV_FONT_MONTSERRAT_28_COMPRESSED
929			config LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW
930				bool "Dejavu 16 Persian, Hebrew, Arabic letters"
931				select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
932			config LV_FONT_DEFAULT_SIMSUN_14_CJK
933				bool "Simsun 14 CJK"
934				select LV_FONT_SIMSUN_14_CJK
935			config LV_FONT_DEFAULT_SIMSUN_16_CJK
936				bool "Simsun 16 CJK"
937				select LV_FONT_SIMSUN_16_CJK
938			config LV_FONT_DEFAULT_UNSCII_8
939				bool "UNSCII 8 (Perfect monospace font)"
940				select LV_FONT_UNSCII_8
941			config LV_FONT_DEFAULT_UNSCII_16
942				bool "UNSCII 16 (Perfect monospace font)"
943				select LV_FONT_UNSCII_16
944		endchoice
945
946		config LV_FONT_FMT_TXT_LARGE
947			bool "Enable it if you have fonts with a lot of characters"
948			help
949				The limit depends on the font size, font face and format
950				but with > 10,000 characters if you see issues probably you
951				need to enable it.
952
953		config LV_USE_FONT_COMPRESSED
954			bool "Sets support for compressed fonts"
955
956		config LV_USE_FONT_PLACEHOLDER
957			bool "Enable drawing placeholders when glyph dsc is not found"
958			default y
959	endmenu
960
961	menu "Text Settings"
962		choice LV_TXT_ENC
963			prompt "Select a character encoding for strings"
964			help
965				Select a character encoding for strings. Your IDE or editor should have the same character encoding.
966			default LV_TXT_ENC_UTF8 if !LV_CONF_MINIMAL
967			default LV_TXT_ENC_ASCII if LV_CONF_MINIMAL
968
969			config LV_TXT_ENC_UTF8
970				bool "UTF8"
971			config LV_TXT_ENC_ASCII
972				bool "ASCII"
973		endchoice
974
975		config LV_TXT_BREAK_CHARS
976			string "Can break (wrap) texts on these chars"
977			default " ,.;:-_)}"
978
979		config LV_TXT_LINE_BREAK_LONG_LEN
980			int "Line break long length"
981			default 0
982			help
983				If a word is at least this long, will break wherever 'prettiest'.
984				To disable, set to a value <= 0.
985
986		config LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
987			int "Min num chars before break"
988			default 3
989			depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
990			help
991				Minimum number of characters in a long word to put on a line before a break.
992
993		config LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN
994			int "Min num chars after break"
995			default 3
996			depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
997			help
998				Minimum number of characters in a long word to put on a line after a break
999
1000		config LV_TXT_COLOR_CMD
1001			string "The control character to use for signalling text recoloring"
1002			default "#"
1003
1004		config LV_USE_BIDI
1005			bool "Support bidirectional texts"
1006			help
1007				Allows mixing Left-to-Right and Right-to-Left texts.
1008				The direction will be processed according to the Unicode Bidirectional Algorithm:
1009				https://www.w3.org/International/articles/inline-bidi-markup/uba-basics
1010
1011		choice
1012			prompt "Set the default BIDI direction"
1013			default LV_BIDI_DIR_AUTO
1014			depends on LV_USE_BIDI
1015
1016			config LV_BIDI_DIR_LTR
1017				bool "Left-to-Right"
1018			config LV_BIDI_DIR_RTL
1019				bool "Right-to-Left"
1020			config LV_BIDI_DIR_AUTO
1021				bool "Detect texts base direction"
1022		endchoice
1023
1024		config LV_USE_ARABIC_PERSIAN_CHARS
1025			bool "Enable Arabic/Persian processing"
1026			help
1027				In these languages characters should be replaced with
1028				another form based on their position in the text.
1029	endmenu
1030
1031	menu "Widget Usage"
1032		config LV_WIDGETS_HAS_DEFAULT_VALUE
1033			bool "Widgets has default value"
1034			default y if !LV_CONF_MINIMAL
1035		config LV_USE_ANIMIMG
1036			bool "Anim image"
1037			default y if !LV_CONF_MINIMAL
1038		config LV_USE_ARC
1039			bool "Arc"
1040			default y if !LV_CONF_MINIMAL
1041		config LV_USE_BAR
1042			bool "Bar"
1043			default y if !LV_CONF_MINIMAL
1044		config LV_USE_BUTTON
1045			bool "Button"
1046			default y if !LV_CONF_MINIMAL
1047		config LV_USE_BUTTONMATRIX
1048			bool "Button matrix"
1049			default y if !LV_CONF_MINIMAL
1050		config LV_USE_CALENDAR
1051			bool "Calendar"
1052			default y if !LV_CONF_MINIMAL
1053		config LV_CALENDAR_WEEK_STARTS_MONDAY
1054			bool "Calendar week starts monday"
1055			depends on LV_USE_CALENDAR
1056		config LV_USE_CALENDAR_HEADER_ARROW
1057			bool "Use calendar header arrow"
1058			depends on LV_USE_CALENDAR
1059			default y
1060		config LV_USE_CALENDAR_HEADER_DROPDOWN
1061			bool "Use calendar header dropdown"
1062			depends on LV_USE_CALENDAR
1063			default y
1064		config LV_USE_CALENDAR_CHINESE
1065			bool "Use chinese calendar"
1066			depends on LV_USE_CALENDAR
1067		config LV_USE_CANVAS
1068			bool "Canvas. Requires: lv_image"
1069			imply LV_USE_IMAGE
1070			default y if !LV_CONF_MINIMAL
1071		config LV_USE_CHART
1072			bool "Chart"
1073			default y if !LV_CONF_MINIMAL
1074		config LV_USE_CHECKBOX
1075			bool "Check Box"
1076			default y if !LV_CONF_MINIMAL
1077		config LV_USE_DROPDOWN
1078			bool "Drop down list. Requires: lv_label"
1079			imply LV_USE_LABEL
1080			default y if !LV_CONF_MINIMAL
1081		config LV_USE_IMAGE
1082			bool "Image. Requires: lv_label"
1083			imply LV_USE_LABEL
1084			default y if !LV_CONF_MINIMAL
1085		config LV_USE_IMAGEBUTTON
1086			bool "ImageButton"
1087			default y if !LV_CONF_MINIMAL
1088		config LV_USE_KEYBOARD
1089			bool "Keyboard"
1090			default y if !LV_CONF_MINIMAL
1091		config LV_USE_LABEL
1092			bool "Label"
1093			default y if !LV_CONF_MINIMAL
1094		config LV_LABEL_TEXT_SELECTION
1095			bool "Enable selecting text of the label"
1096			depends on LV_USE_LABEL
1097			default y
1098		config LV_LABEL_LONG_TXT_HINT
1099			bool "Store extra some info in labels (12 bytes) to speed up drawing of very long texts"
1100			depends on LV_USE_LABEL
1101			default y
1102		config LV_LABEL_WAIT_CHAR_COUNT
1103			int "The count of wait chart"
1104			depends on LV_USE_LABEL
1105			default 3
1106		config LV_USE_LED
1107			bool "LED"
1108			default y if !LV_CONF_MINIMAL
1109		config LV_USE_LINE
1110			bool "Line"
1111			default y if !LV_CONF_MINIMAL
1112		config LV_USE_LIST
1113			bool "List"
1114			default y if !LV_CONF_MINIMAL
1115		config LV_USE_LOTTIE
1116			bool "Lottie"
1117			default n
1118			depends on LV_USE_VECTOR_GRAPHIC && (LV_USE_THORVG_INTERNAL || LV_USE_THORVG_EXTERNAL)
1119			help
1120				Enable Lottie animations. Requires LV_USE_VECTOR_GRAPHIC and LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL.
1121		config LV_USE_MENU
1122			bool "Menu"
1123			default y if !LV_CONF_MINIMAL
1124		config LV_USE_MSGBOX
1125			bool "Msgbox"
1126			default y if !LV_CONF_MINIMAL
1127		config LV_USE_ROLLER
1128			bool "Roller. Requires: lv_label"
1129			imply LV_USE_LABEL
1130			default y if !LV_CONF_MINIMAL
1131		config LV_USE_SCALE
1132			bool "Scale"
1133			default y if !LV_CONF_MINIMAL
1134		config LV_USE_SLIDER
1135			bool "Slider. Requires: lv_bar"
1136			imply LV_USE_BAR
1137			default y if !LV_CONF_MINIMAL
1138		config LV_USE_SPAN
1139			bool "Span"
1140			default y if !LV_CONF_MINIMAL
1141		config LV_SPAN_SNIPPET_STACK_SIZE
1142			int "Maximum number of span descriptor"
1143			default 64
1144			depends on LV_USE_SPAN
1145		config LV_USE_SPINBOX
1146			bool "Spinbox"
1147			default y if !LV_CONF_MINIMAL
1148		config LV_USE_SPINNER
1149			bool "Spinner"
1150			default y if !LV_CONF_MINIMAL
1151		config LV_USE_SWITCH
1152			bool "Switch"
1153			default y if !LV_CONF_MINIMAL
1154		config LV_USE_TEXTAREA
1155			bool "Text area. Requires: lv_label"
1156			select LV_USE_LABEL
1157			default y if !LV_CONF_MINIMAL
1158		config LV_TEXTAREA_DEF_PWD_SHOW_TIME
1159			int "Text area def. pwd show time [ms]"
1160			default 1500
1161			depends on LV_USE_TEXTAREA
1162		config LV_USE_TABLE
1163			bool "Table"
1164			default y if !LV_CONF_MINIMAL
1165		config LV_USE_TABVIEW
1166			bool "Tabview"
1167			default y if !LV_CONF_MINIMAL
1168		config LV_USE_TILEVIEW
1169			bool "Tileview"
1170			default y if !LV_CONF_MINIMAL
1171		config LV_USE_WIN
1172			bool "Win"
1173			default y if !LV_CONF_MINIMAL
1174	endmenu
1175
1176	menu "Themes"
1177		config LV_USE_THEME_DEFAULT
1178			bool "A simple, impressive and very complete theme"
1179			default y if !LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
1180		config LV_THEME_DEFAULT_DARK
1181			bool "Yes to set dark mode, No to set light mode"
1182			depends on LV_USE_THEME_DEFAULT
1183		config LV_THEME_DEFAULT_GROW
1184			bool "Enable grow on press"
1185			default y
1186			depends on LV_USE_THEME_DEFAULT
1187		config LV_THEME_DEFAULT_TRANSITION_TIME
1188			int "Default transition time in [ms]"
1189			default 80
1190			depends on LV_USE_THEME_DEFAULT
1191		config LV_USE_THEME_SIMPLE
1192			bool "A very simple theme that is a good starting point for a custom theme"
1193			default y if !LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
1194		config LV_USE_THEME_MONO
1195			bool "Monochrome theme, suitable for some E-paper & dot matrix displays"
1196			default y if LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
1197	endmenu
1198
1199	menu "Layouts"
1200		config LV_USE_FLEX
1201			bool "A layout similar to Flexbox in CSS"
1202			default y if !LV_CONF_MINIMAL
1203		config LV_USE_GRID
1204			bool "A layout similar to Grid in CSS"
1205			default y if !LV_CONF_MINIMAL
1206	endmenu
1207
1208	menu "3rd Party Libraries"
1209		config LV_FS_DEFAULT_DRIVER_LETTER
1210			int "Default drive letter (e.g. 65 for 'A')"
1211			default 0
1212			help
1213				Setting a default drive letter allows skipping the driver prefix in filepaths
1214
1215		config LV_USE_FS_STDIO
1216			bool "File system on top of stdio API"
1217		config LV_FS_STDIO_LETTER
1218			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1219			default 0
1220			depends on LV_USE_FS_STDIO
1221		config LV_FS_STDIO_PATH
1222			string "Set the working directory"
1223			depends on LV_USE_FS_STDIO
1224		config LV_FS_STDIO_CACHE_SIZE
1225			int ">0 to cache this number of bytes in lv_fs_read()"
1226			default 0
1227			depends on LV_USE_FS_STDIO
1228
1229		config LV_USE_FS_POSIX
1230			bool "File system on top of posix API"
1231		config LV_FS_POSIX_LETTER
1232			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1233			default 0
1234			depends on LV_USE_FS_POSIX
1235		config LV_FS_POSIX_PATH
1236			string "Set the working directory"
1237			depends on LV_USE_FS_POSIX
1238		config LV_FS_POSIX_CACHE_SIZE
1239			int ">0 to cache this number of bytes in lv_fs_read()"
1240			default 0
1241			depends on LV_USE_FS_POSIX
1242
1243		config LV_USE_FS_WIN32
1244			bool "File system on top of Win32 API"
1245		config LV_FS_WIN32_LETTER
1246			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1247			default 0
1248			depends on LV_USE_FS_WIN32
1249		config LV_FS_WIN32_PATH
1250			string "Set the working directory"
1251			depends on LV_USE_FS_WIN32
1252		config LV_FS_WIN32_CACHE_SIZE
1253			int ">0 to cache this number of bytes in lv_fs_read()"
1254			default 0
1255			depends on LV_USE_FS_WIN32
1256
1257		config LV_USE_FS_FATFS
1258			bool "File system on top of FatFS"
1259		config LV_FS_FATFS_LETTER
1260			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1261			default 0
1262			depends on LV_USE_FS_FATFS
1263		config LV_FS_FATFS_PATH
1264			string "Set the working directory"
1265			depends on LV_USE_FS_FATFS
1266		config LV_FS_FATFS_CACHE_SIZE
1267			int ">0 to cache this number of bytes in lv_fs_read()"
1268			default 0
1269			depends on LV_USE_FS_FATFS
1270
1271		config LV_USE_FS_MEMFS
1272			bool "File system on top of memory-mapped API"
1273		config LV_FS_MEMFS_LETTER
1274			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1275			default 0
1276			depends on LV_USE_FS_MEMFS
1277
1278		config LV_USE_FS_LITTLEFS
1279			bool "File system on top of littlefs API"
1280		config LV_FS_LITTLEFS_LETTER
1281			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1282			default 0
1283			depends on LV_USE_FS_LITTLEFS
1284		config LV_FS_LITTLEFS_PATH
1285			string "Set the working directory"
1286			depends on LV_USE_FS_LITTLEFS
1287
1288		config LV_USE_FS_ARDUINO_ESP_LITTLEFS
1289			bool "File system on top of Arduino ESP littlefs API"
1290		config LV_FS_ARDUINO_ESP_LITTLEFS_LETTER
1291			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1292			default 0
1293			depends on LV_USE_FS_ARDUINO_ESP_LITTLEFS
1294		config LV_FS_ARDUINO_ESP_LITTLEFS_PATH
1295			string "Set the working directory"
1296			depends on LV_USE_FS_ARDUINO_ESP_LITTLEFS
1297
1298		config LV_USE_FS_ARDUINO_SD
1299			bool "File system on top of Arduino SD API"
1300		config LV_FS_ARDUINO_SD_LETTER
1301			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1302			default 0
1303			depends on LV_USE_FS_ARDUINO_SD
1304		config LV_FS_ARDUINO_SD_PATH
1305			string "Set the working directory"
1306			depends on LV_USE_FS_ARDUINO_SD
1307
1308		config LV_USE_FS_UEFI
1309			bool "File system on top of the UEFI EFI_SIMPLE_FILE_SYSTEM_PROTOCOL"
1310		config LV_USE_FS_UEFI_LETTER
1311			int "Set an upper cased letter on which the drive will accessible (e.g. 65 for 'A')"
1312			default 0
1313			depends on LV_USE_FS_UEFI
1314
1315		config LV_USE_LODEPNG
1316			bool "PNG decoder library"
1317
1318		config LV_USE_LIBPNG
1319			bool "PNG decoder(libpng) library"
1320
1321		config LV_USE_BMP
1322			bool "BMP decoder library"
1323
1324		config LV_USE_TJPGD
1325			bool "TJPGD decoder library"
1326
1327		config LV_USE_LIBJPEG_TURBO
1328			bool "libjpeg-turbo decoder library"
1329
1330		config LV_USE_GIF
1331			bool "GIF decoder library"
1332
1333		config LV_GIF_CACHE_DECODE_DATA
1334			bool "Use extra 16KB RAM to cache decoded data to accelerate"
1335			depends on LV_USE_GIF
1336
1337		config LV_BIN_DECODER_RAM_LOAD
1338			bool "Decode whole image to RAM for bin decoder"
1339			default n
1340
1341		config LV_USE_SVG
1342			bool "SVG library"
1343			depends on LV_USE_VECTOR_GRAPHIC
1344
1345		config LV_USE_SVG_ANIMATION
1346			bool "SVG animation"
1347			depends on LV_USE_SVG
1348
1349		config LV_USE_RLE
1350			bool "LVGL's version of RLE compression method"
1351
1352		config LV_USE_QRCODE
1353			bool "QR code library"
1354
1355		config LV_USE_BARCODE
1356			bool "Barcode library"
1357
1358		config LV_USE_FREETYPE
1359			bool "FreeType library"
1360		config LV_FREETYPE_USE_LVGL_PORT
1361			bool "Let FreeType to use LVGL memory and file porting"
1362			default n
1363			depends on LV_USE_FREETYPE
1364		config LV_FREETYPE_CACHE_FT_GLYPH_CNT
1365			int "The maximum number of Glyph in count"
1366			default 256
1367			depends on LV_USE_FREETYPE
1368
1369		config LV_USE_TINY_TTF
1370			bool "Enable Tiny TTF decoder"
1371			default n
1372		config LV_TINY_TTF_FILE_SUPPORT
1373			bool "Enable loading Tiny TTF data from files"
1374			default n
1375			depends on LV_USE_TINY_TTF
1376		config LV_TINY_TTF_CACHE_GLYPH_CNT
1377			bool "Tiny ttf cache entries count"
1378			default 256
1379			depends on LV_USE_TINY_TTF
1380
1381		config LV_USE_RLOTTIE
1382			bool "Lottie library"
1383
1384		config LV_USE_THORVG
1385			bool "ThorVG library"
1386			choice
1387				prompt "Use ThorVG config"
1388				depends on LV_USE_THORVG
1389				default LV_USE_THORVG_INTERNAL
1390				config LV_USE_THORVG_INTERNAL
1391					bool "Use ThorVG internal"
1392				config LV_USE_THORVG_EXTERNAL
1393					bool "Use ThorVG external"
1394			endchoice
1395
1396		config LV_USE_LZ4
1397			bool "Enable LZ4 compress/decompress lib"
1398			choice
1399				prompt "Choose lvgl built-in LZ4 lib or external lib"
1400				depends on LV_USE_LZ4
1401				default LV_USE_LZ4_INTERNAL
1402				config LV_USE_LZ4_INTERNAL
1403					bool "Use lvgl built-in LZ4 lib"
1404				config LV_USE_LZ4_EXTERNAL
1405					bool "Use external LZ4 library"
1406			endchoice
1407
1408		config LV_USE_FFMPEG
1409			bool "FFmpeg library"
1410		config LV_FFMPEG_DUMP_FORMAT
1411			bool "Dump format"
1412			depends on LV_USE_FFMPEG
1413			default n
1414		config LV_FFMPEG_PLAYER_USE_LV_FS
1415			bool "Use lvgl file path in FFmpeg Player widget"
1416			depends on LV_USE_FFMPEG
1417			default n
1418			help
1419				You won't be able to open URLs after enabling this feature.
1420				Note that FFmpeg image decoder will always use lvgl file system.
1421	endmenu
1422
1423	menu "Others"
1424		config LV_USE_SNAPSHOT
1425			bool "Enable API to take snapshot"
1426			default n if !LV_CONF_MINIMAL
1427
1428		config LV_USE_SYSMON
1429			bool "Enable system monitor component"
1430			default n
1431
1432		config LV_USE_PERF_MONITOR
1433			bool "Show CPU usage and FPS count"
1434			depends on LV_USE_SYSMON
1435
1436		choice
1437			prompt "Performance monitor position"
1438			depends on LV_USE_PERF_MONITOR
1439			default LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT
1440
1441			config LV_PERF_MONITOR_ALIGN_TOP_LEFT
1442				bool "Top left"
1443			config LV_PERF_MONITOR_ALIGN_TOP_MID
1444				bool "Top middle"
1445			config LV_PERF_MONITOR_ALIGN_TOP_RIGHT
1446				bool "Top right"
1447			config LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT
1448				bool "Bottom left"
1449			config LV_PERF_MONITOR_ALIGN_BOTTOM_MID
1450				bool "Bottom middle"
1451			config LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT
1452				bool "Bottom right"
1453			config LV_PERF_MONITOR_ALIGN_LEFT_MID
1454				bool "Left middle"
1455			config LV_PERF_MONITOR_ALIGN_RIGHT_MID
1456				bool "Right middle"
1457			config LV_PERF_MONITOR_ALIGN_CENTER
1458				bool "Center"
1459		endchoice
1460
1461		config LV_USE_PERF_MONITOR_LOG_MODE
1462			bool "Prints performance data using log"
1463			depends on LV_USE_PERF_MONITOR
1464			default n
1465
1466		config LV_USE_MEM_MONITOR
1467			bool "Show the used memory and the memory fragmentation"
1468			default n
1469			depends on LV_USE_BUILTIN_MALLOC && LV_USE_SYSMON
1470
1471		choice
1472			prompt "Memory monitor position"
1473			depends on LV_USE_MEM_MONITOR
1474			default LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT
1475
1476			config LV_MEM_MONITOR_ALIGN_TOP_LEFT
1477				bool "Top left"
1478			config LV_MEM_MONITOR_ALIGN_TOP_MID
1479				bool "Top middle"
1480			config LV_MEM_MONITOR_ALIGN_TOP_RIGHT
1481				bool "Top right"
1482			config LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT
1483				bool "Bottom left"
1484			config LV_MEM_MONITOR_ALIGN_BOTTOM_MID
1485				bool "Bottom middle"
1486			config LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT
1487				bool "Bottom right"
1488			config LV_MEM_MONITOR_ALIGN_LEFT_MID
1489				bool "Left middle"
1490			config LV_MEM_MONITOR_ALIGN_RIGHT_MID
1491				bool "Right middle"
1492			config LV_MEM_MONITOR_ALIGN_CENTER
1493				bool "Center"
1494		endchoice
1495
1496		menuconfig LV_USE_PROFILER
1497			bool "Runtime performance profiler"
1498
1499		if LV_USE_PROFILER
1500
1501		config LV_USE_PROFILER_BUILTIN
1502			bool "Enable the built-in profiler"
1503			default y
1504		config LV_PROFILER_BUILTIN_BUF_SIZE
1505			int "Default profiler trace buffer size in bytes"
1506			depends on LV_USE_PROFILER_BUILTIN
1507			default 16384
1508		config LV_PROFILER_INCLUDE
1509			string "Header to include for the profiler"
1510			default "lvgl/src/misc/lv_profiler_builtin.h"
1511
1512		config LV_PROFILER_LAYOUT
1513			bool "Enable layout profiler"
1514			default y
1515
1516		config LV_PROFILER_REFR
1517			bool "Enable disp refr profiler"
1518			default y
1519
1520		config LV_PROFILER_DRAW
1521			bool "Enable draw profiler"
1522			default y
1523
1524		config LV_PROFILER_INDEV
1525			bool "Enable indev profiler"
1526			default y
1527
1528		config LV_PROFILER_DECODER
1529			bool "Enable decoder profiler"
1530			default y
1531
1532		config LV_PROFILER_FONT
1533			bool "Enable font profiler"
1534			default y
1535
1536		config LV_PROFILER_FS
1537			bool "Enable fs profiler"
1538			default y
1539
1540		config LV_PROFILER_STYLE
1541			bool "Enable style profiler"
1542			default n
1543
1544		config LV_PROFILER_TIMER
1545			bool "Enable timer profiler"
1546			default y
1547
1548		config LV_PROFILER_CACHE
1549			bool "Enable cache profiler"
1550			default y
1551
1552		config LV_PROFILER_EVENT
1553			bool "Enable event profiler"
1554			default y
1555
1556		endif # LV_USE_PROFILER
1557
1558		config LV_USE_MONKEY
1559			bool "Enable Monkey test"
1560			default n
1561
1562		config LV_USE_GRIDNAV
1563			bool "Enable grid navigation"
1564			default n
1565
1566		config LV_USE_FRAGMENT
1567			bool "Enable lv_obj fragment"
1568			default n
1569
1570		config LV_USE_IMGFONT
1571			bool "Support using images as font in label or span widgets"
1572			default n
1573
1574		config LV_USE_OBSERVER
1575			bool "Observer"
1576			default y
1577
1578		config LV_USE_IME_PINYIN
1579			bool "Enable Pinyin input method"
1580			default n
1581		config LV_IME_PINYIN_USE_K9_MODE
1582			bool "Enable Pinyin input method 9 key input mode"
1583			depends on LV_USE_IME_PINYIN
1584			default n
1585		config LV_IME_PINYIN_K9_CAND_TEXT_NUM
1586			int "Maximum number of candidate panels for 9-key input mode"
1587			depends on LV_IME_PINYIN_USE_K9_MODE
1588			default 3
1589		config LV_IME_PINYIN_USE_DEFAULT_DICT
1590			bool "Use built-in Thesaurus"
1591			depends on LV_USE_IME_PINYIN
1592			default y
1593			help
1594				If you do not use the default thesaurus, be sure to use lv_ime_pinyin after setting the thesaurus
1595		config LV_IME_PINYIN_CAND_TEXT_NUM
1596			int "Maximum number of candidate panels"
1597			depends on LV_USE_IME_PINYIN
1598			default 6
1599			help
1600				Set the maximum number of candidate panels that can be displayed.
1601				This needs to be adjusted according to the size of the screen.
1602
1603		config LV_USE_FILE_EXPLORER
1604			bool "Enable file explorer"
1605			default n
1606		config LV_FILE_EXPLORER_PATH_MAX_LEN
1607			int "Maximum length of path"
1608			depends on LV_USE_FILE_EXPLORER
1609			default 128
1610		config LV_FILE_EXPLORER_QUICK_ACCESS
1611			bool "Enable quick access bar"
1612			depends on LV_USE_FILE_EXPLORER
1613			default y
1614			help
1615				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.
1616
1617		config LV_USE_FONT_MANAGER
1618			bool "Enable freetype font manager"
1619			depends on LV_USE_FREETYPE
1620			default n
1621		config LV_FONT_MANAGER_NAME_MAX_LEN
1622			int "Font manager name max length"
1623			depends on LV_USE_FONT_MANAGER
1624			default 32
1625		config LV_USE_XML
1626			bool "Enable loading XML UIs runtime"
1627		config LVGL_VERSION_MAJOR
1628			int
1629			default 9 # LVGL_VERSION_MAJOR
1630		config LVGL_VERSION_MINOR
1631			int
1632			default 3 # LVGL_VERSION_MINOR
1633		config LVGL_VERSION_PATCH
1634			int
1635			default 0 # LVGL_VERSION_PATCH
1636	endmenu
1637
1638	menu "Devices"
1639		config LV_USE_SDL
1640			bool "Use SDL to open window on PC and handle mouse and keyboard"
1641			default n
1642		config LV_SDL_INCLUDE_PATH
1643			string "SDL include path"
1644			depends on LV_USE_SDL
1645			default "SDL2/SDL.h"
1646
1647		choice
1648			prompt "SDL rendering mode"
1649			depends on LV_USE_SDL
1650			default LV_SDL_RENDER_MODE_DIRECT
1651			help
1652				LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance
1653
1654			config LV_SDL_RENDER_MODE_PARTIAL
1655				bool "Use the buffer(s) to render the screen is smaller parts"
1656
1657			config LV_SDL_RENDER_MODE_DIRECT
1658				bool "Only the changed areas will be updated with 2 screen sized buffers"
1659
1660			config LV_SDL_RENDER_MODE_FULL
1661				bool "Always redraw the whole screen even if only one pixel has been changed with 2 screen sized buffers"
1662		endchoice
1663
1664		choice
1665			prompt "SDL buffer size"
1666			depends on LV_USE_SDL
1667			default LV_SDL_SINGLE_BUFFER
1668
1669			config LV_SDL_SINGLE_BUFFER
1670				bool "One screen-sized buffer"
1671
1672			config LV_SDL_DOUBLE_BUFFER
1673				bool "Two screen-sized buffer"
1674				depends on !LV_SDL_RENDER_MODE_PARTIAL
1675
1676			config LV_SDL_CUSTOM_BUFFER
1677				bool "Custom-sized buffer"
1678				depends on LV_SDL_RENDER_MODE_PARTIAL
1679		endchoice
1680
1681		config LV_SDL_BUFFER_COUNT
1682			int
1683			depends on LV_USE_SDL
1684			default 0 if LV_SDL_CUSTOM_BUFFER
1685			default 1 if LV_SDL_SINGLE_BUFFER
1686			default 2 if LV_SDL_DOUBLE_BUFFER
1687
1688		config LV_SDL_ACCELERATED
1689			bool "Use hardware acceleration"
1690			depends on LV_USE_SDL
1691			default y
1692
1693		config LV_SDL_FULLSCREEN
1694			bool "SDL fullscreen"
1695			depends on LV_USE_SDL
1696			default n
1697
1698		config LV_SDL_DIRECT_EXIT
1699			bool "Exit the application when all SDL windows are closed"
1700			depends on LV_USE_SDL
1701			default y
1702
1703		choice
1704			prompt "SDL mousewheel mode"
1705			depends on LV_USE_SDL
1706			default LV_SDL_MOUSEWHEEL_MODE_ENCODER
1707
1708			config LV_SDL_MOUSEWHEEL_MODE_ENCODER
1709				bool "The mousewheel emulates an encoder input device"
1710
1711			config LV_SDL_MOUSEWHEEL_MODE_CROWN
1712				bool "The mousewheel emulates a smart watch crown"
1713		endchoice
1714
1715		config LV_SDL_MOUSEWHEEL_MODE
1716			int
1717			depends on LV_USE_SDL
1718			default 0 if LV_SDL_MOUSEWHEEL_MODE_ENCODER
1719			default 1 if LV_SDL_MOUSEWHEEL_MODE_CROWN
1720
1721		config LV_USE_X11
1722			bool "Use X11 window manager to open window on Linux PC and handle mouse and keyboard"
1723			default n
1724		config LV_X11_DOUBLE_BUFFER
1725			bool "Use double buffers for lvgl rendering"
1726			depends on LV_USE_X11
1727			default y
1728		config LV_X11_DIRECT_EXIT
1729			bool "Exit the application when all X11 windows have been closed"
1730			depends on LV_USE_X11
1731			default y
1732		choice
1733			prompt "X11 device render mode"
1734			depends on LV_USE_X11
1735			default LV_X11_RENDER_MODE_PARTIAL
1736
1737			config LV_X11_RENDER_MODE_PARTIAL
1738				bool "Partial render mode (preferred)"
1739				help
1740					Use the buffer(s) to render the screen is smaller parts. This way the buffers can be smaller then the display to save RAM.
1741					Appr. 1/10 screen size buffer(s) are used.
1742			config LV_X11_RENDER_MODE_DIRECT
1743				bool "Direct render mode"
1744				help
1745					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.
1746					With 2 buffers the buffers' content are kept in sync automatically and in flush_cb only address change is required.
1747			config LV_X11_RENDER_MODE_FULL
1748				bool "Full render mode"
1749				help
1750					Always redraw the whole screen even if only one pixel has been changed.
1751					With 2 buffers in flush_cb only and address change is required.
1752		endchoice
1753
1754		config LV_USE_WAYLAND
1755			bool "Use the wayland client to open a window and handle inputs on Linux or BSD"
1756			default n
1757		config LV_WAYLAND_WINDOW_DECORATIONS
1758			bool "Draw client side window decorations, only necessary on Mutter (GNOME)"
1759			depends on LV_USE_WAYLAND
1760			default n
1761		config LV_WAYLAND_WL_SHELL
1762			bool "Support the legacy wl_shell instead of the default XDG Shell protocol"
1763			depends on LV_USE_WAYLAND
1764			default n
1765
1766		config LV_USE_LINUX_FBDEV
1767			bool "Use Linux framebuffer device"
1768			default n
1769		config LV_LINUX_FBDEV_BSD
1770			bool "Use BSD flavored framebuffer device"
1771			depends on LV_USE_LINUX_FBDEV
1772			default n
1773
1774		choice
1775			prompt "Framebuffer device render mode"
1776			depends on LV_USE_LINUX_FBDEV
1777			default LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
1778
1779			config LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
1780				bool "Partial mode"
1781				help
1782					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.
1783
1784			config LV_LINUX_FBDEV_RENDER_MODE_DIRECT
1785				bool "Direct mode"
1786				help
1787					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.
1788
1789			config LV_LINUX_FBDEV_RENDER_MODE_FULL
1790				bool "Full mode"
1791				help
1792					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.
1793
1794		endchoice
1795
1796		choice
1797			prompt "Framebuffer size"
1798			depends on LV_USE_LINUX_FBDEV
1799			default LV_LINUX_FBDEV_SINGLE_BUFFER
1800
1801			config LV_LINUX_FBDEV_SINGLE_BUFFER
1802				bool "One screen-sized buffer"
1803
1804			config LV_LINUX_FBDEV_DOUBLE_BUFFER
1805				bool "Two screen-sized buffer"
1806				depends on !LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
1807
1808			config LV_LINUX_FBDEV_CUSTOM_BUFFER
1809				bool "Custom-sized buffer"
1810				depends on LV_LINUX_FBDEV_RENDER_MODE_PARTIAL
1811
1812		endchoice
1813
1814		config LV_LINUX_FBDEV_BUFFER_COUNT
1815			int
1816			depends on LV_USE_LINUX_FBDEV
1817			default 0 if LV_LINUX_FBDEV_CUSTOM_BUFFER
1818			default 1 if LV_LINUX_FBDEV_SINGLE_BUFFER
1819			default 2 if LV_LINUX_FBDEV_DOUBLE_BUFFER
1820
1821		config LV_LINUX_FBDEV_BUFFER_SIZE
1822			int "Custom partial buffer size (in number of rows)"
1823			depends on LV_USE_LINUX_FBDEV && LV_LINUX_FBDEV_CUSTOM_BUFFER
1824			default 60
1825
1826		config LV_USE_NUTTX
1827			bool "Use Nuttx to open window and handle touchscreen"
1828			default n
1829
1830		config LV_USE_NUTTX_INDEPENDENT_IMAGE_HEAP
1831			bool "Use independent image heap"
1832			depends on LV_USE_NUTTX
1833			default n
1834
1835		config LV_USE_NUTTX_LIBUV
1836			bool "Use uv loop to replace default timer loop and other fb/indev timers"
1837			depends on LV_USE_NUTTX
1838			default n
1839
1840		config LV_USE_NUTTX_CUSTOM_INIT
1841			bool "Use Custom Nuttx init API to open window and handle touchscreen"
1842			depends on LV_USE_NUTTX
1843			default n
1844
1845		config LV_USE_NUTTX_LCD
1846			bool "Use NuttX LCD device"
1847			depends on LV_USE_NUTTX
1848			default n
1849
1850		choice
1851			prompt "NuttX LCD buffer size"
1852			depends on LV_USE_NUTTX_LCD
1853			default LV_NUTTX_LCD_SINGLE_BUFFER
1854
1855			config LV_NUTTX_LCD_SINGLE_BUFFER
1856				bool "One screen-sized buffer"
1857
1858			config LV_NUTTX_LCD_DOUBLE_BUFFER
1859				bool "Two screen-sized buffer"
1860
1861			config LV_NUTTX_LCD_CUSTOM_BUFFER
1862				bool "Custom-sized buffer"
1863
1864		endchoice
1865
1866		config LV_NUTTX_LCD_BUFFER_COUNT
1867			int
1868			depends on LV_USE_NUTTX_LCD
1869			default 0 if LV_NUTTX_LCD_CUSTOM_BUFFER
1870			default 1 if LV_NUTTX_LCD_SINGLE_BUFFER
1871			default 2 if LV_NUTTX_LCD_DOUBLE_BUFFER
1872
1873		config LV_NUTTX_LCD_BUFFER_SIZE
1874			int "Custom partial buffer size (in number of rows)"
1875			depends on LV_USE_NUTTX_LCD && LV_NUTTX_LCD_CUSTOM_BUFFER
1876			default 60
1877
1878		config LV_USE_NUTTX_TOUCHSCREEN
1879			bool "Use NuttX touchscreen driver"
1880			depends on LV_USE_NUTTX
1881			default n
1882
1883		config LV_NUTTX_TOUCHSCREEN_CURSOR_SIZE
1884			int "Touchscreen cursor size in pixels"
1885			depends on LV_USE_NUTTX_TOUCHSCREEN
1886			default 0
1887			help
1888				Set to 0 to disable cursor, or set to a value greater than 0 to set the cursor size in pixels.
1889
1890		config LV_USE_LINUX_DRM
1891			bool "Use Linux DRM device"
1892			default n
1893
1894		config LV_USE_TFT_ESPI
1895			bool "Use TFT_eSPI driver"
1896			default n
1897
1898		config LV_USE_EVDEV
1899			bool "Use evdev input driver"
1900			default n
1901
1902		config LV_USE_LIBINPUT
1903			bool "Use libinput input driver"
1904			default n
1905
1906		config LV_LIBINPUT_BSD
1907			bool "Use the BSD variant of the libinput input driver"
1908			depends on LV_USE_LIBINPUT
1909			default n
1910
1911		config LV_LIBINPUT_XKB
1912			bool "Enable full keyboard support via XKB"
1913			depends on LV_USE_LIBINPUT
1914			default n
1915
1916		config LV_USE_ST7735
1917			bool "Use ST7735 LCD driver"
1918			default n
1919
1920		config LV_USE_ST7789
1921			bool "Use ST7789 LCD driver"
1922			default n
1923
1924		config LV_USE_ST7796
1925			bool "Use ST7796 LCD driver"
1926			default n
1927
1928		config LV_USE_ILI9341
1929			bool "Use ILI9341 LCD driver"
1930			default n
1931
1932		config LV_USE_GENERIC_MIPI
1933			bool "Generic MIPI driver"
1934			default y if LV_USE_ST7735 || LV_USE_ST7789 || LV_USE_ST7796 || LV_USE_ILI9341
1935
1936		config LV_USE_RENESAS_GLCDC
1937			bool "Use Renesas GLCDC driver"
1938			default n
1939
1940		config LV_USE_ST_LTDC
1941			bool "Driver for ST LTDC"
1942			default n
1943
1944		config LV_ST_LTDC_USE_DMA2D_FLUSH
1945			bool "Only used for created partial mode LTDC displays"
1946			default n
1947			depends on LV_USE_ST_LTDC && !LV_USE_DRAW_DMA2D
1948
1949		config LV_USE_WINDOWS
1950			bool "Use LVGL Windows backend"
1951			depends on LV_OS_WINDOWS
1952			default n
1953
1954		config LV_USE_UEFI
1955			bool "Use LVGL UEFI backend"
1956			default n
1957
1958		config LV_USE_UEFI_INCLUDE
1959			string "Header that hides the actual framework (EDK2, gnu-efi, ...)"
1960			depends on LV_USE_UEFI
1961			default "myefi.h"
1962
1963		config LV_UEFI_USE_MEMORY_SERVICES
1964			bool "Use the memory services from the boot services table"
1965			depends on LV_USE_UEFI
1966			default n
1967
1968		config LV_USE_OPENGLES
1969			bool "Use GLFW and OpenGL to open window on PC and handle mouse and keyboard"
1970			default n
1971
1972		config LV_USE_OPENGLES_DEBUG
1973			bool "Enable debug mode for OpenGL"
1974			depends on LV_USE_OPENGLES
1975			default n
1976
1977		config LV_USE_QNX
1978			bool "Use a QNX Screen window as a display"
1979			default n
1980
1981		config LV_QNX_BUF_COUNT
1982			int
1983			depends on LV_USE_QNX
1984			default 1
1985	endmenu
1986
1987	menu "Examples"
1988		config LV_BUILD_EXAMPLES
1989			bool "Enable the examples to be built"
1990			default y if !LV_CONF_MINIMAL
1991	endmenu
1992
1993	menu "Demos"
1994		config LV_USE_DEMO_WIDGETS
1995			bool "Show some widget"
1996			default n
1997
1998		config LV_USE_DEMO_KEYPAD_AND_ENCODER
1999			bool "Demonstrate the usage of encoder and keyboard"
2000			default n
2001
2002		config LV_USE_DEMO_BENCHMARK
2003			bool "Benchmark your system"
2004			default n
2005			select LV_FONT_MONTSERRAT_14
2006			select LV_FONT_MONTSERRAT_20
2007			select LV_FONT_MONTSERRAT_24
2008			select LV_FONT_MONTSERRAT_26
2009			select LV_USE_DEMO_WIDGETS
2010		config LV_USE_DEMO_RENDER
2011			bool "Render test for each primitives. Requires at least 480x272 display"
2012			default n
2013
2014		config LV_USE_DEMO_SCROLL
2015			bool "Scroll settings test for LVGL"
2016			default n
2017
2018		config LV_USE_DEMO_STRESS
2019			bool "Stress test for LVGL"
2020			default n
2021
2022		config LV_USE_DEMO_TRANSFORM
2023			bool "Transform test for LVGL"
2024			default n
2025			depends on LV_FONT_MONTSERRAT_18
2026
2027		config LV_USE_DEMO_MUSIC
2028			bool "Music player demo"
2029			default n
2030		config LV_DEMO_MUSIC_SQUARE
2031			bool "Enable Square"
2032			depends on LV_USE_DEMO_MUSIC
2033			default n
2034		config LV_DEMO_MUSIC_LANDSCAPE
2035			bool "Enable Landscape"
2036			depends on LV_USE_DEMO_MUSIC
2037			default n
2038		config LV_DEMO_MUSIC_ROUND
2039			bool "Enable Round"
2040			depends on LV_USE_DEMO_MUSIC
2041			default n
2042		config LV_DEMO_MUSIC_LARGE
2043			bool "Enable Large"
2044			depends on LV_USE_DEMO_MUSIC
2045			default n
2046		config LV_DEMO_MUSIC_AUTO_PLAY
2047			bool "Enable Auto play"
2048			depends on LV_USE_DEMO_MUSIC
2049			default n
2050
2051		config LV_USE_DEMO_FLEX_LAYOUT
2052			bool "Flex layout previewer"
2053			default n
2054		config LV_USE_DEMO_MULTILANG
2055			bool "multi-language demo"
2056			default n
2057		config LV_USE_DEMO_VECTOR_GRAPHIC
2058			bool "vector graphic demo"
2059			default n
2060			depends on LV_USE_VECTOR_GRAPHIC
2061		config LV_USE_DEMO_SMARTWATCH
2062			bool "Smartwatch demo"
2063		config LV_USE_DEMO_EBIKE
2064			bool "Ebike demo"
2065		config LV_USE_DEMO_HIGH_RES
2066			bool "High resolution demo"
2067	endmenu
2068
2069endmenu
2070