From 720aaf0a9338caeccb1c62392aa6bf066f4642ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20D=C3=B6nszelmann?= Date: Sat, 9 Nov 2024 09:05:26 +0100 Subject: [PATCH] add targets --- flake.lock | 89 +++++++++++++++++---------- flake.nix | 4 +- programs/kitty/default.nix | 2 +- programs/nvim/config.lua | 55 +++++++++++++---- programs/nvim/default.nix | 119 ++++++++++++++++++++----------------- programs/tmux/default.nix | 4 ++ 6 files changed, 176 insertions(+), 97 deletions(-) diff --git a/flake.lock b/flake.lock index abb7a8e..da80262 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ ] }, "locked": { - "lastModified": 1722113426, - "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", "owner": "numtide", "repo": "devshell", - "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", "type": "github" }, "original": { @@ -43,11 +43,11 @@ ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -127,11 +127,11 @@ ] }, "locked": { - "lastModified": 1726745158, - "narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", + "lastModified": 1730302582, + "narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", + "rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf", "type": "github" }, "original": { @@ -169,11 +169,11 @@ ] }, "locked": { - "lastModified": 1727246346, - "narHash": "sha256-TcUaKtya339Asu+g6KTJ8h7KiKcKXKp2V+At+7tksyY=", + "lastModified": 1730490306, + "narHash": "sha256-AvCVDswOUM9D368HxYD25RsSKp+5o0L0/JHADjLoD38=", "owner": "nix-community", "repo": "home-manager", - "rev": "1e22ef1518fb175d762006f9cae7f6312b8caedb", + "rev": "1743615b61c7285976f85b303a36cdf88a556503", "type": "github" }, "original": { @@ -190,11 +190,11 @@ ] }, "locked": { - "lastModified": 1726985855, - "narHash": "sha256-NJPGK030Y3qETpWBhj9oobDQRbXdXOPxtu+YgGvZ84o=", + "lastModified": 1730016908, + "narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=", "owner": "nix-community", "repo": "home-manager", - "rev": "04213d1ce4221f5d9b40bcee30706ce9a91d148d", + "rev": "e83414058edd339148dc142a8437edb9450574c8", "type": "github" }, "original": { @@ -203,6 +203,34 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729544999, + "narHash": "sha256-YcyJLvTmN6uLEBGCvYoMLwsinblXMkoYkNLEO4WnKus=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "65c207c92befec93e22086da9456d3906a4e999c", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.5", + "repo": "ixx", + "type": "github" + } + }, "kitty-search": { "flake": false, "locked": { @@ -227,11 +255,11 @@ ] }, "locked": { - "lastModified": 1727003835, - "narHash": "sha256-Cfllbt/ADfO8oxbT984MhPHR6FJBaglsr1SxtDGbpec=", + "lastModified": 1730184279, + "narHash": "sha256-6OB+WWR6gnaWiqSS28aMJypKeK7Pjc2Wm6L0MtOrTuA=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "bd7d1e3912d40f799c5c0f7e5820ec950f1e0b3d", + "rev": "b379bd4d872d159e5189053ce9a4adf86d56db4b", "type": "github" }, "original": { @@ -242,11 +270,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1726937504, - "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", + "lastModified": 1730200266, + "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9357f4f23713673f310988025d9dc261c20e70c6", + "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", "type": "github" }, "original": { @@ -285,11 +313,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1727201864, - "narHash": "sha256-jhWWJ8LTkyWM7/mUvktwwYiZwhIH70/CsW26U4uAZTg=", + "lastModified": 1730499477, + "narHash": "sha256-olt0Sx4alDxv3ko9BgbV3SsE2KQ/Tf0/Az1Fr9s2Y6U=", "owner": "nix-community", "repo": "nixvim", - "rev": "b3a90d737d5e69d784a07f359ea71178b506b8dd", + "rev": "356896f58dde22ee16481b7c954e340dceec340d", "type": "github" }, "original": { @@ -301,17 +329,18 @@ "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils_2", + "ixx": "ixx", "nixpkgs": [ "nixvim", "nixpkgs" ] }, "locked": { - "lastModified": 1726995581, - "narHash": "sha256-lgsE/CTkZk9OIiFGEIrxXZQ7Feiv41dqlN7pEfTdgew=", + "lastModified": 1730337772, + "narHash": "sha256-uTxvqDohfG85+zldO5Tf1B+fuAF8ZhMouNwG5S6OAnA=", "owner": "NuschtOS", "repo": "search", - "rev": "3b7dd61b365ca45380707453758a45f2e9977be3", + "rev": "4e0a7a95a3df3333771abc4df6a656e7baf67106", "type": "github" }, "original": { @@ -402,11 +431,11 @@ ] }, "locked": { - "lastModified": 1726734507, - "narHash": "sha256-VUH5O5AcOSxb0uL/m34dDkxFKP6WLQ6y4I1B4+N3L2w=", + "lastModified": 1730321837, + "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "ee41a466c2255a3abe6bc50fc6be927cdee57a9f", + "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 570689b..6afe6aa 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,7 @@ }; }; - outputs = { self, home-manager, nixpkgs, flake-utils, nixvim, t, ... }@inputs: + outputs = { home-manager, nixpkgs, flake-utils, nixvim, t, ... }@inputs: let homeManagerModules = [ nixvim.homeManagerModules.nixvim ]; @@ -29,7 +29,7 @@ inherit system; config.allowUnfree = true; overlays = [ - (final: prev: { custom = { t = t.packages.${system}.default; }; }) + (_: _: { custom = { t = t.packages.${system}.default; }; }) ]; }; mkHomeConfiguration = root: args: diff --git a/programs/kitty/default.nix b/programs/kitty/default.nix index b4cd00c..e7a2665 100644 --- a/programs/kitty/default.nix +++ b/programs/kitty/default.nix @@ -36,7 +36,7 @@ "ctrl+EQUAL" = "change_font_size all +2.0"; "ctrl+minus" = "change_font_size all -2.0"; "ctrl+0" = "change_font_size all 0"; - "ctrl+/" = "send_text all \x1b[47;5u"; + # "ctrl+/" = "send_text all "; }; }; } diff --git a/programs/nvim/config.lua b/programs/nvim/config.lua index 9d749c7..3be2da0 100644 --- a/programs/nvim/config.lua +++ b/programs/nvim/config.lua @@ -84,8 +84,16 @@ local opts = { noremap = true, silent = true } local builtin = require('telescope.builtin') -- comment -vim.keymap.set("n", "c", ":lua require('Comment.api').toggle.linewise.current() j", { remap = true }) -vim.keymap.set("v", "c", ":lua require('Comment.api').toggle.blockwise.current() j", { remap = true }) +local esc = vim.api.nvim_replace_termcodes( + '', true, false, true +) +local api = require('Comment.api') + +vim.keymap.set("n", "", ":lua require('Comment.api').toggle.linewise.current() j", { remap = true }) +vim.keymap.set("x", "", function() + vim.api.nvim_feedkeys(esc, 'nx', false) + api.toggle.linewise(vim.fn.visualmode()) +end, { remap = true }) -- indent and dedent using tab/shift-ta vim.keymap.set("n", "", ">>_") @@ -94,16 +102,34 @@ vim.keymap.set("i", "", "") vim.keymap.set("v", "", ">gv") vim.keymap.set("v", "", " wq]] -vim.cmd [[cabbrev x execute "Format sync" x]] -vim.cmd [[cnoreabbrev W w]] -vim.cmd [[cnoreabbrev X execute "Format sync" x]] -vim.cmd [[cnoreabbrev Q q]] +vim.cmd [[cnoreabbrev w execute "Format sync" w]] +vim.cmd [[cnoreabbrev x execute "Format sync" w CustomCloseBuffer ]] +vim.cmd [[cabbrev W w]] +vim.cmd [[cabbrev X execute "Format sync" x]] +vim.cmd [[cabbrev Q CustomCloseBuffer]] +vim.cmd [[cnoreabbrev q CustomCloseBuffer ]] +vim.cmd [[cnoreabbrev qa q]] vim.cmd [[nnoremap ; :]] local builtin = require('telescope.builtin') @@ -111,7 +137,8 @@ local builtin = require('telescope.builtin') vim.keymap.set('n', 's', "vertical sb", {}) vim.keymap.set('n', '', builtin.find_files, {}) vim.keymap.set('n', 'f', builtin.live_grep, {}) -vim.keymap.set('n', 'h', builtin.search_history, {}) +vim.keymap.set('n', 'h', builtin.pickers, {}) +-- vim.keymap.set('n', 'h', builtin.search_history, {}) vim.keymap.set('n', 'b', (function() builtin.buffers({sort_mru = true}) end), {}) vim.keymap.set('n', 'd', "Telescope diagnostics bufnr=0", {}) vim.keymap.set('n', 'ad', builtin.diagnostics, {}) @@ -119,6 +146,12 @@ vim.keymap.set('n', 'em', "RustLsp expandMacro") vim.keymap.set("n", "]d", vim.diagnostic.goto_next) vim.keymap.set("n", "[d", vim.diagnostic.goto_prev) + +vim.keymap.set('n', 'ct', "CustomCloseBuffer") +vim.keymap.set('n', 'co', "silent! BufferCloseAllButCurrent") +vim.keymap.set('n', 'cl', "silent! BufferCloseBuffersLeft") +vim.keymap.set('n', 'cr', "silent! BufferCloseBuffersRight") + -- like quit but for a single tab vim.keymap.set('n', 'q', "BD", {}) vim.keymap.set('n', 'oq', "BufOnly", {}) diff --git a/programs/nvim/default.nix b/programs/nvim/default.nix index 5df0574..62be7fc 100644 --- a/programs/nvim/default.nix +++ b/programs/nvim/default.nix @@ -60,9 +60,16 @@ in enable = true; nixGrammars = true; + nixvimInjections = true; + settings = { indent.enable = true; ensure_installed = "all"; + ignore_install = [ + "wing" + ]; + + highlight.enable = true; }; }; rainbow-delimiters.enable = true; @@ -78,7 +85,7 @@ in auto-session = { enable = true; - extraOptions = { + settings = { auto_save_enabled = true; auto_restore_enabled = true; pre_save_cmds = [ "Neotree close" ]; @@ -191,51 +198,52 @@ in auto_attach = true; server = { standalone = false; - cmd = [ "rustup" "run" "nightly" "rust-analyzer" ]; default_settings = { rust-analyzer = { inlayHints = { lifetimeElisionHints = { enable = "always"; }; }; check = { command = "clippy"; }; + cachePriming.enable = false; }; - cargo = { - buildScripts.enable = true; - features = "all"; - runBuildScripts = true; - loadOutDirsFromCheck = true; - }; - checkOnSave = true; - check = { - allFeatures = true; - command = "clippy"; - extraArgs = [ "--no-deps" ]; - }; - procMacro = { enable = true; }; - imports = { - granularity = { group = "module"; }; - prefix = "self"; - }; - files = { - excludeDirs = - [ ".cargo" ".direnv" ".git" "node_modules" "target" ]; - }; - - inlayHints = { - bindingModeHints.enable = true; - closureStyle = "rust_analyzer"; - closureReturnTypeHints.enable = "always"; - discriminantHints.enable = "always"; - expressionAdjustmentHints.enable = "always"; - implicitDrops.enable = true; - lifetimeElisionHints.enable = "always"; - rangeExclusiveHints.enable = true; - }; - - rustc.source = "discover"; - - options.diagnostics = { - enable = true; - styleLints.enable = true; - }; + # cargo = { + # buildScripts.enable = true; + # features = "all"; + # runBuildScripts = true; + # loadOutDirsFromCheck = true; + # }; + # checkOnSave = true; + # check = { + # allFeatures = true; + # command = "clippy"; + # extraArgs = [ "--no-deps" ]; + # }; + # procMacro = { enable = true; }; + # imports = { + # granularity = { group = "module"; }; + # prefix = "self"; + # }; + # files = { + # excludeDirs = + # [ ".cargo" ".direnv" ".git" "node_modules" "target" ]; + # }; + # + # inlayHints = { + # bindingModeHints.enable = true; + # closureStyle = "rust_analyzer"; + # closureReturnTypeHints.enable = "always"; + # discriminantHints.enable = "always"; + # expressionAdjustmentHints.enable = "always"; + # implicitDrops.enable = true; + # lifetimeElisionHints.enable = "always"; + # rangeExclusiveHints.enable = true; + # reborrowHints.enable = "mutable"; + # }; + # + # rustc.source = "discover"; + # + # options.diagnostics = { + # enable = true; + # styleLints.enable = true; + # }; }; }; }; @@ -247,7 +255,7 @@ in servers = { astro.enable = true; cssls.enable = true; - nil-ls = { + nil_ls = { enable = true; extraOptions = { nix = { @@ -282,20 +290,16 @@ in enable = true; filetypes = [ "python" ]; }; - # taplo = { - # enable = true; - # filetypes = [ "toml" ]; - # }; bashls = { enable = true; filetypes = [ "sh" "bash" ]; }; - ts-ls = { - enable = true; - filetypes = - [ "javascript" "javascriptreact" "typescript" "typescriptreact" ]; - }; + # ts_ls = { + # enable = true; + # filetypes = + # [ "javascript" "javascriptreact" "typescript" "typescriptreact" ]; + # }; marksman.enable = true; yamlls = { enable = true; @@ -337,9 +341,12 @@ in }; # tabs - bufferline = { + barbar = { enable = true; - settings.options.diagnostics = "nvim_lsp"; + settings = { + options.diagnostics = "nvim_lsp"; + focus_on_close = "previous"; + }; }; none-ls = { @@ -375,8 +382,14 @@ in vim-gh-line # vim-bufkill BufOnly-vim + neoconf-nvim + vim-autoswap + targets-vim ]; + extraConfigLuaPre = '' + require("neoconf").setup({}) + ''; extraConfigLua = '' require("render-markdown").setup { latex_converter = '${pkgs.python312Packages.pylatexenc}/bin/latex2text', diff --git a/programs/tmux/default.nix b/programs/tmux/default.nix index bd11b85..9dd2ad3 100644 --- a/programs/tmux/default.nix +++ b/programs/tmux/default.nix @@ -33,6 +33,10 @@ # unbind every single normal keybinding unbind-key -a + # for special characters to work right + # like + # set-window-option -g xterm-keys on + set -g set-titles on set -s escape-time 0