mirror of
https://github.com/kristoferssolo/solorice.git
synced 2026-02-04 06:32:03 +00:00
Linted all files
This commit is contained in:
@@ -186,8 +186,8 @@ draw_bold_text_with_bright_colors: true
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: "#1d1f21"
|
||||
foreground: "#c5c8c6"
|
||||
background: '#1d1f21'
|
||||
foreground: '#c5c8c6'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
@@ -195,8 +195,8 @@ colors:
|
||||
# present. If the bright foreground color is not set, or
|
||||
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
||||
# color will be used.
|
||||
dim_foreground: "#828482"
|
||||
bright_foreground: "#eaeaea"
|
||||
dim_foreground: '#828482'
|
||||
bright_foreground: '#eaeaea'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
@@ -232,8 +232,8 @@ colors:
|
||||
# background: '#000000'
|
||||
|
||||
bar:
|
||||
background: "#282828"
|
||||
foreground: "#EBEBE9"
|
||||
background: '#282828'
|
||||
foreground: '#EBEBE9'
|
||||
|
||||
# Keyboard regex hints
|
||||
hints:
|
||||
@@ -242,16 +242,16 @@ colors:
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
start:
|
||||
foreground: "#1d1f21"
|
||||
background: "#e9ff5e"
|
||||
foreground: '#1d1f21'
|
||||
background: '#e9ff5e'
|
||||
|
||||
# All characters after the first one in the hint label
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
end:
|
||||
foreground: "#e9ff5e"
|
||||
background: "#1d1f21"
|
||||
foreground: '#e9ff5e'
|
||||
background: '#1d1f21'
|
||||
|
||||
# Line indicator
|
||||
#
|
||||
@@ -275,39 +275,39 @@ colors:
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: "#313539"
|
||||
red: "#b02626"
|
||||
green: "#40a62f"
|
||||
yellow: "#f1e635"
|
||||
blue: "#314ad0"
|
||||
magenta: "#b30ad0"
|
||||
cyan: "#32d0fc"
|
||||
white: "#acadb1"
|
||||
black: '#313539'
|
||||
red: '#b02626'
|
||||
green: '#40a62f'
|
||||
yellow: '#f1e635'
|
||||
blue: '#314ad0'
|
||||
magenta: '#b30ad0'
|
||||
cyan: '#32d0fc'
|
||||
white: '#acadb1'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: "#717174"
|
||||
red: "#b02626"
|
||||
green: "#40a62f"
|
||||
yellow: "#f1e635"
|
||||
blue: "#314ad0"
|
||||
magenta: "#b30ad0"
|
||||
cyan: "#32d0fc"
|
||||
white: "#acadb1"
|
||||
black: '#717174'
|
||||
red: '#b02626'
|
||||
green: '#40a62f'
|
||||
yellow: '#f1e635'
|
||||
blue: '#314ad0'
|
||||
magenta: '#b30ad0'
|
||||
cyan: '#32d0fc'
|
||||
white: '#acadb1'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
dim:
|
||||
black: "#676f78"
|
||||
red: "#b55454"
|
||||
green: "#78a670"
|
||||
yellow: "#faf380"
|
||||
blue: "#707fd0"
|
||||
magenta: "#c583d0"
|
||||
cyan: "#8adaf1"
|
||||
white: "#e0e3e7"
|
||||
black: '#676f78'
|
||||
red: '#b55454'
|
||||
green: '#78a670'
|
||||
yellow: '#faf380'
|
||||
blue: '#707fd0'
|
||||
magenta: '#c583d0'
|
||||
cyan: '#8adaf1'
|
||||
white: '#e0e3e7'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
|
||||
@@ -30,18 +30,22 @@ require("awful.hotkeys_popup.keys")
|
||||
|
||||
-- OpenWeather API
|
||||
-- !Create file ~/.config/awesome/weather and paste API from OpenWeather, latitude and longitude, each on separate lines
|
||||
local weather_file = '/home/kristofers/.config/awesome/weather' -- absolute path to `weather` file
|
||||
local weather_file = "/home/kristofers/.config/awesome/weather" -- absolute path to `weather` file
|
||||
-- see if the file exists
|
||||
local function file_exists(file)
|
||||
local f = io.open(file, "rb")
|
||||
if f then f:close() end
|
||||
if f then
|
||||
f:close()
|
||||
end
|
||||
return f ~= nil
|
||||
end
|
||||
|
||||
-- get all lines from a file, returns an empty
|
||||
-- list/table if the file does not exist
|
||||
local function lines_from(file)
|
||||
if not file_exists(file) then return {} end
|
||||
if not file_exists(file) then
|
||||
return {}
|
||||
end
|
||||
local lines = {}
|
||||
for line in io.lines(file) do
|
||||
lines[#lines + 1] = line
|
||||
@@ -54,14 +58,15 @@ local API = weather_output[1]
|
||||
local latitude = tonumber(weather_output[2])
|
||||
local longitude = tonumber(weather_output[3])
|
||||
|
||||
|
||||
-- {{{ Error handling
|
||||
-- Check if awesome encountered an error during startup and fell back to
|
||||
-- another config (This code will only ever execute for the fallback config)
|
||||
if awesome.startup_errors then
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
naughty.notify({
|
||||
preset = naughty.config.presets.critical,
|
||||
title = "Oops, there were errors during startup!",
|
||||
text = awesome.startup_errors })
|
||||
text = awesome.startup_errors,
|
||||
})
|
||||
end
|
||||
|
||||
-- Handle runtime errors after startup
|
||||
@@ -69,12 +74,16 @@ do
|
||||
local in_error = false
|
||||
awesome.connect_signal("debug::error", function(err)
|
||||
-- Make sure we don't go into an endless error loop
|
||||
if in_error then return end
|
||||
if in_error then
|
||||
return
|
||||
end
|
||||
in_error = true
|
||||
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
naughty.notify({
|
||||
preset = naughty.config.presets.critical,
|
||||
title = "Oops, an error happened!",
|
||||
text = tostring(err) })
|
||||
text = tostring(err),
|
||||
})
|
||||
in_error = false
|
||||
end)
|
||||
end
|
||||
@@ -121,20 +130,27 @@ awful.layout.layouts = {
|
||||
-- {{{ Menu
|
||||
-- Create a launcher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
|
||||
{
|
||||
"hotkeys",
|
||||
function()
|
||||
hotkeys_popup.show_help(nil, awful.screen.focused())
|
||||
end,
|
||||
},
|
||||
{ "manual", terminal .. " -e man awesome" },
|
||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", function() awesome.quit() end },
|
||||
{
|
||||
"quit",
|
||||
function()
|
||||
awesome.quit()
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}
|
||||
})
|
||||
mymainmenu =
|
||||
awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, { "open terminal", terminal } } })
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||
@@ -148,19 +164,22 @@ menubar.utils.terminal = terminal -- Set the terminal for applications that requ
|
||||
mytextclock = wibox.widget.textclock()
|
||||
|
||||
local cw = calendar_widget({
|
||||
theme = 'nord',
|
||||
theme = "nord",
|
||||
placement = "top_right",
|
||||
previous_month_button = 4,
|
||||
next_month_button = 5,
|
||||
})
|
||||
mytextclock:connect_signal("button::press",
|
||||
function(_, _, _, button)
|
||||
if button == 1 then cw.toggle() end
|
||||
end)
|
||||
mytextclock:connect_signal("button::press", function(_, _, _, button)
|
||||
if button == 1 then
|
||||
cw.toggle()
|
||||
end
|
||||
end)
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
local taglist_buttons = gears.table.join(
|
||||
awful.button({}, 1, function(t) t:view_only() end),
|
||||
awful.button({}, 1, function(t)
|
||||
t:view_only()
|
||||
end),
|
||||
awful.button({ modkey }, 1, function(t)
|
||||
if client.focus then
|
||||
client.focus:move_to_tag(t)
|
||||
@@ -172,8 +191,12 @@ local taglist_buttons = gears.table.join(
|
||||
client.focus:toggle_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({}, 4, function(t) awful.tag.viewnext(t.screen) end),
|
||||
awful.button({}, 5, function(t) awful.tag.viewprev(t.screen) end)
|
||||
awful.button({}, 4, function(t)
|
||||
awful.tag.viewnext(t.screen)
|
||||
end),
|
||||
awful.button({}, 5, function(t)
|
||||
awful.tag.viewprev(t.screen)
|
||||
end)
|
||||
)
|
||||
|
||||
local tasklist_buttons = gears.table.join(
|
||||
@@ -181,11 +204,7 @@ local tasklist_buttons = gears.table.join(
|
||||
if c == client.focus then
|
||||
c.minimized = true
|
||||
else
|
||||
c:emit_signal(
|
||||
"request::activate",
|
||||
"tasklist",
|
||||
{ raise = true }
|
||||
)
|
||||
c:emit_signal("request::activate", "tasklist", { raise = true })
|
||||
end
|
||||
end),
|
||||
awful.button({}, 3, function()
|
||||
@@ -196,7 +215,8 @@ local tasklist_buttons = gears.table.join(
|
||||
end),
|
||||
awful.button({}, 5, function()
|
||||
awful.client.focus.byidx(-1)
|
||||
end))
|
||||
end)
|
||||
)
|
||||
|
||||
local function set_wallpaper(s)
|
||||
-- Wallpaper
|
||||
@@ -226,29 +246,38 @@ awful.screen.connect_for_each_screen(function(s)
|
||||
-- We need one layoutbox per screen.
|
||||
s.mylayoutbox = awful.widget.layoutbox(s)
|
||||
s.mylayoutbox:buttons(gears.table.join(
|
||||
awful.button({}, 1, function() awful.layout.inc(1) end),
|
||||
awful.button({}, 3, function() awful.layout.inc(-1) end),
|
||||
awful.button({}, 4, function() awful.layout.inc(1) end),
|
||||
awful.button({}, 5, function() awful.layout.inc(-1) end)))
|
||||
awful.button({}, 1, function()
|
||||
awful.layout.inc(1)
|
||||
end),
|
||||
awful.button({}, 3, function()
|
||||
awful.layout.inc(-1)
|
||||
end),
|
||||
awful.button({}, 4, function()
|
||||
awful.layout.inc(1)
|
||||
end),
|
||||
awful.button({}, 5, function()
|
||||
awful.layout.inc(-1)
|
||||
end)
|
||||
))
|
||||
-- Create a taglist widget
|
||||
s.mytaglist = awful.widget.taglist {
|
||||
s.mytaglist = awful.widget.taglist({
|
||||
screen = s,
|
||||
filter = awful.widget.taglist.filter.all,
|
||||
buttons = taglist_buttons
|
||||
}
|
||||
buttons = taglist_buttons,
|
||||
})
|
||||
|
||||
-- Create a tasklist widget
|
||||
s.mytasklist = awful.widget.tasklist {
|
||||
s.mytasklist = awful.widget.tasklist({
|
||||
screen = s,
|
||||
filter = awful.widget.tasklist.filter.currenttags,
|
||||
buttons = tasklist_buttons
|
||||
}
|
||||
buttons = tasklist_buttons,
|
||||
})
|
||||
|
||||
-- Create the wibox
|
||||
s.mywibox = awful.wibar({ position = "top", screen = s })
|
||||
|
||||
-- Add widgets to the wibox
|
||||
s.mywibox:setup {
|
||||
s.mywibox:setup({
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
@@ -281,13 +310,15 @@ awful.screen.connect_for_each_screen(function(s)
|
||||
mytextclock,
|
||||
s.mylayoutbox,
|
||||
},
|
||||
}
|
||||
})
|
||||
end)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
root.buttons(gears.table.join(
|
||||
awful.button({}, 3, function() mymainmenu:toggle() end),
|
||||
awful.button({}, 3, function()
|
||||
mymainmenu:toggle()
|
||||
end),
|
||||
awful.button({}, 4, awful.tag.viewnext),
|
||||
awful.button({}, 5, awful.tag.viewprev)
|
||||
))
|
||||
@@ -296,217 +327,228 @@ root.buttons(gears.table.join(
|
||||
-- {{{ Key bindings
|
||||
globalkeys = gears.table.join(
|
||||
|
||||
awful.key({}, "Pause", function() awful.spawn.with_shell("playerctl -a play-pause") end,
|
||||
{ description = "pause/play", group = "media controls" }),
|
||||
awful.key({}, "Pause", function()
|
||||
awful.spawn.with_shell("playerctl -a play-pause")
|
||||
end, { description = "pause/play", group = "media controls" }),
|
||||
|
||||
awful.key({ "Control" }, "Pause", function() awful.spawn.with_shell("playerctl -a pause") end,
|
||||
{ description = "pause all", group = "media controls" }),
|
||||
awful.key({ "Control" }, "Pause", function()
|
||||
awful.spawn.with_shell("playerctl -a pause")
|
||||
end, { description = "pause all", group = "media controls" }),
|
||||
|
||||
awful.key({}, "#117", function() awful.spawn.with_shell("playerctl next") end,
|
||||
{ description = "play next", group = "media controls" }),
|
||||
awful.key({}, "#117", function()
|
||||
awful.spawn.with_shell("playerctl next")
|
||||
end, { description = "play next", group = "media controls" }),
|
||||
|
||||
awful.key({}, "#112", function() awful.spawn.with_shell("playerctl previous") end,
|
||||
{ description = "play previous", group = "media controls" }),
|
||||
awful.key({}, "#112", function()
|
||||
awful.spawn.with_shell("playerctl previous")
|
||||
end, { description = "play previous", group = "media controls" }),
|
||||
|
||||
--awful.key( {}, "#123", function () volume_widget:inc(5) end ), -- increase volume
|
||||
--awful.key( {}, "#122", function () volume_widget:dec(5) end ), -- decrease volume
|
||||
--awful.key( {}, "#121", function () volume_widget:toggle() end ), -- mute
|
||||
|
||||
awful.key({}, "#123", function()
|
||||
awful.spawn.with_shell("pulsemixer --change-volume +5")
|
||||
end), -- increase volume
|
||||
awful.key({}, "#122", function()
|
||||
awful.spawn.with_shell("pulsemixer --change-volume -5")
|
||||
end), -- decrease volume
|
||||
awful.key({}, "#121", function()
|
||||
awful.spawn.with_shell("pulsemixer --toggle-mute")
|
||||
end), -- mute
|
||||
awful.key({}, "#171", function()
|
||||
awful.spawn.with_shell("playerctl next")
|
||||
end), -- play next
|
||||
awful.key({}, "#173", function()
|
||||
awful.spawn.with_shell("playerctl previous")
|
||||
end), -- play previous
|
||||
awful.key({}, "#174", function()
|
||||
awful.spawn.with_shell("playerctl -a stop")
|
||||
end), -- stop
|
||||
awful.key({}, "#172", function()
|
||||
awful.spawn.with_shell("playerctl -a play-pause")
|
||||
end), -- play/pause
|
||||
|
||||
awful.key({}, "#123", function() awful.spawn.with_shell("pulsemixer --change-volume +5") end), -- increase volume
|
||||
awful.key({}, "#122", function() awful.spawn.with_shell("pulsemixer --change-volume -5") end), -- decrease volume
|
||||
awful.key({}, "#121", function() awful.spawn.with_shell("pulsemixer --toggle-mute") end), -- mute
|
||||
awful.key({}, "#171", function() awful.spawn.with_shell("playerctl next") end), -- play next
|
||||
awful.key({}, "#173", function() awful.spawn.with_shell("playerctl previous") end), -- play previous
|
||||
awful.key({}, "#174", function() awful.spawn.with_shell("playerctl -a stop") end), -- stop
|
||||
awful.key({}, "#172", function() awful.spawn.with_shell("playerctl -a play-pause") end), -- play/pause
|
||||
awful.key({ "Control" }, "#107", function()
|
||||
awful.spawn.with_shell("flameshot gui")
|
||||
end, { description = "take region screenshot", group = "launcher" }), -- take region screenshot
|
||||
|
||||
awful.key({ "Control" }, "#107", function() awful.spawn.with_shell("flameshot gui") end,
|
||||
{ description = "take region screenshot", group = "launcher" }), -- take region screenshot
|
||||
awful.key({ modkey }, "s", hotkeys_popup.show_help, { description = "show help", group = "awesome" }),
|
||||
awful.key({ modkey }, "Left", awful.tag.viewprev, { description = "view previous", group = "tag" }),
|
||||
awful.key({ modkey }, "Right", awful.tag.viewnext, { description = "view next", group = "tag" }),
|
||||
awful.key({ modkey }, "Escape", awful.tag.history.restore, { description = "go back", group = "tag" }),
|
||||
|
||||
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
|
||||
{ description = "show help", group = "awesome" }),
|
||||
awful.key({ modkey, }, "Left", awful.tag.viewprev,
|
||||
{ description = "view previous", group = "tag" }),
|
||||
awful.key({ modkey, }, "Right", awful.tag.viewnext,
|
||||
{ description = "view next", group = "tag" }),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
||||
{ description = "go back", group = "tag" }),
|
||||
|
||||
awful.key({ modkey, }, "j",
|
||||
function()
|
||||
awful.key({ modkey }, "j", function()
|
||||
awful.client.focus.byidx(1)
|
||||
end,
|
||||
{ description = "focus next by index", group = "client" }
|
||||
),
|
||||
awful.key({ modkey, }, "k",
|
||||
function()
|
||||
end, { description = "focus next by index", group = "client" }),
|
||||
awful.key({ modkey }, "k", function()
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{ description = "focus previous by index", group = "client" }
|
||||
),
|
||||
awful.key({ modkey, }, "w", function() mymainmenu:show() end,
|
||||
{ description = "show main menu", group = "awesome" }),
|
||||
end, { description = "focus previous by index", group = "client" }),
|
||||
awful.key({ modkey }, "w", function()
|
||||
mymainmenu:show()
|
||||
end, { description = "show main menu", group = "awesome" }),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end,
|
||||
{ description = "swap with next client by index", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end,
|
||||
{ description = "swap with previous client by index", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end,
|
||||
{ description = "focus the next screen", group = "screen" }),
|
||||
awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end,
|
||||
{ description = "focus the previous screen", group = "screen" }),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
|
||||
{ description = "jump to urgent client", group = "client" }),
|
||||
awful.key({ modkey, }, "Tab",
|
||||
function()
|
||||
awful.key({ modkey, "Shift" }, "j", function()
|
||||
awful.client.swap.byidx(1)
|
||||
end, { description = "swap with next client by index", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "k", function()
|
||||
awful.client.swap.byidx(-1)
|
||||
end, { description = "swap with previous client by index", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "j", function()
|
||||
awful.screen.focus_relative(1)
|
||||
end, { description = "focus the next screen", group = "screen" }),
|
||||
awful.key({ modkey, "Control" }, "k", function()
|
||||
awful.screen.focus_relative(-1)
|
||||
end, { description = "focus the previous screen", group = "screen" }),
|
||||
awful.key({ modkey }, "u", awful.client.urgent.jumpto, { description = "jump to urgent client", group = "client" }),
|
||||
awful.key({ modkey }, "Tab", function()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{ description = "go back", group = "client" }),
|
||||
end, { description = "go back", group = "client" }),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function() awful.spawn(terminal) end,
|
||||
{ description = "open a terminal", group = "launcher" }),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart,
|
||||
{ description = "reload awesome", group = "awesome" }),
|
||||
awful.key({ modkey }, "Return", function()
|
||||
awful.spawn(terminal)
|
||||
end, { description = "open a terminal", group = "launcher" }),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart, { description = "reload awesome", group = "awesome" }),
|
||||
-- awful.key({ modkey, "Control" }, "q", awesome.quit,
|
||||
-- {description = "quit awesome", group = "awesome"}),
|
||||
awful.key({ modkey, }, "b", function() awful.spawn("firefox") end,
|
||||
{ description = "open firefox", group = "launcher" }),
|
||||
awful.key({ modkey, }, "n", function() awful.spawn("spacefm") end,
|
||||
{ description = "open spacefm", group = "launcher" }),
|
||||
awful.key({ modkey }, "b", function()
|
||||
awful.spawn("firefox")
|
||||
end, { description = "open firefox", group = "launcher" }),
|
||||
awful.key({ modkey }, "n", function()
|
||||
awful.spawn("spacefm")
|
||||
end, { description = "open spacefm", group = "launcher" }),
|
||||
|
||||
awful.key({ modkey, }, "l", function() awful.tag.incmwfact(0.05) end,
|
||||
{ description = "increase master width factor", group = "layout" }),
|
||||
awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end,
|
||||
{ description = "decrease master width factor", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1, nil, true) end,
|
||||
{ description = "increase the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1, nil, true) end,
|
||||
{ description = "decrease the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1, nil, true) end,
|
||||
{ description = "increase the number of columns", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1, nil, true) end,
|
||||
{ description = "decrease the number of columns", group = "layout" }),
|
||||
awful.key({ modkey, }, "space", function() awful.layout.inc(1) end,
|
||||
{ description = "select next", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(-1) end,
|
||||
{ description = "select previous", group = "layout" }),
|
||||
awful.key({ modkey }, "l", function()
|
||||
awful.tag.incmwfact(0.05)
|
||||
end, { description = "increase master width factor", group = "layout" }),
|
||||
awful.key({ modkey }, "h", function()
|
||||
awful.tag.incmwfact(-0.05)
|
||||
end, { description = "decrease master width factor", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "h", function()
|
||||
awful.tag.incnmaster(1, nil, true)
|
||||
end, { description = "increase the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "l", function()
|
||||
awful.tag.incnmaster(-1, nil, true)
|
||||
end, { description = "decrease the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "h", function()
|
||||
awful.tag.incncol(1, nil, true)
|
||||
end, { description = "increase the number of columns", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "l", function()
|
||||
awful.tag.incncol(-1, nil, true)
|
||||
end, { description = "decrease the number of columns", group = "layout" }),
|
||||
awful.key({ modkey }, "space", function()
|
||||
awful.layout.inc(1)
|
||||
end, { description = "select next", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "space", function()
|
||||
awful.layout.inc(-1)
|
||||
end, { description = "select previous", group = "layout" }),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r", function() awful.screen.focused().mypromptbox:run() end,
|
||||
{ description = "run prompt", group = "launcher" }),
|
||||
awful.key({ modkey }, "r", function()
|
||||
awful.screen.focused().mypromptbox:run()
|
||||
end, { description = "run prompt", group = "launcher" }),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function()
|
||||
awful.prompt.run {
|
||||
awful.key({ modkey }, "x", function()
|
||||
awful.prompt.run({
|
||||
prompt = "Run Lua code: ",
|
||||
textbox = awful.screen.focused().mypromptbox.widget,
|
||||
exe_callback = awful.util.eval,
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval"
|
||||
}
|
||||
end,
|
||||
{ description = "lua execute prompt", group = "awesome" }),
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval",
|
||||
})
|
||||
end, { description = "lua execute prompt", group = "awesome" }),
|
||||
-- Menubar
|
||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
||||
{ description = "show the menubar", group = "launcher" })
|
||||
awful.key({ modkey }, "p", function()
|
||||
menubar.show()
|
||||
end, { description = "show the menubar", group = "launcher" })
|
||||
)
|
||||
|
||||
clientkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "f",
|
||||
function(c)
|
||||
awful.key({ modkey }, "f", function(c)
|
||||
c.fullscreen = not c.fullscreen
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "toggle fullscreen", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "q", function(c) c:kill() end,
|
||||
{ description = "close", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle,
|
||||
{ description = "toggle floating", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end,
|
||||
{ description = "move to master", group = "client" }),
|
||||
awful.key({ modkey, }, "o", function(c) c:move_to_screen() end,
|
||||
{ description = "move to screen", group = "client" }),
|
||||
awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end,
|
||||
{ description = "toggle keep on top", group = "client" }),
|
||||
awful.key({ modkey, }, "n",
|
||||
function(c)
|
||||
end, { description = "toggle fullscreen", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "q", function(c)
|
||||
c:kill()
|
||||
end, { description = "close", group = "client" }),
|
||||
awful.key(
|
||||
{ modkey, "Control" },
|
||||
"space",
|
||||
awful.client.floating.toggle,
|
||||
{ description = "toggle floating", group = "client" }
|
||||
),
|
||||
awful.key({ modkey, "Control" }, "Return", function(c)
|
||||
c:swap(awful.client.getmaster())
|
||||
end, { description = "move to master", group = "client" }),
|
||||
awful.key({ modkey }, "o", function(c)
|
||||
c:move_to_screen()
|
||||
end, { description = "move to screen", group = "client" }),
|
||||
awful.key({ modkey }, "t", function(c)
|
||||
c.ontop = not c.ontop
|
||||
end, { description = "toggle keep on top", group = "client" }),
|
||||
awful.key({ modkey }, "n", function(c)
|
||||
-- The client currently has the input focus, so it cannot be
|
||||
-- minimized, since minimized clients can't have the focus.
|
||||
c.minimized = true
|
||||
end,
|
||||
{ description = "minimize", group = "client" }),
|
||||
awful.key({ modkey, }, "m",
|
||||
function(c)
|
||||
end, { description = "minimize", group = "client" }),
|
||||
awful.key({ modkey }, "m", function(c)
|
||||
c.maximized = not c.maximized
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "(un)maximize", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "m",
|
||||
function(c)
|
||||
end, { description = "(un)maximize", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "m", function(c)
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "(un)maximize vertically", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "m",
|
||||
function(c)
|
||||
end, { description = "(un)maximize vertically", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "m", function(c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "(un)maximize horizontally", group = "client" })
|
||||
end, { description = "(un)maximize horizontally", group = "client" })
|
||||
)
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, 9 do
|
||||
globalkeys = gears.table.join(globalkeys,
|
||||
globalkeys = gears.table.join(
|
||||
globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey }, "#" .. i + 9, function()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
tag:view_only()
|
||||
end
|
||||
end,
|
||||
{ description = "view tag #" .. i, group = "tag" }),
|
||||
end, { description = "view tag #" .. i, group = "tag" }),
|
||||
-- Toggle tag display.
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9, function()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end,
|
||||
{ description = "toggle tag #" .. i, group = "tag" }),
|
||||
end, { description = "toggle tag #" .. i, group = "tag" }),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9, function()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:move_to_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{ description = "move focused client to tag #" .. i, group = "tag" }),
|
||||
end, { description = "move focused client to tag #" .. i, group = "tag" }),
|
||||
-- Toggle tag on focused client.
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:toggle_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{ description = "toggle focused client on tag #" .. i, group = "tag" })
|
||||
end, { description = "toggle focused client on tag #" .. i, group = "tag" })
|
||||
)
|
||||
end
|
||||
|
||||
@@ -532,8 +574,10 @@ root.keys(globalkeys)
|
||||
-- Rules to apply to new clients (through the "manage" signal).
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = {},
|
||||
properties = { border_width = beautiful.border_width,
|
||||
{
|
||||
rule = {},
|
||||
properties = {
|
||||
border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
@@ -541,11 +585,12 @@ awful.rules.rules = {
|
||||
-- buttons = clientbuttons,
|
||||
screen = awful.screen.preferred,
|
||||
--placement = awful.placement.no_overlap+awful.placement.no_offscreen
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
-- Floating clients.
|
||||
{ rule_any = {
|
||||
{
|
||||
rule_any = {
|
||||
instance = {
|
||||
"DTA", -- Firefox addon DownThemAll.
|
||||
"copyq", -- Includes session name in class.
|
||||
@@ -561,7 +606,8 @@ awful.rules.rules = {
|
||||
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
||||
"Wpa_gui",
|
||||
"veromix",
|
||||
"xtightvncviewer" },
|
||||
"xtightvncviewer",
|
||||
},
|
||||
|
||||
-- Note that the name property shown in xprop might be set slightly after creation of the client
|
||||
-- and the name shown there might not match defined rules here.
|
||||
@@ -572,27 +618,28 @@ awful.rules.rules = {
|
||||
"AlarmWindow", -- Thunderbird's calendar.
|
||||
"ConfigManager", -- Thunderbird's about:config.
|
||||
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||
}
|
||||
}, properties = { floating = true, beautiful.useless } },
|
||||
},
|
||||
},
|
||||
properties = { floating = true, beautiful.useless },
|
||||
},
|
||||
|
||||
-- Add titlebars to normal clients and dialogs
|
||||
{ rule_any = { type = { "normal", "dialog" }
|
||||
}, properties = { titlebars_enabled = false }
|
||||
},
|
||||
{ rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = false } },
|
||||
|
||||
{
|
||||
rule_any = {
|
||||
class = { "discord", "TelegramDesktop", "Ripcord" }
|
||||
}, properties = { screen = 2, tag = "8" }
|
||||
class = { "discord", "TelegramDesktop", "Ripcord" },
|
||||
},
|
||||
properties = { screen = 2, tag = "8" },
|
||||
},
|
||||
|
||||
{
|
||||
rule_any = {
|
||||
class = { "spotify", "Spotify" },
|
||||
name = { "Spotify" }
|
||||
}, properties = { screen = 2, tag = "9" }
|
||||
name = { "Spotify" },
|
||||
},
|
||||
properties = { screen = 2, tag = "9" },
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
-- {{{ Signals
|
||||
@@ -602,9 +649,7 @@ client.connect_signal("manage", function(c)
|
||||
-- i.e. put it at the end of others instead of setting it master.
|
||||
-- if not awesome.startup then awful.client.setslave(c) end
|
||||
|
||||
if awesome.startup
|
||||
and not c.size_hints.user_position
|
||||
and not c.size_hints.program_position then
|
||||
if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
|
||||
-- Prevent clients from being unreachable after screen count changes.
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
@@ -624,19 +669,19 @@ client.connect_signal("request::titlebars", function(c)
|
||||
end)
|
||||
)
|
||||
|
||||
awful.titlebar(c):setup {
|
||||
awful.titlebar(c):setup({
|
||||
{ -- Left
|
||||
awful.titlebar.widget.iconwidget(c),
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
{ -- Middle
|
||||
{ -- Title
|
||||
align = "center",
|
||||
widget = awful.titlebar.widget.titlewidget(c)
|
||||
widget = awful.titlebar.widget.titlewidget(c),
|
||||
},
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.flex.horizontal
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
},
|
||||
{ -- Right
|
||||
awful.titlebar.widget.floatingbutton(c),
|
||||
@@ -644,10 +689,10 @@ client.connect_signal("request::titlebars", function(c)
|
||||
awful.titlebar.widget.stickybutton(c),
|
||||
awful.titlebar.widget.ontopbutton(c),
|
||||
awful.titlebar.widget.closebutton(c),
|
||||
layout = wibox.layout.fixed.horizontal()
|
||||
layout = wibox.layout.fixed.horizontal(),
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
layout = wibox.layout.align.horizontal,
|
||||
})
|
||||
end)
|
||||
|
||||
-- Enable sloppy focus, so that focus follows mouse.
|
||||
@@ -655,12 +700,14 @@ client.connect_signal("mouse::enter", function(c)
|
||||
c:emit_signal("request::activate", "mouse_enter", { raise = false })
|
||||
end)
|
||||
|
||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
client.connect_signal("focus", function(c)
|
||||
c.border_color = beautiful.border_focus
|
||||
end)
|
||||
client.connect_signal("unfocus", function(c)
|
||||
c.border_color = beautiful.border_normal
|
||||
end)
|
||||
-- }}}
|
||||
|
||||
|
||||
|
||||
-- Autostart Applications
|
||||
awful.spawn.with_shell("picom --experimental-backends")
|
||||
awful.spawn.with_shell("setxkbmap lv")
|
||||
|
||||
@@ -32,7 +32,7 @@ local encode
|
||||
|
||||
local escape_char_map = {
|
||||
["\\"] = "\\",
|
||||
["\""] = "\"",
|
||||
['"'] = '"',
|
||||
["\b"] = "b",
|
||||
["\f"] = "f",
|
||||
["\n"] = "n",
|
||||
@@ -45,7 +45,6 @@ for k, v in pairs(escape_char_map) do
|
||||
escape_char_map_inv[v] = k
|
||||
end
|
||||
|
||||
|
||||
local function escape_char(c)
|
||||
return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte()))
|
||||
end
|
||||
@@ -59,7 +58,9 @@ local function encode_table(val, stack)
|
||||
stack = stack or {}
|
||||
|
||||
-- Circular reference?
|
||||
if stack[val] then error("circular reference") end
|
||||
if stack[val] then
|
||||
error("circular reference")
|
||||
end
|
||||
|
||||
stack[val] = true
|
||||
|
||||
@@ -81,7 +82,6 @@ local function encode_table(val, stack)
|
||||
end
|
||||
stack[val] = nil
|
||||
return "[" .. table.concat(res, ",") .. "]"
|
||||
|
||||
else
|
||||
-- Treat as an object
|
||||
for k, v in pairs(val) do
|
||||
@@ -115,7 +115,6 @@ local type_func_map = {
|
||||
["boolean"] = tostring,
|
||||
}
|
||||
|
||||
|
||||
encode = function(val, stack)
|
||||
local t = type(val)
|
||||
local f = type_func_map[t]
|
||||
@@ -125,7 +124,6 @@ encode = function(val, stack)
|
||||
error("unexpected type '" .. t .. "'")
|
||||
end
|
||||
|
||||
|
||||
function json.encode(val)
|
||||
return (encode(val))
|
||||
end
|
||||
@@ -155,7 +153,6 @@ local literal_map = {
|
||||
["null"] = nil,
|
||||
}
|
||||
|
||||
|
||||
local function next_char(str, idx, set, negate)
|
||||
for i = idx, #str do
|
||||
if set[str:sub(i, i)] ~= negate then
|
||||
@@ -188,8 +185,7 @@ local function codepoint_to_utf8(n)
|
||||
elseif n <= 0xffff then
|
||||
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||
elseif n <= 0x10ffff then
|
||||
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
|
||||
f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128, f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||
end
|
||||
error(string.format("invalid unicode codepoint '%x'", n))
|
||||
end
|
||||
@@ -215,7 +211,6 @@ local function parse_string(str, i)
|
||||
|
||||
if x < 32 then
|
||||
decode_error(str, j, "control character in string")
|
||||
|
||||
elseif x == 92 then -- `\`: Escape
|
||||
res = res .. str:sub(k, j - 1)
|
||||
j = j + 1
|
||||
@@ -233,7 +228,6 @@ local function parse_string(str, i)
|
||||
res = res .. escape_char_map_inv[c]
|
||||
end
|
||||
k = j + 1
|
||||
|
||||
elseif x == 34 then -- `"`: End of string
|
||||
res = res .. str:sub(k, j - 1)
|
||||
return res, j + 1
|
||||
@@ -284,8 +278,12 @@ local function parse_array(str, i)
|
||||
i = next_char(str, i, space_chars, true)
|
||||
local chr = str:sub(i, i)
|
||||
i = i + 1
|
||||
if chr == "]" then break end
|
||||
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
|
||||
if chr == "]" then
|
||||
break
|
||||
end
|
||||
if chr ~= "," then
|
||||
decode_error(str, i, "expected ']' or ','")
|
||||
end
|
||||
end
|
||||
return res, i
|
||||
end
|
||||
@@ -320,8 +318,12 @@ local function parse_object(str, i)
|
||||
i = next_char(str, i, space_chars, true)
|
||||
local chr = str:sub(i, i)
|
||||
i = i + 1
|
||||
if chr == "}" then break end
|
||||
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
|
||||
if chr == "}" then
|
||||
break
|
||||
end
|
||||
if chr ~= "," then
|
||||
decode_error(str, i, "expected '}' or ','")
|
||||
end
|
||||
end
|
||||
return res, i
|
||||
end
|
||||
@@ -346,7 +348,6 @@ local char_func_map = {
|
||||
["{"] = parse_object,
|
||||
}
|
||||
|
||||
|
||||
parse = function(str, idx)
|
||||
local chr = str:sub(idx, idx)
|
||||
local f = char_func_map[chr]
|
||||
@@ -356,7 +357,6 @@ parse = function(str, idx)
|
||||
decode_error(str, idx, "unexpected character '" .. chr .. "'")
|
||||
end
|
||||
|
||||
|
||||
function json.decode(str)
|
||||
if type(str) ~= "string" then
|
||||
error("expected argument of type string, got " .. type(str))
|
||||
|
||||
@@ -30,7 +30,6 @@ theme.border_normal = "#000000"
|
||||
theme.border_focus = "#f2f2f2"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
@@ -46,12 +45,8 @@ theme.border_marked = "#91231c"
|
||||
|
||||
-- Generate taglist squares:
|
||||
local taglist_square_size = dpi(4)
|
||||
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
|
||||
taglist_square_size, theme.fg_normal
|
||||
)
|
||||
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
||||
taglist_square_size, theme.fg_normal
|
||||
)
|
||||
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(taglist_square_size, theme.fg_normal)
|
||||
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(taglist_square_size, theme.fg_normal)
|
||||
|
||||
-- Variables set for theming notifications:
|
||||
-- notification_font
|
||||
@@ -119,9 +114,7 @@ theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
|
||||
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
|
||||
|
||||
-- Generate Awesome icon:
|
||||
theme.awesome_icon = theme_assets.awesome_icon(
|
||||
theme.menu_height, theme.bg_focus, theme.fg_focus
|
||||
)
|
||||
theme.awesome_icon = theme_assets.awesome_icon(theme.menu_height, theme.bg_focus, theme.fg_focus)
|
||||
|
||||
-- Define the icon theme for application icons. If not set then the icons
|
||||
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
|
||||
|
||||
@@ -7,11 +7,11 @@ local batteryarc_widget = require("awesome-wm-widgets.batteryarc-widget.batterya
|
||||
local cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget")
|
||||
local brightness_widget = require("awesome-wm-widgets.brightness-widget.brightness")
|
||||
local spotify_widget = require("awesome-wm-widgets.spotify-widget.spotify")
|
||||
local volume_widget = require('awesome-wm-widgets.volume-widget.volume')
|
||||
local calendar_widget = require('awesome-wm-widgets.calendar-widget.calendar')
|
||||
local logout_menu_widget = require('awesome-wm-widgets.logout-menu-widget.logout-menu')
|
||||
local net_speed_widget = require('awesome-wm-widgets.net-speed-widget.net-speed')
|
||||
local ram_widget = require('awesome-wm-widgets.ram-widget.ram-widget')
|
||||
local volume_widget = require("awesome-wm-widgets.volume-widget.volume")
|
||||
local calendar_widget = require("awesome-wm-widgets.calendar-widget.calendar")
|
||||
local logout_menu_widget = require("awesome-wm-widgets.logout-menu-widget.logout-menu")
|
||||
local net_speed_widget = require("awesome-wm-widgets.net-speed-widget.net-speed")
|
||||
local ram_widget = require("awesome-wm-widgets.ram-widget.ram-widget")
|
||||
local weather_widget = require("awesome-wm-widgets.weather-widget.weather")
|
||||
|
||||
-- Standard awesome library
|
||||
@@ -32,18 +32,22 @@ require("awful.hotkeys_popup.keys")
|
||||
|
||||
-- OpenWeather API
|
||||
-- !Create file ~/.config/awesome/weather and paste API from OpenWeather, latitude and longitude, each on separate lines
|
||||
local weather_file = '/home/kristofers/.config/awesome/weather' -- absolute path to `weather` file
|
||||
local weather_file = "/home/kristofers/.config/awesome/weather" -- absolute path to `weather` file
|
||||
-- see if the file exists
|
||||
local function file_exists(file)
|
||||
local f = io.open(file, "rb")
|
||||
if f then f:close() end
|
||||
if f then
|
||||
f:close()
|
||||
end
|
||||
return f ~= nil
|
||||
end
|
||||
|
||||
-- get all lines from a file, returns an empty
|
||||
-- list/table if the file does not exist
|
||||
local function lines_from(file)
|
||||
if not file_exists(file) then return {} end
|
||||
if not file_exists(file) then
|
||||
return {}
|
||||
end
|
||||
local lines = {}
|
||||
for line in io.lines(file) do
|
||||
lines[#lines + 1] = line
|
||||
@@ -56,14 +60,15 @@ local API = weather_output[1]
|
||||
local latitude = tonumber(weather_output[2])
|
||||
local longitude = tonumber(weather_output[3])
|
||||
|
||||
|
||||
-- {{{ Error handling
|
||||
-- Check if awesome encountered an error during startup and fell back to
|
||||
-- another config (This code will only ever execute for the fallback config)
|
||||
if awesome.startup_errors then
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
naughty.notify({
|
||||
preset = naughty.config.presets.critical,
|
||||
title = "Oops, there were errors during startup!",
|
||||
text = awesome.startup_errors })
|
||||
text = awesome.startup_errors,
|
||||
})
|
||||
end
|
||||
|
||||
-- Handle runtime errors after startup
|
||||
@@ -71,12 +76,16 @@ do
|
||||
local in_error = false
|
||||
awesome.connect_signal("debug::error", function(err)
|
||||
-- Make sure we don't go into an endless error loop
|
||||
if in_error then return end
|
||||
if in_error then
|
||||
return
|
||||
end
|
||||
in_error = true
|
||||
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
naughty.notify({
|
||||
preset = naughty.config.presets.critical,
|
||||
title = "Oops, an error happened!",
|
||||
text = tostring(err) })
|
||||
text = tostring(err),
|
||||
})
|
||||
in_error = false
|
||||
end)
|
||||
end
|
||||
@@ -123,20 +132,27 @@ awful.layout.layouts = {
|
||||
-- {{{ Menu
|
||||
-- Create a launcher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
|
||||
{
|
||||
"hotkeys",
|
||||
function()
|
||||
hotkeys_popup.show_help(nil, awful.screen.focused())
|
||||
end,
|
||||
},
|
||||
{ "manual", terminal .. " -e man awesome" },
|
||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", function() awesome.quit() end },
|
||||
{
|
||||
"quit",
|
||||
function()
|
||||
awesome.quit()
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}
|
||||
})
|
||||
mymainmenu =
|
||||
awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, { "open terminal", terminal } } })
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||
@@ -149,20 +165,23 @@ menubar.utils.terminal = terminal -- Set the terminal for applications that requ
|
||||
-- Create a textclock widget
|
||||
mytextclock = wibox.widget.textclock()
|
||||
local cw = calendar_widget({
|
||||
theme = 'nord',
|
||||
theme = "nord",
|
||||
placement = "top_right",
|
||||
previous_month_button = 4,
|
||||
next_month_button = 5,
|
||||
})
|
||||
|
||||
mytextclock:connect_signal("button::press",
|
||||
function(_, _, _, button)
|
||||
if button == 1 then cw.toggle() end
|
||||
end)
|
||||
mytextclock:connect_signal("button::press", function(_, _, _, button)
|
||||
if button == 1 then
|
||||
cw.toggle()
|
||||
end
|
||||
end)
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
local taglist_buttons = gears.table.join(
|
||||
awful.button({}, 1, function(t) t:view_only() end),
|
||||
awful.button({}, 1, function(t)
|
||||
t:view_only()
|
||||
end),
|
||||
awful.button({ modkey }, 1, function(t)
|
||||
if client.focus then
|
||||
client.focus:move_to_tag(t)
|
||||
@@ -174,8 +193,12 @@ local taglist_buttons = gears.table.join(
|
||||
client.focus:toggle_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({}, 4, function(t) awful.tag.viewnext(t.screen) end),
|
||||
awful.button({}, 5, function(t) awful.tag.viewprev(t.screen) end)
|
||||
awful.button({}, 4, function(t)
|
||||
awful.tag.viewnext(t.screen)
|
||||
end),
|
||||
awful.button({}, 5, function(t)
|
||||
awful.tag.viewprev(t.screen)
|
||||
end)
|
||||
)
|
||||
|
||||
local tasklist_buttons = gears.table.join(
|
||||
@@ -183,11 +206,7 @@ local tasklist_buttons = gears.table.join(
|
||||
if c == client.focus then
|
||||
c.minimized = true
|
||||
else
|
||||
c:emit_signal(
|
||||
"request::activate",
|
||||
"tasklist",
|
||||
{ raise = true }
|
||||
)
|
||||
c:emit_signal("request::activate", "tasklist", { raise = true })
|
||||
end
|
||||
end),
|
||||
awful.button({}, 3, function()
|
||||
@@ -198,7 +217,8 @@ local tasklist_buttons = gears.table.join(
|
||||
end),
|
||||
awful.button({}, 5, function()
|
||||
awful.client.focus.byidx(-1)
|
||||
end))
|
||||
end)
|
||||
)
|
||||
|
||||
local function set_wallpaper(s)
|
||||
-- Wallpaper
|
||||
@@ -228,29 +248,38 @@ awful.screen.connect_for_each_screen(function(s)
|
||||
-- We need one layoutbox per screen.
|
||||
s.mylayoutbox = awful.widget.layoutbox(s)
|
||||
s.mylayoutbox:buttons(gears.table.join(
|
||||
awful.button({}, 1, function() awful.layout.inc(1) end),
|
||||
awful.button({}, 3, function() awful.layout.inc(-1) end),
|
||||
awful.button({}, 4, function() awful.layout.inc(1) end),
|
||||
awful.button({}, 5, function() awful.layout.inc(-1) end)))
|
||||
awful.button({}, 1, function()
|
||||
awful.layout.inc(1)
|
||||
end),
|
||||
awful.button({}, 3, function()
|
||||
awful.layout.inc(-1)
|
||||
end),
|
||||
awful.button({}, 4, function()
|
||||
awful.layout.inc(1)
|
||||
end),
|
||||
awful.button({}, 5, function()
|
||||
awful.layout.inc(-1)
|
||||
end)
|
||||
))
|
||||
-- Create a taglist widget
|
||||
s.mytaglist = awful.widget.taglist {
|
||||
s.mytaglist = awful.widget.taglist({
|
||||
screen = s,
|
||||
filter = awful.widget.taglist.filter.all,
|
||||
buttons = taglist_buttons
|
||||
}
|
||||
buttons = taglist_buttons,
|
||||
})
|
||||
|
||||
-- Create a tasklist widget
|
||||
s.mytasklist = awful.widget.tasklist {
|
||||
s.mytasklist = awful.widget.tasklist({
|
||||
screen = s,
|
||||
filter = awful.widget.tasklist.filter.currenttags,
|
||||
buttons = tasklist_buttons
|
||||
}
|
||||
buttons = tasklist_buttons,
|
||||
})
|
||||
|
||||
-- Create the wibox
|
||||
s.mywibox = awful.wibar({ position = "top", screen = s })
|
||||
|
||||
-- Add widgets to the wibox
|
||||
s.mywibox:setup {
|
||||
s.mywibox:setup({
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
@@ -274,12 +303,12 @@ awful.screen.connect_for_each_screen(function(s)
|
||||
show_current_level = true,
|
||||
size = 32,
|
||||
}),
|
||||
brightness_widget {
|
||||
program = 'brightnessctl',
|
||||
brightness_widget({
|
||||
program = "brightnessctl",
|
||||
step = 5,
|
||||
base = 60,
|
||||
tooltip = true,
|
||||
},
|
||||
}),
|
||||
weather_widget({
|
||||
api_key = API,
|
||||
coordinates = { latitude, longitude },
|
||||
@@ -290,13 +319,15 @@ awful.screen.connect_for_each_screen(function(s)
|
||||
mytextclock,
|
||||
s.mylayoutbox,
|
||||
},
|
||||
}
|
||||
})
|
||||
end)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
root.buttons(gears.table.join(
|
||||
awful.button({}, 3, function() mymainmenu:toggle() end),
|
||||
awful.button({}, 3, function()
|
||||
mymainmenu:toggle()
|
||||
end),
|
||||
awful.button({}, 4, awful.tag.viewnext),
|
||||
awful.button({}, 5, awful.tag.viewprev)
|
||||
))
|
||||
@@ -305,82 +336,104 @@ root.buttons(gears.table.join(
|
||||
-- {{{ Key bindings
|
||||
globalkeys = gears.table.join(
|
||||
|
||||
awful.key({}, "#233", function() brightness_widget:inc() end), -- increase brightness
|
||||
awful.key({}, "#232", function() brightness_widget:dec() end), -- decrease brightness
|
||||
awful.key({}, "#233", function()
|
||||
brightness_widget:inc()
|
||||
end), -- increase brightness
|
||||
awful.key({}, "#232", function()
|
||||
brightness_widget:dec()
|
||||
end), -- decrease brightness
|
||||
|
||||
awful.key({}, "#123", function() awful.spawn.with_shell("pulsemixer --change-volume +5") end), -- increase volume
|
||||
awful.key({}, "#122", function() awful.spawn.with_shell("pulsemixer --change-volume -5") end), -- decrease volume
|
||||
awful.key({}, "#121", function() awful.spawn.with_shell("pulsemixer --toggle-mute") end), -- mute
|
||||
awful.key({}, "#172", function() awful.spawn.with_shell("playerctl -a play-pause") end), -- play/pause
|
||||
awful.key({}, "#123", function()
|
||||
awful.spawn.with_shell("pulsemixer --change-volume +5")
|
||||
end), -- increase volume
|
||||
awful.key({}, "#122", function()
|
||||
awful.spawn.with_shell("pulsemixer --change-volume -5")
|
||||
end), -- decrease volume
|
||||
awful.key({}, "#121", function()
|
||||
awful.spawn.with_shell("pulsemixer --toggle-mute")
|
||||
end), -- mute
|
||||
awful.key({}, "#172", function()
|
||||
awful.spawn.with_shell("playerctl -a play-pause")
|
||||
end), -- play/pause
|
||||
|
||||
awful.key({ "Control" }, "#107", function() awful.spawn.with_shell("flameshot gui") end,
|
||||
{ description = "take region screenshot", group = "launcher" }), -- take region screenshot
|
||||
awful.key({ "Control" }, "#107", function()
|
||||
awful.spawn.with_shell("flameshot gui")
|
||||
end, { description = "take region screenshot", group = "launcher" }), -- take region screenshot
|
||||
|
||||
awful.key({ modkey }, "s", hotkeys_popup.show_help, { description = "show help", group = "awesome" }),
|
||||
awful.key({ modkey }, "Left", awful.tag.viewprev, { description = "view previous", group = "tag" }),
|
||||
awful.key({ modkey }, "Right", awful.tag.viewnext, { description = "view next", group = "tag" }),
|
||||
awful.key({ modkey }, "Escape", awful.tag.history.restore, { description = "go back", group = "tag" }),
|
||||
|
||||
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
|
||||
{ description = "show help", group = "awesome" }),
|
||||
awful.key({ modkey, }, "Left", awful.tag.viewprev,
|
||||
{ description = "view previous", group = "tag" }),
|
||||
awful.key({ modkey, }, "Right", awful.tag.viewnext,
|
||||
{ description = "view next", group = "tag" }),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
||||
{ description = "go back", group = "tag" }),
|
||||
|
||||
awful.key({ modkey, }, "j", function() awful.client.focus.byidx(1) end,
|
||||
{ description = "focus next by index", group = "client" }
|
||||
),
|
||||
awful.key({ modkey, }, "k", function() awful.client.focus.byidx(-1) end,
|
||||
{ description = "focus previous by index", group = "client" }
|
||||
),
|
||||
awful.key({ modkey, }, "w", function() mymainmenu:show() end,
|
||||
{ description = "show main menu", group = "awesome" }),
|
||||
awful.key({ modkey }, "j", function()
|
||||
awful.client.focus.byidx(1)
|
||||
end, { description = "focus next by index", group = "client" }),
|
||||
awful.key({ modkey }, "k", function()
|
||||
awful.client.focus.byidx(-1)
|
||||
end, { description = "focus previous by index", group = "client" }),
|
||||
awful.key({ modkey }, "w", function()
|
||||
mymainmenu:show()
|
||||
end, { description = "show main menu", group = "awesome" }),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end,
|
||||
{ description = "swap with next client by index", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end,
|
||||
{ description = "swap with previous client by index", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end,
|
||||
{ description = "focus the next screen", group = "screen" }),
|
||||
awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end,
|
||||
{ description = "focus the previous screen", group = "screen" }),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
|
||||
{ description = "jump to urgent client", group = "client" }),
|
||||
awful.key({ modkey, }, "Tab", function() awful.client.focus.history.previous()
|
||||
awful.key({ modkey, "Shift" }, "j", function()
|
||||
awful.client.swap.byidx(1)
|
||||
end, { description = "swap with next client by index", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "k", function()
|
||||
awful.client.swap.byidx(-1)
|
||||
end, { description = "swap with previous client by index", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "j", function()
|
||||
awful.screen.focus_relative(1)
|
||||
end, { description = "focus the next screen", group = "screen" }),
|
||||
awful.key({ modkey, "Control" }, "k", function()
|
||||
awful.screen.focus_relative(-1)
|
||||
end, { description = "focus the previous screen", group = "screen" }),
|
||||
awful.key({ modkey }, "u", awful.client.urgent.jumpto, { description = "jump to urgent client", group = "client" }),
|
||||
awful.key({ modkey }, "Tab", function()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{ description = "go back", group = "client" }),
|
||||
end, { description = "go back", group = "client" }),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function() awful.spawn(terminal) end,
|
||||
{ description = "open a terminal", group = "launcher" }),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart,
|
||||
{ description = "reload awesome", group = "awesome" }),
|
||||
awful.key({ modkey }, "Return", function()
|
||||
awful.spawn(terminal)
|
||||
end, { description = "open a terminal", group = "launcher" }),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart, { description = "reload awesome", group = "awesome" }),
|
||||
-- awful.key({ modkey, "Control" }, "q", awesome.quit,
|
||||
-- {description = "quit awesome", group = "awesome"}),
|
||||
awful.key({ modkey, }, "b", function() awful.spawn("firefox") end,
|
||||
{ description = "open firefox", group = "launcher" }),
|
||||
awful.key({ modkey, }, "n", function() awful.spawn("spacefm") end,
|
||||
{ description = "open spacefm", group = "launcher" }),
|
||||
awful.key({ modkey }, "b", function()
|
||||
awful.spawn("firefox")
|
||||
end, { description = "open firefox", group = "launcher" }),
|
||||
awful.key({ modkey }, "n", function()
|
||||
awful.spawn("spacefm")
|
||||
end, { description = "open spacefm", group = "launcher" }),
|
||||
|
||||
awful.key({ modkey, }, "l", function() awful.tag.incmwfact(0.05) end,
|
||||
{ description = "increase master width factor", group = "layout" }),
|
||||
awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end,
|
||||
{ description = "decrease master width factor", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1, nil, true) end,
|
||||
{ description = "increase the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1, nil, true) end,
|
||||
{ description = "decrease the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1, nil, true) end,
|
||||
{ description = "increase the number of columns", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1, nil, true) end,
|
||||
{ description = "decrease the number of columns", group = "layout" }),
|
||||
awful.key({ modkey, }, "space", function() awful.layout.inc(1) end,
|
||||
{ description = "select next", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(-1) end,
|
||||
{ description = "select previous", group = "layout" }),
|
||||
awful.key({ modkey }, "l", function()
|
||||
awful.tag.incmwfact(0.05)
|
||||
end, { description = "increase master width factor", group = "layout" }),
|
||||
awful.key({ modkey }, "h", function()
|
||||
awful.tag.incmwfact(-0.05)
|
||||
end, { description = "decrease master width factor", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "h", function()
|
||||
awful.tag.incnmaster(1, nil, true)
|
||||
end, { description = "increase the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "l", function()
|
||||
awful.tag.incnmaster(-1, nil, true)
|
||||
end, { description = "decrease the number of master clients", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "h", function()
|
||||
awful.tag.incncol(1, nil, true)
|
||||
end, { description = "increase the number of columns", group = "layout" }),
|
||||
awful.key({ modkey, "Control" }, "l", function()
|
||||
awful.tag.incncol(-1, nil, true)
|
||||
end, { description = "decrease the number of columns", group = "layout" }),
|
||||
awful.key({ modkey }, "space", function()
|
||||
awful.layout.inc(1)
|
||||
end, { description = "select next", group = "layout" }),
|
||||
awful.key({ modkey, "Shift" }, "space", function()
|
||||
awful.layout.inc(-1)
|
||||
end, { description = "select previous", group = "layout" }),
|
||||
|
||||
-- awful.key({ modkey, "Control" }, "n",
|
||||
-- function ()
|
||||
@@ -395,115 +448,106 @@ globalkeys = gears.table.join(
|
||||
-- {description = "restore minimized", group = "client"}),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r", function() awful.screen.focused().mypromptbox:run() end,
|
||||
{ description = "run prompt", group = "launcher" }),
|
||||
awful.key({ modkey }, "r", function()
|
||||
awful.screen.focused().mypromptbox:run()
|
||||
end, { description = "run prompt", group = "launcher" }),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function()
|
||||
awful.prompt.run {
|
||||
awful.key({ modkey }, "x", function()
|
||||
awful.prompt.run({
|
||||
prompt = "Run Lua code: ",
|
||||
textbox = awful.screen.focused().mypromptbox.widget,
|
||||
exe_callback = awful.util.eval,
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval"
|
||||
}
|
||||
end,
|
||||
{ description = "lua execute prompt", group = "awesome" }),
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval",
|
||||
})
|
||||
end, { description = "lua execute prompt", group = "awesome" }),
|
||||
-- Menubar
|
||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
||||
{ description = "show the menubar", group = "launcher" })
|
||||
awful.key({ modkey }, "p", function()
|
||||
menubar.show()
|
||||
end, { description = "show the menubar", group = "launcher" })
|
||||
)
|
||||
|
||||
clientkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "f",
|
||||
function(c)
|
||||
awful.key({ modkey }, "f", function(c)
|
||||
c.fullscreen = not c.fullscreen
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "toggle fullscreen", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "q", function(c) c:kill() end,
|
||||
{ description = "close", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle,
|
||||
{ description = "toggle floating", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end,
|
||||
{ description = "move to master", group = "client" }),
|
||||
awful.key({ modkey, }, "o", function(c) c:move_to_screen() end,
|
||||
{ description = "move to screen", group = "client" }),
|
||||
awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end,
|
||||
{ description = "toggle keep on top", group = "client" }),
|
||||
awful.key({ modkey, }, "n",
|
||||
function(c)
|
||||
end, { description = "toggle fullscreen", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "q", function(c)
|
||||
c:kill()
|
||||
end, { description = "close", group = "client" }),
|
||||
awful.key(
|
||||
{ modkey, "Control" },
|
||||
"space",
|
||||
awful.client.floating.toggle,
|
||||
{ description = "toggle floating", group = "client" }
|
||||
),
|
||||
awful.key({ modkey, "Control" }, "Return", function(c)
|
||||
c:swap(awful.client.getmaster())
|
||||
end, { description = "move to master", group = "client" }),
|
||||
awful.key({ modkey }, "o", function(c)
|
||||
c:move_to_screen()
|
||||
end, { description = "move to screen", group = "client" }),
|
||||
awful.key({ modkey }, "t", function(c)
|
||||
c.ontop = not c.ontop
|
||||
end, { description = "toggle keep on top", group = "client" }),
|
||||
awful.key({ modkey }, "n", function(c)
|
||||
-- The client currently has the input focus, so it cannot be
|
||||
-- minimized, since minimized clients can't have the focus.
|
||||
c.minimized = true
|
||||
end,
|
||||
{ description = "minimize", group = "client" }),
|
||||
awful.key({ modkey, }, "m",
|
||||
function(c)
|
||||
end, { description = "minimize", group = "client" }),
|
||||
awful.key({ modkey }, "m", function(c)
|
||||
c.maximized = not c.maximized
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "(un)maximize", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "m",
|
||||
function(c)
|
||||
end, { description = "(un)maximize", group = "client" }),
|
||||
awful.key({ modkey, "Control" }, "m", function(c)
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "(un)maximize vertically", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "m",
|
||||
function(c)
|
||||
end, { description = "(un)maximize vertically", group = "client" }),
|
||||
awful.key({ modkey, "Shift" }, "m", function(c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c:raise()
|
||||
end,
|
||||
{ description = "(un)maximize horizontally", group = "client" })
|
||||
end, { description = "(un)maximize horizontally", group = "client" })
|
||||
)
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, 9 do
|
||||
globalkeys = gears.table.join(globalkeys,
|
||||
globalkeys = gears.table.join(
|
||||
globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey }, "#" .. i + 9, function()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
tag:view_only()
|
||||
end
|
||||
end,
|
||||
{ description = "view tag #" .. i, group = "tag" }),
|
||||
end, { description = "view tag #" .. i, group = "tag" }),
|
||||
-- Toggle tag display.
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9, function()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end,
|
||||
{ description = "toggle tag #" .. i, group = "tag" }),
|
||||
end, { description = "toggle tag #" .. i, group = "tag" }),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9, function()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:move_to_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{ description = "move focused client to tag #" .. i, group = "tag" }),
|
||||
end, { description = "move focused client to tag #" .. i, group = "tag" }),
|
||||
-- Toggle tag on focused client.
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function()
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:toggle_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{ description = "toggle focused client on tag #" .. i, group = "tag" })
|
||||
end, { description = "toggle focused client on tag #" .. i, group = "tag" })
|
||||
)
|
||||
end
|
||||
|
||||
@@ -529,8 +573,10 @@ root.keys(globalkeys)
|
||||
-- Rules to apply to new clients (through the "manage" signal).
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = {},
|
||||
properties = { border_width = beautiful.border_width,
|
||||
{
|
||||
rule = {},
|
||||
properties = {
|
||||
border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
@@ -538,11 +584,12 @@ awful.rules.rules = {
|
||||
-- buttons = clientbuttons,
|
||||
screen = awful.screen.preferred,
|
||||
--placement = awful.placement.no_overlap+awful.placement.no_offscreen
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
-- Floating clients.
|
||||
{ rule_any = {
|
||||
{
|
||||
rule_any = {
|
||||
instance = {
|
||||
"DTA", -- Firefox addon DownThemAll.
|
||||
"copyq", -- Includes session name in class.
|
||||
@@ -554,7 +601,8 @@ awful.rules.rules = {
|
||||
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
||||
"Wpa_gui",
|
||||
"veromix",
|
||||
"xtightvncviewer" },
|
||||
"xtightvncviewer",
|
||||
},
|
||||
|
||||
-- Note that the name property shown in xprop might be set slightly after creation of the client
|
||||
-- and the name shown there might not match defined rules here.
|
||||
@@ -565,28 +613,31 @@ awful.rules.rules = {
|
||||
"AlarmWindow", -- Thunderbird's calendar.
|
||||
"ConfigManager", -- Thunderbird's about:config.
|
||||
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||
}
|
||||
}, properties = { floating = true, beautiful.useless } },
|
||||
},
|
||||
},
|
||||
properties = { floating = true, beautiful.useless },
|
||||
},
|
||||
|
||||
-- Add titlebars to normal clients and dialogs
|
||||
{ rule_any = { type = { "normal", "dialog" }
|
||||
}, properties = { titlebars_enabled = false }
|
||||
},
|
||||
{ rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = false } },
|
||||
|
||||
{
|
||||
rule_any = {
|
||||
class = { "tuxedo-control-center", "corectrl" }
|
||||
}, properties = { screen = 1, tag = "7" }
|
||||
class = { "tuxedo-control-center", "corectrl" },
|
||||
},
|
||||
properties = { screen = 1, tag = "7" },
|
||||
},
|
||||
{
|
||||
rule_any = {
|
||||
class = { "Thunderbird", "discord", "ripcord", "TelegramDesktop" }
|
||||
}, properties = { screen = 1, tag = "8" }
|
||||
class = { "Thunderbird", "discord", "ripcord", "TelegramDesktop" },
|
||||
},
|
||||
properties = { screen = 1, tag = "8" },
|
||||
},
|
||||
{
|
||||
rule_any = {
|
||||
class = { "spotify", "Spotify" },
|
||||
}, properties = { screen = 1, tag = "9" }
|
||||
},
|
||||
properties = { screen = 1, tag = "9" },
|
||||
},
|
||||
|
||||
-- Set Firefox to always map on the tag named "2" on screen 1.
|
||||
@@ -602,9 +653,7 @@ client.connect_signal("manage", function(c)
|
||||
-- i.e. put it at the end of others instead of setting it master.
|
||||
-- if not awesome.startup then awful.client.setslave(c) end
|
||||
|
||||
if awesome.startup
|
||||
and not c.size_hints.user_position
|
||||
and not c.size_hints.program_position then
|
||||
if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
|
||||
-- Prevent clients from being unreachable after screen count changes.
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
@@ -624,19 +673,19 @@ client.connect_signal("request::titlebars", function(c)
|
||||
end)
|
||||
)
|
||||
|
||||
awful.titlebar(c):setup {
|
||||
awful.titlebar(c):setup({
|
||||
{ -- Left
|
||||
awful.titlebar.widget.iconwidget(c),
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
{ -- Middle
|
||||
{ -- Title
|
||||
align = "center",
|
||||
widget = awful.titlebar.widget.titlewidget(c)
|
||||
widget = awful.titlebar.widget.titlewidget(c),
|
||||
},
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.flex.horizontal
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
},
|
||||
{ -- Right
|
||||
awful.titlebar.widget.floatingbutton(c),
|
||||
@@ -644,10 +693,10 @@ client.connect_signal("request::titlebars", function(c)
|
||||
awful.titlebar.widget.stickybutton(c),
|
||||
awful.titlebar.widget.ontopbutton(c),
|
||||
awful.titlebar.widget.closebutton(c),
|
||||
layout = wibox.layout.fixed.horizontal()
|
||||
layout = wibox.layout.fixed.horizontal(),
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
layout = wibox.layout.align.horizontal,
|
||||
})
|
||||
end)
|
||||
|
||||
-- Enable sloppy focus, so that focus follows mouse.
|
||||
@@ -655,11 +704,14 @@ client.connect_signal("mouse::enter", function(c)
|
||||
c:emit_signal("request::activate", "mouse_enter", { raise = false })
|
||||
end)
|
||||
|
||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
client.connect_signal("focus", function(c)
|
||||
c.border_color = beautiful.border_focus
|
||||
end)
|
||||
client.connect_signal("unfocus", function(c)
|
||||
c.border_color = beautiful.border_normal
|
||||
end)
|
||||
-- }}}
|
||||
|
||||
|
||||
-- Autostart Applications
|
||||
awful.spawn.with_shell("picom --experimental-backends")
|
||||
awful.spawn.with_shell("setxkbmap lv")
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
require ('user.options')
|
||||
require ('user.keymaps')
|
||||
require ('user.plugins')
|
||||
require ('user.colorscheme')
|
||||
require ('user.cmp')
|
||||
require ('user.lsp')
|
||||
require ('user.telescope')
|
||||
require ('user.treesitter')
|
||||
require ('user.autopairs')
|
||||
require ('user.comment')
|
||||
require ('user.gitsigns')
|
||||
require ('user.nvim-tree')
|
||||
require ('user.bufferline')
|
||||
require ('user.lualine')
|
||||
require ('user.toggleterm')
|
||||
require ('user.project')
|
||||
require ('user.impatient')
|
||||
require ('user.indentline')
|
||||
require ('user.alpha')
|
||||
require ('user.whichkey')
|
||||
require ('user.autocommands')
|
||||
require("user.options")
|
||||
require("user.keymaps")
|
||||
require("user.plugins")
|
||||
require("user.colorscheme")
|
||||
require("user.cmp")
|
||||
require("user.lsp")
|
||||
require("user.telescope")
|
||||
require("user.treesitter")
|
||||
require("user.autopairs")
|
||||
require("user.comment")
|
||||
require("user.gitsigns")
|
||||
require("user.nvim-tree")
|
||||
require("user.bufferline")
|
||||
require("user.lualine")
|
||||
require("user.toggleterm")
|
||||
require("user.project")
|
||||
require("user.impatient")
|
||||
require("user.indentline")
|
||||
require("user.alpha")
|
||||
require("user.whichkey")
|
||||
require("user.autocommands")
|
||||
require("user.colorizer")
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
local status_ok, alpha = pcall(require, 'alpha')
|
||||
local status_ok, alpha = pcall(require, "alpha")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local dashboard = require('alpha.themes.dashboard')
|
||||
local dashboard = require("alpha.themes.dashboard")
|
||||
dashboard.section.header.val = {
|
||||
[[ __ ]],
|
||||
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
|
||||
@@ -13,29 +13,29 @@ dashboard.section.header.val = {
|
||||
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
|
||||
}
|
||||
dashboard.section.buttons.val = {
|
||||
dashboard.button('f', ' Find file', ':Telescope find_files <CR>'),
|
||||
dashboard.button('e', ' New file', ':ene <BAR> startinsert <CR>'),
|
||||
dashboard.button('p', ' Find project', ':Telescope projects <CR>'),
|
||||
dashboard.button('r', ' Recently used files', ':Telescope oldfiles <CR>'),
|
||||
dashboard.button('t', ' Find text', ':Telescope live_grep <CR>'),
|
||||
dashboard.button('c', ' Configuration', ':e ~/.config/nvim/init.lua <CR>'),
|
||||
dashboard.button('q', ' Quit Neovim', ':qa<CR>'),
|
||||
dashboard.button("f", " Find file", ":Telescope find_files <CR>"),
|
||||
dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
|
||||
dashboard.button("p", " Find project", ":Telescope projects <CR>"),
|
||||
dashboard.button("r", " Recently used files", ":Telescope oldfiles <CR>"),
|
||||
dashboard.button("t", " Find text", ":Telescope live_grep <CR>"),
|
||||
dashboard.button("c", " Configuration", ":e ~/.config/nvim/init.lua <CR>"),
|
||||
dashboard.button("q", " Quit Neovim", ":qa<CR>"),
|
||||
}
|
||||
|
||||
local function footer()
|
||||
-- NOTE: requires the fortune-mod package to work
|
||||
-- NOTE: requires the fortune-mod package to work
|
||||
-- local handle = io.popen('fortune')
|
||||
-- local fortune = handle:read('*a')
|
||||
-- handle:close()
|
||||
-- return fortune
|
||||
return 'chrisatmachine.com'
|
||||
return "chrisatmachine.com"
|
||||
end
|
||||
|
||||
dashboard.section.footer.val = footer()
|
||||
|
||||
dashboard.section.footer.opts.hl = 'Type'
|
||||
dashboard.section.header.opts.hl = 'Include'
|
||||
dashboard.section.buttons.opts.hl = 'Keyword'
|
||||
dashboard.section.footer.opts.hl = "Type"
|
||||
dashboard.section.header.opts.hl = "Include"
|
||||
dashboard.section.buttons.opts.hl = "Keyword"
|
||||
|
||||
dashboard.opts.opts.noautocmd = true
|
||||
-- vim.cmd([[autocmd User AlphaReady echo 'ready']])
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
vim.cmd [[
|
||||
vim.cmd([[
|
||||
augroup _general_settings
|
||||
autocmd!
|
||||
autocmd FileType qf,help,man,lspinfo nnoremap <silent> <buffer> q :close<CR>
|
||||
autocmd TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200})
|
||||
autocmd BufWinEnter * :set formatoptions-=cro
|
||||
autocmd FileType qf set nobuflisted
|
||||
autocmd BufWritePre * %s/\s\+$//e
|
||||
autocmd InsertEnter * norm zz
|
||||
highlight CursorLine ctermbg=White cterm=bold guibg=#222222
|
||||
highlight CursorColumn ctermbg=White cterm=bold guibg=#222222
|
||||
augroup end
|
||||
|
||||
augroup _git
|
||||
@@ -28,16 +32,16 @@ vim.cmd [[
|
||||
autocmd!
|
||||
autocmd User AlphaReady set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2
|
||||
augroup end
|
||||
]]
|
||||
|
||||
-- Autoformat
|
||||
-- augroup _lsp
|
||||
-- autocmd!
|
||||
-- autocmd BufWritePre * lua vim.lsp.buf.formatting()
|
||||
-- augroup end
|
||||
augroup _lsp
|
||||
autocmd!
|
||||
autocmd BufWritePre,InsertLeave * lua vim.lsp.buf.formatting()
|
||||
augroup end
|
||||
|
||||
-- " Verticaly center document when entering insert mode
|
||||
-- autocmd InsertEnter * norm zz
|
||||
|
||||
-- " Remove trailing whitespace on save
|
||||
-- autocmd BufWritePre * %s/\s\+$//e
|
||||
augroup _run
|
||||
autocmd!
|
||||
autocmd FileType python map <buffer> <C-b> <cmd>w<CR><cmd>exec '!python3' shellescape(@%, 1)<CR>
|
||||
autocmd FileType rust imap <buffer> <C-b> <esc><cmd>w<CR><cmd>exec '!cargo run'<CR>
|
||||
autocmd FileType rust map <buffer> <C-b> <cmd>w<CR><cmd>exec '!cargo run'<CR>
|
||||
augroup end
|
||||
]])
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
-- Setup nvim-cmp.
|
||||
local status_ok, npairs = pcall(require, 'nvim-autopairs')
|
||||
local status_ok, npairs = pcall(require, "nvim-autopairs")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
npairs.setup {
|
||||
npairs.setup({
|
||||
check_ts = true,
|
||||
ts_config = {
|
||||
lua = { 'string', 'source' },
|
||||
javascript = { 'string', 'template_string' },
|
||||
lua = { "string", "source" },
|
||||
javascript = { "string", "template_string" },
|
||||
java = false,
|
||||
},
|
||||
disable_filetype = { 'TelescopePrompt', 'spectre_panel' },
|
||||
disable_filetype = { "TelescopePrompt", "spectre_panel" },
|
||||
fast_wrap = {
|
||||
map = '<M-e>',
|
||||
chars = { '{', '[', '(', "'", '"' },
|
||||
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], '%s+', ''),
|
||||
map = "<M-e>",
|
||||
chars = { "{", "[", "(", "'", '"' },
|
||||
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
|
||||
offset = 0, -- Offset from pattern match
|
||||
end_key = '$',
|
||||
keys = 'qwertyuiopzxcvbnmasdfghjkl',
|
||||
end_key = "$",
|
||||
keys = "qwertyuiopzxcvbnmasdfghjkl",
|
||||
check_comma = true,
|
||||
highlight = 'PmenuSel',
|
||||
highlight_grey = 'LineNr',
|
||||
highlight = "PmenuSel",
|
||||
highlight_grey = "LineNr",
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
|
||||
local cmp_status_ok, cmp = pcall(require, 'cmp')
|
||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||
local cmp_status_ok, cmp = pcall(require, "cmp")
|
||||
if not cmp_status_ok then
|
||||
return
|
||||
end
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done { map_char = { tex = '' } })
|
||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
local status_ok, bufferline = pcall(require, 'bufferline')
|
||||
local status_ok, bufferline = pcall(require, "bufferline")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
bufferline.setup {
|
||||
bufferline.setup({
|
||||
options = {
|
||||
numbers = 'none', -- | 'ordinal' | 'buffer_id' | 'both' | function({ ordinal, id, lower, raise }): string,
|
||||
close_command = 'Bdelete! %d', -- can be a string | function, see 'Mouse actions'
|
||||
right_mouse_command = 'Bdelete! %d', -- can be a string | function, see 'Mouse actions'
|
||||
left_mouse_command = 'buffer %d', -- can be a string | function, see 'Mouse actions'
|
||||
numbers = "none", -- | 'ordinal' | 'buffer_id' | 'both' | function({ ordinal, id, lower, raise }): string,
|
||||
close_command = "Bdelete! %d", -- can be a string | function, see 'Mouse actions'
|
||||
right_mouse_command = "Bdelete! %d", -- can be a string | function, see 'Mouse actions'
|
||||
left_mouse_command = "buffer %d", -- can be a string | function, see 'Mouse actions'
|
||||
middle_mouse_command = nil, -- can be a string | function, see 'Mouse actions'
|
||||
-- NOTE: this plugin is designed with this icon in mind,
|
||||
-- and so changing this is NOT recommended, this is intended
|
||||
-- as an escape hatch for people who cannot bear it for whatever reason
|
||||
indicator_icon = '▎',
|
||||
buffer_close_icon = '',
|
||||
indicator_icon = "▎",
|
||||
buffer_close_icon = "",
|
||||
-- buffer_close_icon = '',
|
||||
modified_icon = '●',
|
||||
close_icon = '',
|
||||
modified_icon = "●",
|
||||
close_icon = "",
|
||||
-- close_icon = '',
|
||||
left_trunc_marker = '',
|
||||
right_trunc_marker = '',
|
||||
left_trunc_marker = "",
|
||||
right_trunc_marker = "",
|
||||
--- name_formatter can be used to change the buffer's label in the bufferline.
|
||||
--- Please note some names can/will break the
|
||||
--- bufferline so use this at your discretion knowing that it has
|
||||
@@ -55,7 +55,7 @@ bufferline.setup {
|
||||
-- return true
|
||||
-- end
|
||||
-- end,
|
||||
offsets = { { filetype = 'NvimTree', text = '', padding = 1 } },
|
||||
offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
|
||||
show_buffer_icons = true,
|
||||
show_buffer_close_icons = true,
|
||||
show_close_icon = true,
|
||||
@@ -63,7 +63,7 @@ bufferline.setup {
|
||||
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
|
||||
-- can also be a table containing 2 custom separators
|
||||
-- [focused and unfocused]. eg: { '|', '|' }
|
||||
separator_style = 'thin', -- | 'thick' | 'thin' | { 'any', 'any' },
|
||||
separator_style = "thin", -- | 'thick' | 'thin' | { 'any', 'any' },
|
||||
enforce_regular_tabs = true,
|
||||
always_show_bufferline = true,
|
||||
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
|
||||
@@ -73,12 +73,12 @@ bufferline.setup {
|
||||
},
|
||||
highlights = {
|
||||
fill = {
|
||||
guifg = { attribute = 'fg', highlight = '#ff0000' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "#ff0000" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
background = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
|
||||
-- buffer_selected = {
|
||||
@@ -87,17 +87,17 @@ bufferline.setup {
|
||||
-- gui = 'none'
|
||||
-- },
|
||||
buffer_visible = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
|
||||
close_button = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
close_button_visible = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
-- close_button_selected = {
|
||||
-- guifg = {attribute='fg',highlight='TabLineSel'},
|
||||
@@ -105,63 +105,63 @@ bufferline.setup {
|
||||
-- },
|
||||
|
||||
tab_selected = {
|
||||
guifg = { attribute = 'fg', highlight = 'Normal' },
|
||||
guibg = { attribute = 'bg', highlight = 'Normal' },
|
||||
guifg = { attribute = "fg", highlight = "Normal" },
|
||||
guibg = { attribute = "bg", highlight = "Normal" },
|
||||
},
|
||||
tab = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
tab_close = {
|
||||
-- guifg = {attribute='fg',highlight='LspDiagnosticsDefaultError'},
|
||||
guifg = { attribute = 'fg', highlight = 'TabLineSel' },
|
||||
guibg = { attribute = 'bg', highlight = 'Normal' },
|
||||
guifg = { attribute = "fg", highlight = "TabLineSel" },
|
||||
guibg = { attribute = "bg", highlight = "Normal" },
|
||||
},
|
||||
|
||||
duplicate_selected = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLineSel' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLineSel' },
|
||||
gui = 'italic',
|
||||
guifg = { attribute = "fg", highlight = "TabLineSel" },
|
||||
guibg = { attribute = "bg", highlight = "TabLineSel" },
|
||||
gui = "italic",
|
||||
},
|
||||
duplicate_visible = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
gui = 'italic',
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
gui = "italic",
|
||||
},
|
||||
duplicate = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
gui = 'italic',
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
gui = "italic",
|
||||
},
|
||||
|
||||
modified = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
modified_selected = {
|
||||
guifg = { attribute = 'fg', highlight = 'Normal' },
|
||||
guibg = { attribute = 'bg', highlight = 'Normal' },
|
||||
guifg = { attribute = "fg", highlight = "Normal" },
|
||||
guibg = { attribute = "bg", highlight = "Normal" },
|
||||
},
|
||||
modified_visible = {
|
||||
guifg = { attribute = 'fg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "fg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
|
||||
separator = {
|
||||
guifg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guibg = { attribute = 'bg', highlight = 'TabLine' },
|
||||
guifg = { attribute = "bg", highlight = "TabLine" },
|
||||
guibg = { attribute = "bg", highlight = "TabLine" },
|
||||
},
|
||||
separator_selected = {
|
||||
guifg = { attribute = 'bg', highlight = 'Normal' },
|
||||
guibg = { attribute = 'bg', highlight = 'Normal' },
|
||||
guifg = { attribute = "bg", highlight = "Normal" },
|
||||
guibg = { attribute = "bg", highlight = "Normal" },
|
||||
},
|
||||
-- separator_visible = {
|
||||
-- guifg = {attribute='bg',highlight='TabLine'},
|
||||
-- guibg = {attribute='bg',highlight='TabLine'}
|
||||
-- },
|
||||
indicator_selected = {
|
||||
guifg = { attribute = 'fg', highlight = 'LspDiagnosticsDefaultHint' },
|
||||
guibg = { attribute = 'bg', highlight = 'Normal' },
|
||||
guifg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" },
|
||||
guibg = { attribute = "bg", highlight = "Normal" },
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,71 +1,71 @@
|
||||
local cmp_status_ok, cmp = pcall(require, 'cmp')
|
||||
local cmp_status_ok, cmp = pcall(require, "cmp")
|
||||
if not cmp_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local snip_status_ok, luasnip = pcall(require, 'luasnip')
|
||||
local snip_status_ok, luasnip = pcall(require, "luasnip")
|
||||
if not snip_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
require('luasnip/loaders/from_vscode').lazy_load()
|
||||
require("luasnip/loaders/from_vscode").lazy_load()
|
||||
|
||||
local check_backspace = function()
|
||||
local col = vim.fn.col '.' - 1
|
||||
return col == 0 or vim.fn.getline('.'):sub(col, col):match '%s'
|
||||
local col = vim.fn.col(".") - 1
|
||||
return col == 0 or vim.fn.getline("."):sub(col, col):match("%s")
|
||||
end
|
||||
|
||||
-- פּ ﯟ some other good icons
|
||||
local kind_icons = {
|
||||
Text = '',
|
||||
Method = 'm',
|
||||
Function = '',
|
||||
Constructor = '',
|
||||
Field = '',
|
||||
Variable = '',
|
||||
Class = '',
|
||||
Interface = '',
|
||||
Module = '',
|
||||
Property = '',
|
||||
Unit = '',
|
||||
Value = '',
|
||||
Enum = '',
|
||||
Keyword = '',
|
||||
Snippet = '',
|
||||
Color = '',
|
||||
File = '',
|
||||
Reference = '',
|
||||
Folder = '',
|
||||
EnumMember = '',
|
||||
Constant = '',
|
||||
Struct = '',
|
||||
Event = '',
|
||||
Operator = '',
|
||||
TypeParameter = '',
|
||||
Text = "",
|
||||
Method = "m",
|
||||
Function = "",
|
||||
Constructor = "",
|
||||
Field = "",
|
||||
Variable = "",
|
||||
Class = "",
|
||||
Interface = "",
|
||||
Module = "",
|
||||
Property = "",
|
||||
Unit = "",
|
||||
Value = "",
|
||||
Enum = "",
|
||||
Keyword = "",
|
||||
Snippet = "",
|
||||
Color = "",
|
||||
File = "",
|
||||
Reference = "",
|
||||
Folder = "",
|
||||
EnumMember = "",
|
||||
Constant = "",
|
||||
Struct = "",
|
||||
Event = "",
|
||||
Operator = "",
|
||||
TypeParameter = "",
|
||||
}
|
||||
-- find more here: https://www.nerdfonts.com/cheat-sheet
|
||||
|
||||
cmp.setup {
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
['<C-k>'] = cmp.mapping.select_prev_item(),
|
||||
['<C-j>'] = cmp.mapping.select_next_item(),
|
||||
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-1), { 'i', 'c' }),
|
||||
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(1), { 'i', 'c' }),
|
||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||
['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||
['<C-e>'] = cmp.mapping {
|
||||
["<C-k>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-j>"] = cmp.mapping.select_next_item(),
|
||||
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
||||
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
||||
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
||||
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||
["<C-e>"] = cmp.mapping({
|
||||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
},
|
||||
}),
|
||||
-- Accept currently selected item. If none selected, `select` first item.
|
||||
-- Set `select` to `false` to only confirm explicitly selected items.
|
||||
['<CR>'] = cmp.mapping.confirm { select = true },
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expandable() then
|
||||
@@ -78,10 +78,10 @@ cmp.setup {
|
||||
fallback()
|
||||
end
|
||||
end, {
|
||||
'i',
|
||||
's',
|
||||
"i",
|
||||
"s",
|
||||
}),
|
||||
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
@@ -90,30 +90,32 @@ cmp.setup {
|
||||
fallback()
|
||||
end
|
||||
end, {
|
||||
'i',
|
||||
's',
|
||||
"i",
|
||||
"s",
|
||||
}),
|
||||
},
|
||||
formatting = {
|
||||
fields = { 'kind', 'abbr', 'menu' },
|
||||
fields = { "kind", "abbr", "menu" },
|
||||
format = function(entry, vim_item)
|
||||
-- Kind icons
|
||||
vim_item.kind = string.format('%s', kind_icons[vim_item.kind])
|
||||
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
|
||||
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
|
||||
vim_item.menu = ({
|
||||
nvim_lsp = '[LSP]',
|
||||
luasnip = '[Snippet]',
|
||||
buffer = '[Buffer]',
|
||||
path = '[Path]',
|
||||
nvim_lsp = "[LSP]",
|
||||
nvim_lua = "[NVIM_LUA]",
|
||||
luasnip = "[Snippet]",
|
||||
buffer = "[Buffer]",
|
||||
path = "[Path]",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'buffer' },
|
||||
{ name = 'path' },
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "nvim_lua" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "buffer" },
|
||||
{ name = "path" },
|
||||
},
|
||||
confirm_opts = {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
@@ -121,11 +123,11 @@ cmp.setup {
|
||||
},
|
||||
window = {
|
||||
documentation = {
|
||||
border = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' },
|
||||
border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
|
||||
},
|
||||
},
|
||||
experimental = {
|
||||
ghost_text = false,
|
||||
native_menu = false,
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
6
.config/nvim/lua/user/colorizer.lua
Normal file
6
.config/nvim/lua/user/colorizer.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
local status_ok, colorizer = pcall(require, "colorizer")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
colorizer.setup()
|
||||
@@ -1,8 +1,8 @@
|
||||
vim.cmd [[
|
||||
vim.cmd([[
|
||||
try
|
||||
colorscheme dracula
|
||||
catch /^Vim\%((\a\+)\)\=:E185/
|
||||
colorscheme default
|
||||
set background=dark
|
||||
endtry
|
||||
]]
|
||||
]])
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
local status_ok, comment = pcall(require, 'Comment')
|
||||
local status_ok, comment = pcall(require, "Comment")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
comment.setup {
|
||||
comment.setup({
|
||||
pre_hook = function(ctx)
|
||||
local U = require 'Comment.utils'
|
||||
local U = require("Comment.utils")
|
||||
|
||||
local location = nil
|
||||
if ctx.ctype == U.ctype.block then
|
||||
location = require('ts_context_commentstring.utils').get_cursor_location()
|
||||
location = require("ts_context_commentstring.utils").get_cursor_location()
|
||||
elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then
|
||||
location = require('ts_context_commentstring.utils').get_visual_start_location()
|
||||
location = require("ts_context_commentstring.utils").get_visual_start_location()
|
||||
end
|
||||
|
||||
return require('ts_context_commentstring.internal').calculate_commentstring {
|
||||
key = ctx.ctype == U.ctype.line and '__default' or '__multiline',
|
||||
return require("ts_context_commentstring.internal").calculate_commentstring({
|
||||
key = ctx.ctype == U.ctype.line and "__default" or "__multiline",
|
||||
location = location,
|
||||
}
|
||||
})
|
||||
end,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
local status_ok, gitsigns = pcall(require, 'gitsigns')
|
||||
local status_ok, gitsigns = pcall(require, "gitsigns")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
gitsigns.setup {
|
||||
gitsigns.setup({
|
||||
signs = {
|
||||
add = { hl = 'GitSignsAdd', text = '▎', numhl = 'GitSignsAddNr', linehl = 'GitSignsAddLn' },
|
||||
change = { hl = 'GitSignsChange', text = '▎', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' },
|
||||
delete = { hl = 'GitSignsDelete', text = '契', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' },
|
||||
topdelete = { hl = 'GitSignsDelete', text = '契', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' },
|
||||
changedelete = { hl = 'GitSignsChange', text = '▎', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' },
|
||||
add = { hl = "GitSignsAdd", text = "▎", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
|
||||
change = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
||||
delete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
||||
topdelete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
||||
changedelete = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
||||
},
|
||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||
@@ -23,7 +23,7 @@ gitsigns.setup {
|
||||
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
ignore_whitespace = false,
|
||||
},
|
||||
@@ -36,13 +36,13 @@ gitsigns.setup {
|
||||
max_file_length = 40000,
|
||||
preview_config = {
|
||||
-- Options passed to nvim_open_win
|
||||
border = 'single',
|
||||
style = 'minimal',
|
||||
relative = 'cursor',
|
||||
border = "single",
|
||||
style = "minimal",
|
||||
relative = "cursor",
|
||||
row = 0,
|
||||
col = 1,
|
||||
},
|
||||
yadm = {
|
||||
enable = false,
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
local status_ok, impatient = pcall(require, 'impatient')
|
||||
local status_ok, impatient = pcall(require, "impatient")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -1,64 +1,64 @@
|
||||
local g = vim.g
|
||||
local opt = vim.opt
|
||||
local cmd = vim.cmd
|
||||
local status_ok, indent_blankline = pcall(require, 'indent_blankline')
|
||||
local status_ok, indent_blankline = pcall(require, "indent_blankline")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
g.indent_blankline_buftype_exclude = { 'terminal', 'nofile' }
|
||||
g.indent_blankline_buftype_exclude = { "terminal", "nofile" }
|
||||
g.indent_blankline_filetype_exclude = {
|
||||
'help',
|
||||
'startify',
|
||||
'dashboard',
|
||||
'packer',
|
||||
'neogitstatus',
|
||||
'NvimTree',
|
||||
'Trouble',
|
||||
"help",
|
||||
"startify",
|
||||
"dashboard",
|
||||
"packer",
|
||||
"neogitstatus",
|
||||
"NvimTree",
|
||||
"Trouble",
|
||||
}
|
||||
g.indentLine_enabled = 1
|
||||
-- g.indent_blankline_char = '│'
|
||||
g.indent_blankline_char = '▏'
|
||||
g.indent_blankline_char = "▏"
|
||||
-- g.indent_blankline_char = '▎'
|
||||
g.indent_blankline_show_trailing_blankline_indent = false
|
||||
g.indent_blankline_show_first_indent_level = true
|
||||
g.indent_blankline_use_treesitter = true
|
||||
g.indent_blankline_show_current_context = true
|
||||
g.indent_blankline_context_patterns = {
|
||||
'class',
|
||||
'return',
|
||||
'function',
|
||||
'method',
|
||||
'^if',
|
||||
'^while',
|
||||
'jsx_element',
|
||||
'^for',
|
||||
'^object',
|
||||
'^table',
|
||||
'block',
|
||||
'arguments',
|
||||
'if_statement',
|
||||
'else_clause',
|
||||
'jsx_element',
|
||||
'jsx_self_closing_element',
|
||||
'try_statement',
|
||||
'catch_clause',
|
||||
'import_statement',
|
||||
'operation_type',
|
||||
"class",
|
||||
"return",
|
||||
"function",
|
||||
"method",
|
||||
"^if",
|
||||
"^while",
|
||||
"jsx_element",
|
||||
"^for",
|
||||
"^object",
|
||||
"^table",
|
||||
"block",
|
||||
"arguments",
|
||||
"if_statement",
|
||||
"else_clause",
|
||||
"jsx_element",
|
||||
"jsx_self_closing_element",
|
||||
"try_statement",
|
||||
"catch_clause",
|
||||
"import_statement",
|
||||
"operation_type",
|
||||
}
|
||||
-- HACK: work-around for https://github.com/lukas-reineke/indent-blankline.nvim/issues/59
|
||||
vim.wo.colorcolumn = '99999'
|
||||
vim.wo.colorcolumn = "99999"
|
||||
|
||||
-- cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]]
|
||||
-- cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]]
|
||||
-- cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]]
|
||||
-- cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]]
|
||||
-- cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]]
|
||||
-- cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]]
|
||||
-- opt.list = true
|
||||
-- opt.listchars:append 'space:⋅'
|
||||
cmd([[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]])
|
||||
cmd([[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]])
|
||||
cmd([[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]])
|
||||
cmd([[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]])
|
||||
cmd([[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]])
|
||||
cmd([[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]])
|
||||
opt.list = true
|
||||
opt.listchars:append("space:⋅")
|
||||
-- opt.listchars:append 'space:'
|
||||
-- opt.listchars:append 'eol:↴'
|
||||
opt.listchars:append("eol:↴")
|
||||
|
||||
indent_blankline.setup({
|
||||
-- show_end_of_line = true,
|
||||
|
||||
@@ -3,9 +3,9 @@ local opts = { noremap = true, silent = true }
|
||||
local term_opts = { silent = true }
|
||||
|
||||
--Remap space as leader key
|
||||
keymap('', '<Space>', '<Nop>', opts)
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
keymap("", "<Space>", "<Nop>", opts)
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Modes
|
||||
-- normal_mode = 'n',
|
||||
@@ -17,45 +17,45 @@ vim.g.maplocalleader = ' '
|
||||
|
||||
-- Normal --
|
||||
-- Shortcutting split navigation
|
||||
keymap('n', '<C-h>', '<C-w>h', opts)
|
||||
keymap('n', '<C-j>', '<C-w>j', opts)
|
||||
keymap('n', '<C-k>', '<C-w>k', opts)
|
||||
keymap('n', '<C-l>', '<C-w>l', opts)
|
||||
keymap("n", "<C-h>", "<C-w>h", opts)
|
||||
keymap("n", "<C-j>", "<C-w>j", opts)
|
||||
keymap("n", "<C-k>", "<C-w>k", opts)
|
||||
keymap("n", "<C-l>", "<C-w>l", opts)
|
||||
|
||||
-- Resize with arrows
|
||||
keymap('n', '<C-Up>', '<cmd>resize -2<CR>', opts)
|
||||
keymap('n', '<C-Down>', '<cmd>resize +2<CR>', opts)
|
||||
keymap('n', '<C-Left>', '<cmd>vertical resize -2<CR>', opts)
|
||||
keymap('n', '<C-Right>', '<cmd>vertical resize +2<CR>', opts)
|
||||
keymap("n", "<C-Up>", "<cmd>resize -2<CR>", opts)
|
||||
keymap("n", "<C-Down>", "<cmd>resize +2<CR>", opts)
|
||||
keymap("n", "<C-Left>", "<cmd>vertical resize -2<CR>", opts)
|
||||
keymap("n", "<C-Right>", "<cmd>vertical resize +2<CR>", opts)
|
||||
|
||||
-- Navigate buffers
|
||||
keymap('n', '<S-l>', '<cmd>bnext<CR>', opts)
|
||||
keymap('n', '<S-h>', '<cmd>bprevious<CR>', opts)
|
||||
keymap("n", "<S-l>", "<cmd>bnext<CR>", opts)
|
||||
keymap("n", "<S-h>", "<cmd>bprevious<CR>", opts)
|
||||
|
||||
-- Move text up and down
|
||||
keymap('n', '<A-j>', '<Esc><cmd>m .+1<CR>==gi', opts)
|
||||
keymap('n', '<A-k>', '<Esc><cmd>m .-2<CR>==gi', opts)
|
||||
keymap("n", "<A-j>", "<Esc><cmd>m .+1<CR>", opts)
|
||||
keymap("n", "<A-k>", "<Esc><cmd>m .-2<CR>", opts)
|
||||
|
||||
-- Insert --
|
||||
-- Press jk fast to exit insert mode
|
||||
keymap('i', 'jk', '<ESC>', opts)
|
||||
keymap("i", "jk", "<ESC>", opts)
|
||||
|
||||
-- Visual --
|
||||
-- Stay in indent mode
|
||||
keymap('v', '<', '<gv', opts)
|
||||
keymap('v', '>', '>gv', opts)
|
||||
keymap("v", "<", "<gv", opts)
|
||||
keymap("v", ">", ">gv", opts)
|
||||
|
||||
-- Move text up and down
|
||||
keymap('v', '<A-j>', '<cmd>m .+1<CR>==', opts)
|
||||
keymap('v', '<A-k>', '<cmd>m .-2<CR>==', opts)
|
||||
keymap('v', 'p', '"_dP', opts)
|
||||
keymap("v", "<A-j>", "<cmd>m .+1<CR>", opts)
|
||||
keymap("v", "<A-k>", "<cmd>m .-2<CR>", opts)
|
||||
keymap("v", "p", '"_dP', opts)
|
||||
|
||||
-- Visual Block --
|
||||
-- Move text up and down
|
||||
keymap('x', 'J', '<cmd>move ">+1<CR>gv-gv', opts)
|
||||
keymap('x', 'K', '<cmd>move "<-2<CR>gv-gv', opts)
|
||||
keymap('x', '<A-j>', '<cmd>move ">+1<CR>gv-gv', opts)
|
||||
keymap('x', '<A-k>', '<cmd>move "<-2<CR>gv-gv', opts)
|
||||
keymap("x", "J", '<cmd>move ">+1<CR>gv-gv', opts)
|
||||
keymap("x", "K", '<cmd>move "<-2<CR>gv-gv', opts)
|
||||
keymap("x", "<A-j>", '<cmd>move ">+1<CR>gv-gv', opts)
|
||||
keymap("x", "<A-k>", '<cmd>move "<-2<CR>gv-gv', opts)
|
||||
|
||||
-- Terminal --
|
||||
-- Better terminal navigation
|
||||
@@ -63,46 +63,3 @@ keymap('x', '<A-k>', '<cmd>move "<-2<CR>gv-gv', opts)
|
||||
-- keymap('t', '<C-j>', '<C-\\><C-N><C-w>j', term_opts)
|
||||
-- keymap('t', '<C-k>', '<C-\\><C-N><C-w>k', term_opts)
|
||||
-- keymap('t', '<C-l>', '<C-\\><C-N><C-w>l', term_opts)
|
||||
|
||||
keymap('n', '<leader>n', ':NvimTreeFocus<CR>', opts)
|
||||
keymap('n', 'C-t', ':NvimTreeToggle<CR>', opts)
|
||||
keymap('n', 'C-f', ':NvimTreeFindFile<CR>', opts)
|
||||
keymap('n', '<F5>', ':NvimTreeRefresh<CR>', opts)
|
||||
|
||||
-- Enable/Disable auto comment
|
||||
keymap('', '<leader>c', '<cmd>setlocal formatoption-=CRo<cr>', {})
|
||||
keymap('', '<leader>C', '<cmd>setlocal formatoption=CRo<cr>', {})
|
||||
|
||||
-- Enable spell checking, s for spell check
|
||||
keymap('', '<leader>s', '<cmd>setlocal spell! spelllang=eu_us<CR>', {})
|
||||
|
||||
-- Enable / Disable auto indent
|
||||
keymap('', '<leader>i', '<cmd>setlocal autoindent<CR>', {})
|
||||
keymap('', '<leader>I', '<cmd>setlocal noautoindent<CR>', {})
|
||||
|
||||
-- Moving line up or down by one line
|
||||
keymap('', '<A-k>', '<cmd>m -2<CR>', opts)
|
||||
keymap('', '<A-up>', '<cmd>m -2<CR>', opts)
|
||||
keymap('', '<A-j>', '<cmd>m +1<CR>', opts)
|
||||
keymap('', '<A-down>', '<cmd>m +1<CR>', opts)
|
||||
|
||||
-- Find files using Telescope command-line
|
||||
keymap('n', '<leader>ff', '<cmd>Telescope find_files hidden=true<CR>', opts)
|
||||
keymap('n', '<leader>fg', '<cmd>Telescope live_grep<CR>', opts)
|
||||
keymap('n', '<leader>fb', '<cmd>Telescope buffers<CR>', opts)
|
||||
keymap('n', '<leader>fh', '<cmd>Telescope help_tags<CR>', opts)
|
||||
|
||||
-- Alias 'replace all' to S
|
||||
keymap('n', 'S', '<cmd>s%//<Left>', opts)
|
||||
|
||||
|
||||
-- " run current script with python3 by CTRL+R in command and insert mode
|
||||
-- autocmd FileType python map <buffer> <C-r> <cmd>w<CR><cmd>exec '!python3' shellescape(@%, 1)<CR>
|
||||
-- autocmd FileType python imap <buffer> <C-r> <esc><cmd>w<CR><cmd>exec '!python3' shellescape(@%, 1)<CR>
|
||||
-- autocmd FileType rust map <buffer> <C-r> <cmd>w<CR><cmd>exec '!cargo run'<CR>
|
||||
-- autocmd FileType rust imap <buffer> <C-r> <cmd>w<CR><cmd>exec '!cargo run'<CR>
|
||||
|
||||
-- autocmd BufWritePre,InsertLeave *.{py,rs,html,css,md,lua} Neoformat
|
||||
-- let g:neoformat_enabled_python = ['autopep8']
|
||||
-- let g:neoformat_try_node_exe = 1
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
local status_ok, lsp_installer = pcall(require, 'nvim-lsp-installer')
|
||||
local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local lspconfig = require('lspconfig')
|
||||
local lspconfig = require("lspconfig")
|
||||
|
||||
local servers = { 'jsonls', 'sumneko_lua', 'pyright' }
|
||||
local servers = { "jsonls", "sumneko_lua", "pyright" }
|
||||
|
||||
lsp_installer.setup({
|
||||
ensure_installed = servers,
|
||||
@@ -13,12 +13,12 @@ lsp_installer.setup({
|
||||
|
||||
for _, server in pairs(servers) do
|
||||
local opts = {
|
||||
on_attach = require('user.lsp.handlers').on_attach,
|
||||
capabilities = require('user.lsp.handlers').capabilities,
|
||||
on_attach = require("user.lsp.handlers").on_attach,
|
||||
capabilities = require("user.lsp.handlers").capabilities,
|
||||
}
|
||||
local has_custom_opts, server_custom_opts = pcall(require, 'user.lsp.settings.' .. server)
|
||||
local has_custom_opts, server_custom_opts = pcall(require, "user.lsp.settings." .. server)
|
||||
if has_custom_opts then
|
||||
opts = vim.tbl_deep_extend('force', opts, server_custom_opts)
|
||||
opts = vim.tbl_deep_extend("force", opts, server_custom_opts)
|
||||
end
|
||||
lspconfig[server].setup(opts)
|
||||
end
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
local M = {}
|
||||
local api = vim.api
|
||||
local lsp = vim.lsp
|
||||
|
||||
-- TODO: backfill this to template
|
||||
M.setup = function()
|
||||
local signs = {
|
||||
{ name = 'DiagnosticSignError', text = '' },
|
||||
{ name = 'DiagnosticSignWarn', text = '' },
|
||||
{ name = 'DiagnosticSignHint', text = '' },
|
||||
{ name = 'DiagnosticSignInfo', text = '' },
|
||||
{ name = "DiagnosticSignError", text = "" },
|
||||
{ name = "DiagnosticSignWarn", text = "" },
|
||||
{ name = "DiagnosticSignHint", text = "" },
|
||||
{ name = "DiagnosticSignInfo", text = "" },
|
||||
}
|
||||
|
||||
for _, sign in ipairs(signs) do
|
||||
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = '' })
|
||||
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
|
||||
end
|
||||
|
||||
local config = {
|
||||
@@ -25,30 +27,30 @@ M.setup = function()
|
||||
severity_sort = true,
|
||||
float = {
|
||||
focusable = false,
|
||||
style = 'minimal',
|
||||
border = 'rounded',
|
||||
source = 'always',
|
||||
header = '',
|
||||
prefix = '',
|
||||
style = "minimal",
|
||||
border = "rounded",
|
||||
source = "always",
|
||||
header = "",
|
||||
prefix = "",
|
||||
},
|
||||
}
|
||||
|
||||
vim.diagnostic.config(config)
|
||||
|
||||
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = 'rounded',
|
||||
lsp.handlers["textDocument/hover"] = lsp.with(lsp.handlers.hover, {
|
||||
border = "rounded",
|
||||
width = 60,
|
||||
})
|
||||
|
||||
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||
border = 'rounded',
|
||||
lsp.handlers["textDocument/signatureHelp"] = lsp.with(lsp.handlers.signature_help, {
|
||||
border = "rounded",
|
||||
width = 60,
|
||||
})
|
||||
end
|
||||
|
||||
local function lsp_highlight_document(client)
|
||||
-- Set autocommands conditional on server_capabilities
|
||||
local status_ok, illuminate = pcall(require, 'illuminate')
|
||||
local status_ok, illuminate = pcall(require, "illuminate")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
@@ -58,41 +60,38 @@ end
|
||||
|
||||
local function lsp_keymaps(bufnr)
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>f', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '[d', '<cmd>lua vim.diagnostic.goto_prev({ border = "rounded" })<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(
|
||||
bufnr,
|
||||
'n',
|
||||
'gl',
|
||||
'<cmd>lua vim.diagnostic.open_float({ border = "rounded" })<CR>',
|
||||
opts
|
||||
)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', ']d', '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||
vim.cmd([[ command! Format execute 'lua vim.lsp.buf.format{async=true}' ]])
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua lsp.buf.declaration()<CR>", opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua lsp.buf.definition()<CR>", opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "K", "<cmd>lua lsp.buf.hover()<CR>", opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "gi", "<cmd>lua lsp.buf.implementation()<CR>", opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "<C-k>", "<cmd>lua lsp.buf.signature_help()<CR>", opts)
|
||||
-- api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua lsp.buf.rename()<CR>', opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "gr", "<cmd>lua lsp.buf.references()<CR>", opts)
|
||||
-- api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua lsp.buf.code_action()<CR>', opts)
|
||||
-- api.nvim_buf_set_keymap(bufnr, 'n', '<leader>f', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "[d", '<cmd>lua vim.diagnostic.goto_prev({ border = "rounded" })<CR>', opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "gl", '<cmd>lua vim.diagnostic.open_float({ border = "rounded" })<CR>', opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "]d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
|
||||
api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
|
||||
vim.cmd([[ command! Format execute 'lua lsp.buf.format{async=true}' ]])
|
||||
end
|
||||
|
||||
M.on_attach = function(client, bufnr)
|
||||
-- vim.notify(client.name .. ' starting...')
|
||||
-- TODO: refactor this into a method that checks if string in list
|
||||
if client.name == 'tsserver' then
|
||||
if client.name == "tsserver" then
|
||||
client.resolved_capabilities.document_formatting = false
|
||||
end
|
||||
if client.name == "sumneko_lua" then
|
||||
client.resolved_capabilities.document_formatting = false
|
||||
end
|
||||
lsp_keymaps(bufnr)
|
||||
lsp_highlight_document(client)
|
||||
end
|
||||
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
local capabilities = lsp.protocol.make_client_capabilities()
|
||||
|
||||
local status_ok, cmp_nvim_lsp = pcall(require, 'cmp_nvim_lsp')
|
||||
local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
local status_ok, _ = pcall(require, 'lspconfig')
|
||||
local status_ok, _ = pcall(require, "lspconfig")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
require('user.lsp.configs')
|
||||
require('user.lsp.handlers').setup()
|
||||
require('user.lsp.null-ls')
|
||||
require("user.lsp.configs")
|
||||
require("user.lsp.handlers").setup()
|
||||
require("user.lsp.null-ls")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
local null_ls_status_ok, null_ls = pcall(require, 'null-ls')
|
||||
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||
if not null_ls_status_ok then
|
||||
return
|
||||
end
|
||||
@@ -9,11 +9,15 @@ local formatting = null_ls.builtins.formatting
|
||||
local diagnostics = null_ls.builtins.diagnostics
|
||||
|
||||
null_ls.setup({
|
||||
debug = false,
|
||||
debug = true,
|
||||
sources = {
|
||||
formatting.prettier.with({ extra_args = { '--no-semi', '--single-quote', '--jsx-single-quote' } }),
|
||||
formatting.black.with({ extra_args = { '--fast' } }),
|
||||
formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
|
||||
formatting.autopep8,
|
||||
formatting.stylua,
|
||||
-- diagnostics.flake8
|
||||
formatting.rustfmt,
|
||||
formatting.beautysh,
|
||||
-- diagnostics.luacheck,
|
||||
diagnostics.pylint,
|
||||
diagnostics.zsh,
|
||||
},
|
||||
})
|
||||
|
||||
@@ -187,7 +187,7 @@ local opts = {
|
||||
commands = {
|
||||
Format = {
|
||||
function()
|
||||
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
|
||||
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line("$"), 0 })
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@ return {
|
||||
settings = {
|
||||
python = {
|
||||
analysis = {
|
||||
typeCheckingMode = "off"
|
||||
typeCheckingMode = "off",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@ return {
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { "vim" },
|
||||
globals = { "vim", "require" },
|
||||
},
|
||||
workspace = {
|
||||
library = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
local status_ok, lualine = pcall(require, 'lualine')
|
||||
local status_ok, lualine = pcall(require, "lualine")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
@@ -8,83 +8,83 @@ local hide_in_width = function()
|
||||
end
|
||||
|
||||
local diagnostics = {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic' },
|
||||
sections = { 'error', 'warn' },
|
||||
symbols = { error = ' ', warn = ' ' },
|
||||
"diagnostics",
|
||||
sources = { "nvim_diagnostic" },
|
||||
sections = { "error", "warn" },
|
||||
symbols = { error = " ", warn = " " },
|
||||
colored = false,
|
||||
update_in_insert = false,
|
||||
always_visible = true,
|
||||
}
|
||||
|
||||
local diff = {
|
||||
'diff',
|
||||
"diff",
|
||||
colored = false,
|
||||
symbols = { added = ' ', modified = ' ', removed = ' ' }, -- changes diff symbols
|
||||
cond = hide_in_width
|
||||
symbols = { added = " ", modified = " ", removed = " " }, -- changes diff symbols
|
||||
cond = hide_in_width,
|
||||
}
|
||||
|
||||
local mode = {
|
||||
'mode',
|
||||
"mode",
|
||||
fmt = function(str)
|
||||
return '-- ' .. str .. ' --'
|
||||
return "-- " .. str .. " --"
|
||||
end,
|
||||
}
|
||||
|
||||
local filetype = {
|
||||
'filetype',
|
||||
"filetype",
|
||||
icons_enabled = false,
|
||||
icon = nil,
|
||||
}
|
||||
|
||||
local branch = {
|
||||
'branch',
|
||||
"branch",
|
||||
icons_enabled = true,
|
||||
icon = '',
|
||||
icon = "",
|
||||
}
|
||||
|
||||
local location = {
|
||||
'location',
|
||||
"location",
|
||||
padding = 0,
|
||||
}
|
||||
|
||||
-- cool function for progress
|
||||
local progress = function()
|
||||
local current_line = vim.fn.line('.')
|
||||
local total_lines = vim.fn.line('$')
|
||||
local chars = { '__', '▁▁', '▂▂', '▃▃', '▄▄', '▅▅', '▆▆', '▇▇', '██' }
|
||||
local current_line = vim.fn.line(".")
|
||||
local total_lines = vim.fn.line("$")
|
||||
local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" }
|
||||
local line_ratio = current_line / total_lines
|
||||
local index = math.ceil(line_ratio * #chars)
|
||||
return chars[index]
|
||||
end
|
||||
|
||||
local spaces = function()
|
||||
return 'spaces: ' .. vim.api.nvim_buf_get_option(0, 'shiftwidth')
|
||||
return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth")
|
||||
end
|
||||
|
||||
lualine.setup({
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'auto',
|
||||
component_separators = { left = '', right = ''},
|
||||
section_separators = { left = '', right = ''},
|
||||
theme = "auto",
|
||||
component_separators = { left = "", right = "" },
|
||||
section_separators = { left = "", right = "" },
|
||||
disabled_filetypes = {},
|
||||
always_divide_middle = true,
|
||||
globalstatus = false,
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
lualine_a = { "mode" },
|
||||
lualine_b = { "branch", "diff", "diagnostics" },
|
||||
lualine_c = { "filename" },
|
||||
lualine_x = { "encoding", "fileformat", "filetype" },
|
||||
lualine_y = { "progress" },
|
||||
lualine_z = { "location" },
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = { 'filename' },
|
||||
lualine_x = { 'location' },
|
||||
lualine_c = { "filename" },
|
||||
lualine_x = { "location" },
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
},
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
local status_ok, nvim_tree = pcall(require, 'nvim-tree')
|
||||
local status_ok, nvim_tree = pcall(require, "nvim-tree")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local config_status_ok, nvim_tree_config = pcall(require, 'nvim-tree.config')
|
||||
local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
|
||||
if not config_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local tree_cb = nvim_tree_config.nvim_tree_callback
|
||||
|
||||
|
||||
nvim_tree.setup {
|
||||
sort_by = 'case_sensitive',
|
||||
nvim_tree.setup({
|
||||
sort_by = "case_sensitive",
|
||||
update_focused_file = {
|
||||
enable = true,
|
||||
update_cwd = true,
|
||||
},
|
||||
renderer = {
|
||||
group_empty = true,
|
||||
root_folder_modifier = ':t',
|
||||
root_folder_modifier = ":t",
|
||||
icons = {
|
||||
webdev_colors = true,
|
||||
show = {
|
||||
@@ -29,26 +28,26 @@ nvim_tree.setup {
|
||||
git = true,
|
||||
},
|
||||
glyphs = {
|
||||
default = '',
|
||||
symlink = '',
|
||||
default = "",
|
||||
symlink = "",
|
||||
folder = {
|
||||
arrow_open = '',
|
||||
arrow_closed = '',
|
||||
default = '',
|
||||
open = '',
|
||||
empty = '',
|
||||
empty_open = '',
|
||||
symlink = '',
|
||||
symlink_open = '',
|
||||
arrow_open = "",
|
||||
arrow_closed = "",
|
||||
default = "",
|
||||
open = "",
|
||||
empty = "",
|
||||
empty_open = "",
|
||||
symlink = "",
|
||||
symlink_open = "",
|
||||
},
|
||||
git = {
|
||||
unstaged = '',
|
||||
staged = 'S',
|
||||
unmerged = '',
|
||||
renamed = '➜',
|
||||
untracked = 'U',
|
||||
deleted = '',
|
||||
ignored = '◌',
|
||||
unstaged = "",
|
||||
staged = "S",
|
||||
unmerged = "",
|
||||
renamed = "➜",
|
||||
untracked = "U",
|
||||
deleted = "",
|
||||
ignored = "◌",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -57,25 +56,25 @@ nvim_tree.setup {
|
||||
enable = true,
|
||||
show_on_dirs = true,
|
||||
icons = {
|
||||
hint = '',
|
||||
info = '',
|
||||
warning = '',
|
||||
error = '',
|
||||
hint = "",
|
||||
info = "",
|
||||
warning = "",
|
||||
error = "",
|
||||
},
|
||||
},
|
||||
view = {
|
||||
width = 30,
|
||||
height = 30,
|
||||
side = 'left',
|
||||
side = "left",
|
||||
mappings = {
|
||||
list = {
|
||||
{ key = { 'l', '<CR>', 'o' }, cb = tree_cb 'edit' },
|
||||
{ key = 'h', cb = tree_cb 'close_node' },
|
||||
{ key = 'v', cb = tree_cb 'vsplit' },
|
||||
{ key = { "l", "<CR>", "o" }, cb = tree_cb("edit") },
|
||||
{ key = "h", cb = tree_cb("close_node") },
|
||||
{ key = "v", cb = tree_cb("vsplit") },
|
||||
},
|
||||
},
|
||||
},
|
||||
filters = {
|
||||
dotfiles = false,
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
local g = vim.g
|
||||
local o = vim.o
|
||||
|
||||
g.mapleader = ' '
|
||||
g.maplocalleader = ' '
|
||||
g.mapleader = " "
|
||||
g.maplocalleader = " "
|
||||
|
||||
local options = {
|
||||
backup = false, -- creates a backup file
|
||||
clipboard = 'unnamedplus', -- allows neovim to access the system clipboard
|
||||
clipboard = "unnamedplus", -- allows neovim to access the system clipboard
|
||||
cmdheight = 2, -- more space in the neovim command line for displaying messages
|
||||
completeopt = { 'menu', 'menuone', 'noselect' }, -- mostly just for cmp
|
||||
completeopt = { "menu", "menuone", "noselect" }, -- mostly just for cmp
|
||||
conceallevel = 0, -- so that `` is visible in markdown files
|
||||
fileencoding = 'utf-8', -- the encoding written to a file
|
||||
fileencoding = "utf-8", -- the encoding written to a file
|
||||
hlsearch = true, -- highlight all matches on previous search pattern
|
||||
ignorecase = true, -- ignore case in search patterns
|
||||
mouse = 'a', -- allow the mouse to be used in neovim
|
||||
mouse = "a", -- allow the mouse to be used in neovim
|
||||
pumheight = 10, -- pop up menu height
|
||||
showmode = false, -- we don't need to see things like -- INSERT -- anymore
|
||||
showtabline = 2, -- always show tabs
|
||||
@@ -35,22 +35,25 @@ local options = {
|
||||
number = true, -- set numbered lines
|
||||
relativenumber = true, -- set relative numbered lines
|
||||
numberwidth = 4, -- set number column width to 4 {default 4}
|
||||
signcolumn = 'yes', -- always show the sign column, otherwise it would shift the text each time
|
||||
signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time
|
||||
wrap = false, -- display lines as one long line
|
||||
scrolloff = 8, -- is one of my fav
|
||||
sidescrolloff = 8,
|
||||
--wildmode = 'longest,list,full',
|
||||
guifont = 'JetBrainsMono NF:h11', -- the font used in graphical neovim applications
|
||||
guifont = "JetBrainsMono NF:h11", -- the font used in graphical neovim applications
|
||||
}
|
||||
|
||||
for k, v in pairs(options) do
|
||||
vim.opt[k] = v
|
||||
end
|
||||
|
||||
vim.cmd [[highlight CursorLine ctermbg=Yellow cterm=bold guibg=#2b2b2b]]
|
||||
vim.cmd [[highlight CursorColumn ctermbg=Yellow cterm=bold guibg=#2b2b2b]]
|
||||
|
||||
vim.cmd([[highlight CursorLine ctermbg=Yellow cterm=bold guibg=#2b2b2b]])
|
||||
vim.cmd([[highlight CursorColumn ctermbg=Yellow cterm=bold guibg=#2b2b2b]])
|
||||
|
||||
g.dracula_transparent_bg = true
|
||||
g.dracula_italic_comment = true
|
||||
g.dracula_show_end_of_buffer = true
|
||||
|
||||
vim.opt_local.suffixesadd:prepend(".lua")
|
||||
vim.opt_local.suffixesadd:prepend("init.lua")
|
||||
vim.opt_local.path:prepend(vim.fn.stdpath("config") .. "/lua")
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
local fn = vim.fn
|
||||
|
||||
-- Automatically install packer
|
||||
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
|
||||
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
PACKER_BOOTSTRAP = fn.system({
|
||||
'git',
|
||||
'clone',
|
||||
'--depth',
|
||||
'1',
|
||||
'https://github.com/wbthomason/packer.nvim',
|
||||
"git",
|
||||
"clone",
|
||||
"--depth",
|
||||
"1",
|
||||
"https://github.com/wbthomason/packer.nvim",
|
||||
install_path,
|
||||
})
|
||||
print('Installing packer close and reopen Neovim...')
|
||||
print("Installing packer close and reopen Neovim...")
|
||||
vim.cmd([[packadd packer.nvim]])
|
||||
end
|
||||
|
||||
@@ -24,7 +24,7 @@ vim.cmd([[
|
||||
]])
|
||||
|
||||
-- Use a protected call so we don't error out on first use
|
||||
local status_ok, packer = pcall(require, 'packer')
|
||||
local status_ok, packer = pcall(require, "packer")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
@@ -33,82 +33,79 @@ end
|
||||
packer.init({
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require('packer.util').float({ border = 'rounded' })
|
||||
return require("packer.util").float({ border = "rounded" })
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
-- Install your plugins here
|
||||
return packer.startup(
|
||||
function(use)
|
||||
return packer.startup(function(use)
|
||||
-- My plugins here
|
||||
|
||||
use 'wbthomason/packer.nvim' -- Have packer manage itself
|
||||
use 'nvim-lua/popup.nvim' -- Useful lua functions used by lots of plugins
|
||||
use 'nvim-lua/plenary.nvim' -- Useful lua functions used by lots of plugins
|
||||
use 'windwp/nvim-autopairs' -- Autopairs, integrates with both cmp and treesitter
|
||||
use 'numToStr/Comment.nvim'
|
||||
use 'JoosepAlviste/nvim-ts-context-commentstring'
|
||||
use 'kyazdani42/nvim-web-devicons'
|
||||
use 'kyazdani42/nvim-tree.lua'
|
||||
use 'akinsho/bufferline.nvim'
|
||||
use 'moll/vim-bbye'
|
||||
use 'nvim-lualine/lualine.nvim'
|
||||
use 'akinsho/toggleterm.nvim'
|
||||
use 'ahmedkhalf/project.nvim'
|
||||
use 'lewis6991/impatient.nvim'
|
||||
use 'lukas-reineke/indent-blankline.nvim'
|
||||
use 'goolord/alpha-nvim'
|
||||
use 'folke/which-key.nvim'
|
||||
use 'andweeb/presence.nvim'
|
||||
use 'mattn/emmet-vim'
|
||||
use 'sbdchd/neoformat'
|
||||
use 'vimwiki/vimwiki'
|
||||
use 'saecki/crates.nvim'
|
||||
use {
|
||||
'norcalli/nvim-colorizer.lua',
|
||||
config = function()
|
||||
require('colorizer').setup()
|
||||
end
|
||||
}
|
||||
use("wbthomason/packer.nvim") -- Have packer manage itself
|
||||
use("nvim-lua/popup.nvim") -- Useful lua functions used by lots of plugins
|
||||
use("nvim-lua/plenary.nvim") -- Useful lua functions used by lots of plugins
|
||||
use("windwp/nvim-autopairs") -- Autopairs, integrates with both cmp and treesitte
|
||||
use("numToStr/Comment.nvim")
|
||||
use("JoosepAlviste/nvim-ts-context-commentstring")
|
||||
use("kyazdani42/nvim-web-devicons")
|
||||
use("kyazdani42/nvim-tree.lua")
|
||||
use("akinsho/bufferline.nvim")
|
||||
use("moll/vim-bbye")
|
||||
use("nvim-lualine/lualine.nvim")
|
||||
use("akinsho/toggleterm.nvim")
|
||||
use("ahmedkhalf/project.nvim")
|
||||
use("lewis6991/impatient.nvim")
|
||||
use("lukas-reineke/indent-blankline.nvim")
|
||||
use("goolord/alpha-nvim")
|
||||
use("folke/which-key.nvim")
|
||||
use("andweeb/presence.nvim")
|
||||
use("mattn/emmet-vim")
|
||||
use("saecki/crates.nvim")
|
||||
use("norcalli/nvim-colorizer.lua")
|
||||
|
||||
-- Vimwiki
|
||||
use("vimwiki/vimwiki")
|
||||
use("jbyuki/carrot.nvim")
|
||||
|
||||
-- Colorschemes
|
||||
use 'Mofiqul/dracula.nvim'
|
||||
use 'folke/tokyonight.nvim'
|
||||
use 'lunarvim/darkplus.nvim'
|
||||
use("Mofiqul/dracula.nvim")
|
||||
use("folke/tokyonight.nvim")
|
||||
use("lunarvim/darkplus.nvim")
|
||||
|
||||
-- cmp plugins
|
||||
use 'hrsh7th/nvim-cmp'-- The completion plugin
|
||||
use 'hrsh7th/cmp-buffer' -- buffer completions
|
||||
use 'hrsh7th/cmp-path'-- path completions
|
||||
use 'hrsh7th/cmp-cmdline' -- cmdline completions
|
||||
use 'saadparwaiz1/cmp_luasnip' -- snippet completions
|
||||
use 'hrsh7th/cmp-nvim-lsp'
|
||||
use 'hrsh7th/cmp-nvim-lua'
|
||||
use("hrsh7th/nvim-cmp") -- The completion plugin
|
||||
use("hrsh7th/cmp-buffer") -- buffer completions
|
||||
use("hrsh7th/cmp-path") -- path completions
|
||||
use("hrsh7th/cmp-cmdline") -- cmdline completions
|
||||
use("saadparwaiz1/cmp_luasnip") -- snippet completions
|
||||
use("hrsh7th/cmp-nvim-lsp")
|
||||
use("hrsh7th/cmp-nvim-lua")
|
||||
|
||||
-- snippets
|
||||
use 'L3MON4D3/LuaSnip' --snippet engine
|
||||
use 'rafamadriz/friendly-snippets' -- a bunch of snippets to use
|
||||
use("L3MON4D3/LuaSnip") --snippet engine
|
||||
use("rafamadriz/friendly-snippets") -- a bunch of snippets to use
|
||||
|
||||
-- LSP
|
||||
use 'neovim/nvim-lspconfig' -- enable LSP
|
||||
use 'williamboman/nvim-lsp-installer' -- simple to use language server installer
|
||||
use 'jose-elias-alvarez/null-ls.nvim' -- for formatters and linters
|
||||
use("neovim/nvim-lspconfig") -- enable LSP
|
||||
use("williamboman/nvim-lsp-installer") -- simple to use language server installer
|
||||
use("jose-elias-alvarez/null-ls.nvim") -- for formatters and linters
|
||||
|
||||
-- Telescope
|
||||
use 'nvim-telescope/telescope.nvim'
|
||||
use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
|
||||
use({ "nvim-telescope/telescope.nvim", run = ":TSUpdate" })
|
||||
use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" })
|
||||
use("nvim-telescope/telescope-media-files.nvim")
|
||||
|
||||
-- Treesitter
|
||||
use 'nvim-treesitter/nvim-treesitter'
|
||||
use("nvim-treesitter/nvim-treesitter")
|
||||
use("p00f/nvim-ts-rainbow")
|
||||
|
||||
-- Git
|
||||
use 'lewis6991/gitsigns.nvim'
|
||||
use("lewis6991/gitsigns.nvim")
|
||||
|
||||
-- Automatically set up your configuration after cloning packer.nvim
|
||||
-- Put this at the end after all plugins
|
||||
if PACKER_BOOTSTRAP then
|
||||
require('packer').sync()
|
||||
require("packer").sync()
|
||||
end
|
||||
end
|
||||
)
|
||||
end)
|
||||
|
||||
@@ -45,4 +45,4 @@ if not tele_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
telescope.load_extension('projects')
|
||||
telescope.load_extension("projects")
|
||||
|
||||
@@ -1,79 +1,81 @@
|
||||
local status_ok, telescope = pcall(require, 'telescope')
|
||||
local status_ok, telescope = pcall(require, "telescope")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local actions = require 'telescope.actions'
|
||||
local actions = require("telescope.actions")
|
||||
telescope.load_extension("fzf")
|
||||
telescope.load_extension("media_files")
|
||||
|
||||
telescope.setup {
|
||||
telescope.setup({
|
||||
defaults = {
|
||||
|
||||
prompt_prefix = ' ',
|
||||
selection_caret = ' ',
|
||||
path_display = { 'smart' },
|
||||
prompt_prefix = " ",
|
||||
selection_caret = " ",
|
||||
path_display = { "smart" },
|
||||
|
||||
mappings = {
|
||||
i = {
|
||||
['<C-n>'] = actions.cycle_history_next,
|
||||
['<C-p>'] = actions.cycle_history_prev,
|
||||
["<C-n>"] = actions.cycle_history_next,
|
||||
["<C-p>"] = actions.cycle_history_prev,
|
||||
|
||||
['<C-j>'] = actions.move_selection_next,
|
||||
['<C-k>'] = actions.move_selection_previous,
|
||||
["<C-j>"] = actions.move_selection_next,
|
||||
["<C-k>"] = actions.move_selection_previous,
|
||||
|
||||
['<C-c>'] = actions.close,
|
||||
["<C-c>"] = actions.close,
|
||||
|
||||
['<Down>'] = actions.move_selection_next,
|
||||
['<Up>'] = actions.move_selection_previous,
|
||||
["<Down>"] = actions.move_selection_next,
|
||||
["<Up>"] = actions.move_selection_previous,
|
||||
|
||||
['<CR>'] = actions.select_default,
|
||||
['<C-x>'] = actions.select_horizontal,
|
||||
['<C-v>'] = actions.select_vertical,
|
||||
['<C-t>'] = actions.select_tab,
|
||||
["<CR>"] = actions.select_default,
|
||||
["<C-x>"] = actions.select_horizontal,
|
||||
["<C-v>"] = actions.select_vertical,
|
||||
["<C-t>"] = actions.select_tab,
|
||||
|
||||
['<C-u>'] = actions.preview_scrolling_up,
|
||||
['<C-d>'] = actions.preview_scrolling_down,
|
||||
["<C-u>"] = actions.preview_scrolling_up,
|
||||
["<C-d>"] = actions.preview_scrolling_down,
|
||||
|
||||
['<PageUp>'] = actions.results_scrolling_up,
|
||||
['<PageDown>'] = actions.results_scrolling_down,
|
||||
["<PageUp>"] = actions.results_scrolling_up,
|
||||
["<PageDown>"] = actions.results_scrolling_down,
|
||||
|
||||
['<Tab>'] = actions.toggle_selection + actions.move_selection_worse,
|
||||
['<S-Tab>'] = actions.toggle_selection + actions.move_selection_better,
|
||||
['<C-q>'] = actions.send_to_qflist + actions.open_qflist,
|
||||
['<M-q>'] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||
['<C-l>'] = actions.complete_tag,
|
||||
['<C-_>'] = actions.which_key, -- keys from pressing <C-/>
|
||||
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
||||
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
||||
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
||||
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||
["<C-l>"] = actions.complete_tag,
|
||||
["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
|
||||
},
|
||||
|
||||
n = {
|
||||
['<esc>'] = actions.close,
|
||||
['<CR>'] = actions.select_default,
|
||||
['<C-x>'] = actions.select_horizontal,
|
||||
['<C-v>'] = actions.select_vertical,
|
||||
['<C-t>'] = actions.select_tab,
|
||||
["<esc>"] = actions.close,
|
||||
["<CR>"] = actions.select_default,
|
||||
["<C-x>"] = actions.select_horizontal,
|
||||
["<C-v>"] = actions.select_vertical,
|
||||
["<C-t>"] = actions.select_tab,
|
||||
|
||||
['<Tab>'] = actions.toggle_selection + actions.move_selection_worse,
|
||||
['<S-Tab>'] = actions.toggle_selection + actions.move_selection_better,
|
||||
['<C-q>'] = actions.send_to_qflist + actions.open_qflist,
|
||||
['<M-q>'] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
||||
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
||||
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
||||
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||
|
||||
['j'] = actions.move_selection_next,
|
||||
['k'] = actions.move_selection_previous,
|
||||
['H'] = actions.move_to_top,
|
||||
['M'] = actions.move_to_middle,
|
||||
['L'] = actions.move_to_bottom,
|
||||
["j"] = actions.move_selection_next,
|
||||
["k"] = actions.move_selection_previous,
|
||||
["H"] = actions.move_to_top,
|
||||
["M"] = actions.move_to_middle,
|
||||
["L"] = actions.move_to_bottom,
|
||||
|
||||
['<Down>'] = actions.move_selection_next,
|
||||
['<Up>'] = actions.move_selection_previous,
|
||||
['gg'] = actions.move_to_top,
|
||||
['G'] = actions.move_to_bottom,
|
||||
["<Down>"] = actions.move_selection_next,
|
||||
["<Up>"] = actions.move_selection_previous,
|
||||
["gg"] = actions.move_to_top,
|
||||
["G"] = actions.move_to_bottom,
|
||||
|
||||
['<C-u>'] = actions.preview_scrolling_up,
|
||||
['<C-d>'] = actions.preview_scrolling_down,
|
||||
["<C-u>"] = actions.preview_scrolling_up,
|
||||
["<C-d>"] = actions.preview_scrolling_down,
|
||||
|
||||
['<PageUp>'] = actions.results_scrolling_up,
|
||||
['<PageDown>'] = actions.results_scrolling_down,
|
||||
["<PageUp>"] = actions.results_scrolling_up,
|
||||
["<PageDown>"] = actions.results_scrolling_down,
|
||||
|
||||
['?'] = actions.which_key,
|
||||
["?"] = actions.which_key,
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -94,6 +96,11 @@ telescope.setup {
|
||||
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
|
||||
-- the default case_mode is "smart_case"
|
||||
},
|
||||
}
|
||||
}
|
||||
require('telescope').load_extension('fzf')
|
||||
media_files = {
|
||||
-- filetypes whitelist
|
||||
-- defaults to {"png", "jpg", "mp4", "webm", "pdf"}
|
||||
filetypes = { "png", "webp", "jpg", "jpeg" },
|
||||
find_cmd = "rg", -- find command (defaults to `fd`)
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -58,10 +58,10 @@ function _NCDU_TOGGLE()
|
||||
ncdu:toggle()
|
||||
end
|
||||
|
||||
local htop = Terminal:new({ cmd = 'htop', hidden = true })
|
||||
local btop = Terminal:new({ cmd = 'btop', hidden = true })
|
||||
|
||||
function _HTOP_TOGGLE()
|
||||
htop:toggle()
|
||||
function _BTOP_TOGGLE()
|
||||
btop:toggle()
|
||||
end
|
||||
|
||||
local python = Terminal:new({ cmd = 'python', hidden = true })
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
local status_ok, configs = pcall(require, 'nvim-treesitter.configs')
|
||||
local status_ok, configs = pcall(require, "nvim-treesitter.configs")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
configs.setup({
|
||||
ensure_installed = 'all', -- one of 'all' or a list of languages
|
||||
ignore_install = { '' }, -- List of parsers to ignore installing
|
||||
ensure_installed = "all", -- one of 'all' or a list of languages
|
||||
ignore_install = { "" }, -- List of parsers to ignore installing
|
||||
highlight = {
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = { }, -- list of language that will be disabled
|
||||
disable = {}, -- list of language that will be disabled
|
||||
},
|
||||
autopairs = {
|
||||
enable = true,
|
||||
},
|
||||
indent = { enable = true, disable = { } },
|
||||
indent = { enable = true, disable = { "yaml" } },
|
||||
rainbow = {
|
||||
enable = true,
|
||||
-- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for
|
||||
extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
|
||||
max_file_lines = nil, -- Do not enable for files with more than n lines, int
|
||||
-- colors = {}, -- table of hex strings
|
||||
-- termcolors = {} -- table of colour name strings
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
local status_ok, which_key = pcall(require, 'which-key')
|
||||
local status_ok, which_key = pcall(require, "which-key")
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local setup = {
|
||||
plugins = {
|
||||
marks = true, -- shows a list of your marks on ' and `
|
||||
registers = true, -- shows your registers on ' in NORMAL or <C-r> in INSERT mode
|
||||
marks = true, -- shows a list of your marks on " and `
|
||||
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
|
||||
spelling = {
|
||||
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
|
||||
suggestions = 20, -- how many suggestions should be shown in the list?
|
||||
@@ -25,26 +25,26 @@ local setup = {
|
||||
},
|
||||
-- add operators that will trigger motion and text object completion
|
||||
-- to enable all native operators, set the preset / operators plugin above
|
||||
-- operators = { gc = 'Comments' },
|
||||
-- operators = { gc = "Comments" },
|
||||
key_labels = {
|
||||
-- override the label used to display some keys. It doesn't effect WK in any other way.
|
||||
-- override the label used to display some keys. It doesn"t effect WK in any other way.
|
||||
-- For example:
|
||||
-- ['<space>'] = 'SPC',
|
||||
-- ['<cr>'] = 'RET',
|
||||
-- ['<tab>'] = 'TAB',
|
||||
-- ["<space>"] = "SPC",
|
||||
-- ["<CR>"] = "RET",
|
||||
-- ["<tab>"] = "TAB",
|
||||
},
|
||||
icons = {
|
||||
breadcrumb = '»', -- symbol used in the command line area that shows your active key combo
|
||||
separator = '➜', -- symbol used between a key and it's label
|
||||
group = '+', -- symbol prepended to a group
|
||||
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
|
||||
separator = "➜", -- symbol used between a key and it"s label
|
||||
group = "+", -- symbol prepended to a group
|
||||
},
|
||||
popup_mappings = {
|
||||
scroll_down = '<c-d>', -- binding to scroll down inside the popup
|
||||
scroll_up = '<c-u>', -- binding to scroll up inside the popup
|
||||
scroll_down = "<c-d>", -- binding to scroll down inside the popup
|
||||
scroll_up = "<c-u>", -- binding to scroll up inside the popup
|
||||
},
|
||||
window = {
|
||||
border = 'rounded', -- none, single, double, shadow
|
||||
position = 'bottom', -- bottom, top
|
||||
border = "rounded", -- none, single, double, shadow
|
||||
position = "bottom", -- bottom, top
|
||||
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
|
||||
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
|
||||
winblend = 0,
|
||||
@@ -53,25 +53,25 @@ local setup = {
|
||||
height = { min = 4, max = 25 }, -- min and max height of the columns
|
||||
width = { min = 20, max = 50 }, -- min and max width of the columns
|
||||
spacing = 3, -- spacing between columns
|
||||
align = 'left', -- align columns left, center or right
|
||||
align = "left", -- align columns left, center or right
|
||||
},
|
||||
ignore_missing = true, -- enable this to hide mappings for which you didn't specify a label
|
||||
hidden = { '<silent>', '<cmd>', '<Cmd>', '<CR>', 'call', 'lua', '^:', '^ ' }, -- hide mapping boilerplate
|
||||
ignore_missing = true, -- enable this to hide mappings for which you didn"t specify a label
|
||||
hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate
|
||||
show_help = true, -- show help message on the command line when the popup is visible
|
||||
triggers = 'auto', -- automatically setup triggers
|
||||
-- triggers = {'<leader>'} -- or specify a list manually
|
||||
triggers = "auto", -- automatically setup triggers
|
||||
-- triggers = {"<leader>"} -- or specify a list manually
|
||||
triggers_blacklist = {
|
||||
-- list of mode / prefixes that should never be hooked by WhichKey
|
||||
-- this is mostly relevant for key maps that start with a native binding
|
||||
-- most people should not need to change this
|
||||
i = { 'j', 'k' },
|
||||
v = { 'j', 'k' },
|
||||
i = { "j", "k" },
|
||||
v = { "j", "k" },
|
||||
},
|
||||
}
|
||||
|
||||
local opts = {
|
||||
mode = 'n', -- NORMAL mode
|
||||
prefix = '<leader>',
|
||||
mode = "n", -- NORMAL mode
|
||||
prefix = "<leader>",
|
||||
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
|
||||
silent = true, -- use `silent` when creating keymaps
|
||||
noremap = true, -- use `noremap` when creating keymaps
|
||||
@@ -79,107 +79,116 @@ local opts = {
|
||||
}
|
||||
|
||||
local mappings = {
|
||||
['a'] = { '<cmd>Alpha<cr>', 'Alpha' },
|
||||
['b'] = {
|
||||
'<cmd>lua require("telescope.builtin").buffers(require"telescope.themes").get_dropdown{previewer = false})<cr>',
|
||||
'Buffers',
|
||||
["a"] = { "<cmd>Alpha<CR>", "Alpha" },
|
||||
["b"] = {
|
||||
"<cmd>lua require('telescope.builtin).buffers(require'telescope.themes').get_dropdown{previewer = false})<CR>",
|
||||
"Buffers",
|
||||
},
|
||||
['e'] = { '<cmd>NvimTreeToggle<cr>', 'Explorer' },
|
||||
['w'] = { '<cmd>w!<CR>', 'Save' },
|
||||
['q'] = { '<cmd>q!<CR>', 'Quit' },
|
||||
['c'] = { '<cmd>Bdelete!<CR>', 'Close Buffer' },
|
||||
['h'] = { '<cmd>nohlsearch<CR>', 'No Highlight' },
|
||||
['f'] = {
|
||||
'<cmd>lua require("telescope.builtin").find_files(require("telescope.themes").get_dropdown{previewer = false})<cr>',
|
||||
'Find files',
|
||||
["e"] = { "<cmd>NvimTreeToggle<CR>", "Explorer" },
|
||||
["w"] = { "<cmd>w!<CR>", "Save" },
|
||||
["q"] = { "<cmd>q!<CR>", "Quit" },
|
||||
["c"] = { "<cmd>Bdelete!<CR>", "Close Buffer" },
|
||||
["h"] = { "<cmd>nohlsearch<CR>", "No Highlight" },
|
||||
["f"] = {
|
||||
"<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false}) hidden=true<CR>",
|
||||
"Find files",
|
||||
},
|
||||
['F'] = { '<cmd>Telescope live_grep theme=ivy<cr>', 'Find Text' },
|
||||
['P'] = { '<cmd>lua require("telescope").extensions.projects.projects()<cr>', 'Projects' },
|
||||
["F"] = { "<cmd>Telescope live_grep theme=ivy<CR>", "Find Text" },
|
||||
["P"] = { "<cmd>lua require('telescope').extensions.projects.projects()<CR>", "Projects" },
|
||||
|
||||
p = {
|
||||
name = 'Packer',
|
||||
c = { '<cmd>PackerCompile<cr>', 'Compile' },
|
||||
i = { '<cmd>PackerInstall<cr>', 'Install' },
|
||||
s = { '<cmd>PackerSync<cr>', 'Sync' },
|
||||
S = { '<cmd>PackerStatus<cr>', 'Status' },
|
||||
u = { '<cmd>PackerUpdate<cr>', 'Update' },
|
||||
name = "Packer",
|
||||
c = { "<cmd>PackerCompile<CR>", "Compile" },
|
||||
i = { "<cmd>PackerInstall<CR>", "Install" },
|
||||
s = { "<cmd>PackerSync<CR>", "Sync" },
|
||||
S = { "<cmd>PackerStatus<CR>", "Status" },
|
||||
u = { "<cmd>PackerUpdate<CR>", "Update" },
|
||||
},
|
||||
|
||||
g = {
|
||||
name = 'Git',
|
||||
g = { '<cmd>lua _LAZYGIT_TOGGLE()<CR>', 'Lazygit' },
|
||||
j = { '<cmd>lua require "gitsigns".next_hunk()<cr>', 'Next Hunk' },
|
||||
k = { '<cmd>lua require "gitsigns".prev_hunk()<cr>', 'Prev Hunk' },
|
||||
l = { '<cmd>lua require "gitsigns".blame_line()<cr>', 'Blame' },
|
||||
p = { '<cmd>lua require "gitsigns".preview_hunk()<cr>', 'Preview Hunk' },
|
||||
r = { '<cmd>lua require "gitsigns".reset_hunk()<cr>', 'Reset Hunk' },
|
||||
R = { '<cmd>lua require "gitsigns".reset_buffer()<cr>', 'Reset Buffer' },
|
||||
s = { '<cmd>lua require "gitsigns".stage_hunk()<cr>', 'Stage Hunk' },
|
||||
name = "Git",
|
||||
g = { "<cmd>lua _LAZYGIT_TOGGLE()<CR>", "Lazygit" },
|
||||
j = { "<cmd>lua require 'gitsigns'.next_hunk()<CR>", "Next Hunk" },
|
||||
k = { "<cmd>lua require 'gitsigns'.prev_hunk()<CR>", "Prev Hunk" },
|
||||
l = { "<cmd>lua require 'gitsigns'.blame_line()<CR>", "Blame" },
|
||||
p = { "<cmd>lua require 'gitsigns'.preview_hunk()<CR>", "Preview Hunk" },
|
||||
r = { "<cmd>lua require 'gitsigns'.reset_hunk()<CR>", "Reset Hunk" },
|
||||
R = { "<cmd>lua require 'gitsigns'.reset_buffer()<CR>", "Reset Buffer" },
|
||||
s = { "<cmd>lua require 'gitsigns'.stage_hunk()<CR>", "Stage Hunk" },
|
||||
u = {
|
||||
'<cmd>lua require "gitsigns".undo_stage_hunk()<cr>',
|
||||
'Undo Stage Hunk',
|
||||
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<CR>",
|
||||
"Undo Stage Hunk",
|
||||
},
|
||||
o = { '<cmd>Telescope git_status<cr>', 'Open changed file' },
|
||||
b = { '<cmd>Telescope git_branches<cr>', 'Checkout branch' },
|
||||
c = { '<cmd>Telescope git_commits<cr>', 'Checkout commit' },
|
||||
o = { "<cmd>Telescope git_status<CR>", "Open changed file" },
|
||||
b = { "<cmd>Telescope git_branches<CR>", "Checkout branch" },
|
||||
c = { "<cmd>Telescope git_commits<CR>", "Checkout commit" },
|
||||
d = {
|
||||
'<cmd>Gitsigns diffthis HEAD<cr>',
|
||||
'Diff',
|
||||
"<cmd>Gitsigns diffthis HEAD<CR>",
|
||||
"Diff",
|
||||
},
|
||||
},
|
||||
|
||||
l = {
|
||||
name = 'LSP',
|
||||
a = { '<cmd>lua vim.lsp.buf.code_action()<cr>', 'Code Action' },
|
||||
name = "LSP",
|
||||
a = { "<cmd>lua vim.lsp.buf.code_action()<CR>", "Code Action" },
|
||||
d = {
|
||||
'<cmd>Telescope lsp_document_diagnostics<cr>',
|
||||
'Document Diagnostics',
|
||||
"<cmd>Telescope lsp_document_diagnostics<CR>",
|
||||
"Document Diagnostics",
|
||||
},
|
||||
w = {
|
||||
'<cmd>Telescope lsp_workspace_diagnostics<cr>',
|
||||
'Workspace Diagnostics',
|
||||
"<cmd>Telescope lsp_workspace_diagnostics<CR>",
|
||||
"Workspace Diagnostics",
|
||||
},
|
||||
f = { '<cmd>lua vim.lsp.buf.format{async=true}<cr>', 'Format' },
|
||||
i = { '<cmd>LspInfo<cr>', 'Info' },
|
||||
I = { '<cmd>LspInstallInfo<cr>', 'Installer Info' },
|
||||
f = { "<cmd>lua vim.lsp.buf.format{async=true}<CR>", "Format" },
|
||||
i = { "<cmd>LspInfo<CR>", "Info" },
|
||||
I = { "<cmd>LspInstallInfo<CR>", "Installer Info" },
|
||||
j = {
|
||||
'<cmd>lua vim.lsp.diagnostic.goto_next()<CR>',
|
||||
'Next Diagnostic',
|
||||
"<cmd>lua vim.lsp.diagnostic.goto_next()<CR>",
|
||||
"Next Diagnostic",
|
||||
},
|
||||
k = {
|
||||
'<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>',
|
||||
'Prev Diagnostic',
|
||||
"<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>",
|
||||
"Prev Diagnostic",
|
||||
},
|
||||
l = { '<cmd>lua vim.lsp.codelens.run()<cr>', 'CodeLens Action' },
|
||||
q = { '<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>', 'Quickfix' },
|
||||
r = { '<cmd>lua vim.lsp.buf.rename()<cr>', 'Rename' },
|
||||
s = { '<cmd>Telescope lsp_document_symbols<cr>', 'Document Symbols' },
|
||||
l = { "<cmd>lua vim.lsp.codelens.run()<CR>", "CodeLens Action" },
|
||||
q = { "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", "Quickfix" },
|
||||
r = { "<cmd>lua vim.lsp.buf.rename()<CR>", "Rename" },
|
||||
s = { "<cmd>Telescope lsp_document_symbols<CR>", "Document Symbols" },
|
||||
S = {
|
||||
'<cmd>Telescope lsp_dynamic_workspace_symbols<cr>',
|
||||
'Workspace Symbols',
|
||||
"<cmd>Telescope lsp_dynamic_workspace_symbols<CR>",
|
||||
"Workspace Symbols",
|
||||
},
|
||||
},
|
||||
s = {
|
||||
name = 'Search',
|
||||
b = { '<cmd>Telescope git_branches<cr>', 'Checkout branch' },
|
||||
c = { '<cmd>Telescope colorscheme<cr>', 'Colorscheme' },
|
||||
h = { '<cmd>Telescope help_tags<cr>', 'Find Help' },
|
||||
M = { '<cmd>Telescope man_pages<cr>', 'Man Pages' },
|
||||
r = { '<cmd>Telescope oldfiles<cr>', 'Open Recent File' },
|
||||
R = { '<cmd>Telescope registers<cr>', 'Registers' },
|
||||
k = { '<cmd>Telescope keymaps<cr>', 'Keymaps' },
|
||||
C = { '<cmd>Telescope commands<cr>', 'Commands' },
|
||||
name = "Search",
|
||||
s = { "<cmd>s%//<Left>", "Replace word" },
|
||||
b = { "<cmd>Telescope git_branches<CR>", "Checkout branch" },
|
||||
c = { "<cmd>Telescope colorscheme<CR>", "Colorscheme" },
|
||||
h = { "<cmd>Telescope help_tags<CR>", "Find Help" },
|
||||
M = { "<cmd>Telescope man_pages<CR>", "Man Pages" },
|
||||
r = { "<cmd>Telescope oldfiles<CR>", "Open Recent File" },
|
||||
R = { "<cmd>Telescope registers<CR>", "Registers" },
|
||||
k = { "<cmd>Telescope keymaps<CR>", "Keymaps" },
|
||||
C = { "<cmd>Telescope commands<CR>", "Commands" },
|
||||
},
|
||||
|
||||
t = {
|
||||
name = 'Terminal',
|
||||
n = { '<cmd>lua _NODE_TOGGLE()<cr>', 'Node' },
|
||||
u = { '<cmd>lua _NCDU_TOGGLE()<cr>', 'NCDU' },
|
||||
t = { '<cmd>lua _HTOP_TOGGLE()<cr>', 'Htop' },
|
||||
p = { '<cmd>lua _PYTHON_TOGGLE()<cr>', 'Python' },
|
||||
f = { '<cmd>ToggleTerm direction=float<cr>', 'Float' },
|
||||
h = { '<cmd>ToggleTerm size=10 direction=horizontal<cr>', 'Horizontal' },
|
||||
v = { '<cmd>ToggleTerm size=80 direction=vertical<cr>', 'Vertical' },
|
||||
name = "Terminal",
|
||||
n = { "<cmd>lua _NODE_TOGGLE()<CR>", "Node" },
|
||||
u = { "<cmd>lua _NCDU_TOGGLE()<CR>", "NCDU" },
|
||||
t = { "<cmd>lua _BTOP_TOGGLE()<CR>", "Btop" },
|
||||
p = { "<cmd>lua _PYTHON_TOGGLE()<CR>", "Python" },
|
||||
f = { "<cmd>ToggleTerm direction=float<CR>", "Float" },
|
||||
h = { "<cmd>ToggleTerm size=10 direction=horizontal<CR>", "Horizontal" },
|
||||
v = { "<cmd>ToggleTerm size=80 direction=vertical<CR>", "Vertical" },
|
||||
},
|
||||
S = {
|
||||
name = "Settings",
|
||||
c = { "<cmd>setlocal formatoptions-=cro<CR>", "Disable autocomment" },
|
||||
C = { "<cmd>setlocal formatoptions=cro<CR>", "Enable autocomment" },
|
||||
s = { "<cmd>setlocal spell! spelllang=en_us<CR>", "Toggle spellchecker" },
|
||||
I = { "<cmd>setlocal autoindent<CR>", "Enable autoindent" },
|
||||
i = { "<cmd>setlocal noautoindent<CR>", "Disable autoindent" },
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1 @@
|
||||
|
||||
.luarc.json
|
||||
|
||||
Reference in New Issue
Block a user