1# Kconfig file for LVGL v8.4
2
3if LVGL
4menu "LVGL configuration"
5
6    # Define CONFIG_LV_CONF_SKIP so we can use LVGL
7    # without lv_conf.h file, the lv_conf_internal.h and
8    # lv_conf_kconfig.h files are used instead.
9    config LV_CONF_SKIP
10        bool "Check this to not use lv_conf.h"
11        default n
12
13    config LV_CONF_MINIMAL
14        bool "LVGL minimal configuration."
15
16    menu "Color settings"
17        choice LV_COLOR_DEPTH
18            prompt "Color depth."
19            default LV_COLOR_DEPTH_16
20            help
21                Color depth to be used.
22
23            config LV_COLOR_DEPTH_32
24                bool "32: ARGB8888"
25            config LV_COLOR_DEPTH_16
26                bool "16: RGB565"
27            config LV_COLOR_DEPTH_8
28                bool "8: RGB232"
29            config LV_COLOR_DEPTH_1
30                bool "1: 1 byte per pixel"
31        endchoice
32
33        config LV_COLOR_DEPTH
34            int
35            default 1 if LV_COLOR_DEPTH_1
36            default 8 if LV_COLOR_DEPTH_8
37            default 16 if LV_COLOR_DEPTH_16
38            default 32 if LV_COLOR_DEPTH_32
39
40        config LV_COLOR_16_SWAP
41            bool "Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)."
42            depends on LV_COLOR_DEPTH_16
43
44        config LV_COLOR_SCREEN_TRANSP
45            bool "Enable more complex drawing routines to manage screens transparency."
46            help
47                Can be used if the UI is above another layer, e.g. an OSD menu or video player.
48                The screen's `bg_opa` should be set to non LV_OPA_COVER value
49
50        config LV_COLOR_MIX_ROUND_OFS
51            int "Adjust color mix functions rounding"
52            default 128 if !LV_COLOR_DEPTH_32
53            default 0 if LV_COLOR_DEPTH_32
54            range 0 254
55            help
56                0: no adjustment, get the integer part of the result (round down)
57                64: round up from x.75
58                128: round up from half
59                192: round up from x.25
60                254: round up
61
62        config LV_COLOR_CHROMA_KEY_HEX
63            hex "Images pixels with this color will not be drawn (if they are chroma keyed)."
64            range 0x000000 0xFFFFFF
65            default 0x00FF00
66            help
67                See misc/lv_color.h for some color values examples.
68    endmenu
69
70    menu "Memory settings"
71        config LV_MEM_CUSTOM
72            bool "If true use custom malloc/free, otherwise use the built-in `lv_mem_alloc()` and `lv_mem_free()`"
73
74        config LV_MEM_SIZE_KILOBYTES
75            int "Size of the memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
76            range 2 128
77            default 32
78            depends on !LV_MEM_CUSTOM
79
80        config LV_MEM_ADDR
81            hex "Address for the memory pool instead of allocating it as a normal array"
82            default 0x0
83            depends on !LV_MEM_CUSTOM
84
85        config LV_MEM_CUSTOM_INCLUDE
86            string "Header to include for the custom memory function"
87            default "stdlib.h"
88            depends on LV_MEM_CUSTOM
89
90        config LV_MEM_BUF_MAX_NUM
91            int "Number of the memory buffer"
92            default 16
93            help
94                Number of the intermediate memory buffer used during rendering and other
95                internal processing mechanisms.  You will see an error log message if
96                there wasn't enough buffers.
97
98        config LV_MEMCPY_MEMSET_STD
99            bool "Use the standard memcpy and memset instead of LVGL's own functions"
100    endmenu
101
102    menu "HAL Settings"
103        config LV_DISP_DEF_REFR_PERIOD
104            int "Default display refresh period (ms)."
105            default 30
106            help
107                Can be changed in the display driver (`lv_disp_drv_t`).
108
109        config LV_INDEV_DEF_READ_PERIOD
110            int "Input device read period [ms]."
111            default 30
112
113        config LV_TICK_CUSTOM
114            bool "Use a custom tick source"
115
116        config LV_TICK_CUSTOM_INCLUDE
117            string "Header for the system time function"
118            default "Arduino.h"
119            depends on LV_TICK_CUSTOM
120
121        config LV_DPI_DEF
122            int "Default Dots Per Inch (in px)."
123            default 130
124            help
125                Used to initialize default sizes such as widgets sized, style paddings.
126                (Not so important, you can adjust it to modify default sizes and spaces)
127    endmenu
128
129    menu "Feature configuration"
130
131        menu "Drawing"
132            config LV_DRAW_COMPLEX
133                bool "Enable complex draw engine"
134                default y
135                help
136                    Required to draw shadow, gradient, rounded corners, circles, arc, skew lines,
137                    image transformations or any masks.
138
139            config LV_SHADOW_CACHE_SIZE
140                int "Allow buffering some shadow calculation"
141                depends on LV_DRAW_COMPLEX
142                default 0
143                help
144                    LV_SHADOW_CACHE_SIZE is the max shadow size to buffer, where
145                    shadow size is `shadow_width + radius`.
146                    Caching has LV_SHADOW_CACHE_SIZE^2 RAM cost.
147
148            config LV_CIRCLE_CACHE_SIZE
149                int "Set number of maximally cached circle data"
150                depends on LV_DRAW_COMPLEX
151                default 4
152                help
153                    The circumference of 1/4 circle are saved for anti-aliasing
154                    radius * 4 bytes are used per circle (the most often used
155                    radiuses are saved).
156                    Set to 0 to disable caching.
157
158            config LV_LAYER_SIMPLE_BUF_SIZE
159                int "Optimal size to buffer the widget with opacity"
160                default 24576
161                help
162                    "Simple layers" are used when a widget has `style_opa < 255`
163                    to buffer the widget into a layer and blend it as an image
164                    with the given opacity. Note that `bg_opa`, `text_opa` etc
165                    don't require buffering into layer.
166
167            config LV_IMG_CACHE_DEF_SIZE
168                int "Default image cache size. 0 to disable caching."
169                default 0
170                help
171                    If only the built-in image formats are used there is no real advantage of caching.
172                    (I.e. no new image decoder is added).
173
174                    With complex image decoders (e.g. PNG or JPG) caching can
175                    save the continuous open/decode of images.
176                    However the opened images might consume additional RAM.
177
178            config LV_GRADIENT_MAX_STOPS
179                int "Number of stops allowed per gradient."
180                default 2
181                help
182                    Increase this to allow more stops.
183                    This adds (sizeof(lv_color_t) + 1) bytes per additional stop
184
185            config LV_GRAD_CACHE_DEF_SIZE
186                int "Default gradient buffer size."
187                default 0
188                help
189                    When LVGL calculates the gradient "maps" it can save them into a cache to avoid calculating them again.
190                    LV_GRAD_CACHE_DEF_SIZE sets the size of this cache in bytes.
191                    If the cache is too small the map will be allocated only while it's required for the drawing.
192                    0 mean no caching.
193
194            config LV_DITHER_GRADIENT
195                bool "Allow dithering the gradients"
196                help
197                    Allow dithering the gradients (to achieve visual smooth color gradients on limited color depth display)
198                    LV_DITHER_GRADIENT implies allocating one or two more lines of the object's rendering surface
199                    The increase in memory consumption is (32 bits * object width) plus 24 bits * object width if using error diffusion
200
201            config LV_DITHER_ERROR_DIFFUSION
202                bool "Add support for error diffusion dithering"
203                depends on LV_DITHER_GRADIENT
204                help
205                    Error diffusion dithering gets a much better visual result, but implies more CPU consumption and memory when drawing.
206                    The increase in memory consumption is (24 bits * object's width)
207
208            config LV_DISP_ROT_MAX_BUF
209                int "Maximum buffer size to allocate for rotation"
210                default 10240
211                help
212                    Only used if software rotation is enabled in the display driver.
213        endmenu
214
215        menu "GPU"
216            config LV_USE_GPU_ARM2D
217                bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors."
218                default n
219                help
220                    Must deploy arm-2d library to your project and add include PATH for "arm_2d.h".
221
222            config LV_USE_GPU_STM32_DMA2D
223                bool "Enable STM32 DMA2D (aka Chrom Art) GPU."
224            config LV_GPU_DMA2D_CMSIS_INCLUDE
225                string "include path of CMSIS header of target processor"
226                depends on LV_USE_GPU_STM32_DMA2D
227                default ""
228                help
229                    Must be defined to include path of CMSIS header of target processor
230                    e.g. "stm32f769xx.h" or "stm32f429xx.h"
231
232            config LV_USE_GPU_RA6M3_G2D
233                bool "Enable RA6M3 G2D GPU."
234            config LV_GPU_RA6M3_G2D_INCLUDE
235                string "include path of target processor"
236                depends on LV_USE_GPU_RA6M3_G2D
237                default "hal_data.h"
238                help
239                    Must be defined to include path of target processor
240                    e.g. "hal_data.h"
241
242            config LV_USE_GPU_SWM341_DMA2D
243                bool "Enable SWM341 DMA2D GPU."
244            config LV_GPU_SWM341_DMA2D_INCLUDE
245                string "include path of CMSIS header of target processor"
246                depends on LV_USE_GPU_SWM341_DMA2D
247                default "SWM341.h"
248                help
249                    Must be defined to include path of CMSIS header of target processor
250                    e.g. "SWM341.h"
251
252            config LV_USE_GPU_NXP_PXP
253                bool "Use NXP's PXP GPU iMX RTxxx platforms."
254            config LV_USE_GPU_NXP_PXP_AUTO_INIT
255                bool "Call lv_gpu_nxp_pxp_init() automatically or manually."
256                depends on LV_USE_GPU_NXP_PXP
257                help
258                    1: Add default bare metal and FreeRTOS interrupt handling
259                    routines for PXP (lv_gpu_nxp_pxp_osa.c) and call
260                    lv_gpu_nxp_pxp_init() automatically during lv_init().
261                    Note that symbol SDK_OS_FREE_RTOS has to be defined in order
262                    to use FreeRTOS OSA, otherwise bare-metal implementation is
263                    selected.
264                    0: lv_gpu_nxp_pxp_init() has to be called manually before
265                    lv_init().
266
267            config LV_USE_GPU_NXP_VG_LITE
268                bool "Use NXP's VG-Lite GPU iMX RTxxx platforms."
269
270            config LV_USE_GPU_SDL
271                bool "Use SDL renderer API"
272                default n
273            config LV_GPU_SDL_INCLUDE_PATH
274                string "include path of SDL header"
275                depends on LV_USE_GPU_SDL
276                default "SDL2/SDL.h"
277            config LV_GPU_SDL_LRU_SIZE
278                int "Maximum buffer size to allocate for rotation"
279                depends on LV_USE_GPU_SDL
280                default 8388608
281                help
282                    Texture cache size, 8MB by default.
283        endmenu
284
285        menu "Logging"
286            config LV_USE_LOG
287                bool "Enable the log module"
288
289            choice
290                bool "Default log verbosity" if LV_USE_LOG
291                default LV_LOG_LEVEL_WARN
292                help
293                    Specify how important log should be added.
294
295                config LV_LOG_LEVEL_TRACE
296                    bool "A lot of logs to give detailed information"
297                config LV_LOG_LEVEL_INFO
298                    bool "Log important events"
299                config LV_LOG_LEVEL_WARN
300                    bool "Log if something unwanted happened but didn't cause a problem"
301                config LV_LOG_LEVEL_ERROR
302                    bool "Only critical issues, when the system may fail"
303                config LV_LOG_LEVEL_USER
304                    bool "Only logs added by the user"
305                config LV_LOG_LEVEL_NONE
306                    bool "Do not log anything"
307            endchoice
308
309            config LV_LOG_LEVEL
310                int
311                default 0 if LV_LOG_LEVEL_TRACE
312                default 1 if LV_LOG_LEVEL_INFO
313                default 2 if LV_LOG_LEVEL_WARN
314                default 3 if LV_LOG_LEVEL_ERROR
315                default 4 if LV_LOG_LEVEL_USER
316                default 5 if LV_LOG_LEVEL_NONE
317
318            config LV_LOG_PRINTF
319                bool "Print the log with 'printf'" if LV_USE_LOG
320                help
321                    Use printf for log output.
322                    If not set the user needs to register a callback with `lv_log_register_print_cb`.
323
324            config LV_LOG_TRACE_MEM
325                bool "Enable/Disable LV_LOG_TRACE in mem module"
326                default y
327                depends on LV_USE_LOG
328
329            config LV_LOG_TRACE_TIMER
330                bool "Enable/Disable LV_LOG_TRACE in timer module"
331                default y
332                depends on LV_USE_LOG
333
334            config LV_LOG_TRACE_INDEV
335                bool "Enable/Disable LV_LOG_TRACE in indev module"
336                default y
337                depends on LV_USE_LOG
338
339            config LV_LOG_TRACE_DISP_REFR
340                bool "Enable/Disable LV_LOG_TRACE in disp refr module"
341                default y
342                depends on LV_USE_LOG
343
344            config LV_LOG_TRACE_EVENT
345                bool "Enable/Disable LV_LOG_TRACE in event module"
346                default y
347                depends on LV_USE_LOG
348
349            config LV_LOG_TRACE_OBJ_CREATE
350                bool "Enable/Disable LV_LOG_TRACE in obj create module"
351                default y
352                depends on LV_USE_LOG
353
354            config LV_LOG_TRACE_LAYOUT
355                bool "Enable/Disable LV_LOG_TRACE in layout module"
356                default y
357                depends on LV_USE_LOG
358
359            config LV_LOG_TRACE_ANIM
360                bool "Enable/Disable LV_LOG_TRACE in anim module"
361                default y
362                depends on LV_USE_LOG
363        endmenu
364
365        menu "Asserts"
366            config LV_USE_ASSERT_NULL
367                bool "Check if the parameter is NULL. (Very fast, recommended)"
368                default y if !LV_CONF_MINIMAL
369
370            config LV_USE_ASSERT_MALLOC
371                bool "Checks if the memory is successfully allocated or no. (Very fast, recommended)"
372                default y if !LV_CONF_MINIMAL
373
374            config LV_USE_ASSERT_STYLE
375                bool "Check if the styles are properly initialized. (Very fast, recommended)"
376
377            config LV_USE_ASSERT_MEM_INTEGRITY
378                bool "Check the integrity of `lv_mem` after critical operations. (Slow)"
379
380            config LV_USE_ASSERT_OBJ
381                bool "Check NULL, the object's type and existence (e.g. not deleted). (Slow)."
382
383            config LV_ASSERT_HANDLER_INCLUDE
384                string "Header to include for the custom assert function"
385                default "assert.h"
386        endmenu
387
388        menu "Others"
389            config LV_USE_PERF_MONITOR
390                bool "Show CPU usage and FPS count."
391
392            choice
393                prompt "Performance monitor position."
394                depends on LV_USE_PERF_MONITOR
395                default LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT
396
397                config LV_PERF_MONITOR_ALIGN_TOP_LEFT
398                    bool "Top left"
399                config LV_PERF_MONITOR_ALIGN_TOP_MID
400                    bool "Top middle"
401                config LV_PERF_MONITOR_ALIGN_TOP_RIGHT
402                    bool "Top right"
403                config LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT
404                    bool "Bottom left"
405                config LV_PERF_MONITOR_ALIGN_BOTTOM_MID
406                    bool "Bottom middle"
407                config LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT
408                    bool "Bottom right"
409                config LV_PERF_MONITOR_ALIGN_LEFT_MID
410                    bool "Left middle"
411                config LV_PERF_MONITOR_ALIGN_RIGHT_MID
412                    bool "Right middle"
413                config LV_PERF_MONITOR_ALIGN_CENTER
414                    bool "Center"
415            endchoice
416
417            config LV_USE_MEM_MONITOR
418                bool "Show the used memory and the memory fragmentation."
419                depends on !LV_MEM_CUSTOM
420
421            choice
422                prompt "Memory monitor position."
423                depends on LV_USE_MEM_MONITOR
424                default LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT
425
426                config LV_MEM_MONITOR_ALIGN_TOP_LEFT
427                    bool "Top left"
428                config LV_MEM_MONITOR_ALIGN_TOP_MID
429                    bool "Top middle"
430                config LV_MEM_MONITOR_ALIGN_TOP_RIGHT
431                    bool "Top right"
432                config LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT
433                    bool "Bottom left"
434                config LV_MEM_MONITOR_ALIGN_BOTTOM_MID
435                    bool "Bottom middle"
436                config LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT
437                    bool "Bottom right"
438                config LV_MEM_MONITOR_ALIGN_LEFT_MID
439                    bool "Left middle"
440                config LV_MEM_MONITOR_ALIGN_RIGHT_MID
441                    bool "Right middle"
442                config LV_MEM_MONITOR_ALIGN_CENTER
443                    bool "Center"
444            endchoice
445
446            config LV_USE_REFR_DEBUG
447                bool "Draw random colored rectangles over the redrawn areas."
448
449            config LV_SPRINTF_CUSTOM
450                bool "Change the built-in (v)snprintf functions"
451
452            config LV_SPRINTF_INCLUDE
453                string "Header to include for the custom sprintf function"
454                depends on LV_SPRINTF_CUSTOM
455                default "stdio.h"
456
457            config LV_SPRINTF_USE_FLOAT
458                bool "Enable float in built-in (v)snprintf functions"
459                depends on !LV_SPRINTF_CUSTOM
460
461            config LV_USE_USER_DATA
462                bool "Add a 'user_data' to drivers and objects."
463                default y
464
465            config LV_ENABLE_GC
466                bool "Enable garbage collector"
467
468            config LV_GC_INCLUDE
469                string "Header to include for the garbage collector related things"
470                depends on LV_ENABLE_GC
471                default "gc.h"
472        endmenu
473
474        menu "Compiler settings"
475            config LV_BIG_ENDIAN_SYSTEM
476                bool "For big endian systems set to 1"
477
478            config LV_ATTRIBUTE_MEM_ALIGN_SIZE
479                int "Required alignment size for buffers"
480                default 1
481
482            config LV_ATTRIBUTE_FAST_MEM_USE_IRAM
483                bool "Set IRAM as LV_ATTRIBUTE_FAST_MEM"
484                help
485                    Set this option to configure IRAM as LV_ATTRIBUTE_FAST_MEM
486
487            config LV_USE_LARGE_COORD
488                bool "Extend the default -32k..32k coordinate range to -4M..4M by using int32_t for coordinates instead of int16_t"
489        endmenu
490    endmenu
491
492    menu "Font usage"
493        menu "Enable built-in fonts"
494            config LV_FONT_MONTSERRAT_8
495                bool "Enable Montserrat 8"
496            config LV_FONT_MONTSERRAT_10
497                bool "Enable Montserrat 10"
498            config LV_FONT_MONTSERRAT_12
499                bool "Enable Montserrat 12"
500            config LV_FONT_MONTSERRAT_14
501                bool "Enable Montserrat 14"
502                default y if !LV_CONF_MINIMAL
503            config LV_FONT_MONTSERRAT_16
504                bool "Enable Montserrat 16"
505            config LV_FONT_MONTSERRAT_18
506                bool "Enable Montserrat 18"
507            config LV_FONT_MONTSERRAT_20
508                bool "Enable Montserrat 20"
509            config LV_FONT_MONTSERRAT_22
510                bool "Enable Montserrat 22"
511            config LV_FONT_MONTSERRAT_24
512                bool "Enable Montserrat 24"
513            config LV_FONT_MONTSERRAT_26
514                bool "Enable Montserrat 26"
515            config LV_FONT_MONTSERRAT_28
516                bool "Enable Montserrat 28"
517            config LV_FONT_MONTSERRAT_30
518                bool "Enable Montserrat 30"
519            config LV_FONT_MONTSERRAT_32
520                bool "Enable Montserrat 32"
521            config LV_FONT_MONTSERRAT_34
522                bool "Enable Montserrat 34"
523            config LV_FONT_MONTSERRAT_36
524                bool "Enable Montserrat 36"
525            config LV_FONT_MONTSERRAT_38
526                bool "Enable Montserrat 38"
527            config LV_FONT_MONTSERRAT_40
528                bool "Enable Montserrat 40"
529            config LV_FONT_MONTSERRAT_42
530                bool "Enable Montserrat 42"
531            config LV_FONT_MONTSERRAT_44
532                bool "Enable Montserrat 44"
533            config LV_FONT_MONTSERRAT_46
534                bool "Enable Montserrat 46"
535            config LV_FONT_MONTSERRAT_48
536                bool "Enable Montserrat 48"
537
538            config LV_FONT_MONTSERRAT_12_SUBPX
539                bool "Enable Montserrat 12 sub-pixel"
540            config LV_FONT_MONTSERRAT_28_COMPRESSED
541                bool "Enable Montserrat 28 compressed"
542            config LV_FONT_DEJAVU_16_PERSIAN_HEBREW
543                bool "Enable Dejavu 16 Persian, Hebrew, Arabic letters"
544            config LV_FONT_SIMSUN_16_CJK
545                bool "Enable Simsun 16 CJK"
546
547            config LV_FONT_UNSCII_8
548                bool "Enable UNSCII 8 (Perfect monospace font)"
549                default y if LV_CONF_MINIMAL
550            config LV_FONT_UNSCII_16
551                bool "Enable UNSCII 16 (Perfect monospace font)"
552
553            config LV_FONT_CUSTOM
554                bool "Enable the custom font"
555            config LV_FONT_CUSTOM_DECLARE
556                string "Header to include for the custom font"
557                depends on LV_FONT_CUSTOM
558        endmenu
559
560        choice LV_FONT_DEFAULT
561            prompt "Select theme default title font"
562            default LV_FONT_DEFAULT_MONTSERRAT_14 if !LV_CONF_MINIMAL
563            default LV_FONT_DEFAULT_UNSCII_8 if LV_CONF_MINIMAL
564            help
565                Select theme default title font
566
567            config LV_FONT_DEFAULT_MONTSERRAT_8
568                bool "Montserrat 8"
569                select LV_FONT_MONTSERRAT_8
570            config LV_FONT_DEFAULT_MONTSERRAT_12
571                bool "Montserrat 12"
572                select LV_FONT_MONTSERRAT_12
573            config LV_FONT_DEFAULT_MONTSERRAT_14
574                bool "Montserrat 14"
575                select LV_FONT_MONTSERRAT_14
576            config LV_FONT_DEFAULT_MONTSERRAT_16
577                bool "Montserrat 16"
578                select LV_FONT_MONTSERRAT_16
579            config LV_FONT_DEFAULT_MONTSERRAT_18
580                bool "Montserrat 18"
581                select LV_FONT_MONTSERRAT_18
582            config LV_FONT_DEFAULT_MONTSERRAT_20
583                bool "Montserrat 20"
584                select LV_FONT_MONTSERRAT_20
585            config LV_FONT_DEFAULT_MONTSERRAT_22
586                bool "Montserrat 22"
587                select LV_FONT_MONTSERRAT_22
588            config LV_FONT_DEFAULT_MONTSERRAT_24
589                bool "Montserrat 24"
590                select LV_FONT_MONTSERRAT_24
591            config LV_FONT_DEFAULT_MONTSERRAT_26
592                bool "Montserrat 26"
593                select LV_FONT_MONTSERRAT_26
594            config LV_FONT_DEFAULT_MONTSERRAT_28
595                bool "Montserrat 28"
596                select LV_FONT_MONTSERRAT_28
597            config LV_FONT_DEFAULT_MONTSERRAT_30
598                bool "Montserrat 30"
599                select LV_FONT_MONTSERRAT_30
600            config LV_FONT_DEFAULT_MONTSERRAT_32
601                bool "Montserrat 32"
602                select LV_FONT_MONTSERRAT_32
603            config LV_FONT_DEFAULT_MONTSERRAT_34
604                bool "Montserrat 34"
605                select LV_FONT_MONTSERRAT_34
606            config LV_FONT_DEFAULT_MONTSERRAT_36
607                bool "Montserrat 36"
608                select LV_FONT_MONTSERRAT_36
609            config LV_FONT_DEFAULT_MONTSERRAT_38
610                bool "Montserrat 38"
611                select LV_FONT_MONTSERRAT_38
612            config LV_FONT_DEFAULT_MONTSERRAT_40
613                bool "Montserrat 40"
614                select LV_FONT_MONTSERRAT_40
615            config LV_FONT_DEFAULT_MONTSERRAT_42
616                bool "Montserrat 42"
617                select LV_FONT_MONTSERRAT_42
618            config LV_FONT_DEFAULT_MONTSERRAT_44
619                bool "Montserrat 44"
620                select LV_FONT_MONTSERRAT_44
621            config LV_FONT_DEFAULT_MONTSERRAT_46
622                bool "Montserrat 46"
623                select LV_FONT_MONTSERRAT_46
624            config LV_FONT_DEFAULT_MONTSERRAT_48
625                bool "Montserrat 48"
626                select LV_FONT_MONTSERRAT_48
627            config LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX
628                bool "Montserrat 12 sub-pixel"
629                select LV_FONT_MONTSERRAT_12_SUBPX
630            config LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED
631                bool "Montserrat 28 compressed"
632                select LV_FONT_MONTSERRAT_28_COMPRESSED
633            config LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW
634                bool "Dejavu 16 Persian, Hebrew, Arabic letters"
635                select LV_FONT_DEJAVU_16_PERSIAN_HEBREW
636            config LV_FONT_DEFAULT_SIMSUN_16_CJK
637                bool "Simsun 16 CJK"
638                select LV_FONT_SIMSUN_16_CJK
639            config LV_FONT_DEFAULT_UNSCII_8
640                bool "UNSCII 8 (Perfect monospace font)"
641                select LV_FONT_UNSCII_8
642            config LV_FONT_DEFAULT_UNSCII_16
643                bool "UNSCII 16 (Perfect monospace font)"
644                select LV_FONT_UNSCII_16
645        endchoice
646
647        config LV_FONT_FMT_TXT_LARGE
648            bool "Enable it if you have fonts with a lot of characters."
649            help
650                The limit depends on the font size, font face and bpp
651                but with > 10,000 characters if you see issues probably you
652                need to enable it.
653
654        config LV_USE_FONT_COMPRESSED
655            bool "Sets support for compressed fonts."
656
657        config LV_USE_FONT_SUBPX
658            bool "Enable subpixel rendering."
659
660        config LV_FONT_SUBPX_BGR
661            bool "Use BGR instead RGB for sub-pixel rendering."
662            depends on LV_USE_FONT_SUBPX
663            help
664                Set the pixel order of the display.
665                Important only if "subpx fonts" are used.
666                With "normal" font it doesn't matter.
667
668        config LV_USE_FONT_PLACEHOLDER
669            bool "Enable drawing placeholders when glyph dsc is not found."
670            default y
671    endmenu
672
673    menu "Text Settings"
674        choice LV_TXT_ENC
675            prompt "Select a character encoding for strings"
676            help
677                Select a character encoding for strings. Your IDE or editor should have the same character encoding.
678            default LV_TXT_ENC_UTF8 if !LV_CONF_MINIMAL
679            default LV_TXT_ENC_ASCII if LV_CONF_MINIMAL
680
681            config LV_TXT_ENC_UTF8
682                bool "UTF8"
683            config LV_TXT_ENC_ASCII
684                bool "ASCII"
685        endchoice
686
687        config LV_TXT_BREAK_CHARS
688            string "Can break (wrap) texts on these chars"
689            default " ,.;:-_"
690
691        config LV_TXT_LINE_BREAK_LONG_LEN
692            int "Line break long length"
693            default 0
694            help
695                If a word is at least this long, will break wherever 'prettiest'.
696                To disable, set to a value <= 0.
697
698        config LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN
699            int "Min num chars before break"
700            default 3
701            depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
702            help
703                Minimum number of characters in a long word to put on a line before a break.
704
705        config LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN
706            int "Min num chars after break"
707            default 3
708            depends on LV_TXT_LINE_BREAK_LONG_LEN > 0
709            help
710                Minimum number of characters in a long word to put on a line after a break.
711
712        config LV_TXT_COLOR_CMD
713            string "The control character to use for signalling text recoloring"
714            default "#"
715
716        config LV_USE_BIDI
717            bool "Support bidirectional texts"
718            help
719                Allows mixing Left-to-Right and Right-to-Left texts.
720                The direction will be processed according to the Unicode Bidirectional Algorithm:
721                https://www.w3.org/International/articles/inline-bidi-markup/uba-basics
722
723        choice
724            prompt "Set the default BIDI direction"
725            default LV_BIDI_DIR_AUTO
726            depends on LV_USE_BIDI
727
728            config LV_BIDI_DIR_LTR
729                bool "Left-to-Right"
730            config LV_BIDI_DIR_RTL
731                bool "Right-to-Left"
732            config LV_BIDI_DIR_AUTO
733                bool "Detect texts base direction"
734        endchoice
735
736        config LV_USE_ARABIC_PERSIAN_CHARS
737            bool "Enable Arabic/Persian processing"
738            help
739                In these languages characters should be replaced with
740                an other form based on their position in the text.
741    endmenu
742
743    menu "Widget usage"
744        config LV_USE_ARC
745            bool "Arc."
746            default y if !LV_CONF_MINIMAL
747        config LV_USE_BAR
748            bool "Bar."
749            default y if !LV_CONF_MINIMAL
750        config LV_USE_BTN
751            bool "Button."
752            default y if !LV_CONF_MINIMAL
753        config LV_USE_BTNMATRIX
754            bool "Button matrix."
755            default y if !LV_CONF_MINIMAL
756        config LV_USE_CANVAS
757            bool "Canvas. Dependencies: lv_img."
758            select LV_USE_IMG
759            default y if !LV_CONF_MINIMAL
760        config LV_USE_CHECKBOX
761            bool "Check Box"
762            default y if !LV_CONF_MINIMAL
763        config LV_USE_DROPDOWN
764            bool "Drop down list. Requires: lv_label."
765            select LV_USE_LABEL
766            default y if !LV_CONF_MINIMAL
767        config LV_USE_IMG
768            bool "Image. Requires: lv_label."
769            select LV_USE_LABEL
770            default y if !LV_CONF_MINIMAL
771        config LV_USE_LABEL
772            bool "Label."
773            default y if !LV_CONF_MINIMAL
774        config LV_LABEL_TEXT_SELECTION
775            bool "Enable selecting text of the label."
776            depends on LV_USE_LABEL
777            default y
778        config LV_LABEL_LONG_TXT_HINT
779            bool "Store extra some info in labels (12 bytes) to speed up drawing of very long texts."
780            depends on LV_USE_LABEL
781            default y
782        config LV_USE_LINE
783            bool "Line."
784            default y if !LV_CONF_MINIMAL
785        config LV_USE_ROLLER
786            bool "Roller. Requires: lv_label."
787            select LV_USE_LABEL
788            default y if !LV_CONF_MINIMAL
789        config LV_ROLLER_INF_PAGES
790            int "Number of extra 'pages' when the controller is infinite."
791            default 7
792            depends on LV_USE_ROLLER
793        config LV_USE_SLIDER
794            bool "Slider. Requires: lv_bar."
795            select LV_USE_BAR
796            default y if !LV_CONF_MINIMAL
797        config LV_USE_SWITCH
798            bool "Switch."
799            default y if !LV_CONF_MINIMAL
800        config LV_USE_TEXTAREA
801            bool "Text area. Requires: lv_label."
802            select LV_USE_LABEL
803            default y if !LV_CONF_MINIMAL
804        config LV_TEXTAREA_DEF_PWD_SHOW_TIME
805            int "Text area def. pwd show time [ms]."
806            default 1500
807            depends on LV_USE_TEXTAREA
808        config LV_USE_TABLE
809            bool "Table."
810            default y if !LV_CONF_MINIMAL
811    endmenu
812
813    menu "Extra Widgets"
814        config LV_USE_ANIMIMG
815            bool "Anim image."
816            default y if !LV_CONF_MINIMAL
817        config LV_USE_CALENDAR
818            bool "Calendar."
819            default y if !LV_CONF_MINIMAL
820        config LV_CALENDAR_WEEK_STARTS_MONDAY
821            bool "Calendar week starts monday."
822            depends on LV_USE_CALENDAR
823        config LV_USE_CALENDAR_HEADER_ARROW
824            bool "Use calendar header arrow"
825            depends on LV_USE_CALENDAR
826            default y
827        config LV_USE_CALENDAR_HEADER_DROPDOWN
828            bool "Use calendar header dropdown"
829            depends on LV_USE_CALENDAR
830            default y
831        config LV_USE_CHART
832            bool "Chart."
833            default y if !LV_CONF_MINIMAL
834        config LV_USE_COLORWHEEL
835            bool "Colorwheel."
836            default y if !LV_CONF_MINIMAL
837        config LV_USE_IMGBTN
838            bool "Imgbtn."
839            default y if !LV_CONF_MINIMAL
840        config LV_USE_KEYBOARD
841            bool "Keyboard."
842            default y if !LV_CONF_MINIMAL
843        config LV_USE_LED
844            bool "LED."
845            default y if !LV_CONF_MINIMAL
846        config LV_USE_LIST
847            bool "List."
848            default y if !LV_CONF_MINIMAL
849        config LV_USE_MENU
850            bool "Menu."
851            default y if !LV_CONF_MINIMAL
852        config LV_USE_METER
853            bool "Meter."
854            default y if !LV_CONF_MINIMAL
855        config LV_USE_MSGBOX
856            bool "Msgbox."
857            default y if !LV_CONF_MINIMAL
858        config LV_USE_SPAN
859            bool "span"
860            default y if !LV_CONF_MINIMAL
861        config LV_SPAN_SNIPPET_STACK_SIZE
862            int "Maximum number of span descriptor"
863            default 64
864            depends on LV_USE_SPAN
865        config LV_USE_SPINBOX
866            bool "Spinbox."
867            default y if !LV_CONF_MINIMAL
868        config LV_USE_SPINNER
869            bool "Spinner."
870            default y if !LV_CONF_MINIMAL
871        config LV_USE_TABVIEW
872            bool "Tabview."
873            default y if !LV_CONF_MINIMAL
874        config LV_USE_TILEVIEW
875            bool "Tileview"
876            default y if !LV_CONF_MINIMAL
877        config LV_USE_WIN
878            bool "Win"
879            default y if !LV_CONF_MINIMAL
880    endmenu
881
882    menu "Themes"
883        config LV_USE_THEME_DEFAULT
884            bool "A simple, impressive and very complete theme"
885            default y if !LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
886        config LV_THEME_DEFAULT_DARK
887            bool "Yes to set dark mode, No to set light mode"
888            depends on LV_USE_THEME_DEFAULT
889        config LV_THEME_DEFAULT_GROW
890            bool "Enable grow on press"
891            default y
892            depends on LV_USE_THEME_DEFAULT
893        config LV_THEME_DEFAULT_TRANSITION_TIME
894            int "Default transition time in [ms]"
895            default 80
896            depends on LV_USE_THEME_DEFAULT
897        config LV_USE_THEME_BASIC
898            bool "A very simple theme that is a good starting point for a custom theme"
899            default y if !LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
900        config LV_USE_THEME_MONO
901            bool "Monochrome theme, suitable for some E-paper & dot matrix displays"
902            default y if LV_COLOR_DEPTH_1 && !LV_CONF_MINIMAL
903    endmenu
904
905    menu "Layouts"
906        config LV_USE_FLEX
907            bool "A layout similar to Flexbox in CSS."
908            default y if !LV_CONF_MINIMAL
909        config LV_USE_GRID
910            bool "A layout similar to Grid in CSS."
911            default y if !LV_CONF_MINIMAL
912    endmenu
913
914    menu "3rd Party Libraries"
915        config LV_USE_FS_STDIO
916            bool "File system on top of stdio API"
917        config LV_FS_STDIO_LETTER
918            int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65 )"
919            default 0
920            depends on LV_USE_FS_STDIO
921        config LV_FS_STDIO_PATH
922            string "Set the working directory"
923            depends on LV_USE_FS_STDIO
924        config LV_FS_STDIO_CACHE_SIZE
925            int ">0 to cache this number of bytes in lv_fs_read()"
926            default 0
927            depends on LV_USE_FS_STDIO
928
929        config LV_USE_FS_POSIX
930            bool "File system on top of posix API"
931        config LV_FS_POSIX_LETTER
932            int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
933            default 0
934            depends on LV_USE_FS_POSIX
935        config LV_FS_POSIX_PATH
936            string "Set the working directory"
937            depends on LV_USE_FS_POSIX
938        config LV_FS_POSIX_CACHE_SIZE
939            int ">0 to cache this number of bytes in lv_fs_read()"
940            default 0
941            depends on LV_USE_FS_POSIX
942
943        config LV_USE_FS_WIN32
944            bool "File system on top of Win32 API"
945        config LV_FS_WIN32_LETTER
946            int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
947            default 0
948            depends on LV_USE_FS_WIN32
949        config LV_FS_WIN32_PATH
950            string "Set the working directory"
951            depends on LV_USE_FS_WIN32
952        config LV_FS_WIN32_CACHE_SIZE
953            int ">0 to cache this number of bytes in lv_fs_read()"
954            default 0
955            depends on LV_USE_FS_WIN32
956
957        config LV_USE_FS_FATFS
958            bool "File system on top of FatFS"
959        config LV_FS_FATFS_LETTER
960            int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
961            default 0
962            depends on LV_USE_FS_FATFS
963        config LV_FS_FATFS_CACHE_SIZE
964            int ">0 to cache this number of bytes in lv_fs_read()"
965            default 0
966            depends on LV_USE_FS_FATFS
967
968        config LV_USE_FS_LITTLEFS
969            bool "File system on top of LittleFS"
970        config LV_FS_LITTLEFS_LETTER
971            int "Set an upper cased letter on which the drive will accessible (e.g. 'A' i.e. 65)"
972            default 0
973            depends on LV_USE_FS_LITTLEFS
974        config LV_FS_LITTLEFS_CACHE_SIZE
975            int ">0 to cache this number of bytes in lv_fs_read()"
976            default 0
977            depends on LV_USE_FS_LITTLEFS
978
979        config LV_USE_PNG
980            bool "PNG decoder library"
981
982        config LV_USE_BMP
983            bool "BMP decoder library"
984
985        config LV_USE_SJPG
986            bool "JPG + split JPG decoder library"
987
988        config LV_USE_GIF
989            bool "GIF decoder library"
990
991        config LV_USE_QRCODE
992            bool "QR code library"
993
994        config LV_USE_FREETYPE
995            bool "FreeType library"
996        if LV_USE_FREETYPE
997            menu "FreeType cache config"
998                config LV_FREETYPE_CACHE_SIZE
999                int "Memory used by FreeType to cache characters [bytes] (-1: no caching)"
1000                default 16384
1001                if LV_FREETYPE_CACHE_SIZE >= 0
1002                    config LV_FREETYPE_SBIT_CACHE
1003                        bool "enable sbit cache"
1004                        default n
1005                    config LV_FREETYPE_CACHE_FT_FACES
1006                        int "The maximum number of FT_Face(0: use defaults)"
1007                        default 0
1008                    config LV_FREETYPE_CACHE_FT_SIZES
1009                        int "The maximum number of FT_Size(0: use defaults)"
1010                        default 0
1011                endif
1012            endmenu
1013        endif
1014
1015        config LV_USE_TINY_TTF
1016            bool "Tiny TTF library"
1017        config LV_TINY_TTF_FILE_SUPPORT
1018            bool "Load TTF data from files"
1019            depends on LV_USE_TINY_TTF
1020            default n
1021
1022        config LV_USE_RLOTTIE
1023            bool "Lottie library"
1024
1025        config LV_USE_FFMPEG
1026            bool "FFmpeg library"
1027        config LV_FFMPEG_DUMP_FORMAT
1028            bool "Dump format"
1029            depends on LV_USE_FFMPEG
1030            default n
1031    endmenu
1032
1033    menu "Others"
1034        config LV_USE_SNAPSHOT
1035            bool "Enable API to take snapshot"
1036            default y if !LV_CONF_MINIMAL
1037
1038        config LV_USE_MONKEY
1039            bool "Enable Monkey test"
1040            default n
1041
1042        config LV_USE_GRIDNAV
1043            bool "Enable grid navigation"
1044            default n
1045
1046        config LV_USE_FRAGMENT
1047            bool "Enable lv_obj fragment"
1048            default n
1049
1050        config LV_USE_IMGFONT
1051            bool "draw img in label or span obj"
1052            default n
1053
1054        config LV_USE_MSG
1055            bool "Enable a published subscriber based messaging system"
1056            default n
1057
1058        config LV_USE_IME_PINYIN
1059            bool "Enable Pinyin input method"
1060            default n
1061        config LV_IME_PINYIN_USE_K9_MODE
1062            bool "Enable Pinyin input method 9 key input mode"
1063            depends on LV_USE_IME_PINYIN
1064            default n
1065        config LV_IME_PINYIN_K9_CAND_TEXT_NUM
1066            int "Maximum number of candidate panels for 9-key input mode"
1067            depends on LV_IME_PINYIN_USE_K9_MODE
1068            default 3
1069        config LV_IME_PINYIN_USE_DEFAULT_DICT
1070            bool "Use built-in Thesaurus"
1071            depends on LV_USE_IME_PINYIN
1072            default y
1073            help
1074                If you do not use the default thesaurus, be sure to use lv_ime_pinyin after setting the thesauruss
1075        config LV_IME_PINYIN_CAND_TEXT_NUM
1076            int "Maximum number of candidate panels"
1077            depends on LV_USE_IME_PINYIN
1078            default 6
1079            help
1080                Set the maximum number of candidate panels that can be displayed.
1081                This needs to be adjusted according to the size of the screen.
1082    endmenu
1083
1084    menu "Examples"
1085        config LV_BUILD_EXAMPLES
1086            bool "Enable the examples to be built"
1087            default y if !LV_CONF_MINIMAL
1088    endmenu
1089
1090    menu "Demos"
1091        config LV_USE_DEMO_WIDGETS
1092            bool "Show some widget"
1093            default n
1094        config LV_DEMO_WIDGETS_SLIDESHOW
1095            bool "Enable slide show"
1096            depends on LV_USE_DEMO_WIDGETS
1097            default n
1098
1099        config LV_USE_DEMO_KEYPAD_AND_ENCODER
1100            bool "Demonstrate the usage of encoder and keyboard"
1101            default n
1102
1103        config LV_USE_DEMO_BENCHMARK
1104            bool "Benchmark your system"
1105            default n
1106        config LV_DEMO_BENCHMARK_RGB565A8
1107            bool "Use RGB565A8 images with 16 bit color depth instead of ARGB8565"
1108            depends on LV_USE_DEMO_BENCHMARK
1109            default n
1110
1111        config LV_USE_DEMO_STRESS
1112            bool "Stress test for LVGL"
1113            default n
1114
1115        config LV_USE_DEMO_MUSIC
1116            bool "Music player demo"
1117            default n
1118        config LV_DEMO_MUSIC_SQUARE
1119            bool "Enable Square"
1120            depends on LV_USE_DEMO_MUSIC
1121            default n
1122        config LV_DEMO_MUSIC_LANDSCAPE
1123            bool "Enable Landscape"
1124            depends on LV_USE_DEMO_MUSIC
1125            default n
1126        config LV_DEMO_MUSIC_ROUND
1127            bool "Enable Round"
1128            depends on LV_USE_DEMO_MUSIC
1129            default n
1130        config LV_DEMO_MUSIC_LARGE
1131            bool "Enable Large"
1132            depends on LV_USE_DEMO_MUSIC
1133            default n
1134        config LV_DEMO_MUSIC_AUTO_PLAY
1135            bool "Enable Auto play"
1136            depends on LV_USE_DEMO_MUSIC
1137            default n
1138    endmenu
1139
1140endmenu
1141endif
1142