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