my dotfiles for arch
at main 124 lines 10 kB view raw
1local function getLen(str, start_pos) 2 local byte = string.byte(str, start_pos) 3 if not byte then 4 return nil 5 end 6 7 return (byte < 0x80 and 1) or (byte < 0xE0 and 2) or (byte < 0xF0 and 3) or (byte < 0xF8 and 4) or 1 8end 9 10local function colorize(header, header_color_map, colors) 11 for letter, color in pairs(colors) do 12 local color_name = "AlphaJemuelKwelKwelWalangTatay" .. letter 13 vim.api.nvim_set_hl(0, color_name, color) 14 colors[letter] = color_name 15 end 16 17 local colorized = {} 18 19 for i, line in ipairs(header_color_map) do 20 local colorized_line = {} 21 local pos = 0 22 23 for j = 1, #line do 24 local start = pos 25 pos = pos + getLen(header[i], start + 1) 26 27 local color_name = colors[line:sub(j, j)] 28 if color_name then 29 table.insert(colorized_line, { color_name, start, pos }) 30 end 31 end 32 33 table.insert(colorized, colorized_line) 34 end 35 36 return colorized 37end 38 39local M = {} 40 41M.setup = function(dashboard) 42 local header = { 43 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 44 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 45 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 46 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 47 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 48 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 49 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 50 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 51 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 52 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 53 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 54 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 55 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 56 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 57 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 58 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 59 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 60 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 61 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 62 [[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]], 63 } 64 65 local color_map = { 66 [[ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBWWWWWWWWWWWWWW ]], 67 [[ RRRRWWWWWWWWWWWWWWWWRRRRRRRRRRRRRRRRWWWWWWWWWWWWWWWWBBPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPBBWWWWWWWWWWWW ]], 68 [[ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRBBPPPPPPHHHHHHHHHHHHHHHHHHHHHHHHHHPPPPPPBBWWWWWWWWWW ]], 69 [[ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRBBPPPPHHHHHHHHHHHHFFHHHHFFHHHHHHHHHHPPPPBBWWWWWWWWWW ]], 70 [[ OOOORRRRRRRRRRRRRRRROOOOOOOOOOOOOOOORRRRRRRRRRRRRRBBPPHHHHFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHPPBBWWWWWWWWWW ]], 71 [[ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOBBPPHHHHHHHHHHHHHHHHHHHHBBBBHHHHFFHHHHPPBBWWBBBBWWWW ]], 72 [[ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOBBPPHHHHHHHHHHHHHHHHHHBBMMMMBBHHHHHHHHPPBBBBMMMMBBWW ]], 73 [[ YYYYOOOOOOOOOOOOOOOOYYYYYYYYYYYYYYYYOOBBBBBBBBOOOOBBPPHHHHHHHHHHHHFFHHHHBBMMMMMMBBHHHHHHPPBBMMMMMMBBWW ]], 74 [[ YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYBBMMMMBBBBOOBBPPHHHHHHHHHHHHHHHHHHBBMMMMMMMMBBBBBBBBMMMMMMMMBBWW ]], 75 [[ YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYBBBBMMMMBBBBBBPPHHHHHHFFHHHHHHHHHHBBMMMMMMMMMMMMMMMMMMMMMMMMBBWW ]], 76 [[ GGGGYYYYYYYYYYYYYYYYGGGGGGGGGGGGGGGGYYYYBBBBMMMMBBBBPPHHHHHHHHHHHHHHFFBBMMMMMMMMMMMMMMMMMMMMMMMMMMMMBB ]], 77 [[ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBBBBMMMMBBPPHHFFHHHHHHHHHHHHBBMMMMMMCCBBMMMMMMMMMMCCBBMMMMBB ]], 78 [[ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBBBBBBBBPPHHHHHHHHHHHHHHHHBBMMMMMMBBBBMMMMMMBBMMBBBBMMMMBB ]], 79 [[ UUUUGGGGGGGGGGGGGGGGUUUUUUUUUUUUUUUUGGGGGGGGGGGGBBBBPPHHHHHHHHHHFFHHHHBBMMRRRRMMMMMMMMMMMMMMMMMMRRRRBB ]], 80 [[ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUBBPPPPHHFFHHHHHHHHHHBBMMRRRRMMBBMMMMBBMMMMBBMMRRRRBB ]], 81 [[ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUBBPPPPPPHHHHHHHHHHHHHHBBMMMMMMBBBBBBBBBBBBBBMMMMBBWW ]], 82 [[ VVVVUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVUUUUUUUUUUUUBBBBBBPPPPPPPPPPPPPPPPPPPPBBMMMMMMMMMMMMMMMMMMMMBBWWWW ]], 83 [[ VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBBMMMMMMBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBWWWWWW ]], 84 [[ VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBBMMMMBBBBWWBBMMMMBBWWWWWWWWWWBBMMMMBBWWBBMMMMBBWWWWWWWW ]], 85 [[ WWWWVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWVVVVVVVVVVBBBBBBBBWWWWBBBBBBWWWWWWWWWWWWWWBBBBBBWWWWBBBBWWWWWWWWWW ]], 86 } 87 88 local c = { 89 color0 = "#191724", 90 color1 = "#eb6f92", 91 color2 = "#31748f", 92 color3 = "#f6c177", 93 color4 = "#9ccfd8", 94 color5 = "#c4a7e7", 95 color6 = "#ebbcba", 96 color7 = "#908caa", 97 color8 = "#26233a", 98 color15 = "#e0def4", 99 } 100 101 local colors = { 102 ["W"] = { fg = c.color0 }, 103 ["C"] = { fg = c.color15 }, 104 ["B"] = { fg = c.color8 }, 105 ["R"] = { fg = c.color1 }, 106 ["O"] = { fg = c.color6 }, 107 ["Y"] = { fg = c.color3 }, 108 ["G"] = { fg = c.color4 }, 109 ["U"] = { fg = c.color2 }, 110 ["P"] = { fg = c.color3 }, 111 ["H"] = { fg = c.color5 }, 112 ["F"] = { fg = c.color1 }, 113 ["M"] = { fg = c.color7 }, 114 ["V"] = { fg = c.color5 }, 115 } 116 117 dashboard.section.header.val = header 118 dashboard.section.header.opts = { 119 hl = colorize(header, color_map, colors), 120 position = "center", 121 } 122end 123 124return M