1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
local present, alpha = pcall(require, 'alpha')
if not present then
return
end
local dashboard = require('alpha.themes.dashboard')
local fortune = require('alpha.fortune')
local logo = {
type = 'text',
val = {
' ',
' ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ',
' ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ',
' ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ',
' ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ',
' ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ',
' ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ',
},
opts = {
position = 'center',
hl = 'DevIconDart',
},
}
local function info_value()
local total_plugins = " Total plugins " .. vim.fn.len(vim.fn.globpath("~/.local/share/nvim/site/pack/packer/start", "*", 0, 1))
local datetime = os.date(' %d-%m-%Y')
local version = vim.version()
local nvim_version_info = ' v' .. version.major .. '.' .. version.minor .. '.' .. version.patch
return datetime .. nvim_version_info .. ' ' .. total_plugins
end
local info = {
type = 'text',
val = info_value(),
opts = {
hl = 'DevIconVimrc',
position = 'center',
},
}
local message = {
type = 'text',
val = fortune({ max_width = 60 }),
opts = {
position = 'center',
hl = 'SpecialComment',
},
}
local header = {
type = 'group',
val = {
logo,
info,
},
}
local buttons = {
type = 'group',
val = {
{
type = 'text',
val = 'Actions',
opts = {
hl = 'String',
shrink_margin = false,
position = 'center',
},
},
{ type = 'padding', val = 1 },
dashboard.button("f", " " .. " Find file", ":Telescope find_files hidden=true no_ignore=true <CR>"),
dashboard.button("e", " " .. " New file", ":ene <BAR> startinsert <CR>"),
dashboard.button("r", " " .. " Recent files", ":Telescope oldfiles <CR>"),
dashboard.button("t", " " .. " Find text", "<cmd>lua require('telescope.builtin').live_grep({shorten_path=true})<CR>"),
dashboard.button(
'd',
' Dotfiles',
"<cmd>lua require('telescope.builtin').find_files({ search_dirs = { os.getenv('HOME') .. '/.config' } })<CR>"
),
dashboard.button("u", " " .. " Update plugins", ":PackerSync<CR>"),
dashboard.button("q", " " .. " Quit", ":qa<CR>"),
},
opts = {
position = 'center',
},
}
local config = {
layout = {
{ type = 'padding', val = 5 },
header,
{ type = 'padding', val = 5 },
buttons,
{ type = 'padding', val = 1 },
message,
},
opts = {
setup = function()
vim.api.nvim_create_autocmd('User', {
pattern = 'AlphaReady',
desc = 'disable status, tabline and cmdline for alpha',
callback = function()
vim.go.laststatus = 0
vim.opt.showtabline = 0
vim.opt.cmdheight = 0
end,
})
vim.api.nvim_create_autocmd('BufUnload', {
buffer = 0,
desc = 'enable status, tabline and cmdline after alpha',
callback = function()
vim.go.laststatus = 2
vim.opt.showtabline = 2
vim.opt.cmdheight = 1
end,
})
end,
margin = 5,
},
}
alpha.setup(config)
|