aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Weigl-Bosker <stefan@s00.xyz>2025-04-14 22:12:58 -0400
committerStefan Weigl-Bosker <stefan@s00.xyz>2025-04-14 22:12:58 -0400
commitf3a53350ef1e762cdd635d1e8622d0055d71cf4b (patch)
treeb9315b6ee69a833ac537e18cedb15d9e388e625c
parentf14829e9b35050af6cae3a675de624efd521444b (diff)
downloadhome-f3a53350ef1e762cdd635d1e8622d0055d71cf4b.tar.gz
statusline and other stuff
-rw-r--r--flake.lock24
-rw-r--r--modules/neovim/default.nix21
-rw-r--r--modules/neovim/nvim/init.lua1
-rw-r--r--modules/neovim/nvim/lua/config/fzf.lua8
-rw-r--r--modules/neovim/nvim/lua/config/keybinds.lua3
-rw-r--r--modules/neovim/nvim/lua/config/lsp/init.lua24
-rw-r--r--modules/neovim/nvim/lua/config/lsp/lua_ls.lua15
-rw-r--r--modules/neovim/nvim/lua/config/settings.lua2
-rw-r--r--modules/neovim/nvim/lua/config/statusline.lua54
-rw-r--r--modules/zsh/default.nix13
10 files changed, 139 insertions, 26 deletions
diff --git a/flake.lock b/flake.lock
index 42bf64f..550d37e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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\\"
+ }
'';
};
};