Compare commits

...

59 Commits

Author SHA1 Message Date
9064a389e9 dwm: reformat config.h 2025-08-01 00:10:33 +02:00
e507e258e3 nvim: add lazyjj 2025-07-22 23:09:32 +02:00
d138f4c1da nvim, alacritty: switch to kanagawa-paper 2025-07-21 23:59:21 +02:00
fa085ae00c nvim: add snipe 2025-06-25 23:59:37 +02:00
d8a21e78c4 nvim: switch to sweetie colorscheme, also update alacritty themes 2025-06-25 22:05:48 +02:00
213a93acd9 nvim: remove telescope persisted key and grep_string 2025-06-24 22:51:01 +02:00
bdde8238c9 nvim: use snacks, remove lisp related and replaced packages 2025-06-12 09:38:21 +02:00
d21fdc925c nvim: add key for session change and change keys for namu 2025-06-07 21:51:54 +02:00
dba234077e nvim: add commands FormatDisable and FormatEnable 2025-06-07 11:08:57 +02:00
867e3d6991 nvim: move arrow, add namu and odin 2025-06-04 22:55:37 +02:00
ecb466f230 nvim: lazy update 2025-06-03 23:36:38 +02:00
f5302fc646 nvim/zsh: remove jj key mapping, add two aliases, nvim: back to arrow 2025-06-03 23:16:50 +02:00
3eaba86825 nvim: remove hardtime 2025-05-14 00:02:42 +02:00
1b0d0597b0 zsh: change escape bind key 2025-05-13 23:35:24 +02:00
63860cd661 nvim: color scheme nightfox 2025-05-13 23:35:24 +02:00
d122f56ab6 nvim: handle lisp file type, change local leader 2025-05-13 23:35:11 +02:00
a5c491d1ce awesome: use dmenu 2025-05-13 23:00:18 +02:00
d6ba2a78b9 tmux: bind tmux-session-menu 2025-05-13 23:00:18 +02:00
29608ff8c4 nvim: support different dark and light colorschemes 2025-04-02 00:00:53 +02:00
1513d23ec4 nvim: remove nvim-various-textobjs 2025-04-01 21:47:27 +02:00
28de145180 nvim: which-key: preset helix, delay 1000 2025-03-30 23:26:51 +02:00
17997c0550 nvim: add rest.nvim plugin 2025-03-30 23:26:51 +02:00
d47467e161 nvim: bump package versions 2025-03-30 23:26:51 +02:00
8033f2e2a9 nvim: change vim-ReplaceWithRegister mapping 2025-03-30 23:26:51 +02:00
3fa1a018ee awesome: change to green colors 2025-03-30 23:26:51 +02:00
dd9de18aa7 awesome: detect theme on (re)start 2025-03-30 23:26:32 +02:00
6d8e00fabf zsh: use zoxide if available otherwise use zsh-z
WIP zoxide: use z not cd
2025-03-30 23:26:32 +02:00
b54ece050d nvim: add lsp_signature plugin 2025-03-30 23:26:32 +02:00
437ca39309 alacritty: change colors, nvim: change rabbit file color 2025-03-30 23:26:32 +02:00
1835f61e49 awesome: change font and colors of help window 2025-03-30 23:26:32 +02:00
7caf112500 alacritty: increase font to 10 2025-03-30 23:26:32 +02:00
6b84ae6f3a xsession: add xrandr for white 2025-03-30 23:26:20 +02:00
d3b8e76787 nvim: add zen-mode plugin
toggles hyperland and awesome fullscreen mode
2025-03-29 12:38:21 +01:00
24d031c214 nvim: add slimline horizontal line (as slimline by default has no background) 2025-03-29 12:34:58 +01:00
bfa2c6313f nvim add melange (now default) and nordic colorschemes 2025-03-29 12:29:55 +01:00
cfb882fdc9 nvim: auto switch light/dark background 2025-03-29 12:24:16 +01:00
b6bc1de7af nvim: add tmux integration 2025-03-22 14:14:00 +01:00
48664abc41 nvim: add hardtime plugin 2025-03-22 12:02:08 +01:00
3fc6280267 nvim: non-floating Oil in the key bind 2025-03-22 12:02:08 +01:00
ef95853433 nvim: replace feline with slimline and incline plugin
display only bottom status line
2025-03-22 12:02:08 +01:00
3146aeee3e nvim: bump plugin versions 2025-03-22 12:02:08 +01:00
f685ebee2c nvim: notimeout 2025-03-22 12:02:08 +01:00
5a40a5b3ab nvim: add marks.nvim and mini.ai plugins 2025-03-22 12:02:08 +01:00
c06364cd27 nvim: replace arrow with rabbit plugin 2025-03-22 12:02:08 +01:00
f2f29762a4 nvim: add toggleterm plugin 2025-03-22 12:02:08 +01:00
7f850d115f nvim add iswap and treewaker plugins 2025-03-22 12:02:08 +01:00
fc88cb9801 nvim: add hlsearch plugin 2025-03-22 12:02:08 +01:00
75c39a5613 nvim: simplify nvim-surround config
note: you need to type ys, cs, ds fast to activate surround bindings
2025-03-22 12:02:08 +01:00
e90c2c7e4a nvim: add quicker plugin 2025-03-22 12:02:08 +01:00
24966cfc69 nvim: change arrow leader key 2025-03-17 00:34:41 +01:00
78ab1671ab nvim: add tardis plugin 2025-03-17 00:34:41 +01:00
d38ae42668 nvim: add yankbank plugin 2025-03-17 00:34:30 +01:00
240d466e3d nvim: add godoc plugin 2025-03-16 23:17:20 +01:00
9e8f036f62 nvim: fix trouble conf, remove hierarchy-tree-go, split init.lua 2025-03-16 21:14:03 +01:00
8a6ecfe7b9 nvim: remap leap and oil, move leap to editing 2025-03-16 21:14:03 +01:00
8714b847a7 alacritty: change dark theme to meliora to match nvim dark colorscheme 2025-03-11 21:40:19 +01:00
2c672e497c nvim: change default colorscheme to mellifluous 2025-03-11 21:40:19 +01:00
6d22ed0187 nvim: lazy update 2025-03-11 21:40:16 +01:00
f5397295d3 update for newer versions of alacritty and hyprland 2025-03-10 23:14:17 +01:00
44 changed files with 893 additions and 645 deletions

View File

@ -1,5 +1,3 @@
import = ["~/.config/alacritty/dark.toml"]
[colors]
draw_bold_text_with_bright_colors = false
@ -7,10 +5,13 @@ draw_bold_text_with_bright_colors = false
TERM = "xterm-256color"
[font]
size = 9
size = 10
[font.bold]
family = "Fira Code Nerd Font"
[font.normal]
family = "Fira Code Nerd Font"
[general]
import = ["~/.config/alacritty/dark.toml"]

View File

@ -1,26 +1,45 @@
# https://github.com/zenbones-theme/zenbones.nvim/blob/main/extras/alacritty/zenbones_dark.toml
# This file is auto-generated by shipwright.nvim
[colors.bright]
black = "#403833"
red = "#E8838F"
green = "#8BAE68"
yellow = "#D68C67"
blue = "#61ABDA"
magenta = "#CF86C1"
cyan = "#65B8C1"
white = "#888F94"
[colors.cursor]
cursor = "#C4CACF"
text = "#1C1917"
[colors.normal]
black = "#1C1917"
blue = "#6099C0"
cyan = "#66A5AD"
green = "#819B69"
magenta = "#B279A7"
red = "#DE6E7C"
white = "#B4BDC3"
yellow = "#B77E64"
# -----------------------------------------------------------------------------
# Kanagawa Paper Ink
# Upstream: https://github.com/thesimonho/kanagawa-paper.nvim/master/extras/alacritty/kanagawa-paper-ink.toml
# URL: https://github.com/alacritty/alacritty
# -----------------------------------------------------------------------------
[colors.primary]
background = "#141D1C"
foreground = "#9BAFAC"
background = '#1F1F28'
foreground = '#DCD7BA'
[colors.cursor]
cursor = '#c4b28a'
text = '#1F1F28'
[colors.selection]
background = '#363646'
foreground = '#9e9b93'
[colors.normal]
black = '#393836'
red = '#c4746e'
green = '#699469'
yellow = '#c4b28a'
blue = '#435965'
magenta = '#a292a3'
cyan = '#8ea49e'
white = '#C8C093'
[colors.bright]
black = '#aca9a4'
red = '#cc928e'
green = '#72a072'
yellow = '#d4c196'
blue = '#698a9b'
magenta = '#b4a7b5'
cyan = '#96ada7'
white = '#d5cd9d'
[[colors.indexed_colors]]
index = 16
color = '#b6927b'
[[colors.indexed_colors]]
index = 17
color = '#c4746e'

View File

@ -1,26 +1,45 @@
# https://github.com/zenbones-theme/zenbones.nvim/blob/main/extras/alacritty/zenbones_light.toml
# This file is auto-generated by shipwright.nvim
[colors.bright]
black = "#CFC1BA"
red = "#94253E"
green = "#3F5A22"
yellow = "#803D1C"
blue = "#1D5573"
magenta = "#7B3B70"
cyan = "#2B747C"
white = "#4F5E68"
[colors.cursor]
cursor = "#2C363C"
text = "#F0EDEC"
[colors.normal]
black = "#F0EDEC"
blue = "#286486"
cyan = "#3B8992"
green = "#4F6C31"
magenta = "#88507D"
red = "#A8334C"
white = "#2C363C"
yellow = "#944927"
# -----------------------------------------------------------------------------
# Kanagawa Paper Canvas
# Upstream: https://github.com/thesimonho/kanagawa-paper.nvim/master/extras/alacritty/kanagawa-paper-canvas.toml
# URL: https://github.com/alacritty/alacritty
# -----------------------------------------------------------------------------
[colors.primary]
background = "#F0F1F1"
foreground = "#141D1C"
background = '#e1e1de'
foreground = '#595b62'
[colors.cursor]
cursor = '#618bb6'
text = '#e1e1de'
[colors.selection]
background = '#c4cbdc'
foreground = '#858479'
[colors.normal]
black = '#4c4c65'
red = '#b35560'
green = '#57786c'
yellow = '#a67337'
blue = '#719ac2'
magenta = '#ac7085'
cyan = '#526c79'
white = '#858479'
[colors.bright]
black = '#5c5c75'
red = '#c75f6b'
green = '#618679'
yellow = '#b67e3d'
blue = '#86aed7'
magenta = '#b57e91'
cyan = '#5d7a89'
white = '#919084'
[[colors.indexed_colors]]
index = 16
color = '#b8805e'
[[colors.indexed_colors]]
index = 17
color = '#b35560'

View File

@ -51,7 +51,20 @@ end
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
local theme = "theme_dark.lua"
local function read_theme()
local theme = "theme_dark.lua"
local f = io.open(os.getenv('HOME') .. '/.config/alacritty/alacritty.toml')
if f then
if string.find(f:read('*all'), 'light') then
theme = 'theme_light.lua'
end
f:close()
return theme
end
end
local theme = read_theme()
beautiful.init(gears.filesystem.get_configuration_dir() .. theme)
local function set_wallpaper(s)
@ -325,8 +338,8 @@ local globalkeys = gears.table.join(
end,
{ description = "lua execute prompt", group = "awesome" }),
-- Menubar
awful.key({ modkey, }, "p", function() menubar.show() end,
{ description = "show the menubar", group = "launcher" })
awful.key({ modkey }, "p", function() awful.spawn("dmenu_run -fn 'FiraCode Nerd Font Ret:size=10'") end,
{ description = "run command", group = "launcher" })
)
local clientkeys = gears.table.join(

View File

@ -1,51 +1,56 @@
local themes_path = require("gears.filesystem").get_themes_dir()
local themes_path = require("gears.filesystem").get_themes_dir()
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
local theme = {}
local theme = {}
theme.font = "Fira Code Nerd Font 10.5"
theme.tasklist_disable_icon = true
theme.wibar_height = 40
theme.font = "Fira Code Nerd Font 10"
theme.tasklist_disable_icon = true
theme.wibar_height = 30
theme.bg_normal = "#283538"
theme.bg_focus = "#36537d" -- hsl(215deg 40% 35%)
theme.bg_urgent = "#d8aeb5"
theme.bg_minimize = "#363e49" -- hsl(215deg 15% 25%)
theme.bg_systray = theme.bg_normal
theme.tasklist_bg_focus = "#263c59" -- hsl(215deg 40% 25%)
theme.bg_normal = "#293d38" -- hsl(165deg 20% 20%)
theme.bg_focus = "#478575" -- hsl(165deg 30% 40%)
theme.bg_urgent = "#5c3d45" -- hsl(345deg 20% 30%)
theme.bg_minimize = "#363e49" -- hsl(215deg 15% 25%)
theme.bg_systray = theme.bg_normal
theme.tasklist_bg_focus = "#3d5c54" -- hsl(165deg 20% 30%)
theme.fg_normal = "#9ea7aa"
theme.fg_focus = "#b1babd"
theme.fg_urgent = theme.bg_focus
theme.fg_minimize = "#8a9294"
theme.taglist_fg_empty = "#798082"
theme.fg_normal = "#a9d6ca" -- hsl(165deg 35% 75%)"
theme.fg_focus = "#b1babd"
theme.fg_urgent = theme.bg_focus
theme.fg_minimize = "#8a9294"
theme.taglist_fg_empty = "#62847b" -- hsl(165deg 15% 45%)"
theme.useless_gap = dpi(1)
theme.border_width = dpi(2)
theme.border_normal = "#708090"
theme.border_focus = "#a0522d"
theme.border_marked = "#91231c"
theme.useless_gap = dpi(1)
theme.border_width = dpi(2)
theme.border_normal = "#708090"
theme.border_focus = "#a0522d"
theme.border_marked = "#91231c"
theme.bg_wallpaper = "#424a4c"
theme.bg_wallpaper = "#424a4c"
theme.hotkeys_font = theme.font
theme.hotkeys_description_font = theme.font
theme.hotkeys_bg = theme.bg_minimize
theme.hotkeys_modifiers_fg = theme.border_focus
-- You can use your own layout icons like this:
theme.layout_fairh = themes_path .. "default/layouts/fairhw.png"
theme.layout_fairv = themes_path .. "default/layouts/fairvw.png"
theme.layout_floating = themes_path .. "default/layouts/floatingw.png"
theme.layout_magnifier = themes_path .. "default/layouts/magnifierw.png"
theme.layout_max = themes_path .. "default/layouts/maxw.png"
theme.layout_fullscreen = themes_path .. "default/layouts/fullscreenw.png"
theme.layout_tilebottom = themes_path .. "default/layouts/tilebottomw.png"
theme.layout_tileleft = themes_path .. "default/layouts/tileleftw.png"
theme.layout_tile = themes_path .. "default/layouts/tilew.png"
theme.layout_tiletop = themes_path .. "default/layouts/tiletopw.png"
theme.layout_spiral = themes_path .. "default/layouts/spiralw.png"
theme.layout_dwindle = themes_path .. "default/layouts/dwindlew.png"
theme.layout_cornernw = themes_path .. "default/layouts/cornernww.png"
theme.layout_cornerne = themes_path .. "default/layouts/cornernew.png"
theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
theme.layout_fairh = themes_path .. "default/layouts/fairhw.png"
theme.layout_fairv = themes_path .. "default/layouts/fairvw.png"
theme.layout_floating = themes_path .. "default/layouts/floatingw.png"
theme.layout_magnifier = themes_path .. "default/layouts/magnifierw.png"
theme.layout_max = themes_path .. "default/layouts/maxw.png"
theme.layout_fullscreen = themes_path .. "default/layouts/fullscreenw.png"
theme.layout_tilebottom = themes_path .. "default/layouts/tilebottomw.png"
theme.layout_tileleft = themes_path .. "default/layouts/tileleftw.png"
theme.layout_tile = themes_path .. "default/layouts/tilew.png"
theme.layout_tiletop = themes_path .. "default/layouts/tiletopw.png"
theme.layout_spiral = themes_path .. "default/layouts/spiralw.png"
theme.layout_dwindle = themes_path .. "default/layouts/dwindlew.png"
theme.layout_cornernw = themes_path .. "default/layouts/cornernww.png"
theme.layout_cornerne = themes_path .. "default/layouts/cornernew.png"
theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
return theme

View File

@ -1,51 +1,56 @@
local themes_path = require("gears.filesystem").get_themes_dir()
local themes_path = require("gears.filesystem").get_themes_dir()
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
local xresources = require("beautiful.xresources")
local dpi = xresources.apply_dpi
local theme = {}
local theme = {}
theme.font = "Fira Code Nerd Font 10.5"
theme.tasklist_disable_icon = true
theme.wibar_height = 40
theme.font = "Fira Code Nerd Font 10"
theme.tasklist_disable_icon = true
theme.wibar_height = 30
theme.bg_normal = "#283538"
theme.bg_focus = "#82a0c9" -- hsl(215deg 40% 65%)
theme.bg_urgent = "#d0426a"
theme.bg_minimize = "#7b899d" -- hsl(215deg 15% 55%)
theme.bg_systray = theme.bg_normal
theme.tasklist_bg_focus = "#5e85ba" -- hsl(215deg 40% 55%)
theme.bg_normal = "#293d38" -- hsl(165deg 20% 20%)
theme.bg_focus = "#a9d6ca" -- hsl(165deg 35% 75%)
theme.bg_urgent = "#bc8f9b" -- hsl(345deg 25% 65%)
theme.bg_minimize = "#62847b" -- hsl(165deg 15% 45%)
theme.bg_systray = theme.bg_normal
theme.tasklist_bg_focus = "#8fbcb1" -- hsl(165deg 25% 65%)
theme.fg_normal = "#616c6f"
theme.fg_focus = "#363d3e"
theme.fg_urgent = "#e9f2f5"
theme.fg_minimize = "#4b5456"
theme.taglist_fg_empty = "#566063"
theme.fg_normal = "#a9d6ca" -- hsl(165deg 35% 75%)"
theme.fg_focus = "#363d3e"
theme.fg_urgent = "#e9f2f5"
theme.fg_minimize = "#4b5456"
theme.taglist_fg_empty = "#62847b" -- hsl(165deg 15% 45%)"
theme.useless_gap = dpi(1)
theme.border_width = dpi(2)
theme.border_normal = "#bebebe"
theme.border_focus = "#ff7f50"
theme.border_marked = "#91231c"
theme.useless_gap = dpi(1)
theme.border_width = dpi(2)
theme.border_normal = "#bebebe"
theme.border_focus = "#ff7f50"
theme.border_marked = "#91231c"
theme.bg_wallpaper = "#b0bec2"
theme.bg_wallpaper = "#b0bec2"
theme.hotkeys_font = theme.font
theme.hotkeys_description_font = theme.font
theme.hotkeys_bg = theme.border_normal
theme.hotkeys_modifiers_fg = theme.bg_focus
-- You can use your own layout icons like this:
theme.layout_fairh = themes_path .. "default/layouts/fairhw.png"
theme.layout_fairv = themes_path .. "default/layouts/fairvw.png"
theme.layout_floating = themes_path .. "default/layouts/floatingw.png"
theme.layout_magnifier = themes_path .. "default/layouts/magnifierw.png"
theme.layout_max = themes_path .. "default/layouts/maxw.png"
theme.layout_fullscreen = themes_path .. "default/layouts/fullscreenw.png"
theme.layout_tilebottom = themes_path .. "default/layouts/tilebottomw.png"
theme.layout_tileleft = themes_path .. "default/layouts/tileleftw.png"
theme.layout_tile = themes_path .. "default/layouts/tilew.png"
theme.layout_tiletop = themes_path .. "default/layouts/tiletopw.png"
theme.layout_spiral = themes_path .. "default/layouts/spiralw.png"
theme.layout_dwindle = themes_path .. "default/layouts/dwindlew.png"
theme.layout_cornernw = themes_path .. "default/layouts/cornernww.png"
theme.layout_cornerne = themes_path .. "default/layouts/cornernew.png"
theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
theme.layout_fairh = themes_path .. "default/layouts/fairhw.png"
theme.layout_fairv = themes_path .. "default/layouts/fairvw.png"
theme.layout_floating = themes_path .. "default/layouts/floatingw.png"
theme.layout_magnifier = themes_path .. "default/layouts/magnifierw.png"
theme.layout_max = themes_path .. "default/layouts/maxw.png"
theme.layout_fullscreen = themes_path .. "default/layouts/fullscreenw.png"
theme.layout_tilebottom = themes_path .. "default/layouts/tilebottomw.png"
theme.layout_tileleft = themes_path .. "default/layouts/tileleftw.png"
theme.layout_tile = themes_path .. "default/layouts/tilew.png"
theme.layout_tiletop = themes_path .. "default/layouts/tiletopw.png"
theme.layout_spiral = themes_path .. "default/layouts/spiralw.png"
theme.layout_dwindle = themes_path .. "default/layouts/dwindlew.png"
theme.layout_cornernw = themes_path .. "default/layouts/cornernww.png"
theme.layout_cornerne = themes_path .. "default/layouts/cornernew.png"
theme.layout_cornersw = themes_path .. "default/layouts/cornersww.png"
theme.layout_cornerse = themes_path .. "default/layouts/cornersew.png"
return theme

View File

@ -19,7 +19,6 @@ dwindle {
}
decoration {
drop_shadow = true
rounding = 4
}

View File

@ -1,61 +1,75 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "45db5addf8d0a201e1cf247cae4cdce605ad3768" },
"arrow.nvim": { "branch": "master", "commit": "fb8e2cf548f625f6e36cb44d3e65600656924234" },
"better-escape.nvim": { "branch": "master", "commit": "bb197e51a91a635deb88630813c3bfc284413697" },
"blame.nvim": { "branch": "main", "commit": "59cf695685c1d8d603d99b246cc8d42421937c09" },
"bookmarks.nvim": { "branch": "main", "commit": "42371a76cdd786452b537490926b1b6a041672e5" },
"ccc.nvim": { "branch": "main", "commit": "790aa881d7f47bc7cc07ad03f1216bb7caf9ef67" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"LuaSnip": { "branch": "master", "commit": "faf3c94a44508cec1b961406d36cc65113ff3b98" },
"arrow.nvim": { "branch": "master", "commit": "6e0f726f55f99332dd726a53effd6813786b6d49" },
"blame.nvim": { "branch": "main", "commit": "b87b8c820e4cec06fbbd2f946b7b35c45906ee0c" },
"ccc.nvim": { "branch": "main", "commit": "9d1a256e006decc574789dfc7d628ca11644d4c2" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "f643d1b51d1d3d14c8641a46ce44f6bce73c2697" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dressing.nvim": { "branch": "master", "commit": "c5775a888adbc50652cb370073fcfec963eca93e" },
"feline.nvim": { "branch": "main", "commit": "c97c17dc56ca3cf2b9b9192c3447fc59347e8c0d" },
"fidget.nvim": { "branch": "main", "commit": "d855eed8a06531a7e8fd0684889b2943f373c469" },
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
"gitsigns.nvim": { "branch": "main", "commit": "1ef74b546732f185d0f806860fa5404df7614f28" },
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" },
"global-note.nvim": { "branch": "main", "commit": "1e0d4bba425d971ed3ce40d182c574a25507115c" },
"go.nvim": { "branch": "master", "commit": "841be1c3702c24de677955ca05f2de460484959f" },
"guihua.lua": { "branch": "master", "commit": "225db770e36aae6a1e9e3a65578095c8eb4038d3" },
"hierarchy-tree-go.nvim": { "branch": "main", "commit": "9fab9ddefe81edab4a144824955d2d085db3f49a" },
"indent-blankline.nvim": { "branch": "master", "commit": "18603eb949eba08300799f64027af11ef922283f" },
"lazy.nvim": { "branch": "main", "commit": "48b52b5cfcf8f88ed0aff8fde573a5cc20b1306d" },
"leap.nvim": { "branch": "main", "commit": "c6bfb191f1161fbabace1f36f578a20ac6c7642c" },
"lspsaga.nvim": { "branch": "main", "commit": "4ce44df854f447cf0a8972e5387b3aeb5efc798b" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"go.nvim": { "branch": "master", "commit": "a3455f48cff718a86275115523dcc735535a13aa" },
"godoc.nvim": { "branch": "main", "commit": "356f79853dbb3b3e200064367603751895153c29" },
"guihua.lua": { "branch": "master", "commit": "87bea7b98429405caf2a0ce4d029b027bb017c70" },
"hererocks": { "branch": "master", "commit": "344c46ed54df9a4dbc2d2bf510dcd9a9d90497bf" },
"hlsearch.nvim": { "branch": "main", "commit": "fdeb60b890d15d9194e8600042e5232ef8c29b0e" },
"incline.nvim": { "branch": "main", "commit": "27040695b3bbfcd3257669037bd008d1a892831d" },
"iswap.nvim": { "branch": "master", "commit": "e02cc91f2a8feb5c5a595767d208c54b6e3258ec" },
"kanagawa-paper.nvim": { "branch": "master", "commit": "b0df20cca3b7087c06f241983b488190cc8e23af" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazyjj.nvim": { "branch": "main", "commit": "bba66a1351ff1f1bd078c8a1b00b8d12b3ed0017" },
"leap.nvim": { "branch": "main", "commit": "08ca7ec9e859856251d56c22ea107f82f563ff3c" },
"lsp_signature.nvim": { "branch": "master", "commit": "d50e40b3bf9324128e71b0b7e589765ce89466d2" },
"lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" },
"marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "c2682b0d9732bf52cbc34862056f143e71dc4a6d" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" },
"mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" },
"namu.nvim": { "branch": "main", "commit": "a3a3d81d12b61a38f131253bcd3ce5e2c6599850" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"neogit": { "branch": "master", "commit": "9bc4ee89bb42be31a2f0b1da41e36e3e6cab9bbb" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-lspconfig": { "branch": "master", "commit": "38d4b239aab2dc3fdfe56b42e3f0f20c237ca695" },
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" },
"nvim-treesitter": { "branch": "master", "commit": "4770d9a1a77b0cc2b723c646c3dbe43a9133e5db" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bf8d2ad35d1d1a687eae6c065c3d524f7ab61b23" },
"nvim-various-textobjs": { "branch": "main", "commit": "8dbc655f794202f45ab6a1cac1cb323a218ac6a1" },
"nvim-web-devicons": { "branch": "master", "commit": "9793801f974bba70e4ac5d7eae6c4f5659993d8e" },
"oil.nvim": { "branch": "master", "commit": "1fe476daf0b3c108cb8ee1fc1226cc282fa2c9c1" },
"onenord.nvim": { "branch": "main", "commit": "057d7048e499b4de7cd4edaff94ec1890242a117" },
"orgmode": { "branch": "master", "commit": "e3500add486b17da58ce8e42a0f799161e5761c9" },
"persisted.nvim": { "branch": "main", "commit": "1673a295db295999aaf8de7c7a3afd45e0b83a46" },
"plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
"telescope-git-grep.nvim": { "branch": "main", "commit": "814217cb30c076bc5edebe36e525b05a7c9eb4b2" },
"telescope-tabs": { "branch": "master", "commit": "0a678eefcb71ebe5cb0876aa71dd2e2583d27fd3" },
"neogit": { "branch": "master", "commit": "7fe60f9aa6eacf2eb730c4e9b83d06a36d028161" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-lspconfig": { "branch": "master", "commit": "3ea99227e316c5028f57a4d86a1a7fd01dd876d0" },
"nvim-surround": { "branch": "main", "commit": "8dd9150ca7eae5683660ea20cec86edcd5ca4046" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" },
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
"oil.nvim": { "branch": "master", "commit": "5b6068aad7d2057dd399fac73b7fb2cdf23ccd6e" },
"orgmode": { "branch": "master", "commit": "32ef9e95f43a6e951fb931b438372546a4f0c524" },
"persisted.nvim": { "branch": "main", "commit": "d35a3ed973e17defd8800acd46a0c893498a2671" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"quicker.nvim": { "branch": "master", "commit": "51d3926f183c2d98fbc237cc237ae0926839af3a" },
"rest.nvim": { "branch": "main", "commit": "2ded89dbda1fd3c1430685ffadf2df8beb28336d" },
"slimline.nvim": { "branch": "main", "commit": "10dd807685997d1b72b950dfb4ec1a01cb259101" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"snipe.nvim": { "branch": "main", "commit": "2a1b738dfae8502e6162eddfc774da65ed404142" },
"sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" },
"tardis.nvim": { "branch": "main", "commit": "a6ee00a217529490e79d349b1f1a9cf5831180d3" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope-git-grep.nvim": { "branch": "main", "commit": "d2e1322934e334ee9eb8e838c30f3afb3e7a730e" },
"telescope-tabs": { "branch": "master", "commit": "9ca0800d4e9c2610d5cac4d121cde0d9fbd89a64" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"tree-sitter-nu": { "branch": "main", "commit": "0bb9a602d9bc94b66fab96ce51d46a5a227ab76c" },
"tree-sitter-templ": { "branch": "master", "commit": "0524da9e1f14b9b7d7d6d36608293f85a550b263" },
"treesj": { "branch": "main", "commit": "0d81326b5afd36babe7dd480aabbb0b05f33e688" },
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
"undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
"vim-ReplaceWithRegister": { "branch": "master", "commit": "aad1e8fa31cb4722f20fe40679caa56e25120032" },
"vim-dadbod": { "branch": "master", "commit": "7888cb7164d69783d3dce4e0283decd26b82538b" },
"vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" },
"vim-dadbod-ui": { "branch": "master", "commit": "aa003f514ba0b1250ba0f284f031d011bb9e83e8" },
"tmux.nvim": { "branch": "main", "commit": "2c1c3be0ef287073cef963f2aefa31a15c8b9cd8" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"tree-sitter-nu": { "branch": "main", "commit": "100d06e29d13a8ebfc3f29173c07a5c4f2050586" },
"tree-sitter-templ": { "branch": "master", "commit": "de35706f89beed5087670a9c4421b7794ef02411" },
"treesj": { "branch": "main", "commit": "3b4a2bc42738a63de17e7485d4cc5e49970ddbcc" },
"treewalker.nvim": { "branch": "main", "commit": "86ae3cf9896b43f3cfa35b962428f32fed8b5ee8" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" },
"vim-ReplaceWithRegister": { "branch": "master", "commit": "a487af6efd1be3fc6fac8da47d00efc9d1f6f724" },
"vim-dadbod": { "branch": "master", "commit": "e95afed23712f969f83b4857a24cf9d59114c2e6" },
"vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
"vim-dadbod-ui": { "branch": "master", "commit": "2900a1617b3df1a48683d872eadbe1101146a49a" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vim-sleuth": { "branch": "master", "commit": "cd9d382e33bb817abe7f10cdc3a606bf1d491d75" },
"whaler": { "branch": "main", "commit": "9e0b67e36250cb80e679563adcd4b7451eae26b2" },
"which-key.nvim": { "branch": "main", "commit": "bfec3d6bc0a9b0b2cb11644642f78c2c3915eef0" }
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"whaler": { "branch": "main", "commit": "b3a4257f6225a9a6c42f33b56ca316325e395f22" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
"yankbank-nvim": { "branch": "main", "commit": "ded8f01bd6a7887310e14d463c8aa55eb79ec281" }
}

View File

@ -16,11 +16,3 @@ vim.api.nvim_create_autocmd('BufWritePre', {
group = vim.api.nvim_create_augroup('BufWriteFormat', { clear = true }),
pattern = { '*.go', '*.lua', '*.rs' },
})
vim.api.nvim_create_autocmd('ColorScheme', {
desc = 'Change feline theme',
group = vim.api.nvim_create_augroup('ChangeFelineTheme', { clear = true }),
callback = function()
require('feline').use_theme(vim.o.background)
end,
})

View File

@ -31,7 +31,7 @@ vim.wo.signcolumn = 'yes'
-- Decrease update time
vim.o.updatetime = 250
vim.o.timeoutlen = 300
vim.o.timeout = false
-- Set completeopt to have a better completion experience
vim.o.completeopt = 'menuone,noselect'
@ -52,3 +52,5 @@ vim.g.lightspeed_no_default_keymaps = true
vim.o.cursorline = true
vim.opt.foldcolumn = '1'
vim.opt.laststatus = 3

View File

@ -1,5 +1,5 @@
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.g.maplocalleader = ' \\'
local key = vim.keymap.set
local opts = { silent = true, noremap = true }
@ -10,8 +10,6 @@ key('v', '<Space>', '<Nop>', { silent = true })
key('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
key('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
key("n", "<leader>dd", "<cmd>Oil<CR>", { desc = "[D]isplay [d]irectory" })
key("n", "<leader>df", "<cmd>Oil --float<CR>", { desc = "[D]isplay directory [f]loat" })
key("n", "<leader>ut", "<cmd>UndotreeToggle<CR>", { desc = "[U]undotree [t]oggle" })
-- tabs
@ -53,7 +51,7 @@ key('n', '<leader>P', '<cmd>bp<CR>', { desc = '[P]revious buffer' })
key('n', '<leader>tc', '<cmd>tabnew<CR>', { desc = '[T]ab [c]reate' })
key('n', '<leader>tx', '<cmd>tabclose<CR>', { desc = '[T]ab close' })
key('n', '<leader>ts', '<cmd>tab split<CR>', { desc = '[T]ab [s]plit' })
key('n', '<leader>tS', '<cmd>tab split<CR>', { desc = '[T]ab [s]plit' })
key('n', '<leader>tn', '<cmd>tabnext<CR>', { desc = '[T]ab [n]ext' })
key('n', '<leader>tp', '<cmd>tabprevious<CR>', { desc = '[T]ab [p]revious' })
key('n', '<leader>tf', '<cmd>tabfirst<CR>', { desc = '[T]ab [f]irst' })
@ -85,7 +83,8 @@ key('n', '<leader>j', '<cmd>cn<CR>', { desc = "Quickfix next" })
key('n', '<leader>k', '<cmd>cp<CR>', { desc = "Quickfix previous" })
key('n', '<leader>co', '<cmd>copen<CR>', { desc = "Quickfix [O]pen" })
key('n', '<leader>cc', '<cmd>cclose<CR>', { desc = "Quickfix [C]lose" })
key('n', '<leader>ct', '<cmd>TroubleToggle<CR>', { desc = "Toggle [T]rouble" })
key('n', '<leader>s;', '<cmd>SessionSelect<CR>', { desc = '[S]ession Select' })
-- luasnip
@ -115,10 +114,4 @@ vim.keymap.set("n", "<leader>ss", "<cmd>source ~/.config/nvim/after/plugin/luasn
-- colors
key('n', '<F6>', function()
if vim.o.background == "dark" then
vim.o.background = "light"
else
vim.o.background = "dark"
end
end)
key('n', '<F6>', function() require('lupan.utils').toggle_color_scheme() end, { desc = 'Toggle background' })

View File

@ -1,7 +1,15 @@
local M = {}
local filename = os.getenv('HOME') .. '/.config/alacritty/alacritty.toml'
local colorschemes = nil
function M.set_color_schemes(dark, light)
colorschemes = { dark = dark, light = light }
end
function M.terminalbg()
local ok, lines = pcall(io.lines, os.getenv('HOME') .. '/.config/alacritty/alacritty.toml')
local ok, lines = pcall(io.lines, filename)
if ok then
for line in lines do
if string.find(line, 'light.toml') then
@ -12,4 +20,34 @@ function M.terminalbg()
return "dark"
end
function M.update_color_scheme()
vim.o.background = M.terminalbg()
if colorschemes then
vim.cmd.colorscheme(colorschemes[vim.o.background])
end
end
function M.toggle_color_scheme()
if vim.o.background == "dark" then
vim.o.background = "light"
else
vim.o.background = "dark"
end
if colorschemes then
vim.cmd.colorscheme(colorschemes[vim.o.background])
end
end
local w = vim.uv.new_fs_event()
local function watch(fname)
w:start(filename, {}, vim.schedule_wrap(function(...)
M.update_color_scheme()
w:stop()
watch(fname)
end))
end
watch(filename)
return M

View File

@ -1,18 +1,10 @@
return {
{
'rmehri01/onenord.nvim',
'thesimonho/kanagawa-paper.nvim',
config = function()
vim.o.background = require('lupan.utils').terminalbg()
vim.cmd.colorscheme('onenord')
vim.cmd.colorscheme('kanagawa-paper')
end
},
{
-- Indentation guides (see `:help indent_blankline.txt`)
'lukas-reineke/indent-blankline.nvim',
main = "ibl",
opts = {},
},
{
--- Create Color Code
'uga-rosa/ccc.nvim',

View File

@ -1,22 +0,0 @@
return {
{
"otavioschwanck/arrow.nvim",
opts = {
show_icons = true,
leader_key = '<leader>;',
buffer_leader_key = '<leader>m',
},
keys = {
{ "<leader>1", function() require("arrow.persist").go_to(1) end },
{ "<leader>2", function() require("arrow.persist").go_to(2) end },
{ "<leader>3", function() require("arrow.persist").go_to(3) end },
{ "<leader>4", function() require("arrow.persist").go_to(4) end },
{ "<leader>5", function() require("arrow.persist").go_to(5) end },
{ "<leader>6", function() require("arrow.persist").go_to(6) end },
{ "<leader>7", function() require("arrow.persist").go_to(7) end },
{ "<leader>8", function() require("arrow.persist").go_to(8) end },
{ "<leader>9", function() require("arrow.persist").go_to(9) end },
{ "<leader>0", function() require("arrow.persist").go_to(10) end },
}
}
}

View File

@ -74,5 +74,8 @@ return {
{ name = 'buffer' },
},
})
cmp.setup.filetype('lisp', {
sources = cmp.config.sources({ { name = 'nvlime' } })
})
end,
}

View File

@ -1,18 +1,56 @@
return {
{
"LintaoAmons/bookmarks.nvim",
tag = "v0.5.3", -- optional, pin the plugin at specific version for stability
"otavioschwanck/arrow.nvim",
dependencies = {
{ "stevearc/dressing.nvim" } -- optional: to have the same UI shown in the GIF
{ "nvim-tree/nvim-web-devicons" },
},
event = 'VimEnter',
opts = {
show_icons = true,
leader_key = '-', -- Recommended to be a single key
buffer_leader_key = '+', -- Per Buffer Mappings
}
},
{
"leath-dub/snipe.nvim",
keys = {
{ "mm", "<cmd>BookmarksMark<cr>", mode = { "n", "v" }, desc = "Mark current line into active BookmarkList." },
{ "mo", "<cmd>BookmarksGoto<cr>", mode = { "n", "v" }, desc = "Go to bookmark at current active BookmarkList" },
{ "ma", "<cmd>BookmarksCommands<cr>", mode = { "n", "v" }, desc = "Find and trigger a bookmark command." },
{ "mg", "<cmd>BookmarksGotoRecent<cr>", mode = { "n", "v" }, desc = "Go to latest visited/created Bookmark" },
{ "ms", "<cmd>BookmarksSetActiveList<cr>", mode = { "n", "v" }, desc = "Go to latest visited/created Bookmark" },
{ "_", function() require("snipe").open_buffer_menu() end, desc = "Open Snipe buffer menu" }
},
opts = {}
},
{
"chentoast/marks.nvim",
event = "VeryLazy",
config = true,
keys = {
{ '<leader>ma', '<cmd>MarksListAll<CR>' },
{ '<leader>mb', '<cmd>MarksListBuf<CR>' },
{ '<leader>mg', '<cmd>MarksListGlobal<CR>' },
},
},
{ "nvim-telescope/telescope.nvim", lazy = true },
{
"bassamsdata/namu.nvim",
config = function()
require("namu").setup({
-- Enable the modules you want
namu_symbols = {
enable = true,
options = {}, -- here you can configure namu
},
-- Optional: Enable other modules if needed
ui_select = { enable = false }, -- vim.ui.select() wrapper
})
-- === Suggested Keymaps: ===
vim.keymap.set("n", "<leader>;", ":Namu symbols<cr>", {
desc = "Jump to LSP symbol",
silent = true,
})
vim.keymap.set("n", "<leader>.", ":Namu workspace<cr>", {
desc = "LSP Symbols - Workspace",
silent = true,
})
end,
}
}

View File

@ -2,6 +2,10 @@ return {
{
'folke/which-key.nvim',
event = 'VimEnter',
opts = {
preset = 'helix',
delay = 1000,
},
config = function(_, opts)
require('which-key').setup(opts)
@ -16,10 +20,4 @@ return {
}
end,
},
{
"max397574/better-escape.nvim",
config = function(_, opts)
require("better_escape").setup(opts)
end,
},
}

View File

@ -13,24 +13,75 @@ return {
{
"kylechui/nvim-surround",
version = "*", -- Use for stability; omit to use `main` branch for the latest features
version = "^3.0.0", -- Use for stability; omit to use `main` branch for the latest features
event = "VeryLazy",
config = function(_, opts)
require("nvim-surround").setup(opts)
end
config = true,
},
{
'inkarkat/vim-ReplaceWithRegister',
keys = {
{ '<leader>r', '<Plug>ReplaceWithRegisterOperator' },
{ '<leader>rr', '<Plug>ReplaceWithRegisterLine' },
{ '<leader>r', '<Plug>ReplaceWithRegisterVisual', mode = 'x' },
{ '<leader>rp', '<Plug>ReplaceWithRegisterOperator' },
{ '<leader>rpp', '<Plug>ReplaceWithRegisterLine' },
{ '<leader>rp', '<Plug>ReplaceWithRegisterVisual', mode = 'x' },
},
},
{
"chrisgrieser/nvim-various-textobjs",
lazy = false,
opts = { useDefaultKeymaps = true },
'ggandor/leap.nvim',
opts = {
safe_labels = {},
},
dependencies = {
"tpope/vim-repeat",
},
keys = {
{ '\\', '<Plug>(leap)', mode = { 'n', 'x', 'o' } },
{ 'gs', '<Plug>(leap-from-window)', mode = { 'n', 'x', 'o' } },
}
},
{
'Wansmer/treesj',
dependencies = { 'nvim-treesitter/nvim-treesitter' },
opts = {
use_default_keymaps = false,
},
keys = {
{ '<leader>tg', function() require('treesj').toggle() end, desc = "[T]ree to[g]gle one-line" },
{ '<leader>tj', function() require('treesj').join() end, desc = "[T]ree [J]oin one-line" },
{ '<leader>ts', function() require('treesj').split() end, desc = "[T]ree [S]plit one-line" },
},
},
-- rehighlight search on n or N
{
'nvimdev/hlsearch.nvim',
event = 'BufRead',
config = true,
},
{
'mizlan/iswap.nvim',
event = 'VeryLazy',
keys = {
{ '<leader>cs', '<cmd>ISwapWith<CR>', desc = 'I[S]wap' },
{ '<leader>cS', '<cmd>ISwap<CR>', desc = 'I[S]wapWith' },
{ '<leader>cn', '<cmd>ISwapNodeWith<CR>', desc = 'ISwap[N]ode' },
{ '<leader>cN', '<cmd>ISwapNode<CR>', desc = 'ISwap[N]ode' },
},
},
{
'aaronik/treewalker.nvim',
keys = {
{ '<leader>ch', '<cmd>Treewalker Left<CR>', desc = 'Tree Left' },
{ '<leader>cj', '<cmd>Treewalker Down<CR>', desc = 'Tree Down' },
{ '<leader>ck', '<cmd>Treewalker Up<CR>', desc = 'Tree Up' },
{ '<leader>cl', '<cmd>Treewalker Right<CR>', desc = 'Tree Right' },
{ '<leader>cJ', '<cmd>Treewalker SwapDown<CR>', desc = 'Tree Swap Down' },
{ '<leader>cK', '<cmd>Treewalker SwapUp<CR>', desc = 'Tree Swap Up' },
},
},
}

View File

@ -1,243 +0,0 @@
local function feline_config(_, opts)
local feline = require('feline')
local dark_theme = {
bg = '#5a605f',
bg2 = '#2b3231',
black = '#403833',
skyblue = '#61abda',
cyan = '#65b8c1',
fg = '#9bafac',
green = '#8bae68',
oceanblue = '#6099c0',
magenta = '#cf86c1',
orange = '#d68c67',
red = '#e8838f',
violet = '#b279a7',
white = '#b4bdc3',
yellow = '#b77e64',
}
feline.add_theme('dark', dark_theme)
local light_theme = {
bg = '#dde4e3',
bg2 = '#b3cbc8',
black = '#c4b6af',
skyblue = '#1d5573',
cyan = '#2b747c',
fg = '#2c3131',
green = '#3f5a22',
oceanblue = '#286486',
magenta = '#7b3b70',
orange = '#803d1c',
red = '#94253e',
violet = '#88507d',
white = '#4f5e68',
yellow = '#944927',
}
feline.add_theme('light', light_theme)
local statusline = require('arrow.statusline')
local vimode = require('feline.providers.vi_mode')
local c = {
vi_mode = {
provider = 'vi_mode',
hl = function()
return {
name = vimode.get_mode_highlight_name(),
fg = vimode.get_mode_color(),
bg = 'bg2',
style = 'bold',
}
end,
left_sep = {
str = ' █',
always_visible = true,
hl = {
fg = 'bg2',
},
},
right_sep = {
str = '',
always_visible = true,
hl = {
fg = 'bg2',
},
}
},
file_info = {
provider = 'file_info',
hl = {
fg = 'fg',
},
left_sep = {
str = ' ',
},
right_sep = {
str = ' ',
},
},
arrow = {
provider = function() return statusline.text_for_statusline_with_icons() end,
hl = {
fg = 'red',
style = 'bold',
},
},
file_size = {
provider = 'file_size',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
left_sep = {
str = ' █',
always_visible = true,
hl = {
fg = 'bg2',
},
},
},
line_percentage = {
provider = 'line_percentage',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
left_sep = {
str = '',
hl = {
fg = 'fg',
bg = 'bg2',
},
},
right_sep = {
str = '',
hl = {
fg = 'fg',
bg = 'bg2',
},
},
},
position = {
provider = 'position',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
right_sep = {
str = '█ ',
always_visible = true,
hl = {
fg = 'bg2',
},
}
},
diagnostic_errors = {
provider = 'diagnostic_errors',
hl = {
fg = 'red',
},
},
diagnostic_warnings = {
provider = 'diagnostic_warnings',
hl = {
fg = 'yellow',
},
},
diagnostic_hints = {
provider = 'diagnostic_hints',
hl = {
fg = 'cyan',
},
},
diagnostic_info = {
provider = 'diagnostic_info',
hl = {
fg = 'skyblue',
},
},
git_diff_added = {
provider = 'git_diff_added',
hl = {
fg = 'green',
},
},
git_diff_removed = {
provider = 'git_diff_removed',
hl = {
fg = 'red',
},
},
git_diff_changed = {
provider = 'git_diff_changed',
hl = {
fg = 'yellow',
},
},
git_branch = {
provider = 'git_branch',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
left_sep = {
str = ' █',
hl = {
fg = 'bg2',
},
},
right_sep = {
str = '',
hl = {
fg = 'bg2',
},
}
},
}
local active = {
{
c.vi_mode,
c.file_info,
c.arrow,
c.file_size,
c.line_percentage,
c.position,
c.diagnostic_errors,
c.diagnostic_warnings,
c.diagnostic_info,
c.diagnostic_hints,
},
{
c.git_diff_added,
c.git_diff_removed,
c.git_diff_changed,
c.git_branch,
},
}
local inactive = {
{
c.file_info,
},
{},
}
opts.components = { active = active, inactive = inactive }
feline.setup(opts)
feline.use_theme(require('lupan.utils').terminalbg())
end
return {
-- Statusline
'freddiehaddad/feline.nvim',
opts = {},
config = feline_config,
}

View File

@ -0,0 +1,13 @@
return {
{
'stevearc/oil.nvim',
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
default_file_explorer = true,
delete_to_trash = true,
},
keys = {
{ "<leader>-", "<cmd>Oil<CR>", desc = "Open parent directory" },
},
},
}

View File

@ -64,8 +64,8 @@ return {
{ buffer = bufnr, desc = '[G]o to [N]ext Hunk' })
vim.keymap.set('n', '<leader>ph', gs.preview_hunk,
{ buffer = bufnr, desc = '[P]review [H]unk' })
vim.keymap.set('n', '<leader>sh', gs.stage_hunk,
{ buffer = bufnr, desc = '[S]tage [H]unk' })
vim.keymap.set('n', '<leader>sA', gs.stage_hunk,
{ buffer = bufnr, desc = '[S]tage Hunk' })
vim.keymap.set('n', '<leader>HD', function() gs.diffthis('~') end,
{ buffer = bufnr, desc = '[H]unk [D]iff' })
end,

View File

@ -2,11 +2,11 @@ return {
'backdround/global-note.nvim',
keys = {
{
"<leader>n",
"<leader>tn",
function()
require('global-note').toggle_note()
end,
desc = 'Toggle global [N]ote',
desc = '[T]oggle global [N]ote',
},
},
}

View File

@ -0,0 +1,24 @@
return {
{
'fredrikaverpil/godoc.nvim',
version = '*',
dependencies = {
{ 'nvim-telescope/telescope.nvim' },
{
'nvim-treesitter/nvim-treesitter',
opts = {
ensure_installed = { 'go' },
},
},
},
event = 'VeryLazy',
cmd = 'GoDoc',
keys = {
{ '<leader>gd', '<cmd>GoDoc<CR>', desc = '[G]o[D]oc' },
},
build = 'go install github.com/lotusirous/gostdsym/stdsym@latest',
opts = {
picker = { type = 'telescope' },
},
},
}

View File

@ -0,0 +1,16 @@
return {
{
"rest-nvim/rest.nvim",
dependencies = {
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
table.insert(opts.ensure_installed, "http")
end,
},
ft = 'http',
keys = {
{ '<leader>S', '<cmd>Rest run<CR>', ft = 'http' },
},
},
}

View File

@ -1,51 +0,0 @@
return {
{
'crusj/hierarchy-tree-go.nvim',
dependencies = 'neovim/nvim-lspconfig',
lazy = true,
},
{
'ggandor/leap.nvim',
opts = {
safe_labels = {},
},
dependencies = {
"tpope/vim-repeat",
},
keys = {
{ 'gs', '<Plug>(leap)', mode = { 'n', 'x', 'o' } },
{ 'gS', '<Plug>(leap-from-window)', mode = { 'n', 'x', 'o' } },
}
},
{
"folke/trouble.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
},
{
'stevearc/oil.nvim',
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
default_file_explorer = true,
delete_to_trash = true,
},
keys = {
{ "-", "<cmd>Oil<CR>", desc = "Open parent directory" },
},
},
{
'Wansmer/treesj',
dependencies = { 'nvim-treesitter/nvim-treesitter' },
opts = {
use_default_keymaps = false,
},
keys = {
{ '<leader>tg', function() require('treesj').toggle() end, desc = "[T]ree to[g]gle one-line" },
{ '<leader>tj', function() require('treesj').join() end, desc = "[T]ree [J]oin one-line" },
{ '<leader>ts', function() require('treesj').split() end, desc = "[T]ree [S]plit one-line" },
},
},
}

View File

@ -0,0 +1,9 @@
return {
{
'swaits/lazyjj.nvim',
dependencies = 'nvim-lua/plenary.nvim',
opts = {
mapping = '<leader>gj'
}
},
}

View File

@ -0,0 +1,25 @@
vim.opt.fillchars = {
stl = "",
}
return {
{
"sschleemilch/slimline.nvim",
opts = {
spaces = {
components = "",
left = "",
right = "",
},
},
},
{
'b0o/incline.nvim',
config = function()
require('incline').setup()
end,
-- Optional: Lazy load Incline
event = 'VeryLazy',
},
}

View File

@ -1,6 +1,7 @@
return {
{
'neovim/nvim-lspconfig',
version = '*',
dependencies = {
-- Automatically install LSPs and related tools to stdpath for neovim
'williamboman/mason.nvim',
@ -19,17 +20,10 @@ return {
vim.keymap.set('n', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
end
map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
map('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
map('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
map('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
map('<leader>rn', '<cmd>Lspsaga rename<CR>', '[R]e[n]ame')
map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
map('K', '<cmd>Lspsaga hover_doc<CR>', 'Hover Documentation')
map('<leader>K', vim.lsp.buf.signature_help, 'Signature Documentation')
map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- Highlight references under cursor (clear highlight when cursor moves).
local client = vim.lsp.get_client_by_id(event.data.client_id)
@ -120,6 +114,7 @@ return {
}
end,
},
{
'nvimdev/lspsaga.nvim',
dependencies = {
@ -154,4 +149,19 @@ return {
vim.keymap.set({ 'n', 't' }, '<C-_>', '<cmd>Lspsaga term_toggle<CR>', { desc = "[L]spsaga [T]erm toggle" })
end,
},
{
"folke/trouble.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {},
cmd = 'Trouble'
},
{
"ray-x/lsp_signature.nvim",
event = "InsertEnter",
opts = {
-- cfg options
},
}
}

View File

@ -0,0 +1,49 @@
require 'lspconfig'.ols.setup {}
vim.api.nvim_create_user_command("FormatDisable", function(args)
if args.bang then
-- FormatDisable! will disable formatting just for this buffer
vim.b.disable_autoformat = true
else
vim.g.disable_autoformat = true
end
end, {
desc = "Disable autoformat-on-save",
bang = true,
})
vim.api.nvim_create_user_command("FormatEnable", function()
vim.b.disable_autoformat = false
vim.g.disable_autoformat = false
end, {
desc = "Re-enable autoformat-on-save",
})
return {
{
"stevearc/conform.nvim",
opts = {
-- notify_on_error = false,
-- Odinfmt gets its configuration from odinfmt.json. It defaults
-- writing to stdout but needs to be told to read from stdin.
formatters = {
odinfmt = {
-- Change where to find the command if it isn't in your path.
command = "odinfmt",
args = { "-stdin" },
stdin = true,
},
},
-- and instruct conform to use odinfmt.
formatters_by_ft = {
odin = { "odinfmt" },
},
format_on_save = function(bufnr)
-- Disable with a global or buffer-local variable
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
return
end
return { timeout_ms = 500, lsp_format = "fallback" }
end,
},
}
}

View File

@ -11,7 +11,4 @@ return {
{ "/", exact = true },
},
},
keys = {
{ "<leader>sp", "<cmd>:Telescope persisted<cr>", desc = "Search [P]ersisted" },
},
}

View File

@ -0,0 +1,7 @@
return {
'stevearc/quicker.nvim',
event = "FileType qf",
---@module "quicker"
---@type quicker.SetupOptions
opts = {},
}

View File

@ -0,0 +1,171 @@
return {
{
"folke/snacks.nvim",
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
bigfile = { enabled = true },
dashboard = { enabled = false },
explorer = { enabled = true },
indent = { enabled = true },
input = { enabled = true },
notifier = {
enabled = true,
timeout = 3000,
},
picker = { enabled = true },
quickfile = { enabled = true },
scope = { enabled = true },
scroll = { enabled = false },
statuscolumn = { enabled = true },
words = { enabled = true },
styles = {
notification = {
-- wo = { wrap = true } -- Wrap notifications
}
},
zen = {
win = { width = 180, backdrop = { transparent = false } },
on_open = function()
vim.opt.laststatus = 1
require('incline').disable()
vim.system({ 'hyprctl', 'dispatch', 'fullscreen' })
vim.system({ 'awesome-client', 'client.focus.fullscreen = true' })
end,
on_close = function()
vim.opt.laststatus = 3
require('incline').enable()
vim.system({ 'hyprctl', 'dispatch', 'fullscreen' })
vim.system({ 'awesome-client', 'client.focus.fullscreen = false' })
end
}
},
keys = {
-- Top Pickr & Explorer
{ "<leader><space>", function() Snacks.picker.smart() end, desc = "Smart Find Files" },
{ "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>/", function() Snacks.picker.grep() end, desc = "Grep" },
{ "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },
{ "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
{ "<leader>e", function() Snacks.explorer() end, desc = "File Explorer" },
-- find
{ "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>fc", function() Snacks.picker.files({ cwd = vim.fn.stdpath("config") }) end, desc = "Find Config File" },
{ "<leader>ff", function() Snacks.picker.files() end, desc = "Find Files" },
{ "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Git Files" },
{ "<leader>fp", function() Snacks.picker.projects() end, desc = "Projects" },
{ "<leader>fr", function() Snacks.picker.recent() end, desc = "Recent" },
-- git
{ "<leader>gb", function() Snacks.picker.git_branches() end, desc = "Git Branches" },
{ "<leader>gl", function() Snacks.picker.git_log() end, desc = "Git Log" },
{ "<leader>gL", function() Snacks.picker.git_log_line() end, desc = "Git Log Line" },
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (Hunks)" },
{ "<leader>gf", function() Snacks.picker.git_log_file() end, desc = "Git Log File" },
{ "<leader>gg", function() Snacks.picker.git_grep() end, desc = "Git Grep" },
-- Grep
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
{ "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" },
{ "<leader>sg", function() Snacks.picker.grep() end, desc = "Grep" },
{ "<leader>sw", function() Snacks.picker.grep_word() end, desc = "Visual selection or word", mode = { "n", "x" } },
{ "<leader>so", function() Snacks.picker.grep({ cwd = "/usr/lib/odin" }) end, desc = "Grep" },
{ "<leader>sO", function() Snacks.picker.files({ cwd = "/usr/lib/odin" }) end, desc = "Grep" },
{ "<leader>sX", function() Snacks.picker.grep({ cwd = "/usr/include/xcb" }) end, desc = "Grep" },
-- search
{ '<leader>s"', function() Snacks.picker.registers() end, desc = "Registers" },
{ '<leader>s/', function() Snacks.picker.search_history() end, desc = "Search History" },
{ "<leader>sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" },
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
{ "<leader>sc", function() Snacks.picker.command_history() end, desc = "Command History" },
{ "<leader>sC", function() Snacks.picker.commands() end, desc = "Commands" },
{ "<leader>sd", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" },
{ "<leader>sD", function() Snacks.picker.diagnostics_buffer() end, desc = "Buffer Diagnostics" },
{ "<leader>sh", function() Snacks.picker.help() end, desc = "Help Pages" },
{ "<leader>sH", function() Snacks.picker.highlights() end, desc = "Highlights" },
{ "<leader>si", function() Snacks.picker.icons() end, desc = "Icons" },
{ "<leader>sj", function() Snacks.picker.jumps() end, desc = "Jumps" },
{ "<leader>sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" },
{ "<leader>sl", function() Snacks.picker.loclist() end, desc = "Location List" },
{ "<leader>sm", function() Snacks.picker.marks() end, desc = "Marks" },
{ "<leader>sM", function() Snacks.picker.man() end, desc = "Man Pages" },
{ "<leader>sp", function() Snacks.picker.lazy() end, desc = "Search for Plugin Spec" },
{ "<leader>sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" },
{ "<leader>sR", function() Snacks.picker.resume() end, desc = "Resume" },
{ "<leader>su", function() Snacks.picker.undo() end, desc = "Undo History" },
{ "<leader>uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" },
-- LSP
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition" },
{ "gD", function() Snacks.picker.lsp_declarations() end, desc = "Goto Declaration" },
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },
{ "<leader>ss", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols" },
{ "<leader>sS", function() Snacks.picker.lsp_workspace_symbols() end, desc = "LSP Workspace Symbols" },
-- Other
{ "<leader>z", function() Snacks.zen() end, desc = "Toggle Zen Mode" },
{ "<leader>Z", function() Snacks.zen.zoom() end, desc = "Toggle Zoom" },
{ "<leader>'", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },
{ "<leader>S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },
{ "<leader>n", function() Snacks.notifier.show_history() end, desc = "Notification History" },
{ "<leader>bd", function() Snacks.bufdelete() end, desc = "Delete Buffer" },
{ "<leader>cR", function() Snacks.rename.rename_file() end, desc = "Rename File" },
{ "<leader>gB", function() Snacks.gitbrowse() end, desc = "Git Browse", mode = { "n", "v" } },
{ "<leader>gG", function() Snacks.lazygit() end, desc = "Lazygit" },
{ "<leader>un", function() Snacks.notifier.hide() end, desc = "Dismiss All Notifications" },
{ "<leader>bl", function() Snacks.git.blame_line() end, desc = "Git Blame Line" },
{ "<c-/>", function() Snacks.terminal() end, desc = "Toggle Terminal" },
{ "<c-_>", function() Snacks.terminal() end, desc = "which_key_ignore" },
{ "]]", function() Snacks.words.jump(vim.v.count1) end, desc = "Next Reference", mode = { "n", "t" } },
{ "[[", function() Snacks.words.jump(-vim.v.count1) end, desc = "Prev Reference", mode = { "n", "t" } },
{
"<leader>N",
desc = "Neovim News",
function()
Snacks.win({
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
width = 0.6,
height = 0.6,
wo = {
spell = false,
wrap = false,
signcolumn = "yes",
statuscolumn = " ",
conceallevel = 3,
},
})
end,
}
},
init = function()
vim.api.nvim_create_autocmd("User", {
pattern = "VeryLazy",
callback = function()
-- Setup some globals for debugging (lazy-loaded)
_G.dd = function(...)
Snacks.debug.inspect(...)
end
_G.bt = function()
Snacks.debug.backtrace()
end
vim.print = _G.dd -- Override print to use snacks for `:=` command
-- Create some toggle mappings
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("<leader>uL")
Snacks.toggle.diagnostics():map("<leader>ud")
Snacks.toggle.line_number():map("<leader>ul")
Snacks.toggle.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 }):map(
"<leader>uc")
Snacks.toggle.treesitter():map("<leader>uT")
Snacks.toggle.option("background", { off = "light", on = "dark", name = "Dark Background" }):map("<leader>ub")
Snacks.toggle.inlay_hints():map("<leader>uh")
Snacks.toggle.indent():map("<leader>ug")
Snacks.toggle.dim():map("<leader>uD")
end,
})
end,
}
}

View File

@ -0,0 +1,5 @@
return {
'fredeeb/tardis.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
config = true,
}

View File

@ -54,48 +54,17 @@ return {
pcall(telescope.load_extension, 'ui-select')
pcall(telescope.load_extension, 'whaler')
pcall(telescope.load_extension, 'git_grep')
pcall(telescope.load_extension, 'persisted')
-- See `:help telescope.builtin`
local builtin = require 'telescope.builtin'
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sT', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
vim.keymap.set('n', '<leader>sF', function() builtin.find_files { hidden = true } end,
{ desc = '[S]earch [F]iles (with hidden)' })
vim.keymap.set('n', '<leader>sl', function() telescope.extensions.whaler.whaler() end,
vim.keymap.set('n', '<leader>sL', function() telescope.extensions.whaler.whaler() end,
{ desc = '[S]earch with wha[L]er' })
vim.keymap.set('n', '<leader>gf', builtin.git_files, { desc = '[G]it [F]iles' })
vim.keymap.set('n', '<leader>gs', builtin.git_status, { desc = '[G]it [S]tatus' })
vim.keymap.set('n', '<leader>gg', function() telescope.extensions.git_grep.live_grep() end,
{ desc = '[G]it [g]rep' })
vim.keymap.set('n', '<leader>gw', function() telescope.extensions.git_grep.grep() end,
{ desc = '[G]it grep current [W]ord' })
vim.keymap.set('n', '<leader>/', function()
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false,
})
end, { desc = '[/] Fuzzily search in current buffer' })
vim.keymap.set('n', '<leader>s/', function()
builtin.live_grep {
grep_open_files = true,
prompt_title = 'Live Grep in Open Files',
}
end, { desc = '[S]earch [/] in Open Files' })
vim.keymap.set('n', '<leader>sn', function()
builtin.find_files { cwd = vim.fn.stdpath 'config' }
end, { desc = '[S]earch [N]eovim files' })
end,
}

View File

@ -0,0 +1,25 @@
return {
{
'aserowy/tmux.nvim',
opts = {
navigation = {
enable_default_keybindings = false,
},
resize = {
enable_default_keybindings = false,
},
},
keys = {
{ '<M-h>', [[<cmd>lua require("tmux").move_left()<cr>]] },
{ '<M-j>', [[<cmd>lua require("tmux").move_bottom()<cr>]] },
{ '<M-k>', [[<cmd>lua require("tmux").move_top()<cr>]] },
{ '<M-l>', [[<cmd>lua require("tmux").move_right()<cr>]] },
{ '<M-n>', [[<cmd>lua require("tmux").next_window()<cr>]] },
{ '<M-p>', [[<cmd>lua require("tmux").previous_window()<cr>]] },
{ '<M-H>', [[<cmd>lua require("tmux").resize_left()<cr>]] },
{ '<M-J>', [[<cmd>lua require("tmux").resize_bottom()<cr>]] },
{ '<M-K>', [[<cmd>lua require("tmux").resize_top()<cr>]] },
{ '<M-L>', [[<cmd>lua require("tmux").resize_right()<cr>]] },
},
},
}

View File

@ -0,0 +1,9 @@
return {
'akinsho/toggleterm.nvim',
version = '*',
config = true,
keys = {
{ '<F2>', '<cmd>ToggleTerm size=25<CR>', mode = { 'n', 'i', 't', }, },
{ '<C-w>', [[<C-\><C-n><C-w>]], mode = 't' },
}
}

View File

@ -15,7 +15,7 @@ return {
---@diagnostic disable-next-line: missing-fields
require('nvim-treesitter.configs').setup {
ensure_installed = { 'c', 'cpp', 'go', 'haskell', 'lua', 'org', 'python', 'rust', 'tsx', 'templ', 'typescript', 'vimdoc', 'vim' },
ensure_installed = { 'c', 'commonlisp', 'cpp', 'go', 'haskell', 'lua', 'python', 'rust', 'tsx', 'templ', 'typescript', 'vimdoc', 'vim' },
auto_install = false,
highlight = {
enable = true,

View File

@ -0,0 +1,12 @@
return {
"ptdewey/yankbank-nvim",
dependencies = "kkharji/sqlite.lua",
config = function()
require('yankbank').setup({
persist_type = "sqlite",
})
end,
keys = {
{ "<leader>yb", "<cmd>YankBank<CR>", desc = "Yank[B]ank" },
},
}

View File

@ -6,7 +6,7 @@ static const unsigned int snap = 32; /* snap pixel */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
static const char *fonts[] = { "FiraCode Nerd Font Ret:size=10" };
static const char dmenufont[] = "FiraCode Nerd Font Ret:size=10";
static const char dmenufont[] = "FiraCode Nerd Font Ret:size=10";
static const char col_gray1[] = "#222222";
static const char col_gray2[] = "#444444";
static const char col_gray3[] = "#bbbbbb";
@ -16,7 +16,7 @@ static const char col_cyan[] = "#7dcfff";
static const char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
[SchemeSel] = { col_gray4, col_blue, col_cyan },
[SchemeSel] = { col_gray4, col_blue, col_cyan },
};
/* tagging */
@ -46,7 +46,7 @@ static const Layout layouts[] = {
};
/* key definitions */
#define MODKEY Mod1Mask
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
@ -58,32 +58,32 @@ static const Layout layouts[] = {
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_blue, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "st", NULL };
static const char *lockcmd[] = { "slock", NULL };
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_blue, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "st", NULL };
static const char *lockcmd[] = { "slock", NULL };
static const char *suspendcmd[] = { "systemctl", "suspend", NULL };
static const char *toggletheme[] = { "lupan-set-theme", "toggle", NULL };
static const Key keys[] = {
/* modifier key function argument */
{ MODKEY|ControlMask, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY|ControlMask|ShiftMask, XK_l, spawn, {.v = lockcmd } },
{ MODKEY|ControlMask|ShiftMask, XK_s, spawn, {.v = suspendcmd } },
{ MODKEY|ShiftMask, XK_F6, spawn, {.v = toggletheme } },
{ MODKEY|ControlMask, XK_b, togglebar, {0} },
{ MODKEY|ControlMask, XK_j, focusstack, {.i = +1 } },
{ MODKEY|ControlMask, XK_k, focusstack, {.i = -1 } },
{ MODKEY|ControlMask, XK_i, incnmaster, {.i = +1 } },
{ MODKEY|ControlMask, XK_d, incnmaster, {.i = -1 } },
{ MODKEY|ControlMask, XK_h, setmfact, {.f = -0.05} },
{ MODKEY|ControlMask, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ControlMask|ShiftMask, XK_c, killclient, {0} },
{ MODKEY|ControlMask, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY|ControlMask, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY|ControlMask, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
@ -101,7 +101,7 @@ static const Key keys[] = {
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ControlMask|ShiftMask, XK_q, quit, {0} },
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};
/* button definitions */

View File

@ -4,6 +4,8 @@ alias ta='tmux attach -t'
alias tl='tmux list-sessions'
alias tn='tmux new -s'
alias fv='fzf --preview="bat --color=always --theme=Nord {}" --bind="enter:become(nvim {})"'
alias rgh='rg -.'
alias fdh='fd -H'
if which exa > /dev/null; then
alias ls='exa --icons'

View File

@ -19,13 +19,18 @@ plug "zsh-users/zsh-autosuggestions"
plug "zsh-users/zsh-syntax-highlighting"
plug "MichaelAquilina/zsh-you-should-use"
plug "zsh-users/zsh-history-substring-search"
plug "agkozak/zsh-z"
ZVM_VI_INSERT_ESCAPE_BINDKEY=jj
if which zoxide > /dev/null; then
eval "$(zoxide init zsh)"
else
plug "agkozak/zsh-z"
ZSHZ_ECHO=1
setopt autocd
fi
ZSH_HIGHLIGHT_STYLES[comment]=fg=blue
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND=bg=magenta,fg=black,bold
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND=bg=red,fg=black,bold
ZSHZ_ECHO=1
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
@ -66,7 +71,6 @@ setopt share_history
# Convenience.
setopt autocd
bindkey -M vicmd '^[h' run-help
bindkey -M viins '^[h' run-help

View File

@ -3,15 +3,6 @@ set -g status-fg colour7
set -sg escape-time 0
bind-key -n M-j select-pane -D
bind-key -n M-k select-pane -U
bind-key -n M-h select-pane -L
bind-key -n M-l select-pane -R
bind-key -n M-J switch-client -n
bind-key -n M-K switch-client -p
bind-key -n M-H previous-window
bind-key -n M-L next-window
bind-key -n M-1 select-window -t 1
bind-key -n M-2 select-window -t 2
bind-key -n M-3 select-window -t 3
@ -21,7 +12,7 @@ bind-key -n M-6 select-window -t 6
bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9
bind-key -n M-0 select-window -t 10
#bind-key -n M-0 select-window -t 10
bind-key -n M-! swap-window -t 1
bind-key -n M-@ swap-window -t 2
@ -56,3 +47,41 @@ set -g status-left " #[fg=green]#[bg=green]#[fg=black] #H #[bg=default]#[fg=g
set -g status-left-length 50
set -g status-right "#[fg=green]#[bg=green]#[fg=black] %H:%M #[bg=default]#[fg=green] "
set-window-option -g window-status-current-format '#[fg=green]#[bg=green]#[fg=black] #I:#W#F #[fg=green]#[bg=black]'
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?\.?(view|n?vim?x?)(-wrapped)?(diff)?$'"
bind-key -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'select-pane -L'
bind-key -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'select-pane -D'
bind-key -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'select-pane -U'
bind-key -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'select-pane -R'
bind-key -n 'M-n' if-shell "$is_vim" 'send-keys M-n' 'select-window -n'
bind-key -n 'M-p' if-shell "$is_vim" 'send-keys M-p' 'select-window -p'
bind-key -T copy-mode-vi 'M-h' select-pane -L
bind-key -T copy-mode-vi 'M-j' select-pane -D
bind-key -T copy-mode-vi 'M-k' select-pane -U
bind-key -T copy-mode-vi 'M-l' select-pane -R
bind-key -T copy-mode-vi 'M-n' select-window -n
bind-key -T copy-mode-vi 'M-p' select-window -p
bind -n 'M-H' if-shell "$is_vim" 'send-keys M-H' 'resize-pane -L 1'
bind -n 'M-J' if-shell "$is_vim" 'send-keys M-J' 'resize-pane -D 1'
bind -n 'M-K' if-shell "$is_vim" 'send-keys M-K' 'resize-pane -U 1'
bind -n 'M-L' if-shell "$is_vim" 'send-keys M-L' 'resize-pane -R 1'
bind-key -T copy-mode-vi M-H resize-pane -L 1
bind-key -T copy-mode-vi M-J resize-pane -D 1
bind-key -T copy-mode-vi M-K resize-pane -U 1
bind-key -T copy-mode-vi M-L resize-pane -R 1
bind -n 'C-M-h' if-shell "$is_vim" 'send-keys C-M-h' 'swap-pane -s "{left-of}"'
bind -n 'C-M-j' if-shell "$is_vim" 'send-keys C-M-j' 'swap-pane -s "{down-of}"'
bind -n 'C-M-k' if-shell "$is_vim" 'send-keys C-M-k' 'swap-pane -s "{up-of}"'
bind -n 'C-M-l' if-shell "$is_vim" 'send-keys C-M-l' 'swap-pane -s "{right-of}"'
bind-key -T copy-mode-vi C-M-h swap-pane -s "{left-of}"
bind-key -T copy-mode-vi C-M-j swap-pane -s "{down-of}"
bind-key -T copy-mode-vi C-M-k swap-pane -s "{up-of}"
bind-key -T copy-mode-vi C-M-l swap-pane -s "{right-of}"
bind-key -n M-0 run-shell tmux-session-menu

5
tmux/bin/tmux-session-menu Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
tmux list-sessions -F '#S' \
| awk 'BEGIN {ORS=" "; print "toggle t \"switch-client -l\""} {print $1, NR, "\"switch-client -t", $1 "\""}' \
| xargs tmux display-menu -T "Switch session"

View File

@ -7,6 +7,7 @@ fi
xset b off
xrandr --auto
xrandr --output HDMI1 --right-of DP1
xrandr --output DP-0 --left-of DP-2
xrdb -merge ~/.Xresources
setxkbmap pl -option ctrl:nocaps