Linted all files

This commit is contained in:
Kristofers Solo 2022-08-01 08:26:03 +03:00
parent a7bec557b8
commit d68a56ae9a
37 changed files with 3225 additions and 3102 deletions

View File

@ -186,8 +186,8 @@ draw_bold_text_with_bright_colors: true
colors: colors:
# Default colors # Default colors
primary: primary:
background: "#1d1f21" background: '#1d1f21'
foreground: "#c5c8c6" foreground: '#c5c8c6'
# Bright and dim foreground colors # Bright and dim foreground colors
# #
@ -195,8 +195,8 @@ colors:
# present. If the bright foreground color is not set, or # present. If the bright foreground color is not set, or
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground # `draw_bold_text_with_bright_colors` is `false`, the normal foreground
# color will be used. # color will be used.
dim_foreground: "#828482" dim_foreground: '#828482'
bright_foreground: "#eaeaea" bright_foreground: '#eaeaea'
# Cursor colors # Cursor colors
# #
@ -232,8 +232,8 @@ colors:
# background: '#000000' # background: '#000000'
bar: bar:
background: "#282828" background: '#282828'
foreground: "#EBEBE9" foreground: '#EBEBE9'
# Keyboard regex hints # Keyboard regex hints
hints: hints:
@ -242,16 +242,16 @@ colors:
# Allowed values are CellForeground/CellBackground, which reference the # Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff. # affected cell, or hexadecimal colors like #ff00ff.
start: start:
foreground: "#1d1f21" foreground: '#1d1f21'
background: "#e9ff5e" background: '#e9ff5e'
# All characters after the first one in the hint label # All characters after the first one in the hint label
# #
# Allowed values are CellForeground/CellBackground, which reference the # Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff. # affected cell, or hexadecimal colors like #ff00ff.
end: end:
foreground: "#e9ff5e" foreground: '#e9ff5e'
background: "#1d1f21" background: '#1d1f21'
# Line indicator # Line indicator
# #
@ -275,39 +275,39 @@ colors:
# Normal colors # Normal colors
normal: normal:
black: "#313539" black: '#313539'
red: "#b02626" red: '#b02626'
green: "#40a62f" green: '#40a62f'
yellow: "#f1e635" yellow: '#f1e635'
blue: "#314ad0" blue: '#314ad0'
magenta: "#b30ad0" magenta: '#b30ad0'
cyan: "#32d0fc" cyan: '#32d0fc'
white: "#acadb1" white: '#acadb1'
# Bright colors # Bright colors
bright: bright:
black: "#717174" black: '#717174'
red: "#b02626" red: '#b02626'
green: "#40a62f" green: '#40a62f'
yellow: "#f1e635" yellow: '#f1e635'
blue: "#314ad0" blue: '#314ad0'
magenta: "#b30ad0" magenta: '#b30ad0'
cyan: "#32d0fc" cyan: '#32d0fc'
white: "#acadb1" white: '#acadb1'
# Dim colors # Dim colors
# #
# If the dim colors are not set, they will be calculated automatically based # If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors. # on the `normal` colors.
dim: dim:
black: "#676f78" black: '#676f78'
red: "#b55454" red: '#b55454'
green: "#78a670" green: '#78a670'
yellow: "#faf380" yellow: '#faf380'
blue: "#707fd0" blue: '#707fd0'
magenta: "#c583d0" magenta: '#c583d0'
cyan: "#8adaf1" cyan: '#8adaf1'
white: "#e0e3e7" white: '#e0e3e7'
# Indexed Colors # Indexed Colors
# #

View File

@ -30,18 +30,22 @@ require("awful.hotkeys_popup.keys")
-- OpenWeather API -- OpenWeather API
-- !Create file ~/.config/awesome/weather and paste API from OpenWeather, latitude and longitude, each on separate lines -- !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 -- see if the file exists
local function file_exists(file) local function file_exists(file)
local f = io.open(file, "rb") local f = io.open(file, "rb")
if f then f:close() end if f then
f:close()
end
return f ~= nil return f ~= nil
end end
-- get all lines from a file, returns an empty -- get all lines from a file, returns an empty
-- list/table if the file does not exist -- list/table if the file does not exist
local function lines_from(file) local function lines_from(file)
if not file_exists(file) then return {} end if not file_exists(file) then
return {}
end
local lines = {} local lines = {}
for line in io.lines(file) do for line in io.lines(file) do
lines[#lines + 1] = line lines[#lines + 1] = line
@ -54,14 +58,15 @@ local API = weather_output[1]
local latitude = tonumber(weather_output[2]) local latitude = tonumber(weather_output[2])
local longitude = tonumber(weather_output[3]) local longitude = tonumber(weather_output[3])
-- {{{ Error handling -- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to -- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config) -- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then 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!", title = "Oops, there were errors during startup!",
text = awesome.startup_errors }) text = awesome.startup_errors,
})
end end
-- Handle runtime errors after startup -- Handle runtime errors after startup
@ -69,12 +74,16 @@ do
local in_error = false local in_error = false
awesome.connect_signal("debug::error", function(err) awesome.connect_signal("debug::error", function(err)
-- Make sure we don't go into an endless error loop -- 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 in_error = true
naughty.notify({ preset = naughty.config.presets.critical, naughty.notify({
preset = naughty.config.presets.critical,
title = "Oops, an error happened!", title = "Oops, an error happened!",
text = tostring(err) }) text = tostring(err),
})
in_error = false in_error = false
end) end)
end end
@ -121,20 +130,27 @@ awful.layout.layouts = {
-- {{{ Menu -- {{{ Menu
-- Create a launcher widget and a main menu -- Create a launcher widget and a main menu
myawesomemenu = { 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" }, { "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile }, { "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart }, { "restart", awesome.restart },
{ "quit", function() awesome.quit() end }, {
"quit",
function()
awesome.quit()
end,
},
} }
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, mymainmenu =
{ "open terminal", terminal } awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, { "open terminal", terminal } } })
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu })
menu = mymainmenu })
-- Menubar configuration -- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it 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() mytextclock = wibox.widget.textclock()
local cw = calendar_widget({ local cw = calendar_widget({
theme = 'nord', theme = "nord",
placement = "top_right", placement = "top_right",
previous_month_button = 4, previous_month_button = 4,
next_month_button = 5, next_month_button = 5,
}) })
mytextclock:connect_signal("button::press", mytextclock:connect_signal("button::press", function(_, _, _, button)
function(_, _, _, button) if button == 1 then
if button == 1 then cw.toggle() end cw.toggle()
end
end) end)
-- Create a wibox for each screen and add it -- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join( 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) awful.button({ modkey }, 1, function(t)
if client.focus then if client.focus then
client.focus:move_to_tag(t) client.focus:move_to_tag(t)
@ -172,8 +191,12 @@ local taglist_buttons = gears.table.join(
client.focus:toggle_tag(t) client.focus:toggle_tag(t)
end end
end), end),
awful.button({}, 4, function(t) awful.tag.viewnext(t.screen) end), awful.button({}, 4, function(t)
awful.button({}, 5, function(t) awful.tag.viewprev(t.screen) end) awful.tag.viewnext(t.screen)
end),
awful.button({}, 5, function(t)
awful.tag.viewprev(t.screen)
end)
) )
local tasklist_buttons = gears.table.join( local tasklist_buttons = gears.table.join(
@ -181,11 +204,7 @@ local tasklist_buttons = gears.table.join(
if c == client.focus then if c == client.focus then
c.minimized = true c.minimized = true
else else
c:emit_signal( c:emit_signal("request::activate", "tasklist", { raise = true })
"request::activate",
"tasklist",
{ raise = true }
)
end end
end), end),
awful.button({}, 3, function() awful.button({}, 3, function()
@ -196,7 +215,8 @@ local tasklist_buttons = gears.table.join(
end), end),
awful.button({}, 5, function() awful.button({}, 5, function()
awful.client.focus.byidx(-1) awful.client.focus.byidx(-1)
end)) end)
)
local function set_wallpaper(s) local function set_wallpaper(s)
-- Wallpaper -- Wallpaper
@ -226,29 +246,38 @@ awful.screen.connect_for_each_screen(function(s)
-- We need one layoutbox per screen. -- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s) s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join( s.mylayoutbox:buttons(gears.table.join(
awful.button({}, 1, function() awful.layout.inc(1) end), awful.button({}, 1, function()
awful.button({}, 3, function() awful.layout.inc(-1) end), awful.layout.inc(1)
awful.button({}, 4, function() awful.layout.inc(1) end), end),
awful.button({}, 5, 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 -- Create a taglist widget
s.mytaglist = awful.widget.taglist { s.mytaglist = awful.widget.taglist({
screen = s, screen = s,
filter = awful.widget.taglist.filter.all, filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons buttons = taglist_buttons,
} })
-- Create a tasklist widget -- Create a tasklist widget
s.mytasklist = awful.widget.tasklist { s.mytasklist = awful.widget.tasklist({
screen = s, screen = s,
filter = awful.widget.tasklist.filter.currenttags, filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons buttons = tasklist_buttons,
} })
-- Create the wibox -- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s }) s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox -- Add widgets to the wibox
s.mywibox:setup { s.mywibox:setup({
layout = wibox.layout.align.horizontal, layout = wibox.layout.align.horizontal,
{ -- Left widgets { -- Left widgets
layout = wibox.layout.fixed.horizontal, layout = wibox.layout.fixed.horizontal,
@ -281,13 +310,15 @@ awful.screen.connect_for_each_screen(function(s)
mytextclock, mytextclock,
s.mylayoutbox, s.mylayoutbox,
}, },
} })
end) end)
-- }}} -- }}}
-- {{{ Mouse bindings -- {{{ Mouse bindings
root.buttons(gears.table.join( 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({}, 4, awful.tag.viewnext),
awful.button({}, 5, awful.tag.viewprev) awful.button({}, 5, awful.tag.viewprev)
)) ))
@ -296,217 +327,228 @@ root.buttons(gears.table.join(
-- {{{ Key bindings -- {{{ Key bindings
globalkeys = gears.table.join( globalkeys = gears.table.join(
awful.key({}, "Pause", function() awful.spawn.with_shell("playerctl -a play-pause") end, awful.key({}, "Pause", function()
{ description = "pause/play", group = "media controls" }), 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, awful.key({ "Control" }, "Pause", function()
{ description = "pause all", group = "media controls" }), 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, awful.key({}, "#117", function()
{ description = "play next", group = "media controls" }), awful.spawn.with_shell("playerctl next")
end, { description = "play next", group = "media controls" }),
awful.key({}, "#112", function() awful.spawn.with_shell("playerctl previous") end, awful.key({}, "#112", function()
{ description = "play previous", group = "media controls" }), 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( {}, "#123", function () volume_widget:inc(5) end ), -- increase volume
--awful.key( {}, "#122", function () volume_widget:dec(5) end ), -- decrease volume --awful.key( {}, "#122", function () volume_widget:dec(5) end ), -- decrease volume
--awful.key( {}, "#121", function () volume_widget:toggle() end ), -- mute --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({ "Control" }, "#107", function()
awful.key({}, "#122", function() awful.spawn.with_shell("pulsemixer --change-volume -5") end), -- decrease volume awful.spawn.with_shell("flameshot gui")
awful.key({}, "#121", function() awful.spawn.with_shell("pulsemixer --toggle-mute") end), -- mute end, { description = "take region screenshot", group = "launcher" }), -- take region screenshot
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, awful.key({ modkey }, "s", hotkeys_popup.show_help, { description = "show help", group = "awesome" }),
{ description = "take region screenshot", group = "launcher" }), -- take region screenshot 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, awful.key({ modkey }, "j", function()
{ 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) awful.client.focus.byidx(1)
end, end, { description = "focus next by index", group = "client" }),
{ description = "focus next by index", group = "client" } awful.key({ modkey }, "k", function()
),
awful.key({ modkey, }, "k",
function()
awful.client.focus.byidx(-1) awful.client.focus.byidx(-1)
end, end, { description = "focus previous by index", group = "client" }),
{ description = "focus previous by index", group = "client" } awful.key({ modkey }, "w", function()
), mymainmenu:show()
awful.key({ modkey, }, "w", function() mymainmenu:show() end, end, { description = "show main menu", group = "awesome" }),
{ description = "show main menu", group = "awesome" }),
-- Layout manipulation -- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end, awful.key({ modkey, "Shift" }, "j", function()
{ description = "swap with next client by index", group = "client" }), awful.client.swap.byidx(1)
awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end, end, { description = "swap with next client by index", group = "client" }),
{ description = "swap with previous client by index", group = "client" }), awful.key({ modkey, "Shift" }, "k", function()
awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end, awful.client.swap.byidx(-1)
{ description = "focus the next screen", group = "screen" }), end, { description = "swap with previous client by index", group = "client" }),
awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end, awful.key({ modkey, "Control" }, "j", function()
{ description = "focus the previous screen", group = "screen" }), awful.screen.focus_relative(1)
awful.key({ modkey, }, "u", awful.client.urgent.jumpto, end, { description = "focus the next screen", group = "screen" }),
{ description = "jump to urgent client", group = "client" }), awful.key({ modkey, "Control" }, "k", function()
awful.key({ modkey, }, "Tab", awful.screen.focus_relative(-1)
function() 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.client.focus.history.previous()
if client.focus then if client.focus then
client.focus:raise() client.focus:raise()
end end
end, end, { description = "go back", group = "client" }),
{ description = "go back", group = "client" }),
-- Standard program -- Standard program
awful.key({ modkey, }, "Return", function() awful.spawn(terminal) end, awful.key({ modkey }, "Return", function()
{ description = "open a terminal", group = "launcher" }), awful.spawn(terminal)
awful.key({ modkey, "Control" }, "r", awesome.restart, end, { description = "open a terminal", group = "launcher" }),
{ description = "reload awesome", group = "awesome" }), awful.key({ modkey, "Control" }, "r", awesome.restart, { description = "reload awesome", group = "awesome" }),
-- awful.key({ modkey, "Control" }, "q", awesome.quit, -- awful.key({ modkey, "Control" }, "q", awesome.quit,
-- {description = "quit awesome", group = "awesome"}), -- {description = "quit awesome", group = "awesome"}),
awful.key({ modkey, }, "b", function() awful.spawn("firefox") end, awful.key({ modkey }, "b", function()
{ description = "open firefox", group = "launcher" }), awful.spawn("firefox")
awful.key({ modkey, }, "n", function() awful.spawn("spacefm") end, end, { description = "open firefox", group = "launcher" }),
{ description = "open spacefm", 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, awful.key({ modkey }, "l", function()
{ description = "increase master width factor", group = "layout" }), awful.tag.incmwfact(0.05)
awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end, end, { description = "increase master width factor", group = "layout" }),
{ description = "decrease master width factor", group = "layout" }), awful.key({ modkey }, "h", function()
awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1, nil, true) end, awful.tag.incmwfact(-0.05)
{ description = "increase the number of master clients", group = "layout" }), end, { description = "decrease master width factor", group = "layout" }),
awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1, nil, true) end, awful.key({ modkey, "Shift" }, "h", function()
{ description = "decrease the number of master clients", group = "layout" }), awful.tag.incnmaster(1, nil, true)
awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1, nil, true) end, end, { description = "increase the number of master clients", group = "layout" }),
{ description = "increase the number of columns", group = "layout" }), awful.key({ modkey, "Shift" }, "l", function()
awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1, nil, true) end, awful.tag.incnmaster(-1, nil, true)
{ description = "decrease the number of columns", group = "layout" }), end, { description = "decrease the number of master clients", group = "layout" }),
awful.key({ modkey, }, "space", function() awful.layout.inc(1) end, awful.key({ modkey, "Control" }, "h", function()
{ description = "select next", group = "layout" }), awful.tag.incncol(1, nil, true)
awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(-1) end, end, { description = "increase the number of columns", group = "layout" }),
{ description = "select previous", 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 -- Prompt
awful.key({ modkey }, "r", function() awful.screen.focused().mypromptbox:run() end, awful.key({ modkey }, "r", function()
{ description = "run prompt", group = "launcher" }), awful.screen.focused().mypromptbox:run()
end, { description = "run prompt", group = "launcher" }),
awful.key({ modkey }, "x", awful.key({ modkey }, "x", function()
function() awful.prompt.run({
awful.prompt.run {
prompt = "Run Lua code: ", prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget, textbox = awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval, exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval" history_path = awful.util.get_cache_dir() .. "/history_eval",
} })
end, end, { description = "lua execute prompt", group = "awesome" }),
{ description = "lua execute prompt", group = "awesome" }),
-- Menubar -- Menubar
awful.key({ modkey }, "p", function() menubar.show() end, awful.key({ modkey }, "p", function()
{ description = "show the menubar", group = "launcher" }) menubar.show()
end, { description = "show the menubar", group = "launcher" })
) )
clientkeys = gears.table.join( clientkeys = gears.table.join(
awful.key({ modkey, }, "f", awful.key({ modkey }, "f", function(c)
function(c)
c.fullscreen = not c.fullscreen c.fullscreen = not c.fullscreen
c:raise() c:raise()
end, end, { description = "toggle fullscreen", group = "client" }),
{ description = "toggle fullscreen", group = "client" }), awful.key({ modkey, "Shift" }, "q", function(c)
awful.key({ modkey, "Shift" }, "q", function(c) c:kill() end, c:kill()
{ description = "close", group = "client" }), end, { description = "close", group = "client" }),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle, awful.key(
{ description = "toggle floating", group = "client" }), { modkey, "Control" },
awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end, "space",
{ description = "move to master", group = "client" }), awful.client.floating.toggle,
awful.key({ modkey, }, "o", function(c) c:move_to_screen() end, { description = "toggle floating", group = "client" }
{ description = "move to screen", group = "client" }), ),
awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end, awful.key({ modkey, "Control" }, "Return", function(c)
{ description = "toggle keep on top", group = "client" }), c:swap(awful.client.getmaster())
awful.key({ modkey, }, "n", end, { description = "move to master", group = "client" }),
function(c) 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 -- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus. -- minimized, since minimized clients can't have the focus.
c.minimized = true c.minimized = true
end, end, { description = "minimize", group = "client" }),
{ description = "minimize", group = "client" }), awful.key({ modkey }, "m", function(c)
awful.key({ modkey, }, "m",
function(c)
c.maximized = not c.maximized c.maximized = not c.maximized
c:raise() c:raise()
end, end, { description = "(un)maximize", group = "client" }),
{ description = "(un)maximize", group = "client" }), awful.key({ modkey, "Control" }, "m", function(c)
awful.key({ modkey, "Control" }, "m",
function(c)
c.maximized_vertical = not c.maximized_vertical c.maximized_vertical = not c.maximized_vertical
c:raise() c:raise()
end, end, { description = "(un)maximize vertically", group = "client" }),
{ description = "(un)maximize vertically", group = "client" }), awful.key({ modkey, "Shift" }, "m", function(c)
awful.key({ modkey, "Shift" }, "m",
function(c)
c.maximized_horizontal = not c.maximized_horizontal c.maximized_horizontal = not c.maximized_horizontal
c:raise() c:raise()
end, end, { description = "(un)maximize horizontally", group = "client" })
{ description = "(un)maximize horizontally", group = "client" })
) )
-- Bind all key numbers to tags. -- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout. -- 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. -- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do for i = 1, 9 do
globalkeys = gears.table.join(globalkeys, globalkeys = gears.table.join(
globalkeys,
-- View tag only. -- View tag only.
awful.key({ modkey }, "#" .. i + 9, awful.key({ modkey }, "#" .. i + 9, function()
function()
local screen = awful.screen.focused() local screen = awful.screen.focused()
local tag = screen.tags[i] local tag = screen.tags[i]
if tag then if tag then
tag:view_only() tag:view_only()
end end
end, end, { description = "view tag #" .. i, group = "tag" }),
{ description = "view tag #" .. i, group = "tag" }),
-- Toggle tag display. -- Toggle tag display.
awful.key({ modkey, "Control" }, "#" .. i + 9, awful.key({ modkey, "Control" }, "#" .. i + 9, function()
function()
local screen = awful.screen.focused() local screen = awful.screen.focused()
local tag = screen.tags[i] local tag = screen.tags[i]
if tag then if tag then
awful.tag.viewtoggle(tag) awful.tag.viewtoggle(tag)
end end
end, end, { description = "toggle tag #" .. i, group = "tag" }),
{ description = "toggle tag #" .. i, group = "tag" }),
-- Move client to tag. -- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9, awful.key({ modkey, "Shift" }, "#" .. i + 9, function()
function()
if client.focus then if client.focus then
local tag = client.focus.screen.tags[i] local tag = client.focus.screen.tags[i]
if tag then if tag then
client.focus:move_to_tag(tag) client.focus:move_to_tag(tag)
end end
end end
end, end, { description = "move focused client to tag #" .. i, group = "tag" }),
{ description = "move focused client to tag #" .. i, group = "tag" }),
-- Toggle tag on focused client. -- Toggle tag on focused client.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function()
function()
if client.focus then if client.focus then
local tag = client.focus.screen.tags[i] local tag = client.focus.screen.tags[i]
if tag then if tag then
client.focus:toggle_tag(tag) client.focus:toggle_tag(tag)
end end
end end
end, end, { description = "toggle focused client on tag #" .. i, group = "tag" })
{ description = "toggle focused client on tag #" .. i, group = "tag" })
) )
end end
@ -532,8 +574,10 @@ root.keys(globalkeys)
-- Rules to apply to new clients (through the "manage" signal). -- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = { awful.rules.rules = {
-- All clients will match this rule. -- 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, border_color = beautiful.border_normal,
focus = awful.client.focus.filter, focus = awful.client.focus.filter,
raise = true, raise = true,
@ -541,11 +585,12 @@ awful.rules.rules = {
-- buttons = clientbuttons, -- buttons = clientbuttons,
screen = awful.screen.preferred, screen = awful.screen.preferred,
--placement = awful.placement.no_overlap+awful.placement.no_offscreen --placement = awful.placement.no_overlap+awful.placement.no_offscreen
} },
}, },
-- Floating clients. -- Floating clients.
{ rule_any = { {
rule_any = {
instance = { instance = {
"DTA", -- Firefox addon DownThemAll. "DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class. "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. "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui", "Wpa_gui",
"veromix", "veromix",
"xtightvncviewer" }, "xtightvncviewer",
},
-- Note that the name property shown in xprop might be set slightly after creation of the client -- 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. -- and the name shown there might not match defined rules here.
@ -572,27 +618,28 @@ awful.rules.rules = {
"AlarmWindow", -- Thunderbird's calendar. "AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config. "ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools. "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 -- Add titlebars to normal clients and dialogs
{ rule_any = { type = { "normal", "dialog" } { rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = false } },
}, properties = { titlebars_enabled = false }
},
{ {
rule_any = { rule_any = {
class = { "discord", "TelegramDesktop", "Ripcord" } class = { "discord", "TelegramDesktop", "Ripcord" },
}, properties = { screen = 2, tag = "8" } },
properties = { screen = 2, tag = "8" },
}, },
{ {
rule_any = { rule_any = {
class = { "spotify", "Spotify" }, class = { "spotify", "Spotify" },
name = { "Spotify" } name = { "Spotify" },
}, properties = { screen = 2, tag = "9" } },
properties = { screen = 2, tag = "9" },
}, },
} }
-- {{{ Signals -- {{{ 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. -- 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 not awesome.startup then awful.client.setslave(c) end
if awesome.startup if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
and not c.size_hints.user_position
and not c.size_hints.program_position then
-- Prevent clients from being unreachable after screen count changes. -- Prevent clients from being unreachable after screen count changes.
awful.placement.no_offscreen(c) awful.placement.no_offscreen(c)
end end
@ -624,19 +669,19 @@ client.connect_signal("request::titlebars", function(c)
end) end)
) )
awful.titlebar(c):setup { awful.titlebar(c):setup({
{ -- Left { -- Left
awful.titlebar.widget.iconwidget(c), awful.titlebar.widget.iconwidget(c),
buttons = buttons, buttons = buttons,
layout = wibox.layout.fixed.horizontal layout = wibox.layout.fixed.horizontal,
}, },
{ -- Middle { -- Middle
{ -- Title { -- Title
align = "center", align = "center",
widget = awful.titlebar.widget.titlewidget(c) widget = awful.titlebar.widget.titlewidget(c),
}, },
buttons = buttons, buttons = buttons,
layout = wibox.layout.flex.horizontal layout = wibox.layout.flex.horizontal,
}, },
{ -- Right { -- Right
awful.titlebar.widget.floatingbutton(c), awful.titlebar.widget.floatingbutton(c),
@ -644,10 +689,10 @@ client.connect_signal("request::titlebars", function(c)
awful.titlebar.widget.stickybutton(c), awful.titlebar.widget.stickybutton(c),
awful.titlebar.widget.ontopbutton(c), awful.titlebar.widget.ontopbutton(c),
awful.titlebar.widget.closebutton(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) end)
-- Enable sloppy focus, so that focus follows mouse. -- 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 }) c:emit_signal("request::activate", "mouse_enter", { raise = false })
end) end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.connect_signal("focus", function(c)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) c.border_color = beautiful.border_focus
end)
client.connect_signal("unfocus", function(c)
c.border_color = beautiful.border_normal
end)
-- }}} -- }}}
-- Autostart Applications -- Autostart Applications
awful.spawn.with_shell("picom --experimental-backends") awful.spawn.with_shell("picom --experimental-backends")
awful.spawn.with_shell("setxkbmap lv") awful.spawn.with_shell("setxkbmap lv")

View File

@ -32,7 +32,7 @@ local encode
local escape_char_map = { local escape_char_map = {
["\\"] = "\\", ["\\"] = "\\",
["\""] = "\"", ['"'] = '"',
["\b"] = "b", ["\b"] = "b",
["\f"] = "f", ["\f"] = "f",
["\n"] = "n", ["\n"] = "n",
@ -45,7 +45,6 @@ for k, v in pairs(escape_char_map) do
escape_char_map_inv[v] = k escape_char_map_inv[v] = k
end end
local function escape_char(c) local function escape_char(c)
return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte())) return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte()))
end end
@ -59,7 +58,9 @@ local function encode_table(val, stack)
stack = stack or {} stack = stack or {}
-- Circular reference? -- Circular reference?
if stack[val] then error("circular reference") end if stack[val] then
error("circular reference")
end
stack[val] = true stack[val] = true
@ -81,7 +82,6 @@ local function encode_table(val, stack)
end end
stack[val] = nil stack[val] = nil
return "[" .. table.concat(res, ",") .. "]" return "[" .. table.concat(res, ",") .. "]"
else else
-- Treat as an object -- Treat as an object
for k, v in pairs(val) do for k, v in pairs(val) do
@ -115,7 +115,6 @@ local type_func_map = {
["boolean"] = tostring, ["boolean"] = tostring,
} }
encode = function(val, stack) encode = function(val, stack)
local t = type(val) local t = type(val)
local f = type_func_map[t] local f = type_func_map[t]
@ -125,7 +124,6 @@ encode = function(val, stack)
error("unexpected type '" .. t .. "'") error("unexpected type '" .. t .. "'")
end end
function json.encode(val) function json.encode(val)
return (encode(val)) return (encode(val))
end end
@ -155,7 +153,6 @@ local literal_map = {
["null"] = nil, ["null"] = nil,
} }
local function next_char(str, idx, set, negate) local function next_char(str, idx, set, negate)
for i = idx, #str do for i = idx, #str do
if set[str:sub(i, i)] ~= negate then if set[str:sub(i, i)] ~= negate then
@ -188,8 +185,7 @@ local function codepoint_to_utf8(n)
elseif n <= 0xffff then elseif n <= 0xffff then
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128) return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
elseif n <= 0x10ffff then elseif n <= 0x10ffff then
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128, return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128, f(n % 4096 / 64) + 128, n % 64 + 128)
f(n % 4096 / 64) + 128, n % 64 + 128)
end end
error(string.format("invalid unicode codepoint '%x'", n)) error(string.format("invalid unicode codepoint '%x'", n))
end end
@ -215,7 +211,6 @@ local function parse_string(str, i)
if x < 32 then if x < 32 then
decode_error(str, j, "control character in string") decode_error(str, j, "control character in string")
elseif x == 92 then -- `\`: Escape elseif x == 92 then -- `\`: Escape
res = res .. str:sub(k, j - 1) res = res .. str:sub(k, j - 1)
j = j + 1 j = j + 1
@ -233,7 +228,6 @@ local function parse_string(str, i)
res = res .. escape_char_map_inv[c] res = res .. escape_char_map_inv[c]
end end
k = j + 1 k = j + 1
elseif x == 34 then -- `"`: End of string elseif x == 34 then -- `"`: End of string
res = res .. str:sub(k, j - 1) res = res .. str:sub(k, j - 1)
return res, j + 1 return res, j + 1
@ -284,8 +278,12 @@ local function parse_array(str, i)
i = next_char(str, i, space_chars, true) i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i) local chr = str:sub(i, i)
i = i + 1 i = i + 1
if chr == "]" then break end if chr == "]" then
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end break
end
if chr ~= "," then
decode_error(str, i, "expected ']' or ','")
end
end end
return res, i return res, i
end end
@ -320,8 +318,12 @@ local function parse_object(str, i)
i = next_char(str, i, space_chars, true) i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i) local chr = str:sub(i, i)
i = i + 1 i = i + 1
if chr == "}" then break end if chr == "}" then
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end break
end
if chr ~= "," then
decode_error(str, i, "expected '}' or ','")
end
end end
return res, i return res, i
end end
@ -346,7 +348,6 @@ local char_func_map = {
["{"] = parse_object, ["{"] = parse_object,
} }
parse = function(str, idx) parse = function(str, idx)
local chr = str:sub(idx, idx) local chr = str:sub(idx, idx)
local f = char_func_map[chr] local f = char_func_map[chr]
@ -356,7 +357,6 @@ parse = function(str, idx)
decode_error(str, idx, "unexpected character '" .. chr .. "'") decode_error(str, idx, "unexpected character '" .. chr .. "'")
end end
function json.decode(str) function json.decode(str)
if type(str) ~= "string" then if type(str) ~= "string" then
error("expected argument of type string, got " .. type(str)) error("expected argument of type string, got " .. type(str))

View File

@ -30,7 +30,6 @@ theme.border_normal = "#000000"
theme.border_focus = "#f2f2f2" theme.border_focus = "#f2f2f2"
theme.border_marked = "#91231c" theme.border_marked = "#91231c"
-- There are other variable sets -- There are other variable sets
-- overriding the default one when -- overriding the default one when
-- defined, the sets are: -- defined, the sets are:
@ -46,12 +45,8 @@ theme.border_marked = "#91231c"
-- Generate taglist squares: -- Generate taglist squares:
local taglist_square_size = dpi(4) local taglist_square_size = dpi(4)
theme.taglist_squares_sel = theme_assets.taglist_squares_sel( theme.taglist_squares_sel = theme_assets.taglist_squares_sel(taglist_square_size, theme.fg_normal)
taglist_square_size, theme.fg_normal theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(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: -- Variables set for theming notifications:
-- notification_font -- notification_font
@ -119,9 +114,7 @@ theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png" theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
-- Generate Awesome icon: -- Generate Awesome icon:
theme.awesome_icon = theme_assets.awesome_icon( theme.awesome_icon = theme_assets.awesome_icon(theme.menu_height, theme.bg_focus, theme.fg_focus)
theme.menu_height, theme.bg_focus, theme.fg_focus
)
-- Define the icon theme for application icons. If not set then the icons -- 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. -- from /usr/share/icons and /usr/share/icons/hicolor will be used.

View File

@ -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 cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget")
local brightness_widget = require("awesome-wm-widgets.brightness-widget.brightness") local brightness_widget = require("awesome-wm-widgets.brightness-widget.brightness")
local spotify_widget = require("awesome-wm-widgets.spotify-widget.spotify") local spotify_widget = require("awesome-wm-widgets.spotify-widget.spotify")
local volume_widget = require('awesome-wm-widgets.volume-widget.volume') local volume_widget = require("awesome-wm-widgets.volume-widget.volume")
local calendar_widget = require('awesome-wm-widgets.calendar-widget.calendar') local calendar_widget = require("awesome-wm-widgets.calendar-widget.calendar")
local logout_menu_widget = require('awesome-wm-widgets.logout-menu-widget.logout-menu') 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 net_speed_widget = require("awesome-wm-widgets.net-speed-widget.net-speed")
local ram_widget = require('awesome-wm-widgets.ram-widget.ram-widget') local ram_widget = require("awesome-wm-widgets.ram-widget.ram-widget")
local weather_widget = require("awesome-wm-widgets.weather-widget.weather") local weather_widget = require("awesome-wm-widgets.weather-widget.weather")
-- Standard awesome library -- Standard awesome library
@ -32,18 +32,22 @@ require("awful.hotkeys_popup.keys")
-- OpenWeather API -- OpenWeather API
-- !Create file ~/.config/awesome/weather and paste API from OpenWeather, latitude and longitude, each on separate lines -- !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 -- see if the file exists
local function file_exists(file) local function file_exists(file)
local f = io.open(file, "rb") local f = io.open(file, "rb")
if f then f:close() end if f then
f:close()
end
return f ~= nil return f ~= nil
end end
-- get all lines from a file, returns an empty -- get all lines from a file, returns an empty
-- list/table if the file does not exist -- list/table if the file does not exist
local function lines_from(file) local function lines_from(file)
if not file_exists(file) then return {} end if not file_exists(file) then
return {}
end
local lines = {} local lines = {}
for line in io.lines(file) do for line in io.lines(file) do
lines[#lines + 1] = line lines[#lines + 1] = line
@ -56,14 +60,15 @@ local API = weather_output[1]
local latitude = tonumber(weather_output[2]) local latitude = tonumber(weather_output[2])
local longitude = tonumber(weather_output[3]) local longitude = tonumber(weather_output[3])
-- {{{ Error handling -- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to -- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config) -- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then 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!", title = "Oops, there were errors during startup!",
text = awesome.startup_errors }) text = awesome.startup_errors,
})
end end
-- Handle runtime errors after startup -- Handle runtime errors after startup
@ -71,12 +76,16 @@ do
local in_error = false local in_error = false
awesome.connect_signal("debug::error", function(err) awesome.connect_signal("debug::error", function(err)
-- Make sure we don't go into an endless error loop -- 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 in_error = true
naughty.notify({ preset = naughty.config.presets.critical, naughty.notify({
preset = naughty.config.presets.critical,
title = "Oops, an error happened!", title = "Oops, an error happened!",
text = tostring(err) }) text = tostring(err),
})
in_error = false in_error = false
end) end)
end end
@ -123,20 +132,27 @@ awful.layout.layouts = {
-- {{{ Menu -- {{{ Menu
-- Create a launcher widget and a main menu -- Create a launcher widget and a main menu
myawesomemenu = { 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" }, { "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile }, { "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart }, { "restart", awesome.restart },
{ "quit", function() awesome.quit() end }, {
"quit",
function()
awesome.quit()
end,
},
} }
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, mymainmenu =
{ "open terminal", terminal } awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, { "open terminal", terminal } } })
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu })
menu = mymainmenu })
-- Menubar configuration -- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it 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 -- Create a textclock widget
mytextclock = wibox.widget.textclock() mytextclock = wibox.widget.textclock()
local cw = calendar_widget({ local cw = calendar_widget({
theme = 'nord', theme = "nord",
placement = "top_right", placement = "top_right",
previous_month_button = 4, previous_month_button = 4,
next_month_button = 5, next_month_button = 5,
}) })
mytextclock:connect_signal("button::press", mytextclock:connect_signal("button::press", function(_, _, _, button)
function(_, _, _, button) if button == 1 then
if button == 1 then cw.toggle() end cw.toggle()
end
end) end)
-- Create a wibox for each screen and add it -- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join( 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) awful.button({ modkey }, 1, function(t)
if client.focus then if client.focus then
client.focus:move_to_tag(t) client.focus:move_to_tag(t)
@ -174,8 +193,12 @@ local taglist_buttons = gears.table.join(
client.focus:toggle_tag(t) client.focus:toggle_tag(t)
end end
end), end),
awful.button({}, 4, function(t) awful.tag.viewnext(t.screen) end), awful.button({}, 4, function(t)
awful.button({}, 5, function(t) awful.tag.viewprev(t.screen) end) awful.tag.viewnext(t.screen)
end),
awful.button({}, 5, function(t)
awful.tag.viewprev(t.screen)
end)
) )
local tasklist_buttons = gears.table.join( local tasklist_buttons = gears.table.join(
@ -183,11 +206,7 @@ local tasklist_buttons = gears.table.join(
if c == client.focus then if c == client.focus then
c.minimized = true c.minimized = true
else else
c:emit_signal( c:emit_signal("request::activate", "tasklist", { raise = true })
"request::activate",
"tasklist",
{ raise = true }
)
end end
end), end),
awful.button({}, 3, function() awful.button({}, 3, function()
@ -198,7 +217,8 @@ local tasklist_buttons = gears.table.join(
end), end),
awful.button({}, 5, function() awful.button({}, 5, function()
awful.client.focus.byidx(-1) awful.client.focus.byidx(-1)
end)) end)
)
local function set_wallpaper(s) local function set_wallpaper(s)
-- Wallpaper -- Wallpaper
@ -228,29 +248,38 @@ awful.screen.connect_for_each_screen(function(s)
-- We need one layoutbox per screen. -- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s) s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join( s.mylayoutbox:buttons(gears.table.join(
awful.button({}, 1, function() awful.layout.inc(1) end), awful.button({}, 1, function()
awful.button({}, 3, function() awful.layout.inc(-1) end), awful.layout.inc(1)
awful.button({}, 4, function() awful.layout.inc(1) end), end),
awful.button({}, 5, 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 -- Create a taglist widget
s.mytaglist = awful.widget.taglist { s.mytaglist = awful.widget.taglist({
screen = s, screen = s,
filter = awful.widget.taglist.filter.all, filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons buttons = taglist_buttons,
} })
-- Create a tasklist widget -- Create a tasklist widget
s.mytasklist = awful.widget.tasklist { s.mytasklist = awful.widget.tasklist({
screen = s, screen = s,
filter = awful.widget.tasklist.filter.currenttags, filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons buttons = tasklist_buttons,
} })
-- Create the wibox -- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s }) s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox -- Add widgets to the wibox
s.mywibox:setup { s.mywibox:setup({
layout = wibox.layout.align.horizontal, layout = wibox.layout.align.horizontal,
{ -- Left widgets { -- Left widgets
layout = wibox.layout.fixed.horizontal, layout = wibox.layout.fixed.horizontal,
@ -274,12 +303,12 @@ awful.screen.connect_for_each_screen(function(s)
show_current_level = true, show_current_level = true,
size = 32, size = 32,
}), }),
brightness_widget { brightness_widget({
program = 'brightnessctl', program = "brightnessctl",
step = 5, step = 5,
base = 60, base = 60,
tooltip = true, tooltip = true,
}, }),
weather_widget({ weather_widget({
api_key = API, api_key = API,
coordinates = { latitude, longitude }, coordinates = { latitude, longitude },
@ -290,13 +319,15 @@ awful.screen.connect_for_each_screen(function(s)
mytextclock, mytextclock,
s.mylayoutbox, s.mylayoutbox,
}, },
} })
end) end)
-- }}} -- }}}
-- {{{ Mouse bindings -- {{{ Mouse bindings
root.buttons(gears.table.join( 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({}, 4, awful.tag.viewnext),
awful.button({}, 5, awful.tag.viewprev) awful.button({}, 5, awful.tag.viewprev)
)) ))
@ -305,82 +336,104 @@ root.buttons(gears.table.join(
-- {{{ Key bindings -- {{{ Key bindings
globalkeys = gears.table.join( globalkeys = gears.table.join(
awful.key({}, "#233", function() brightness_widget:inc() end), -- increase brightness awful.key({}, "#233", function()
awful.key({}, "#232", function() brightness_widget:dec() end), -- decrease brightness 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({}, "#123", function()
awful.key({}, "#122", function() awful.spawn.with_shell("pulsemixer --change-volume -5") end), -- decrease volume awful.spawn.with_shell("pulsemixer --change-volume +5")
awful.key({}, "#121", function() awful.spawn.with_shell("pulsemixer --toggle-mute") end), -- mute end), -- increase volume
awful.key({}, "#172", function() awful.spawn.with_shell("playerctl -a play-pause") end), -- play/pause 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, awful.key({ "Control" }, "#107", function()
{ description = "take region screenshot", group = "launcher" }), -- take region screenshot 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, awful.key({ modkey }, "j", function()
{ description = "show help", group = "awesome" }), awful.client.focus.byidx(1)
awful.key({ modkey, }, "Left", awful.tag.viewprev, end, { description = "focus next by index", group = "client" }),
{ description = "view previous", group = "tag" }), awful.key({ modkey }, "k", function()
awful.key({ modkey, }, "Right", awful.tag.viewnext, awful.client.focus.byidx(-1)
{ description = "view next", group = "tag" }), end, { description = "focus previous by index", group = "client" }),
awful.key({ modkey, }, "Escape", awful.tag.history.restore, awful.key({ modkey }, "w", function()
{ description = "go back", group = "tag" }), 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 -- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end, awful.key({ modkey, "Shift" }, "j", function()
{ description = "swap with next client by index", group = "client" }), awful.client.swap.byidx(1)
awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end, end, { description = "swap with next client by index", group = "client" }),
{ description = "swap with previous client by index", group = "client" }), awful.key({ modkey, "Shift" }, "k", function()
awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end, awful.client.swap.byidx(-1)
{ description = "focus the next screen", group = "screen" }), end, { description = "swap with previous client by index", group = "client" }),
awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end, awful.key({ modkey, "Control" }, "j", function()
{ description = "focus the previous screen", group = "screen" }), awful.screen.focus_relative(1)
awful.key({ modkey, }, "u", awful.client.urgent.jumpto, end, { description = "focus the next screen", group = "screen" }),
{ description = "jump to urgent client", group = "client" }), awful.key({ modkey, "Control" }, "k", function()
awful.key({ modkey, }, "Tab", function() awful.client.focus.history.previous() 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 if client.focus then
client.focus:raise() client.focus:raise()
end end
end, end, { description = "go back", group = "client" }),
{ description = "go back", group = "client" }),
-- Standard program -- Standard program
awful.key({ modkey, }, "Return", function() awful.spawn(terminal) end, awful.key({ modkey }, "Return", function()
{ description = "open a terminal", group = "launcher" }), awful.spawn(terminal)
awful.key({ modkey, "Control" }, "r", awesome.restart, end, { description = "open a terminal", group = "launcher" }),
{ description = "reload awesome", group = "awesome" }), awful.key({ modkey, "Control" }, "r", awesome.restart, { description = "reload awesome", group = "awesome" }),
-- awful.key({ modkey, "Control" }, "q", awesome.quit, -- awful.key({ modkey, "Control" }, "q", awesome.quit,
-- {description = "quit awesome", group = "awesome"}), -- {description = "quit awesome", group = "awesome"}),
awful.key({ modkey, }, "b", function() awful.spawn("firefox") end, awful.key({ modkey }, "b", function()
{ description = "open firefox", group = "launcher" }), awful.spawn("firefox")
awful.key({ modkey, }, "n", function() awful.spawn("spacefm") end, end, { description = "open firefox", group = "launcher" }),
{ description = "open spacefm", 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, awful.key({ modkey }, "l", function()
{ description = "increase master width factor", group = "layout" }), awful.tag.incmwfact(0.05)
awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end, end, { description = "increase master width factor", group = "layout" }),
{ description = "decrease master width factor", group = "layout" }), awful.key({ modkey }, "h", function()
awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1, nil, true) end, awful.tag.incmwfact(-0.05)
{ description = "increase the number of master clients", group = "layout" }), end, { description = "decrease master width factor", group = "layout" }),
awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1, nil, true) end, awful.key({ modkey, "Shift" }, "h", function()
{ description = "decrease the number of master clients", group = "layout" }), awful.tag.incnmaster(1, nil, true)
awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1, nil, true) end, end, { description = "increase the number of master clients", group = "layout" }),
{ description = "increase the number of columns", group = "layout" }), awful.key({ modkey, "Shift" }, "l", function()
awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1, nil, true) end, awful.tag.incnmaster(-1, nil, true)
{ description = "decrease the number of columns", group = "layout" }), end, { description = "decrease the number of master clients", group = "layout" }),
awful.key({ modkey, }, "space", function() awful.layout.inc(1) end, awful.key({ modkey, "Control" }, "h", function()
{ description = "select next", group = "layout" }), awful.tag.incncol(1, nil, true)
awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(-1) end, end, { description = "increase the number of columns", group = "layout" }),
{ description = "select previous", 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", -- awful.key({ modkey, "Control" }, "n",
-- function () -- function ()
@ -395,115 +448,106 @@ globalkeys = gears.table.join(
-- {description = "restore minimized", group = "client"}), -- {description = "restore minimized", group = "client"}),
-- Prompt -- Prompt
awful.key({ modkey }, "r", function() awful.screen.focused().mypromptbox:run() end, awful.key({ modkey }, "r", function()
{ description = "run prompt", group = "launcher" }), awful.screen.focused().mypromptbox:run()
end, { description = "run prompt", group = "launcher" }),
awful.key({ modkey }, "x", awful.key({ modkey }, "x", function()
function() awful.prompt.run({
awful.prompt.run {
prompt = "Run Lua code: ", prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget, textbox = awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval, exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval" history_path = awful.util.get_cache_dir() .. "/history_eval",
} })
end, end, { description = "lua execute prompt", group = "awesome" }),
{ description = "lua execute prompt", group = "awesome" }),
-- Menubar -- Menubar
awful.key({ modkey }, "p", function() menubar.show() end, awful.key({ modkey }, "p", function()
{ description = "show the menubar", group = "launcher" }) menubar.show()
end, { description = "show the menubar", group = "launcher" })
) )
clientkeys = gears.table.join( clientkeys = gears.table.join(
awful.key({ modkey, }, "f", awful.key({ modkey }, "f", function(c)
function(c)
c.fullscreen = not c.fullscreen c.fullscreen = not c.fullscreen
c:raise() c:raise()
end, end, { description = "toggle fullscreen", group = "client" }),
{ description = "toggle fullscreen", group = "client" }), awful.key({ modkey, "Shift" }, "q", function(c)
awful.key({ modkey, "Shift" }, "q", function(c) c:kill() end, c:kill()
{ description = "close", group = "client" }), end, { description = "close", group = "client" }),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle, awful.key(
{ description = "toggle floating", group = "client" }), { modkey, "Control" },
awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end, "space",
{ description = "move to master", group = "client" }), awful.client.floating.toggle,
awful.key({ modkey, }, "o", function(c) c:move_to_screen() end, { description = "toggle floating", group = "client" }
{ description = "move to screen", group = "client" }), ),
awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end, awful.key({ modkey, "Control" }, "Return", function(c)
{ description = "toggle keep on top", group = "client" }), c:swap(awful.client.getmaster())
awful.key({ modkey, }, "n", end, { description = "move to master", group = "client" }),
function(c) 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 -- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus. -- minimized, since minimized clients can't have the focus.
c.minimized = true c.minimized = true
end, end, { description = "minimize", group = "client" }),
{ description = "minimize", group = "client" }), awful.key({ modkey }, "m", function(c)
awful.key({ modkey, }, "m",
function(c)
c.maximized = not c.maximized c.maximized = not c.maximized
c:raise() c:raise()
end, end, { description = "(un)maximize", group = "client" }),
{ description = "(un)maximize", group = "client" }), awful.key({ modkey, "Control" }, "m", function(c)
awful.key({ modkey, "Control" }, "m",
function(c)
c.maximized_vertical = not c.maximized_vertical c.maximized_vertical = not c.maximized_vertical
c:raise() c:raise()
end, end, { description = "(un)maximize vertically", group = "client" }),
{ description = "(un)maximize vertically", group = "client" }), awful.key({ modkey, "Shift" }, "m", function(c)
awful.key({ modkey, "Shift" }, "m",
function(c)
c.maximized_horizontal = not c.maximized_horizontal c.maximized_horizontal = not c.maximized_horizontal
c:raise() c:raise()
end, end, { description = "(un)maximize horizontally", group = "client" })
{ description = "(un)maximize horizontally", group = "client" })
) )
-- Bind all key numbers to tags. -- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout. -- 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. -- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do for i = 1, 9 do
globalkeys = gears.table.join(globalkeys, globalkeys = gears.table.join(
globalkeys,
-- View tag only. -- View tag only.
awful.key({ modkey }, "#" .. i + 9, awful.key({ modkey }, "#" .. i + 9, function()
function()
local screen = awful.screen.focused() local screen = awful.screen.focused()
local tag = screen.tags[i] local tag = screen.tags[i]
if tag then if tag then
tag:view_only() tag:view_only()
end end
end, end, { description = "view tag #" .. i, group = "tag" }),
{ description = "view tag #" .. i, group = "tag" }),
-- Toggle tag display. -- Toggle tag display.
awful.key({ modkey, "Control" }, "#" .. i + 9, awful.key({ modkey, "Control" }, "#" .. i + 9, function()
function()
local screen = awful.screen.focused() local screen = awful.screen.focused()
local tag = screen.tags[i] local tag = screen.tags[i]
if tag then if tag then
awful.tag.viewtoggle(tag) awful.tag.viewtoggle(tag)
end end
end, end, { description = "toggle tag #" .. i, group = "tag" }),
{ description = "toggle tag #" .. i, group = "tag" }),
-- Move client to tag. -- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9, awful.key({ modkey, "Shift" }, "#" .. i + 9, function()
function()
if client.focus then if client.focus then
local tag = client.focus.screen.tags[i] local tag = client.focus.screen.tags[i]
if tag then if tag then
client.focus:move_to_tag(tag) client.focus:move_to_tag(tag)
end end
end end
end, end, { description = "move focused client to tag #" .. i, group = "tag" }),
{ description = "move focused client to tag #" .. i, group = "tag" }),
-- Toggle tag on focused client. -- Toggle tag on focused client.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function()
function()
if client.focus then if client.focus then
local tag = client.focus.screen.tags[i] local tag = client.focus.screen.tags[i]
if tag then if tag then
client.focus:toggle_tag(tag) client.focus:toggle_tag(tag)
end end
end end
end, end, { description = "toggle focused client on tag #" .. i, group = "tag" })
{ description = "toggle focused client on tag #" .. i, group = "tag" })
) )
end end
@ -529,8 +573,10 @@ root.keys(globalkeys)
-- Rules to apply to new clients (through the "manage" signal). -- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = { awful.rules.rules = {
-- All clients will match this rule. -- 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, border_color = beautiful.border_normal,
focus = awful.client.focus.filter, focus = awful.client.focus.filter,
raise = true, raise = true,
@ -538,11 +584,12 @@ awful.rules.rules = {
-- buttons = clientbuttons, -- buttons = clientbuttons,
screen = awful.screen.preferred, screen = awful.screen.preferred,
--placement = awful.placement.no_overlap+awful.placement.no_offscreen --placement = awful.placement.no_overlap+awful.placement.no_offscreen
} },
}, },
-- Floating clients. -- Floating clients.
{ rule_any = { {
rule_any = {
instance = { instance = {
"DTA", -- Firefox addon DownThemAll. "DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class. "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. "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui", "Wpa_gui",
"veromix", "veromix",
"xtightvncviewer" }, "xtightvncviewer",
},
-- Note that the name property shown in xprop might be set slightly after creation of the client -- 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. -- and the name shown there might not match defined rules here.
@ -565,28 +613,31 @@ awful.rules.rules = {
"AlarmWindow", -- Thunderbird's calendar. "AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config. "ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools. "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 -- Add titlebars to normal clients and dialogs
{ rule_any = { type = { "normal", "dialog" } { rule_any = { type = { "normal", "dialog" } }, properties = { titlebars_enabled = false } },
}, properties = { titlebars_enabled = false }
},
{ {
rule_any = { rule_any = {
class = { "tuxedo-control-center", "corectrl" } class = { "tuxedo-control-center", "corectrl" },
}, properties = { screen = 1, tag = "7" } },
properties = { screen = 1, tag = "7" },
}, },
{ {
rule_any = { rule_any = {
class = { "Thunderbird", "discord", "ripcord", "TelegramDesktop" } class = { "Thunderbird", "discord", "ripcord", "TelegramDesktop" },
}, properties = { screen = 1, tag = "8" } },
properties = { screen = 1, tag = "8" },
}, },
{ {
rule_any = { rule_any = {
class = { "spotify", "Spotify" }, 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. -- 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. -- 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 not awesome.startup then awful.client.setslave(c) end
if awesome.startup if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
and not c.size_hints.user_position
and not c.size_hints.program_position then
-- Prevent clients from being unreachable after screen count changes. -- Prevent clients from being unreachable after screen count changes.
awful.placement.no_offscreen(c) awful.placement.no_offscreen(c)
end end
@ -624,19 +673,19 @@ client.connect_signal("request::titlebars", function(c)
end) end)
) )
awful.titlebar(c):setup { awful.titlebar(c):setup({
{ -- Left { -- Left
awful.titlebar.widget.iconwidget(c), awful.titlebar.widget.iconwidget(c),
buttons = buttons, buttons = buttons,
layout = wibox.layout.fixed.horizontal layout = wibox.layout.fixed.horizontal,
}, },
{ -- Middle { -- Middle
{ -- Title { -- Title
align = "center", align = "center",
widget = awful.titlebar.widget.titlewidget(c) widget = awful.titlebar.widget.titlewidget(c),
}, },
buttons = buttons, buttons = buttons,
layout = wibox.layout.flex.horizontal layout = wibox.layout.flex.horizontal,
}, },
{ -- Right { -- Right
awful.titlebar.widget.floatingbutton(c), awful.titlebar.widget.floatingbutton(c),
@ -644,10 +693,10 @@ client.connect_signal("request::titlebars", function(c)
awful.titlebar.widget.stickybutton(c), awful.titlebar.widget.stickybutton(c),
awful.titlebar.widget.ontopbutton(c), awful.titlebar.widget.ontopbutton(c),
awful.titlebar.widget.closebutton(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) end)
-- Enable sloppy focus, so that focus follows mouse. -- 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 }) c:emit_signal("request::activate", "mouse_enter", { raise = false })
end) end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.connect_signal("focus", function(c)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) c.border_color = beautiful.border_focus
end)
client.connect_signal("unfocus", function(c)
c.border_color = beautiful.border_normal
end)
-- }}} -- }}}
-- Autostart Applications -- Autostart Applications
awful.spawn.with_shell("picom --experimental-backends") awful.spawn.with_shell("picom --experimental-backends")
awful.spawn.with_shell("setxkbmap lv") awful.spawn.with_shell("setxkbmap lv")

View File

@ -1,21 +1,22 @@
require ('user.options') require("user.options")
require ('user.keymaps') require("user.keymaps")
require ('user.plugins') require("user.plugins")
require ('user.colorscheme') require("user.colorscheme")
require ('user.cmp') require("user.cmp")
require ('user.lsp') require("user.lsp")
require ('user.telescope') require("user.telescope")
require ('user.treesitter') require("user.treesitter")
require ('user.autopairs') require("user.autopairs")
require ('user.comment') require("user.comment")
require ('user.gitsigns') require("user.gitsigns")
require ('user.nvim-tree') require("user.nvim-tree")
require ('user.bufferline') require("user.bufferline")
require ('user.lualine') require("user.lualine")
require ('user.toggleterm') require("user.toggleterm")
require ('user.project') require("user.project")
require ('user.impatient') require("user.impatient")
require ('user.indentline') require("user.indentline")
require ('user.alpha') require("user.alpha")
require ('user.whichkey') require("user.whichkey")
require ('user.autocommands') require("user.autocommands")
require("user.colorizer")

View File

@ -1,9 +1,9 @@
local status_ok, alpha = pcall(require, 'alpha') local status_ok, alpha = pcall(require, "alpha")
if not status_ok then if not status_ok then
return return
end end
local dashboard = require('alpha.themes.dashboard') local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = { dashboard.section.header.val = {
[[ __ ]], [[ __ ]],
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]], [[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
@ -13,13 +13,13 @@ dashboard.section.header.val = {
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]], [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
} }
dashboard.section.buttons.val = { dashboard.section.buttons.val = {
dashboard.button('f', ' Find file', ':Telescope find_files <CR>'), dashboard.button("f", " Find file", ":Telescope find_files <CR>"),
dashboard.button('e', ' New file', ':ene <BAR> startinsert <CR>'), dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
dashboard.button('p', ' Find project', ':Telescope projects <CR>'), dashboard.button("p", " Find project", ":Telescope projects <CR>"),
dashboard.button('r', ' Recently used files', ':Telescope oldfiles <CR>'), dashboard.button("r", " Recently used files", ":Telescope oldfiles <CR>"),
dashboard.button('t', ' Find text', ':Telescope live_grep <CR>'), dashboard.button("t", " Find text", ":Telescope live_grep <CR>"),
dashboard.button('c', ' Configuration', ':e ~/.config/nvim/init.lua <CR>'), dashboard.button("c", " Configuration", ":e ~/.config/nvim/init.lua <CR>"),
dashboard.button('q', ' Quit Neovim', ':qa<CR>'), dashboard.button("q", " Quit Neovim", ":qa<CR>"),
} }
local function footer() local function footer()
@ -28,14 +28,14 @@ local function footer()
-- local fortune = handle:read('*a') -- local fortune = handle:read('*a')
-- handle:close() -- handle:close()
-- return fortune -- return fortune
return 'chrisatmachine.com' return "chrisatmachine.com"
end end
dashboard.section.footer.val = footer() dashboard.section.footer.val = footer()
dashboard.section.footer.opts.hl = 'Type' dashboard.section.footer.opts.hl = "Type"
dashboard.section.header.opts.hl = 'Include' dashboard.section.header.opts.hl = "Include"
dashboard.section.buttons.opts.hl = 'Keyword' dashboard.section.buttons.opts.hl = "Keyword"
dashboard.opts.opts.noautocmd = true dashboard.opts.opts.noautocmd = true
-- vim.cmd([[autocmd User AlphaReady echo 'ready']]) -- vim.cmd([[autocmd User AlphaReady echo 'ready']])

View File

@ -1,10 +1,14 @@
vim.cmd [[ vim.cmd([[
augroup _general_settings augroup _general_settings
autocmd! autocmd!
autocmd FileType qf,help,man,lspinfo nnoremap <silent> <buffer> q :close<CR> 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 TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200})
autocmd BufWinEnter * :set formatoptions-=cro autocmd BufWinEnter * :set formatoptions-=cro
autocmd FileType qf set nobuflisted 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 end
augroup _git augroup _git
@ -28,16 +32,16 @@ vim.cmd [[
autocmd! autocmd!
autocmd User AlphaReady set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2 autocmd User AlphaReady set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2
augroup end augroup end
]]
-- Autoformat augroup _lsp
-- augroup _lsp autocmd!
-- autocmd! autocmd BufWritePre,InsertLeave * lua vim.lsp.buf.formatting()
-- autocmd BufWritePre * lua vim.lsp.buf.formatting() augroup end
-- augroup end
-- " Verticaly center document when entering insert mode augroup _run
-- autocmd InsertEnter * norm zz autocmd!
autocmd FileType python map <buffer> <C-b> <cmd>w<CR><cmd>exec '!python3' shellescape(@%, 1)<CR>
-- " Remove trailing whitespace on save autocmd FileType rust imap <buffer> <C-b> <esc><cmd>w<CR><cmd>exec '!cargo run'<CR>
-- autocmd BufWritePre * %s/\s\+$//e autocmd FileType rust map <buffer> <C-b> <cmd>w<CR><cmd>exec '!cargo run'<CR>
augroup end
]])

View File

@ -1,33 +1,33 @@
-- Setup nvim-cmp. -- Setup nvim-cmp.
local status_ok, npairs = pcall(require, 'nvim-autopairs') local status_ok, npairs = pcall(require, "nvim-autopairs")
if not status_ok then if not status_ok then
return return
end end
npairs.setup { npairs.setup({
check_ts = true, check_ts = true,
ts_config = { ts_config = {
lua = { 'string', 'source' }, lua = { "string", "source" },
javascript = { 'string', 'template_string' }, javascript = { "string", "template_string" },
java = false, java = false,
}, },
disable_filetype = { 'TelescopePrompt', 'spectre_panel' }, disable_filetype = { "TelescopePrompt", "spectre_panel" },
fast_wrap = { fast_wrap = {
map = '<M-e>', map = "<M-e>",
chars = { '{', '[', '(', "'", '"' }, chars = { "{", "[", "(", "'", '"' },
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], '%s+', ''), pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
offset = 0, -- Offset from pattern match offset = 0, -- Offset from pattern match
end_key = '$', end_key = "$",
keys = 'qwertyuiopzxcvbnmasdfghjkl', keys = "qwertyuiopzxcvbnmasdfghjkl",
check_comma = true, check_comma = true,
highlight = 'PmenuSel', highlight = "PmenuSel",
highlight_grey = 'LineNr', highlight_grey = "LineNr",
}, },
} })
local cmp_autopairs = require 'nvim-autopairs.completion.cmp' local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp_status_ok, cmp = pcall(require, 'cmp') local cmp_status_ok, cmp = pcall(require, "cmp")
if not cmp_status_ok then if not cmp_status_ok then
return return
end 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 = "" } }))

View File

@ -1,26 +1,26 @@
local status_ok, bufferline = pcall(require, 'bufferline') local status_ok, bufferline = pcall(require, "bufferline")
if not status_ok then if not status_ok then
return return
end end
bufferline.setup { bufferline.setup({
options = { options = {
numbers = 'none', -- | 'ordinal' | 'buffer_id' | 'both' | function({ ordinal, id, lower, raise }): string, numbers = "none", -- | 'ordinal' | 'buffer_id' | 'both' | function({ ordinal, id, lower, raise }): string,
close_command = 'Bdelete! %d', -- can be a string | function, see 'Mouse actions' 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' 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' 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' middle_mouse_command = nil, -- can be a string | function, see 'Mouse actions'
-- NOTE: this plugin is designed with this icon in mind, -- NOTE: this plugin is designed with this icon in mind,
-- and so changing this is NOT recommended, this is intended -- and so changing this is NOT recommended, this is intended
-- as an escape hatch for people who cannot bear it for whatever reason -- as an escape hatch for people who cannot bear it for whatever reason
indicator_icon = '', indicator_icon = "",
buffer_close_icon = '', buffer_close_icon = "",
-- buffer_close_icon = '', -- buffer_close_icon = '',
modified_icon = '', modified_icon = "",
close_icon = '', close_icon = "",
-- close_icon = '', -- close_icon = '',
left_trunc_marker = '', left_trunc_marker = "",
right_trunc_marker = '', right_trunc_marker = "",
--- name_formatter can be used to change the buffer's label in the bufferline. --- name_formatter can be used to change the buffer's label in the bufferline.
--- Please note some names can/will break the --- Please note some names can/will break the
--- bufferline so use this at your discretion knowing that it has --- bufferline so use this at your discretion knowing that it has
@ -55,7 +55,7 @@ bufferline.setup {
-- return true -- return true
-- end -- end
-- end, -- end,
offsets = { { filetype = 'NvimTree', text = '', padding = 1 } }, offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
show_buffer_icons = true, show_buffer_icons = true,
show_buffer_close_icons = true, show_buffer_close_icons = true,
show_close_icon = true, show_close_icon = true,
@ -63,7 +63,7 @@ bufferline.setup {
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
-- can also be a table containing 2 custom separators -- can also be a table containing 2 custom separators
-- [focused and unfocused]. eg: { '|', '|' } -- [focused and unfocused]. eg: { '|', '|' }
separator_style = 'thin', -- | 'thick' | 'thin' | { 'any', 'any' }, separator_style = "thin", -- | 'thick' | 'thin' | { 'any', 'any' },
enforce_regular_tabs = true, enforce_regular_tabs = true,
always_show_bufferline = true, always_show_bufferline = true,
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b) -- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
@ -73,12 +73,12 @@ bufferline.setup {
}, },
highlights = { highlights = {
fill = { fill = {
guifg = { attribute = 'fg', highlight = '#ff0000' }, guifg = { attribute = "fg", highlight = "#ff0000" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
background = { background = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
-- buffer_selected = { -- buffer_selected = {
@ -87,17 +87,17 @@ bufferline.setup {
-- gui = 'none' -- gui = 'none'
-- }, -- },
buffer_visible = { buffer_visible = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
close_button = { close_button = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
close_button_visible = { close_button_visible = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
-- close_button_selected = { -- close_button_selected = {
-- guifg = {attribute='fg',highlight='TabLineSel'}, -- guifg = {attribute='fg',highlight='TabLineSel'},
@ -105,63 +105,63 @@ bufferline.setup {
-- }, -- },
tab_selected = { tab_selected = {
guifg = { attribute = 'fg', highlight = 'Normal' }, guifg = { attribute = "fg", highlight = "Normal" },
guibg = { attribute = 'bg', highlight = 'Normal' }, guibg = { attribute = "bg", highlight = "Normal" },
}, },
tab = { tab = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
tab_close = { tab_close = {
-- guifg = {attribute='fg',highlight='LspDiagnosticsDefaultError'}, -- guifg = {attribute='fg',highlight='LspDiagnosticsDefaultError'},
guifg = { attribute = 'fg', highlight = 'TabLineSel' }, guifg = { attribute = "fg", highlight = "TabLineSel" },
guibg = { attribute = 'bg', highlight = 'Normal' }, guibg = { attribute = "bg", highlight = "Normal" },
}, },
duplicate_selected = { duplicate_selected = {
guifg = { attribute = 'fg', highlight = 'TabLineSel' }, guifg = { attribute = "fg", highlight = "TabLineSel" },
guibg = { attribute = 'bg', highlight = 'TabLineSel' }, guibg = { attribute = "bg", highlight = "TabLineSel" },
gui = 'italic', gui = "italic",
}, },
duplicate_visible = { duplicate_visible = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
gui = 'italic', gui = "italic",
}, },
duplicate = { duplicate = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
gui = 'italic', gui = "italic",
}, },
modified = { modified = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
modified_selected = { modified_selected = {
guifg = { attribute = 'fg', highlight = 'Normal' }, guifg = { attribute = "fg", highlight = "Normal" },
guibg = { attribute = 'bg', highlight = 'Normal' }, guibg = { attribute = "bg", highlight = "Normal" },
}, },
modified_visible = { modified_visible = {
guifg = { attribute = 'fg', highlight = 'TabLine' }, guifg = { attribute = "fg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
separator = { separator = {
guifg = { attribute = 'bg', highlight = 'TabLine' }, guifg = { attribute = "bg", highlight = "TabLine" },
guibg = { attribute = 'bg', highlight = 'TabLine' }, guibg = { attribute = "bg", highlight = "TabLine" },
}, },
separator_selected = { separator_selected = {
guifg = { attribute = 'bg', highlight = 'Normal' }, guifg = { attribute = "bg", highlight = "Normal" },
guibg = { attribute = 'bg', highlight = 'Normal' }, guibg = { attribute = "bg", highlight = "Normal" },
}, },
-- separator_visible = { -- separator_visible = {
-- guifg = {attribute='bg',highlight='TabLine'}, -- guifg = {attribute='bg',highlight='TabLine'},
-- guibg = {attribute='bg',highlight='TabLine'} -- guibg = {attribute='bg',highlight='TabLine'}
-- }, -- },
indicator_selected = { indicator_selected = {
guifg = { attribute = 'fg', highlight = 'LspDiagnosticsDefaultHint' }, guifg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" },
guibg = { attribute = 'bg', highlight = 'Normal' }, guibg = { attribute = "bg", highlight = "Normal" },
}, },
}, },
} })

View File

@ -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 if not cmp_status_ok then
return return
end end
local snip_status_ok, luasnip = pcall(require, 'luasnip') local snip_status_ok, luasnip = pcall(require, "luasnip")
if not snip_status_ok then if not snip_status_ok then
return return
end end
require('luasnip/loaders/from_vscode').lazy_load() require("luasnip/loaders/from_vscode").lazy_load()
local check_backspace = function() local check_backspace = function()
local col = vim.fn.col '.' - 1 local col = vim.fn.col(".") - 1
return col == 0 or vim.fn.getline('.'):sub(col, col):match '%s' return col == 0 or vim.fn.getline("."):sub(col, col):match("%s")
end end
--   פּ ﯟ   some other good icons --   פּ ﯟ   some other good icons
local kind_icons = { local kind_icons = {
Text = '', Text = "",
Method = 'm', Method = "m",
Function = '', Function = "",
Constructor = '', Constructor = "",
Field = '', Field = "",
Variable = '', Variable = "",
Class = '', Class = "",
Interface = '', Interface = "",
Module = '', Module = "",
Property = '', Property = "",
Unit = '', Unit = "",
Value = '', Value = "",
Enum = '', Enum = "",
Keyword = '', Keyword = "",
Snippet = '', Snippet = "",
Color = '', Color = "",
File = '', File = "",
Reference = '', Reference = "",
Folder = '', Folder = "",
EnumMember = '', EnumMember = "",
Constant = '', Constant = "",
Struct = '', Struct = "",
Event = '', Event = "",
Operator = '', Operator = "",
TypeParameter = '', TypeParameter = "",
} }
-- find more here: https://www.nerdfonts.com/cheat-sheet -- find more here: https://www.nerdfonts.com/cheat-sheet
cmp.setup { cmp.setup({
snippet = { snippet = {
expand = function(args) expand = function(args)
luasnip.lsp_expand(args.body) -- For `luasnip` users. luasnip.lsp_expand(args.body) -- For `luasnip` users.
end, end,
}, },
mapping = { mapping = {
['<C-k>'] = cmp.mapping.select_prev_item(), ["<C-k>"] = cmp.mapping.select_prev_item(),
['<C-j>'] = cmp.mapping.select_next_item(), ["<C-j>"] = cmp.mapping.select_next_item(),
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-1), { 'i', 'c' }), ["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
['<C-f>'] = 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-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-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
['<C-e>'] = cmp.mapping { ["<C-e>"] = cmp.mapping({
i = cmp.mapping.abort(), i = cmp.mapping.abort(),
c = cmp.mapping.close(), c = cmp.mapping.close(),
}, }),
-- Accept currently selected item. If none selected, `select` first item. -- Accept currently selected item. If none selected, `select` first item.
-- Set `select` to `false` to only confirm explicitly selected items. -- Set `select` to `false` to only confirm explicitly selected items.
['<CR>'] = cmp.mapping.confirm { select = true }, ["<CR>"] = cmp.mapping.confirm({ select = true }),
['<Tab>'] = cmp.mapping(function(fallback) ["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_next_item()
elseif luasnip.expandable() then elseif luasnip.expandable() then
@ -78,10 +78,10 @@ cmp.setup {
fallback() fallback()
end end
end, { end, {
'i', "i",
's', "s",
}), }),
['<S-Tab>'] = cmp.mapping(function(fallback) ["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
elseif luasnip.jumpable(-1) then elseif luasnip.jumpable(-1) then
@ -90,30 +90,32 @@ cmp.setup {
fallback() fallback()
end end
end, { end, {
'i', "i",
's', "s",
}), }),
}, },
formatting = { formatting = {
fields = { 'kind', 'abbr', 'menu' }, fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item) format = function(entry, vim_item)
-- Kind icons -- 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.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 = ({ vim_item.menu = ({
nvim_lsp = '[LSP]', nvim_lsp = "[LSP]",
luasnip = '[Snippet]', nvim_lua = "[NVIM_LUA]",
buffer = '[Buffer]', luasnip = "[Snippet]",
path = '[Path]', buffer = "[Buffer]",
path = "[Path]",
})[entry.source.name] })[entry.source.name]
return vim_item return vim_item
end, end,
}, },
sources = { sources = {
{ name = 'nvim_lsp' }, { name = "nvim_lsp" },
{ name = 'luasnip' }, { name = "nvim_lua" },
{ name = 'buffer' }, { name = "luasnip" },
{ name = 'path' }, { name = "buffer" },
{ name = "path" },
}, },
confirm_opts = { confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace, behavior = cmp.ConfirmBehavior.Replace,
@ -121,11 +123,11 @@ cmp.setup {
}, },
window = { window = {
documentation = { documentation = {
border = { '', '', '', '', '', '', '', '' }, border = { "", "", "", "", "", "", "", "" },
}, },
}, },
experimental = { experimental = {
ghost_text = false, ghost_text = false,
native_menu = false, native_menu = false,
}, },
} })

View File

@ -0,0 +1,6 @@
local status_ok, colorizer = pcall(require, "colorizer")
if not status_ok then
return
end
colorizer.setup()

View File

@ -1,8 +1,8 @@
vim.cmd [[ vim.cmd([[
try try
colorscheme dracula colorscheme dracula
catch /^Vim\%((\a\+)\)\=:E185/ catch /^Vim\%((\a\+)\)\=:E185/
colorscheme default colorscheme default
set background=dark set background=dark
endtry endtry
]] ]])

View File

@ -1,22 +1,22 @@
local status_ok, comment = pcall(require, 'Comment') local status_ok, comment = pcall(require, "Comment")
if not status_ok then if not status_ok then
return return
end end
comment.setup { comment.setup({
pre_hook = function(ctx) pre_hook = function(ctx)
local U = require 'Comment.utils' local U = require("Comment.utils")
local location = nil local location = nil
if ctx.ctype == U.ctype.block then 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 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 end
return require('ts_context_commentstring.internal').calculate_commentstring { return require("ts_context_commentstring.internal").calculate_commentstring({
key = ctx.ctype == U.ctype.line and '__default' or '__multiline', key = ctx.ctype == U.ctype.line and "__default" or "__multiline",
location = location, location = location,
} })
end, end,
} })

View File

@ -1,15 +1,15 @@
local status_ok, gitsigns = pcall(require, 'gitsigns') local status_ok, gitsigns = pcall(require, "gitsigns")
if not status_ok then if not status_ok then
return return
end end
gitsigns.setup { gitsigns.setup({
signs = { signs = {
add = { hl = 'GitSignsAdd', text = '', numhl = 'GitSignsAddNr', linehl = 'GitSignsAddLn' }, add = { hl = "GitSignsAdd", text = "", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
change = { hl = 'GitSignsChange', text = '', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' }, change = { hl = "GitSignsChange", text = "", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
delete = { hl = 'GitSignsDelete', text = '', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' }, delete = { hl = "GitSignsDelete", text = "", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
topdelete = { hl = 'GitSignsDelete', text = '', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' }, topdelete = { hl = "GitSignsDelete", text = "", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
changedelete = { hl = 'GitSignsChange', text = '', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' }, changedelete = { hl = "GitSignsChange", text = "", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
}, },
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl` 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 = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = { current_line_blame_opts = {
virt_text = true, virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 1000, delay = 1000,
ignore_whitespace = false, ignore_whitespace = false,
}, },
@ -36,13 +36,13 @@ gitsigns.setup {
max_file_length = 40000, max_file_length = 40000,
preview_config = { preview_config = {
-- Options passed to nvim_open_win -- Options passed to nvim_open_win
border = 'single', border = "single",
style = 'minimal', style = "minimal",
relative = 'cursor', relative = "cursor",
row = 0, row = 0,
col = 1, col = 1,
}, },
yadm = { yadm = {
enable = false, enable = false,
}, },
} })

View File

@ -1,4 +1,4 @@
local status_ok, impatient = pcall(require, 'impatient') local status_ok, impatient = pcall(require, "impatient")
if not status_ok then if not status_ok then
return return
end end

View File

@ -1,64 +1,64 @@
local g = vim.g local g = vim.g
local opt = vim.opt local opt = vim.opt
local cmd = vim.cmd 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 if not status_ok then
return return
end end
g.indent_blankline_buftype_exclude = { 'terminal', 'nofile' } g.indent_blankline_buftype_exclude = { "terminal", "nofile" }
g.indent_blankline_filetype_exclude = { g.indent_blankline_filetype_exclude = {
'help', "help",
'startify', "startify",
'dashboard', "dashboard",
'packer', "packer",
'neogitstatus', "neogitstatus",
'NvimTree', "NvimTree",
'Trouble', "Trouble",
} }
g.indentLine_enabled = 1 g.indentLine_enabled = 1
-- g.indent_blankline_char = '│' -- g.indent_blankline_char = '│'
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_trailing_blankline_indent = false
g.indent_blankline_show_first_indent_level = true g.indent_blankline_show_first_indent_level = true
g.indent_blankline_use_treesitter = true g.indent_blankline_use_treesitter = true
g.indent_blankline_show_current_context = true g.indent_blankline_show_current_context = true
g.indent_blankline_context_patterns = { g.indent_blankline_context_patterns = {
'class', "class",
'return', "return",
'function', "function",
'method', "method",
'^if', "^if",
'^while', "^while",
'jsx_element', "jsx_element",
'^for', "^for",
'^object', "^object",
'^table', "^table",
'block', "block",
'arguments', "arguments",
'if_statement', "if_statement",
'else_clause', "else_clause",
'jsx_element', "jsx_element",
'jsx_self_closing_element', "jsx_self_closing_element",
'try_statement', "try_statement",
'catch_clause', "catch_clause",
'import_statement', "import_statement",
'operation_type', "operation_type",
} }
-- HACK: work-around for https://github.com/lukas-reineke/indent-blankline.nvim/issues/59 -- 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 IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]])
-- cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]] cmd([[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]])
-- cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]] cmd([[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]])
-- cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]] cmd([[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]])
-- cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]] cmd([[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]])
-- cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]] cmd([[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]])
-- opt.list = true opt.list = true
-- opt.listchars:append 'space:⋅' opt.listchars:append("space:⋅")
-- opt.listchars:append 'space:' -- opt.listchars:append 'space:'
-- opt.listchars:append 'eol:↴' opt.listchars:append("eol:↴")
indent_blankline.setup({ indent_blankline.setup({
-- show_end_of_line = true, -- show_end_of_line = true,

View File

@ -3,9 +3,9 @@ local opts = { noremap = true, silent = true }
local term_opts = { silent = true } local term_opts = { silent = true }
--Remap space as leader key --Remap space as leader key
keymap('', '<Space>', '<Nop>', opts) keymap("", "<Space>", "<Nop>", opts)
vim.g.mapleader = ' ' vim.g.mapleader = " "
vim.g.maplocalleader = ' ' vim.g.maplocalleader = " "
-- Modes -- Modes
-- normal_mode = 'n', -- normal_mode = 'n',
@ -17,45 +17,45 @@ vim.g.maplocalleader = ' '
-- Normal -- -- Normal --
-- Shortcutting split navigation -- Shortcutting split navigation
keymap('n', '<C-h>', '<C-w>h', opts) keymap("n", "<C-h>", "<C-w>h", opts)
keymap('n', '<C-j>', '<C-w>j', opts) keymap("n", "<C-j>", "<C-w>j", opts)
keymap('n', '<C-k>', '<C-w>k', opts) keymap("n", "<C-k>", "<C-w>k", opts)
keymap('n', '<C-l>', '<C-w>l', opts) keymap("n", "<C-l>", "<C-w>l", opts)
-- Resize with arrows -- Resize with arrows
keymap('n', '<C-Up>', '<cmd>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-Down>", "<cmd>resize +2<CR>", opts)
keymap('n', '<C-Left>', '<cmd>vertical 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-Right>", "<cmd>vertical resize +2<CR>", opts)
-- Navigate buffers -- Navigate buffers
keymap('n', '<S-l>', '<cmd>bnext<CR>', opts) keymap("n", "<S-l>", "<cmd>bnext<CR>", opts)
keymap('n', '<S-h>', '<cmd>bprevious<CR>', opts) keymap("n", "<S-h>", "<cmd>bprevious<CR>", opts)
-- Move text up and down -- Move text up and down
keymap('n', '<A-j>', '<Esc><cmd>m .+1<CR>==gi', opts) keymap("n", "<A-j>", "<Esc><cmd>m .+1<CR>", opts)
keymap('n', '<A-k>', '<Esc><cmd>m .-2<CR>==gi', opts) keymap("n", "<A-k>", "<Esc><cmd>m .-2<CR>", opts)
-- Insert -- -- Insert --
-- Press jk fast to exit insert mode -- Press jk fast to exit insert mode
keymap('i', 'jk', '<ESC>', opts) keymap("i", "jk", "<ESC>", opts)
-- Visual -- -- Visual --
-- Stay in indent mode -- 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 -- Move text up and down
keymap('v', '<A-j>', '<cmd>m .+1<CR>==', opts) keymap("v", "<A-j>", "<cmd>m .+1<CR>", opts)
keymap('v', '<A-k>', '<cmd>m .-2<CR>==', opts) keymap("v", "<A-k>", "<cmd>m .-2<CR>", opts)
keymap('v', 'p', '"_dP', opts) keymap("v", "p", '"_dP', opts)
-- Visual Block -- -- Visual Block --
-- Move text up and down -- Move text up and down
keymap('x', 'J', '<cmd>move ">+1<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", "K", '<cmd>move "<-2<CR>gv-gv', opts)
keymap('x', '<A-j>', '<cmd>move ">+1<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", "<A-k>", '<cmd>move "<-2<CR>gv-gv', opts)
-- Terminal -- -- Terminal --
-- Better terminal navigation -- 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-j>', '<C-\\><C-N><C-w>j', term_opts)
-- keymap('t', '<C-k>', '<C-\\><C-N><C-w>k', 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('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

View File

@ -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 if not status_ok then
return return
end end
local lspconfig = require('lspconfig') local lspconfig = require("lspconfig")
local servers = { 'jsonls', 'sumneko_lua', 'pyright' } local servers = { "jsonls", "sumneko_lua", "pyright" }
lsp_installer.setup({ lsp_installer.setup({
ensure_installed = servers, ensure_installed = servers,
@ -13,12 +13,12 @@ lsp_installer.setup({
for _, server in pairs(servers) do for _, server in pairs(servers) do
local opts = { local opts = {
on_attach = require('user.lsp.handlers').on_attach, on_attach = require("user.lsp.handlers").on_attach,
capabilities = require('user.lsp.handlers').capabilities, 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 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 end
lspconfig[server].setup(opts) lspconfig[server].setup(opts)
end end

View File

@ -1,16 +1,18 @@
local M = {} local M = {}
local api = vim.api
local lsp = vim.lsp
-- TODO: backfill this to template -- TODO: backfill this to template
M.setup = function() M.setup = function()
local signs = { local signs = {
{ name = 'DiagnosticSignError', text = '' }, { name = "DiagnosticSignError", text = "" },
{ name = 'DiagnosticSignWarn', text = '' }, { name = "DiagnosticSignWarn", text = "" },
{ name = 'DiagnosticSignHint', text = '' }, { name = "DiagnosticSignHint", text = "" },
{ name = 'DiagnosticSignInfo', text = '' }, { name = "DiagnosticSignInfo", text = "" },
} }
for _, sign in ipairs(signs) do 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 end
local config = { local config = {
@ -25,30 +27,30 @@ M.setup = function()
severity_sort = true, severity_sort = true,
float = { float = {
focusable = false, focusable = false,
style = 'minimal', style = "minimal",
border = 'rounded', border = "rounded",
source = 'always', source = "always",
header = '', header = "",
prefix = '', prefix = "",
}, },
} }
vim.diagnostic.config(config) vim.diagnostic.config(config)
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { lsp.handlers["textDocument/hover"] = lsp.with(lsp.handlers.hover, {
border = 'rounded', border = "rounded",
width = 60, width = 60,
}) })
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { lsp.handlers["textDocument/signatureHelp"] = lsp.with(lsp.handlers.signature_help, {
border = 'rounded', border = "rounded",
width = 60, width = 60,
}) })
end end
local function lsp_highlight_document(client) local function lsp_highlight_document(client)
-- Set autocommands conditional on server_capabilities -- 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 if not status_ok then
return return
end end
@ -58,41 +60,38 @@ end
local function lsp_keymaps(bufnr) local function lsp_keymaps(bufnr)
local opts = { noremap = true, silent = true } local opts = { noremap = true, silent = true }
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts) api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua lsp.buf.declaration()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts) api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua lsp.buf.definition()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts) api.nvim_buf_set_keymap(bufnr, "n", "K", "<cmd>lua lsp.buf.hover()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) api.nvim_buf_set_keymap(bufnr, "n", "gi", "<cmd>lua lsp.buf.implementation()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) api.nvim_buf_set_keymap(bufnr, "n", "<C-k>", "<cmd>lua lsp.buf.signature_help()<CR>", opts)
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) -- api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua lsp.buf.rename()<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) api.nvim_buf_set_keymap(bufnr, "n", "gr", "<cmd>lua lsp.buf.references()<CR>", opts)
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) -- api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua lsp.buf.code_action()<CR>', opts)
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>f', '<cmd>lua vim.diagnostic.open_float()<CR>', opts) -- 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) api.nvim_buf_set_keymap(bufnr, "n", "[d", '<cmd>lua vim.diagnostic.goto_prev({ border = "rounded" })<CR>', opts)
vim.api.nvim_buf_set_keymap( api.nvim_buf_set_keymap(bufnr, "n", "gl", '<cmd>lua vim.diagnostic.open_float({ border = "rounded" })<CR>', opts)
bufnr, api.nvim_buf_set_keymap(bufnr, "n", "]d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
'n', api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
'gl', vim.cmd([[ command! Format execute 'lua lsp.buf.format{async=true}' ]])
'<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}' ]])
end end
M.on_attach = function(client, bufnr) M.on_attach = function(client, bufnr)
-- vim.notify(client.name .. ' starting...') -- vim.notify(client.name .. ' starting...')
-- TODO: refactor this into a method that checks if string in list -- 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 client.resolved_capabilities.document_formatting = false
end end
lsp_keymaps(bufnr) lsp_keymaps(bufnr)
lsp_highlight_document(client) lsp_highlight_document(client)
end 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 if not status_ok then
return return
end end

View File

@ -1,8 +1,8 @@
local status_ok, _ = pcall(require, 'lspconfig') local status_ok, _ = pcall(require, "lspconfig")
if not status_ok then if not status_ok then
return return
end end
require('user.lsp.configs') require("user.lsp.configs")
require('user.lsp.handlers').setup() require("user.lsp.handlers").setup()
require('user.lsp.null-ls') require("user.lsp.null-ls")

View File

@ -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 if not null_ls_status_ok then
return return
end end
@ -9,11 +9,15 @@ local formatting = null_ls.builtins.formatting
local diagnostics = null_ls.builtins.diagnostics local diagnostics = null_ls.builtins.diagnostics
null_ls.setup({ null_ls.setup({
debug = false, debug = true,
sources = { sources = {
formatting.prettier.with({ extra_args = { '--no-semi', '--single-quote', '--jsx-single-quote' } }), formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
formatting.black.with({ extra_args = { '--fast' } }), formatting.autopep8,
formatting.stylua, formatting.stylua,
-- diagnostics.flake8 formatting.rustfmt,
formatting.beautysh,
-- diagnostics.luacheck,
diagnostics.pylint,
diagnostics.zsh,
}, },
}) })

View File

@ -187,7 +187,7 @@ local opts = {
commands = { commands = {
Format = { Format = {
function() function()
vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 }) vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line("$"), 0 })
end, end,
}, },
}, },

View File

@ -2,7 +2,7 @@ return {
settings = { settings = {
python = { python = {
analysis = { analysis = {
typeCheckingMode = "off" typeCheckingMode = "off",
}, },
}, },
}, },

View File

@ -2,7 +2,7 @@ return {
settings = { settings = {
Lua = { Lua = {
diagnostics = { diagnostics = {
globals = { "vim" }, globals = { "vim", "require" },
}, },
workspace = { workspace = {
library = { library = {

View File

@ -1,4 +1,4 @@
local status_ok, lualine = pcall(require, 'lualine') local status_ok, lualine = pcall(require, "lualine")
if not status_ok then if not status_ok then
return return
end end
@ -8,83 +8,83 @@ local hide_in_width = function()
end end
local diagnostics = { local diagnostics = {
'diagnostics', "diagnostics",
sources = { 'nvim_diagnostic' }, sources = { "nvim_diagnostic" },
sections = { 'error', 'warn' }, sections = { "error", "warn" },
symbols = { error = '', warn = '' }, symbols = { error = "", warn = "" },
colored = false, colored = false,
update_in_insert = false, update_in_insert = false,
always_visible = true, always_visible = true,
} }
local diff = { local diff = {
'diff', "diff",
colored = false, colored = false,
symbols = { added = '', modified = '', removed = '' }, -- changes diff symbols symbols = { added = "", modified = "", removed = "" }, -- changes diff symbols
cond = hide_in_width cond = hide_in_width,
} }
local mode = { local mode = {
'mode', "mode",
fmt = function(str) fmt = function(str)
return '-- ' .. str .. ' --' return "-- " .. str .. " --"
end, end,
} }
local filetype = { local filetype = {
'filetype', "filetype",
icons_enabled = false, icons_enabled = false,
icon = nil, icon = nil,
} }
local branch = { local branch = {
'branch', "branch",
icons_enabled = true, icons_enabled = true,
icon = '', icon = "",
} }
local location = { local location = {
'location', "location",
padding = 0, padding = 0,
} }
-- cool function for progress -- cool function for progress
local progress = function() local progress = function()
local current_line = vim.fn.line('.') local current_line = vim.fn.line(".")
local total_lines = vim.fn.line('$') local total_lines = vim.fn.line("$")
local chars = { '__', '▁▁', '▂▂', '▃▃', '▄▄', '▅▅', '▆▆', '▇▇', '██' } local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" }
local line_ratio = current_line / total_lines local line_ratio = current_line / total_lines
local index = math.ceil(line_ratio * #chars) local index = math.ceil(line_ratio * #chars)
return chars[index] return chars[index]
end end
local spaces = function() local spaces = function()
return 'spaces: ' .. vim.api.nvim_buf_get_option(0, 'shiftwidth') return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth")
end end
lualine.setup({ lualine.setup({
options = { options = {
icons_enabled = true, icons_enabled = true,
theme = 'auto', theme = "auto",
component_separators = { left = '', right = ''}, component_separators = { left = "", right = "" },
section_separators = { left = '', right = ''}, section_separators = { left = "", right = "" },
disabled_filetypes = {}, disabled_filetypes = {},
always_divide_middle = true, always_divide_middle = true,
globalstatus = false, globalstatus = false,
}, },
sections = { sections = {
lualine_a = {'mode'}, lualine_a = { "mode" },
lualine_b = {'branch', 'diff', 'diagnostics'}, lualine_b = { "branch", "diff", "diagnostics" },
lualine_c = {'filename'}, lualine_c = { "filename" },
lualine_x = {'encoding', 'fileformat', 'filetype'}, lualine_x = { "encoding", "fileformat", "filetype" },
lualine_y = {'progress'}, lualine_y = { "progress" },
lualine_z = {'location'} lualine_z = { "location" },
}, },
inactive_sections = { inactive_sections = {
lualine_a = {}, lualine_a = {},
lualine_b = {}, lualine_b = {},
lualine_c = { 'filename' }, lualine_c = { "filename" },
lualine_x = { 'location' }, lualine_x = { "location" },
lualine_y = {}, lualine_y = {},
lualine_z = {}, lualine_z = {},
}, },

View File

@ -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 if not status_ok then
return return
end 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 if not config_status_ok then
return return
end end
local tree_cb = nvim_tree_config.nvim_tree_callback local tree_cb = nvim_tree_config.nvim_tree_callback
nvim_tree.setup({
nvim_tree.setup { sort_by = "case_sensitive",
sort_by = 'case_sensitive',
update_focused_file = { update_focused_file = {
enable = true, enable = true,
update_cwd = true, update_cwd = true,
}, },
renderer = { renderer = {
group_empty = true, group_empty = true,
root_folder_modifier = ':t', root_folder_modifier = ":t",
icons = { icons = {
webdev_colors = true, webdev_colors = true,
show = { show = {
@ -29,26 +28,26 @@ nvim_tree.setup {
git = true, git = true,
}, },
glyphs = { glyphs = {
default = '', default = "",
symlink = '', symlink = "",
folder = { folder = {
arrow_open = '', arrow_open = "",
arrow_closed = '', arrow_closed = "",
default = '', default = "",
open = '', open = "",
empty = '', empty = "",
empty_open = '', empty_open = "",
symlink = '', symlink = "",
symlink_open = '', symlink_open = "",
}, },
git = { git = {
unstaged = '', unstaged = "",
staged = 'S', staged = "S",
unmerged = '', unmerged = "",
renamed = '', renamed = "",
untracked = 'U', untracked = "U",
deleted = '', deleted = "",
ignored = '', ignored = "",
}, },
}, },
}, },
@ -57,25 +56,25 @@ nvim_tree.setup {
enable = true, enable = true,
show_on_dirs = true, show_on_dirs = true,
icons = { icons = {
hint = '', hint = "",
info = '', info = "",
warning = '', warning = "",
error = '', error = "",
}, },
}, },
view = { view = {
width = 30, width = 30,
height = 30, height = 30,
side = 'left', side = "left",
mappings = { mappings = {
list = { list = {
{ key = { 'l', '<CR>', 'o' }, cb = tree_cb 'edit' }, { key = { "l", "<CR>", "o" }, cb = tree_cb("edit") },
{ key = 'h', cb = tree_cb 'close_node' }, { key = "h", cb = tree_cb("close_node") },
{ key = 'v', cb = tree_cb 'vsplit' }, { key = "v", cb = tree_cb("vsplit") },
}, },
}, },
}, },
filters = { filters = {
dotfiles = false, dotfiles = false,
}, },
} })

View File

@ -1,19 +1,19 @@
local g = vim.g local g = vim.g
local o = vim.o local o = vim.o
g.mapleader = ' ' g.mapleader = " "
g.maplocalleader = ' ' g.maplocalleader = " "
local options = { local options = {
backup = false, -- creates a backup file 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 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 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 hlsearch = true, -- highlight all matches on previous search pattern
ignorecase = true, -- ignore case in search patterns 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 pumheight = 10, -- pop up menu height
showmode = false, -- we don't need to see things like -- INSERT -- anymore showmode = false, -- we don't need to see things like -- INSERT -- anymore
showtabline = 2, -- always show tabs showtabline = 2, -- always show tabs
@ -35,22 +35,25 @@ local options = {
number = true, -- set numbered lines number = true, -- set numbered lines
relativenumber = true, -- set relative numbered lines relativenumber = true, -- set relative numbered lines
numberwidth = 4, -- set number column width to 4 {default 4} 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 wrap = false, -- display lines as one long line
scrolloff = 8, -- is one of my fav scrolloff = 8, -- is one of my fav
sidescrolloff = 8, sidescrolloff = 8,
--wildmode = 'longest,list,full', --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 for k, v in pairs(options) do
vim.opt[k] = v vim.opt[k] = v
end end
vim.cmd [[highlight CursorLine 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]] vim.cmd([[highlight CursorColumn ctermbg=Yellow cterm=bold guibg=#2b2b2b]])
g.dracula_transparent_bg = true g.dracula_transparent_bg = true
g.dracula_italic_comment = true g.dracula_italic_comment = true
g.dracula_show_end_of_buffer = 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")

View File

@ -1,17 +1,17 @@
local fn = vim.fn local fn = vim.fn
-- Automatically install packer -- 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 if fn.empty(fn.glob(install_path)) > 0 then
PACKER_BOOTSTRAP = fn.system({ PACKER_BOOTSTRAP = fn.system({
'git', "git",
'clone', "clone",
'--depth', "--depth",
'1', "1",
'https://github.com/wbthomason/packer.nvim', "https://github.com/wbthomason/packer.nvim",
install_path, install_path,
}) })
print('Installing packer close and reopen Neovim...') print("Installing packer close and reopen Neovim...")
vim.cmd([[packadd packer.nvim]]) vim.cmd([[packadd packer.nvim]])
end end
@ -24,7 +24,7 @@ vim.cmd([[
]]) ]])
-- Use a protected call so we don't error out on first use -- 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 if not status_ok then
return return
end end
@ -33,82 +33,79 @@ end
packer.init({ packer.init({
display = { display = {
open_fn = function() open_fn = function()
return require('packer.util').float({ border = 'rounded' }) return require("packer.util").float({ border = "rounded" })
end, end,
}, },
}) })
-- Install your plugins here -- Install your plugins here
return packer.startup( return packer.startup(function(use)
function(use)
-- My plugins here -- My plugins here
use 'wbthomason/packer.nvim' -- Have packer manage itself use("wbthomason/packer.nvim") -- Have packer manage itself
use 'nvim-lua/popup.nvim' -- Useful lua functions used by lots of plugins 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("nvim-lua/plenary.nvim") -- Useful lua functions used by lots of plugins
use 'windwp/nvim-autopairs' -- Autopairs, integrates with both cmp and treesitter use("windwp/nvim-autopairs") -- Autopairs, integrates with both cmp and treesitte
use 'numToStr/Comment.nvim' use("numToStr/Comment.nvim")
use 'JoosepAlviste/nvim-ts-context-commentstring' use("JoosepAlviste/nvim-ts-context-commentstring")
use 'kyazdani42/nvim-web-devicons' use("kyazdani42/nvim-web-devicons")
use 'kyazdani42/nvim-tree.lua' use("kyazdani42/nvim-tree.lua")
use 'akinsho/bufferline.nvim' use("akinsho/bufferline.nvim")
use 'moll/vim-bbye' use("moll/vim-bbye")
use 'nvim-lualine/lualine.nvim' use("nvim-lualine/lualine.nvim")
use 'akinsho/toggleterm.nvim' use("akinsho/toggleterm.nvim")
use 'ahmedkhalf/project.nvim' use("ahmedkhalf/project.nvim")
use 'lewis6991/impatient.nvim' use("lewis6991/impatient.nvim")
use 'lukas-reineke/indent-blankline.nvim' use("lukas-reineke/indent-blankline.nvim")
use 'goolord/alpha-nvim' use("goolord/alpha-nvim")
use 'folke/which-key.nvim' use("folke/which-key.nvim")
use 'andweeb/presence.nvim' use("andweeb/presence.nvim")
use 'mattn/emmet-vim' use("mattn/emmet-vim")
use 'sbdchd/neoformat' use("saecki/crates.nvim")
use 'vimwiki/vimwiki' use("norcalli/nvim-colorizer.lua")
use 'saecki/crates.nvim'
use { -- Vimwiki
'norcalli/nvim-colorizer.lua', use("vimwiki/vimwiki")
config = function() use("jbyuki/carrot.nvim")
require('colorizer').setup()
end
}
-- Colorschemes -- Colorschemes
use 'Mofiqul/dracula.nvim' use("Mofiqul/dracula.nvim")
use 'folke/tokyonight.nvim' use("folke/tokyonight.nvim")
use 'lunarvim/darkplus.nvim' use("lunarvim/darkplus.nvim")
-- cmp plugins -- cmp plugins
use 'hrsh7th/nvim-cmp'-- The completion plugin use("hrsh7th/nvim-cmp") -- The completion plugin
use 'hrsh7th/cmp-buffer' -- buffer completions use("hrsh7th/cmp-buffer") -- buffer completions
use 'hrsh7th/cmp-path'-- path completions use("hrsh7th/cmp-path") -- path completions
use 'hrsh7th/cmp-cmdline' -- cmdline completions use("hrsh7th/cmp-cmdline") -- cmdline completions
use 'saadparwaiz1/cmp_luasnip' -- snippet completions use("saadparwaiz1/cmp_luasnip") -- snippet completions
use 'hrsh7th/cmp-nvim-lsp' use("hrsh7th/cmp-nvim-lsp")
use 'hrsh7th/cmp-nvim-lua' use("hrsh7th/cmp-nvim-lua")
-- snippets -- snippets
use 'L3MON4D3/LuaSnip' --snippet engine use("L3MON4D3/LuaSnip") --snippet engine
use 'rafamadriz/friendly-snippets' -- a bunch of snippets to use use("rafamadriz/friendly-snippets") -- a bunch of snippets to use
-- LSP -- LSP
use 'neovim/nvim-lspconfig' -- enable LSP use("neovim/nvim-lspconfig") -- enable LSP
use 'williamboman/nvim-lsp-installer' -- simple to use language server installer use("williamboman/nvim-lsp-installer") -- simple to use language server installer
use 'jose-elias-alvarez/null-ls.nvim' -- for formatters and linters use("jose-elias-alvarez/null-ls.nvim") -- for formatters and linters
-- Telescope -- Telescope
use 'nvim-telescope/telescope.nvim' use({ "nvim-telescope/telescope.nvim", run = ":TSUpdate" })
use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" })
use("nvim-telescope/telescope-media-files.nvim")
-- Treesitter -- Treesitter
use 'nvim-treesitter/nvim-treesitter' use("nvim-treesitter/nvim-treesitter")
use("p00f/nvim-ts-rainbow")
-- Git -- Git
use 'lewis6991/gitsigns.nvim' use("lewis6991/gitsigns.nvim")
-- Automatically set up your configuration after cloning packer.nvim -- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins -- Put this at the end after all plugins
if PACKER_BOOTSTRAP then if PACKER_BOOTSTRAP then
require('packer').sync() require("packer").sync()
end end
end end)
)

View File

@ -45,4 +45,4 @@ if not tele_status_ok then
return return
end end
telescope.load_extension('projects') telescope.load_extension("projects")

View File

@ -1,79 +1,81 @@
local status_ok, telescope = pcall(require, 'telescope') local status_ok, telescope = pcall(require, "telescope")
if not status_ok then if not status_ok then
return return
end 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 = { defaults = {
prompt_prefix = '', prompt_prefix = "",
selection_caret = '', selection_caret = "",
path_display = { 'smart' }, path_display = { "smart" },
mappings = { mappings = {
i = { i = {
['<C-n>'] = actions.cycle_history_next, ["<C-n>"] = actions.cycle_history_next,
['<C-p>'] = actions.cycle_history_prev, ["<C-p>"] = actions.cycle_history_prev,
['<C-j>'] = actions.move_selection_next, ["<C-j>"] = actions.move_selection_next,
['<C-k>'] = actions.move_selection_previous, ["<C-k>"] = actions.move_selection_previous,
['<C-c>'] = actions.close, ["<C-c>"] = actions.close,
['<Down>'] = actions.move_selection_next, ["<Down>"] = actions.move_selection_next,
['<Up>'] = actions.move_selection_previous, ["<Up>"] = actions.move_selection_previous,
['<CR>'] = actions.select_default, ["<CR>"] = actions.select_default,
['<C-x>'] = actions.select_horizontal, ["<C-x>"] = actions.select_horizontal,
['<C-v>'] = actions.select_vertical, ["<C-v>"] = actions.select_vertical,
['<C-t>'] = actions.select_tab, ["<C-t>"] = actions.select_tab,
['<C-u>'] = actions.preview_scrolling_up, ["<C-u>"] = actions.preview_scrolling_up,
['<C-d>'] = actions.preview_scrolling_down, ["<C-d>"] = actions.preview_scrolling_down,
['<PageUp>'] = actions.results_scrolling_up, ["<PageUp>"] = actions.results_scrolling_up,
['<PageDown>'] = actions.results_scrolling_down, ["<PageDown>"] = actions.results_scrolling_down,
['<Tab>'] = actions.toggle_selection + actions.move_selection_worse, ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
['<S-Tab>'] = actions.toggle_selection + actions.move_selection_better, ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
['<C-q>'] = actions.send_to_qflist + actions.open_qflist, ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
['<M-q>'] = actions.send_selected_to_qflist + actions.open_qflist, ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
['<C-l>'] = actions.complete_tag, ["<C-l>"] = actions.complete_tag,
['<C-_>'] = actions.which_key, -- keys from pressing <C-/> ["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
}, },
n = { n = {
['<esc>'] = actions.close, ["<esc>"] = actions.close,
['<CR>'] = actions.select_default, ["<CR>"] = actions.select_default,
['<C-x>'] = actions.select_horizontal, ["<C-x>"] = actions.select_horizontal,
['<C-v>'] = actions.select_vertical, ["<C-v>"] = actions.select_vertical,
['<C-t>'] = actions.select_tab, ["<C-t>"] = actions.select_tab,
['<Tab>'] = actions.toggle_selection + actions.move_selection_worse, ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
['<S-Tab>'] = actions.toggle_selection + actions.move_selection_better, ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
['<C-q>'] = actions.send_to_qflist + actions.open_qflist, ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
['<M-q>'] = actions.send_selected_to_qflist + actions.open_qflist, ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
['j'] = actions.move_selection_next, ["j"] = actions.move_selection_next,
['k'] = actions.move_selection_previous, ["k"] = actions.move_selection_previous,
['H'] = actions.move_to_top, ["H"] = actions.move_to_top,
['M'] = actions.move_to_middle, ["M"] = actions.move_to_middle,
['L'] = actions.move_to_bottom, ["L"] = actions.move_to_bottom,
['<Down>'] = actions.move_selection_next, ["<Down>"] = actions.move_selection_next,
['<Up>'] = actions.move_selection_previous, ["<Up>"] = actions.move_selection_previous,
['gg'] = actions.move_to_top, ["gg"] = actions.move_to_top,
['G'] = actions.move_to_bottom, ["G"] = actions.move_to_bottom,
['<C-u>'] = actions.preview_scrolling_up, ["<C-u>"] = actions.preview_scrolling_up,
['<C-d>'] = actions.preview_scrolling_down, ["<C-d>"] = actions.preview_scrolling_down,
['<PageUp>'] = actions.results_scrolling_up, ["<PageUp>"] = actions.results_scrolling_up,
['<PageDown>'] = actions.results_scrolling_down, ["<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" case_mode = "smart_case", -- or "ignore_case" or "respect_case"
-- the default case_mode is "smart_case" -- the default case_mode is "smart_case"
}, },
} media_files = {
} -- filetypes whitelist
require('telescope').load_extension('fzf') -- defaults to {"png", "jpg", "mp4", "webm", "pdf"}
filetypes = { "png", "webp", "jpg", "jpeg" },
find_cmd = "rg", -- find command (defaults to `fd`)
},
},
})

View File

@ -58,10 +58,10 @@ function _NCDU_TOGGLE()
ncdu:toggle() ncdu:toggle()
end end
local htop = Terminal:new({ cmd = 'htop', hidden = true }) local btop = Terminal:new({ cmd = 'btop', hidden = true })
function _HTOP_TOGGLE() function _BTOP_TOGGLE()
htop:toggle() btop:toggle()
end end
local python = Terminal:new({ cmd = 'python', hidden = true }) local python = Terminal:new({ cmd = 'python', hidden = true })

View File

@ -1,11 +1,11 @@
local status_ok, configs = pcall(require, 'nvim-treesitter.configs') local status_ok, configs = pcall(require, "nvim-treesitter.configs")
if not status_ok then if not status_ok then
return return
end end
configs.setup({ configs.setup({
ensure_installed = 'all', -- one of 'all' or a list of languages ensure_installed = "all", -- one of 'all' or a list of languages
ignore_install = { '' }, -- List of parsers to ignore installing ignore_install = { "" }, -- List of parsers to ignore installing
highlight = { highlight = {
enable = true, -- false will disable the whole extension enable = true, -- false will disable the whole extension
disable = {}, -- list of language that will be disabled disable = {}, -- list of language that will be disabled
@ -13,5 +13,13 @@ configs.setup({
autopairs = { autopairs = {
enable = true, 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
},
}) })

View File

@ -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 if not status_ok then
return return
end end
local setup = { local setup = {
plugins = { plugins = {
marks = true, -- shows a list of your marks on ' and ` marks = true, -- shows a list of your marks on " and `
registers = true, -- shows your registers on ' in NORMAL or <C-r> in INSERT mode registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
spelling = { spelling = {
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions 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? 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 -- add operators that will trigger motion and text object completion
-- to enable all native operators, set the preset / operators plugin above -- to enable all native operators, set the preset / operators plugin above
-- operators = { gc = 'Comments' }, -- operators = { gc = "Comments" },
key_labels = { 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: -- For example:
-- ['<space>'] = 'SPC', -- ["<space>"] = "SPC",
-- ['<cr>'] = 'RET', -- ["<CR>"] = "RET",
-- ['<tab>'] = 'TAB', -- ["<tab>"] = "TAB",
}, },
icons = { icons = {
breadcrumb = '»', -- symbol used in the command line area that shows your active key combo breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
separator = '', -- symbol used between a key and it's label separator = "", -- symbol used between a key and it"s label
group = '+', -- symbol prepended to a group group = "+", -- symbol prepended to a group
}, },
popup_mappings = { popup_mappings = {
scroll_down = '<c-d>', -- binding to scroll down 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 scroll_up = "<c-u>", -- binding to scroll up inside the popup
}, },
window = { window = {
border = 'rounded', -- none, single, double, shadow border = "rounded", -- none, single, double, shadow
position = 'bottom', -- bottom, top position = "bottom", -- bottom, top
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left] padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
winblend = 0, winblend = 0,
@ -53,25 +53,25 @@ local setup = {
height = { min = 4, max = 25 }, -- min and max height of the columns height = { min = 4, max = 25 }, -- min and max height of the columns
width = { min = 20, max = 50 }, -- min and max width of the columns width = { min = 20, max = 50 }, -- min and max width of the columns
spacing = 3, -- spacing between 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 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 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 show_help = true, -- show help message on the command line when the popup is visible
triggers = 'auto', -- automatically setup triggers triggers = "auto", -- automatically setup triggers
-- triggers = {'<leader>'} -- or specify a list manually -- triggers = {"<leader>"} -- or specify a list manually
triggers_blacklist = { triggers_blacklist = {
-- list of mode / prefixes that should never be hooked by WhichKey -- list of mode / prefixes that should never be hooked by WhichKey
-- this is mostly relevant for key maps that start with a native binding -- this is mostly relevant for key maps that start with a native binding
-- most people should not need to change this -- most people should not need to change this
i = { 'j', 'k' }, i = { "j", "k" },
v = { 'j', 'k' }, v = { "j", "k" },
}, },
} }
local opts = { local opts = {
mode = 'n', -- NORMAL mode mode = "n", -- NORMAL mode
prefix = '<leader>', prefix = "<leader>",
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
silent = true, -- use `silent` when creating keymaps silent = true, -- use `silent` when creating keymaps
noremap = true, -- use `noremap` when creating keymaps noremap = true, -- use `noremap` when creating keymaps
@ -79,107 +79,116 @@ local opts = {
} }
local mappings = { local mappings = {
['a'] = { '<cmd>Alpha<cr>', 'Alpha' }, ["a"] = { "<cmd>Alpha<CR>", "Alpha" },
['b'] = { ["b"] = {
'<cmd>lua require("telescope.builtin").buffers(require"telescope.themes").get_dropdown{previewer = false})<cr>', "<cmd>lua require('telescope.builtin).buffers(require'telescope.themes').get_dropdown{previewer = false})<CR>",
'Buffers', "Buffers",
}, },
['e'] = { '<cmd>NvimTreeToggle<cr>', 'Explorer' }, ["e"] = { "<cmd>NvimTreeToggle<CR>", "Explorer" },
['w'] = { '<cmd>w!<CR>', 'Save' }, ["w"] = { "<cmd>w!<CR>", "Save" },
['q'] = { '<cmd>q!<CR>', 'Quit' }, ["q"] = { "<cmd>q!<CR>", "Quit" },
['c'] = { '<cmd>Bdelete!<CR>', 'Close Buffer' }, ["c"] = { "<cmd>Bdelete!<CR>", "Close Buffer" },
['h'] = { '<cmd>nohlsearch<CR>', 'No Highlight' }, ["h"] = { "<cmd>nohlsearch<CR>", "No Highlight" },
['f'] = { ["f"] = {
'<cmd>lua require("telescope.builtin").find_files(require("telescope.themes").get_dropdown{previewer = false})<cr>', "<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false}) hidden=true<CR>",
'Find files', "Find files",
}, },
['F'] = { '<cmd>Telescope live_grep theme=ivy<cr>', 'Find Text' }, ["F"] = { "<cmd>Telescope live_grep theme=ivy<CR>", "Find Text" },
['P'] = { '<cmd>lua require("telescope").extensions.projects.projects()<cr>', 'Projects' }, ["P"] = { "<cmd>lua require('telescope').extensions.projects.projects()<CR>", "Projects" },
p = { p = {
name = 'Packer', name = "Packer",
c = { '<cmd>PackerCompile<cr>', 'Compile' }, c = { "<cmd>PackerCompile<CR>", "Compile" },
i = { '<cmd>PackerInstall<cr>', 'Install' }, i = { "<cmd>PackerInstall<CR>", "Install" },
s = { '<cmd>PackerSync<cr>', 'Sync' }, s = { "<cmd>PackerSync<CR>", "Sync" },
S = { '<cmd>PackerStatus<cr>', 'Status' }, S = { "<cmd>PackerStatus<CR>", "Status" },
u = { '<cmd>PackerUpdate<cr>', 'Update' }, u = { "<cmd>PackerUpdate<CR>", "Update" },
}, },
g = { g = {
name = 'Git', name = "Git",
g = { '<cmd>lua _LAZYGIT_TOGGLE()<CR>', 'Lazygit' }, g = { "<cmd>lua _LAZYGIT_TOGGLE()<CR>", "Lazygit" },
j = { '<cmd>lua require "gitsigns".next_hunk()<cr>', 'Next Hunk' }, j = { "<cmd>lua require 'gitsigns'.next_hunk()<CR>", "Next Hunk" },
k = { '<cmd>lua require "gitsigns".prev_hunk()<cr>', 'Prev Hunk' }, k = { "<cmd>lua require 'gitsigns'.prev_hunk()<CR>", "Prev Hunk" },
l = { '<cmd>lua require "gitsigns".blame_line()<cr>', 'Blame' }, l = { "<cmd>lua require 'gitsigns'.blame_line()<CR>", "Blame" },
p = { '<cmd>lua require "gitsigns".preview_hunk()<cr>', 'Preview Hunk' }, 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_hunk()<CR>", "Reset Hunk" },
R = { '<cmd>lua require "gitsigns".reset_buffer()<cr>', 'Reset Buffer' }, R = { "<cmd>lua require 'gitsigns'.reset_buffer()<CR>", "Reset Buffer" },
s = { '<cmd>lua require "gitsigns".stage_hunk()<cr>', 'Stage Hunk' }, s = { "<cmd>lua require 'gitsigns'.stage_hunk()<CR>", "Stage Hunk" },
u = { u = {
'<cmd>lua require "gitsigns".undo_stage_hunk()<cr>', "<cmd>lua require 'gitsigns'.undo_stage_hunk()<CR>",
'Undo Stage Hunk', "Undo Stage Hunk",
}, },
o = { '<cmd>Telescope git_status<cr>', 'Open changed file' }, o = { "<cmd>Telescope git_status<CR>", "Open changed file" },
b = { '<cmd>Telescope git_branches<cr>', 'Checkout branch' }, b = { "<cmd>Telescope git_branches<CR>", "Checkout branch" },
c = { '<cmd>Telescope git_commits<cr>', 'Checkout commit' }, c = { "<cmd>Telescope git_commits<CR>", "Checkout commit" },
d = { d = {
'<cmd>Gitsigns diffthis HEAD<cr>', "<cmd>Gitsigns diffthis HEAD<CR>",
'Diff', "Diff",
}, },
}, },
l = { l = {
name = 'LSP', name = "LSP",
a = { '<cmd>lua vim.lsp.buf.code_action()<cr>', 'Code Action' }, a = { "<cmd>lua vim.lsp.buf.code_action()<CR>", "Code Action" },
d = { d = {
'<cmd>Telescope lsp_document_diagnostics<cr>', "<cmd>Telescope lsp_document_diagnostics<CR>",
'Document Diagnostics', "Document Diagnostics",
}, },
w = { w = {
'<cmd>Telescope lsp_workspace_diagnostics<cr>', "<cmd>Telescope lsp_workspace_diagnostics<CR>",
'Workspace Diagnostics', "Workspace Diagnostics",
}, },
f = { '<cmd>lua vim.lsp.buf.format{async=true}<cr>', 'Format' }, f = { "<cmd>lua vim.lsp.buf.format{async=true}<CR>", "Format" },
i = { '<cmd>LspInfo<cr>', 'Info' }, i = { "<cmd>LspInfo<CR>", "Info" },
I = { '<cmd>LspInstallInfo<cr>', 'Installer Info' }, I = { "<cmd>LspInstallInfo<CR>", "Installer Info" },
j = { j = {
'<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>",
'Next Diagnostic', "Next Diagnostic",
}, },
k = { k = {
'<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>', "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>",
'Prev Diagnostic', "Prev Diagnostic",
}, },
l = { '<cmd>lua vim.lsp.codelens.run()<cr>', 'CodeLens Action' }, l = { "<cmd>lua vim.lsp.codelens.run()<CR>", "CodeLens Action" },
q = { '<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>', 'Quickfix' }, q = { "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", "Quickfix" },
r = { '<cmd>lua vim.lsp.buf.rename()<cr>', 'Rename' }, r = { "<cmd>lua vim.lsp.buf.rename()<CR>", "Rename" },
s = { '<cmd>Telescope lsp_document_symbols<cr>', 'Document Symbols' }, s = { "<cmd>Telescope lsp_document_symbols<CR>", "Document Symbols" },
S = { S = {
'<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', "<cmd>Telescope lsp_dynamic_workspace_symbols<CR>",
'Workspace Symbols', "Workspace Symbols",
}, },
}, },
s = { s = {
name = 'Search', name = "Search",
b = { '<cmd>Telescope git_branches<cr>', 'Checkout branch' }, s = { "<cmd>s%//<Left>", "Replace word" },
c = { '<cmd>Telescope colorscheme<cr>', 'Colorscheme' }, b = { "<cmd>Telescope git_branches<CR>", "Checkout branch" },
h = { '<cmd>Telescope help_tags<cr>', 'Find Help' }, c = { "<cmd>Telescope colorscheme<CR>", "Colorscheme" },
M = { '<cmd>Telescope man_pages<cr>', 'Man Pages' }, h = { "<cmd>Telescope help_tags<CR>", "Find Help" },
r = { '<cmd>Telescope oldfiles<cr>', 'Open Recent File' }, M = { "<cmd>Telescope man_pages<CR>", "Man Pages" },
R = { '<cmd>Telescope registers<cr>', 'Registers' }, r = { "<cmd>Telescope oldfiles<CR>", "Open Recent File" },
k = { '<cmd>Telescope keymaps<cr>', 'Keymaps' }, R = { "<cmd>Telescope registers<CR>", "Registers" },
C = { '<cmd>Telescope commands<cr>', 'Commands' }, k = { "<cmd>Telescope keymaps<CR>", "Keymaps" },
C = { "<cmd>Telescope commands<CR>", "Commands" },
}, },
t = { t = {
name = 'Terminal', name = "Terminal",
n = { '<cmd>lua _NODE_TOGGLE()<cr>', 'Node' }, n = { "<cmd>lua _NODE_TOGGLE()<CR>", "Node" },
u = { '<cmd>lua _NCDU_TOGGLE()<cr>', 'NCDU' }, u = { "<cmd>lua _NCDU_TOGGLE()<CR>", "NCDU" },
t = { '<cmd>lua _HTOP_TOGGLE()<cr>', 'Htop' }, t = { "<cmd>lua _BTOP_TOGGLE()<CR>", "Btop" },
p = { '<cmd>lua _PYTHON_TOGGLE()<cr>', 'Python' }, p = { "<cmd>lua _PYTHON_TOGGLE()<CR>", "Python" },
f = { '<cmd>ToggleTerm direction=float<cr>', 'Float' }, f = { "<cmd>ToggleTerm direction=float<CR>", "Float" },
h = { '<cmd>ToggleTerm size=10 direction=horizontal<cr>', 'Horizontal' }, h = { "<cmd>ToggleTerm size=10 direction=horizontal<CR>", "Horizontal" },
v = { '<cmd>ToggleTerm size=80 direction=vertical<cr>', 'Vertical' }, 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
View File

@ -1 +1 @@
.luarc.json