diff options
| author | Stefan Weigl-Bosker <stefan@s00.xyz> | 2025-04-14 22:12:58 -0400 |
|---|---|---|
| committer | Stefan Weigl-Bosker <stefan@s00.xyz> | 2025-04-14 22:12:58 -0400 |
| commit | f3a53350ef1e762cdd635d1e8622d0055d71cf4b (patch) | |
| tree | b9315b6ee69a833ac537e18cedb15d9e388e625c | |
| parent | f14829e9b35050af6cae3a675de624efd521444b (diff) | |
| download | home-f3a53350ef1e762cdd635d1e8622d0055d71cf4b.tar.gz | |
statusline and other stuff
| -rw-r--r-- | flake.lock | 24 | ||||
| -rw-r--r-- | modules/neovim/default.nix | 21 | ||||
| -rw-r--r-- | modules/neovim/nvim/init.lua | 1 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/fzf.lua | 8 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/keybinds.lua | 3 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/lsp/init.lua | 24 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/lsp/lua_ls.lua | 15 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/settings.lua | 2 | ||||
| -rw-r--r-- | modules/neovim/nvim/lua/config/statusline.lua | 54 | ||||
| -rw-r--r-- | modules/zsh/default.nix | 13 |
10 files changed, 139 insertions, 26 deletions
@@ -163,11 +163,11 @@ ] }, "locked": { - "lastModified": 1743948087, - "narHash": "sha256-B6cIi2ScgVSROPPlTti6len+TdR0K25B9R3oKvbw3M8=", + "lastModified": 1744663884, + "narHash": "sha256-a6QGaZMDM1miK8VWzAITsEPOdmLk+xTPyJSTjVs3WhI=", "owner": "nix-community", "repo": "home-manager", - "rev": "ef3b2a6b602c3f1a80c6897d6de3ee62339a3eb7", + "rev": "d5cdf55bd9f19a3debd55b6cb5d38f7831426265", "type": "github" }, "original": { @@ -189,11 +189,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1743898191, - "narHash": "sha256-JCcQDgwYV+C4igYA6DchGpKKA6eyZXLvRrxWHmQbmDk=", + "lastModified": 1744589241, + "narHash": "sha256-VKIKLRAGx05YfgpaS7cBgETLKXqSuB6qeLsyOi3fI6o=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "276567b29d8c9aca7b6a54e93a9183e44a17f19c", + "rev": "ca32c5c39f203adbd21b4e98c7c00c7e686673da", "type": "github" }, "original": { @@ -205,11 +205,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1743893800, - "narHash": "sha256-i/X0b3b/dAqjNIB5RoryeDvMkVfdoPBwK5xn06W6Wdo=", + "lastModified": 1744579824, + "narHash": "sha256-rHN/vBT0Vyz/FqozS3KYwvofKtfdoX2ew40O2le2vu8=", "owner": "neovim", "repo": "neovim", - "rev": "28e819018520a2300eaeeec6794ffcd614b25dd2", + "rev": "2f8fb4f28ab92d62e07d1d64a6dd89e0b6eb7253", "type": "github" }, "original": { @@ -241,11 +241,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1743827369, - "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=", + "lastModified": 1744463964, + "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "42a1c966be226125b48c384171c44c651c236c22", + "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", "type": "github" }, "original": { diff --git a/modules/neovim/default.nix b/modules/neovim/default.nix index 678d773..135466c 100644 --- a/modules/neovim/default.nix +++ b/modules/neovim/default.nix @@ -2,6 +2,15 @@ let cfg = config.modules.neovim; scheme = config.modules.scheme; + fromGitHub = ref: repo: pkgs.vimUtils.buildVimPlugin { + pname = "${lib.strings.sanitizeDerivationName repo}"; + version = ref; + src = builtins.fetchGit { + url = "https://github.com/${repo}.git"; + ref = ref; + }; + doCheck = false; + }; in { options.modules.neovim = { @@ -24,6 +33,7 @@ in recursive = true; }; + programs.neovim = { enable = true; defaultEditor = true; @@ -66,8 +76,17 @@ in base16-nvim telescope-nvim telescope-fzf-native-nvim - fzf-lua + # fzf-lua +# https://github.com/ibhagwan/fzf-lua/commit/26095d98c2969730457bf5b483919280e2cfb8bb + # (fromGitHub "HEAD" "ibhagwan/fzf-lua") + # fzf-lua.overrideAttrs (finalAttrs: previousAttrs: { + # previousAttrs.doCheck = false; + # }) vim-obsession + (pkgs.neovimUtils.buildNeovimPlugin { + luaAttr = pkgs.luaPackages.fzf-lua; + doCheck = false; + }) ]; # extraLuaPackages = ps: with ps; [ # ]; diff --git a/modules/neovim/nvim/init.lua b/modules/neovim/nvim/init.lua index 2fc7ba3..d562542 100644 --- a/modules/neovim/nvim/init.lua +++ b/modules/neovim/nvim/init.lua @@ -6,3 +6,4 @@ require("config.treesitter") require("config.icons") require("config.fzf") require("config.oil") +require("config.statusline") diff --git a/modules/neovim/nvim/lua/config/fzf.lua b/modules/neovim/nvim/lua/config/fzf.lua index 5697591..6cc6381 100644 --- a/modules/neovim/nvim/lua/config/fzf.lua +++ b/modules/neovim/nvim/lua/config/fzf.lua @@ -1,6 +1,7 @@ require("fzf-lua").setup({ defaults = { file_icons = false, + prompt = false, -- hidden = true, }, previewers = { @@ -20,6 +21,13 @@ require("fzf-lua").setup({ cwd_prompt = false, prompt = " ", }, + grep = { + actions = { + ['<ctrl-g>'] = nil, + }, + no_header = true, + no_header_i = true, + }, winopts = { -- fullscreen = true, row = 1, diff --git a/modules/neovim/nvim/lua/config/keybinds.lua b/modules/neovim/nvim/lua/config/keybinds.lua index 043f921..3d1a2fb 100644 --- a/modules/neovim/nvim/lua/config/keybinds.lua +++ b/modules/neovim/nvim/lua/config/keybinds.lua @@ -43,7 +43,8 @@ nmap('<leader>fo', '<cmd>FzfLua files<CR>', { silent = true }) -- nmap('<leader>fe', '<cmd>lua require("oil").open(nil, { preview = { split = "aboveleft" } })<CR>', { silent = true }) nmap('<leader>fe', '<cmd>lua require("oil").toggle_float()<CR>', { silent = true }) -nmap('<leader>?', '<cmd>Telescope live_grep<CR>', { silent = true }) +-- nmap('<leader>?', '<cmd>Telescope live_grep<CR>', { silent = true }) +nmap('<leader>?', '<cmd>FzfLua live_grep_native<CR>', { silent = true }) nmap('<leader>to', '<cmd>te<CR>', { silent = true; desc = "Open a terminal buffer in the current window." }) diff --git a/modules/neovim/nvim/lua/config/lsp/init.lua b/modules/neovim/nvim/lua/config/lsp/init.lua index 2de2d22..5c75827 100644 --- a/modules/neovim/nvim/lua/config/lsp/init.lua +++ b/modules/neovim/nvim/lua/config/lsp/init.lua @@ -6,7 +6,8 @@ local map = vim.keymap.set vim.lsp.config = { ['clangd'] = require("config.lsp.clangd"), - ['zls'] = require("config.lsp.zls") + ['zls'] = require("config.lsp.zls"), + ['lua_ls'] = require("config.lsp.lua_ls"), } local servers = { @@ -88,15 +89,16 @@ vim.api.nvim_create_autocmd("LspAttach", { callback = function(args) end end}) -local lspconfig = require('lspconfig') +-- local lspconfig = require('lspconfig') -for server, config in pairs(servers) do --- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) - vim.lsp.config[server].settings = config - vim.lsp.enable(server) - lspconfig.rust_analyzer.setup({}) --- lspconfig[server].setup({}) -end +-- for server, config in pairs(servers) do +-- -- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) +-- -- vim.lsp.config[server].settings = config +-- -- vim.lsp.config[server] = config +-- -- vim.lsp.enable(server) +-- -- lspconfig.rust_analyzer.setup({}) +-- -- lspconfig[server].setup({}) +-- end --- vim.lsp.config['clangd'] = require('config.lsp.clangd') --- vim.lsp.enable('clangd') +-- vim.lsp.enable({'lua_ls', 'zls', 'clangd'}) +vim.lsp.enable({'zls', 'clangd'}) diff --git a/modules/neovim/nvim/lua/config/lsp/lua_ls.lua b/modules/neovim/nvim/lua/config/lsp/lua_ls.lua new file mode 100644 index 0000000..5e0875a --- /dev/null +++ b/modules/neovim/nvim/lua/config/lsp/lua_ls.lua @@ -0,0 +1,15 @@ +return { + cmd = { "lua-language-server" }, + filetypes = { "lua" }, + root_dir = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + '.git', + }, + single_file_support = true, +} diff --git a/modules/neovim/nvim/lua/config/settings.lua b/modules/neovim/nvim/lua/config/settings.lua index c877c7b..839125a 100644 --- a/modules/neovim/nvim/lua/config/settings.lua +++ b/modules/neovim/nvim/lua/config/settings.lua @@ -13,7 +13,7 @@ vim.o.lbr = true vim.o.shortmess = vim.o.shortmess .. "I" vim.o.termguicolors = true vim.opt.fillchars = {eob = " "} ---vim.o.smd = false +vim.o.smd = false --vim.opt.laststatus = 3 vim.opt.laststatus=3 --%-0{minwid}.{maxwid}{item diff --git a/modules/neovim/nvim/lua/config/statusline.lua b/modules/neovim/nvim/lua/config/statusline.lua new file mode 100644 index 0000000..82725c1 --- /dev/null +++ b/modules/neovim/nvim/lua/config/statusline.lua @@ -0,0 +1,54 @@ +local modes = { + ["n"] = "", + ["no"] = "", + ["v"] = "VISUAL", + ["V"] = "VISUAL-LINE", + [""] = "VISUAL-BLOCK", + ["s"] = "SELECT", + ["S"] = "SELECT-LINE", + [""] = "SELECT-BLOCK", + ["i"] = "INSERT", + ["ic"] = "INSERT", + ["R"] = "REPLACE", + ["Rv"] = "VISUAL-REPLACE", + ["c"] = "COMMAND", + ["cv"] = "VIM-EX", + ["ce"] = "EX", + ["r"] = "PROMPT", + ["rm"] = "MOAR", + ["r?"] = "CONFIRM", + ["!"] = "SHELL", + ["t"] = "TERMINAL", +} + +local function mode() + local m = vim.api.nvim_get_mode().mode + local s = modes[m] + return s == "" and "" or string.format("%s » ", s) +end + +M = {} + +M.statusline = function() + return table.concat { + " ", + mode(), + "%f%=%p%% « %l, %c " + } +end + +M.termStatus = function() + return " TERM » %{b:term_title}%=%p%% « %l, %c " +end + +M.setup = function(config) + vim.api.nvim_exec([[ + set statusline=%!v:lua.M.statusline() + augroup Statusline + au! + au TermOpen * setlocal statusline=%!v:lua.M.termStatus() + augroup END + ]], false) +end + +M.setup() diff --git a/modules/zsh/default.nix b/modules/zsh/default.nix index 93b451f..fcf26c5 100644 --- a/modules/zsh/default.nix +++ b/modules/zsh/default.nix @@ -75,6 +75,19 @@ in # TODO: fix continuum so i dont need this hack export TERM=screen-256color fi + + precmd() { + # roleplaying to hide my zsh usage + print -Pn "\e]0;$(dirs -p | head -1)\e\\" + print -Pn "\e]133;A\e\\" + if ! builtin zle; then + print -n "\e]133;D\e\\" + fi + } + function preexec { + print -Pn "\e]0;''${(q)1}\e\\" + print -n "\e]133;C\e\\" + } ''; }; }; |