diff --git a/homes/aurora/default.nix b/homes/aurora/default.nix index ff1e4ff..c7ec891 100644 --- a/homes/aurora/default.nix +++ b/homes/aurora/default.nix @@ -154,6 +154,7 @@ element-desktop # 'official' gui matrix client blender # AMAZING 3D MODELLING PROGRAMMM <3 session-desktop # idk silly chat app + localsend # share files locally :3 # media playerctl # mpris cli interface for media apps :3 diff --git a/homes/modules/programs/neovim/init.lua b/homes/modules/programs/neovim/init.lua index 0cddc5e..1430497 100644 --- a/homes/modules/programs/neovim/init.lua +++ b/homes/modules/programs/neovim/init.lua @@ -31,3 +31,64 @@ end) vim.keymap.set("n", "v", function() vim.cmd("vsplit") end) + +-- u can put delta inside of neovim omg they are spoiling me <3 +local git_diff_win = nil + +vim.api.nvim_create_autocmd("VimResized", { + callback = function() + if git_diff_win and vim.api.nvim_win_is_valid(git_diff_win) then + local width = math.floor(vim.o.columns * 0.9) + local height = math.floor((vim.o.lines - 2) * 0.9) + + vim.api.nvim_win_set_config(git_diff_win, { + relative = "editor", + width = width, + height = height, + col = math.floor((vim.o.columns - width) / 2), + row = math.floor((vim.o.lines - height) / 2) - 2, + }) + end + end, +}) + +vim.keymap.set("n", "gd", function() + if git_diff_win and vim.api.nvim_win_is_valid(git_diff_win) then + vim.api.nvim_win_close(git_diff_win, true) + git_diff_win = nil + return + end + + local buf = vim.api.nvim_create_buf(false, true) + + vim.bo[buf].filetype = "terminal" + + -- deletes the last two lines of the buffer when the process exits :3 + vim.api.nvim_create_autocmd("TermClose", { + buffer = buf, + callback = function() + vim.defer_fn(function() + vim.bo[buf].modifiable = true + vim.api.nvim_buf_set_lines(buf, -3, -1, false, {}) + vim.bo[buf].modifiable = false + end, 10) + end, + }) + + local width = math.floor(vim.o.columns * 0.9) + local height = math.floor((vim.o.lines - 2) * 0.9) + + git_diff_win = vim.api.nvim_open_win(buf, true, { + relative = "editor", + width = width, + height = height, + col = math.floor((vim.o.columns - width) / 2), + row = math.floor((vim.o.lines - height) / 2) - 2, + style = "minimal", + border = "rounded", + }) + + vim.fn.jobstart("git diff | delta --pager=never", { term = true }) + + vim.keymap.set("n", "q", "close", { buffer = buf }) +end) diff --git a/homes/modules/programs/neovim/lua/colors.lua b/homes/modules/programs/neovim/lua/colors.lua index b9f663f..077dfaa 100644 --- a/homes/modules/programs/neovim/lua/colors.lua +++ b/homes/modules/programs/neovim/lua/colors.lua @@ -75,6 +75,16 @@ local function load_colors() local bg_90 = blend_colors(hex_to_int("#000000"), hex_to_int(bg), 0.90) + local fg_10 = blend_colors(hex_to_int(bg), hex_to_int(fg), 0.10) + local fg_30 = blend_colors(hex_to_int(bg), hex_to_int(fg), 0.30) + + local secondary_10 = blend_colors(hex_to_int(bg), hex_to_int(color_13), 0.10) + local secondary_30 = blend_colors(hex_to_int(bg), hex_to_int(color_13), 0.30) + + -- editor colors :3 -------------------------------------------------------- + + vim.api.nvim_set_hl(0, "Visual", { bg = secondary_10 }) + -- blink.cmp --------------------------------------------------------------- vim.api.nvim_set_hl(0, "BlinkCmpMenu", { bg = bg }) @@ -191,6 +201,15 @@ local function load_colors() vim.api.nvim_set_hl(0, "FylerGitUntracked", { fg = color_06 }) vim.api.nvim_set_hl(0, "FylerWinPick", { fg = color_15, bg = fg }) + + -- lualine.nvim + vim.api.nvim_exec_autocmds("User", { pattern = "RefreshLualine" }) + + -- indent-blankline.nvim + vim.api.nvim_set_hl(0, "IblIndent", { fg = secondary_30 }) + vim.api.nvim_set_hl(0, "IblScope", { fg = color_11 }) + vim.api.nvim_exec_autocmds("User", { pattern = "RefreshIndentBlankline" }) + vim.api.nvim_set_hl(0, "@ibl.scope.underline.1", { underline = false }) else print("Error: Not enough colors in file") end @@ -218,3 +237,9 @@ local function watch_colorscheme() end watch_colorscheme() + +vim.api.nvim_create_autocmd("VimLeave", { + callback = function() + io.write("\027]112\007") + end, +}) diff --git a/homes/modules/programs/neovim/lua/plugins/dressing.lua b/homes/modules/programs/neovim/lua/plugins/dressing.lua index 42e7280..9c4decd 100644 --- a/homes/modules/programs/neovim/lua/plugins/dressing.lua +++ b/homes/modules/programs/neovim/lua/plugins/dressing.lua @@ -1,5 +1,6 @@ return { { "dressing.nvim", + enabled = nixCats("ui.dressing") or false, }, } diff --git a/homes/modules/programs/neovim/lua/plugins/indent-blankline.lua b/homes/modules/programs/neovim/lua/plugins/indent-blankline.lua new file mode 100644 index 0000000..013fa29 --- /dev/null +++ b/homes/modules/programs/neovim/lua/plugins/indent-blankline.lua @@ -0,0 +1,30 @@ +local config = { + debounce = 25, + indent = { + char = "│", + smart_indent_cap = true, + }, + scope = { + show_start = true, + show_end = true, + show_exact_scope = false, + injected_languages = true, + }, +} + +return { + { + "indent-blankline.nvim", + enabled = nixCats("ui.indent-blankline") or false, + after = function(plugin) + require("ibl").setup(config) + + vim.api.nvim_create_autocmd("User", { + pattern = "RefreshIndentBlankline", + callback = function() + require("ibl").setup(config) + end, + }) + end, + }, +} diff --git a/homes/modules/programs/neovim/lua/plugins/init.lua b/homes/modules/programs/neovim/lua/plugins/init.lua index cceea69..9bf0602 100644 --- a/homes/modules/programs/neovim/lua/plugins/init.lua +++ b/homes/modules/programs/neovim/lua/plugins/init.lua @@ -7,4 +7,6 @@ require("lze").load({ { import = "plugins.format" }, { import = "plugins.comment" }, { import = "plugins.git" }, + { import = "plugins.lualine" }, + { import = "plugins.indent-blankline" }, }) diff --git a/homes/modules/programs/neovim/lua/plugins/lualine.lua b/homes/modules/programs/neovim/lua/plugins/lualine.lua new file mode 100644 index 0000000..a0303d5 --- /dev/null +++ b/homes/modules/programs/neovim/lua/plugins/lualine.lua @@ -0,0 +1,22 @@ +local config = { + options = { + theme = "auto", + }, +} + +return { + { + "lualine.nvim", + enabled = nixCats("ui.lualine") or false, + after = function(plugin) + require("lualine").setup(config) + + vim.api.nvim_create_autocmd("User", { + pattern = "RefreshLualine", + callback = function() + require("lualine").setup(config) + end, + }) + end, + }, +} diff --git a/homes/modules/programs/neovim/lua/plugins/telescope.lua b/homes/modules/programs/neovim/lua/plugins/telescope.lua index 9feae5b..c500eed 100644 --- a/homes/modules/programs/neovim/lua/plugins/telescope.lua +++ b/homes/modules/programs/neovim/lua/plugins/telescope.lua @@ -60,6 +60,14 @@ return { mode = { "n" }, desc = "[T]elescope [H]ighlights", }, + { + "gs", + function() + return require("telescope.builtin").git_status() + end, + mode = { "n" }, + desc = "[G]it [S]tatus", + }, }, load = function(name) vim.cmd.packadd(name) diff --git a/homes/modules/programs/neovim/nixcats.nix b/homes/modules/programs/neovim/nixcats.nix index 8394405..cb9c8c7 100644 --- a/homes/modules/programs/neovim/nixcats.nix +++ b/homes/modules/programs/neovim/nixcats.nix @@ -15,11 +15,10 @@ in { ]; config = { - # this value, nixCats is the defaultPackageName you pass to mkNixosModules - # it will be the namespace for your options. nixCats = { enable = true; nixpkgs_version = inputs.nixpkgs-unstable; + # TODO: ask butterfly about this, am confused :3 # this will add the overlays from ./overlays and also, # add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins # It will not apply to overall system, just nixCats. @@ -28,15 +27,13 @@ in { [ (utils.standardPluginOverlay inputs) ]; - # see the packageDefinitions below. + # This says which of those to install. packageNames = ["auroranvim"]; luaPath = "${./.}"; - # the .replace vs .merge options are for modules based on existing configurations, - # they refer to how multiple categoryDefinitions get merged together by the module. - # for useage of this section, refer to :h nixCats.flake.outputs.categories + # for usage of this section, refer to :h nixCats.flake.outputs.categories categoryDefinitions.replace = { pkgs, settings, @@ -126,9 +123,11 @@ in { optionalPlugins = with pkgs.vimPlugins; { general = []; - ui = [ - dressing-nvim - ]; + ui = { + dressing = [dressing-nvim]; + lualine = [lualine-nvim]; + indent-blankline = [indent-blankline-nvim]; + }; qol = [ undotree mini-hipatterns @@ -187,9 +186,7 @@ in { # shared libraries to be added to LD_LIBRARY_PATH # variable available to nvim runtime sharedLibraries = { - general = with pkgs; [ - # libgit2 - ]; + general = with pkgs; []; }; environmentVariables = { @@ -225,15 +222,11 @@ in { # see :help nixCats.flake.outputs.packageDefinitions packageDefinitions.replace = { - # these are the names of your packages - # you can include as many as you wish. auroranvim = {pkgs, ...}: { # they contain a settings set defined above # see :help nixCats.flake.outputs.settings settings = { wrapRc = true; - # IMPORTANT: - # your alias may not conflict with your other packages. aliases = [ "auravim" "foxyvim" @@ -241,20 +234,24 @@ in { "fvix" ]; }; - # and a set of categories that you want - # (and other information to pass to lua) + categories = { general = true; - ui = true; + ui = { + dressing = true; + lualine = true; + indent-blankline = true; + }; + qol = true; telescope = { enable = true; # only enable one at a time - fzf = false; - zf = true; + fzf = true; + zf = false; }; fyler = true; diff --git a/homes/modules/shell/zsh.nix b/homes/modules/shell/zsh.nix index ab20164..1cb9e27 100644 --- a/homes/modules/shell/zsh.nix +++ b/homes/modules/shell/zsh.nix @@ -51,6 +51,9 @@ cb-fox = "ssh-add ~/.ssh/codeberg_foxxyora"; tf-fox = "ssh-add ~/.ssh/tearforge_foxora"; + tx = "wormhole-rs tx"; + rx = "wormhole-rs rx"; + # -------------------- # shorthand nix command aliases