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