return { 'goolord/alpha-nvim', dependencies = { 'nvim-tree/nvim-web-devicons', }, config = function() -- Setup -- local alpha = require('alpha') local SECTIONS = {} -- Header -- SECTIONS.header = { type = 'text', opts = { position = 'center', hl = 'DashboardHeader', }, val = { [[ ]], [[ ]], [[ ]], [[ ]], [[ ██ ]], [[ ████ ██████ ████ ██ ]], [[ ███████████ ████ ████  ]], [[ █████████ ████████ ████ ████ ██ ████████ ]], [[ █████████ ███ ██████████████ █████ █████████████ ]], [[ █████████ ██████████ ██████████ █████ █████ ████ ████ ]], [[ ███████████ ███ ███ ██████████ █████ █████ ████ ████ ]], [[ ██████ ██████████████████████ █████ █████ █████ ████ ████ ]], [[ ]], [[ ]], [[ ]], }, } SECTIONS.sessions = { type = 'group', val = function() local session_rows = {} local session_utils = require('session_manager.utils') local sessions = session_utils.get_sessions() table.sort( sessions, function(a, b) return a.dir.filename < b.dir.filename end ) local line_len = 0 for i = 1, #sessions, 1 do local len = string.len(sessions[i].dir.filename) if len > line_len then line_len = len end end for i = 1, #sessions, 1 do local session_name = sessions[i].dir.filename local home_dir = os.getenv('HOME') session_name = vim.fn.substitute( session_name, '^' .. home_dir .. '/Downloads', '󰇚', '' ) session_name = vim.fn.substitute( session_name, '^' .. home_dir .. '/Workspace/Learning', '󰑴 ', '' ) session_name = vim.fn.substitute( session_name, '^' .. home_dir .. '/Workspace/AdventOfCode', ' ', '' ) session_name = vim.fn.substitute( session_name, '^' .. home_dir .. '/Workspace/School', ' ', '' ) session_name = vim.fn.substitute( session_name, '^' .. home_dir .. '/Workspace', ' ', '' ) session_name = vim.fn.substitute( session_name, '^' .. home_dir, ' ', '' ) local start_session = function() session_utils.load_session(sessions[i].filename, false) end local row = { type = 'button', val = ' ' .. session_name, on_press = start_session, opts = { keymap = { 'n', tostring(i), start_session }, shortcut = string.format('[%d]', i), align_shortcut = 'left', hl_shortcut = 'DashboardKey', position = 'center', cursor = 1, width = line_len + 5, }, } table.insert(session_rows, row) end return session_rows end, } local theme = { layout = { { type = 'padding', val = 2 }, SECTIONS.header, { type = 'padding', val = 2 }, SECTIONS.sessions, }, opts = { margin = 5, }, } alpha.setup(theme) end, }