Compare commits

..

5 Commits

Author SHA1 Message Date
7de01201e8 Merge branch 'wrapped' 2026-07-03 19:28:21 +01:00
1dd3e16674 made the flake work with dendritic 2026-07-03 19:27:54 +01:00
388beee1b4 added terminal binds for the funzies 2026-07-02 14:37:34 +01:00
447dd9c22f fixed conform hopefully 2026-06-28 13:54:09 +01:00
45739fc4cf updated flake 2026-06-28 13:35:44 +01:00
6 changed files with 132 additions and 89 deletions

43
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1781074563, "lastModified": 1782467914,
"narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -16,9 +16,44 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": {
"locked": {
"lastModified": 1780336545,
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4df1b885d76a54e1aa1a318f8d16fd6005b6401f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"wrappers": "wrappers"
}
},
"wrappers": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1782135443,
"narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=",
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f",
"type": "github"
},
"original": {
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"type": "github"
} }
} }
}, },

135
flake.nix
View File

@@ -3,93 +3,60 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
wrappers.url = "github:BirdeeHub/nix-wrapper-modules";
}; };
outputs = outputs = {
{ self, nixpkgs }: self,
let nixpkgs,
system = "x86_64-linux"; # change if needed ...
pkgs = import nixpkgs { inherit system; }; } @ inputs: let
pkgList = with pkgs; [ # Define the systems you want to support
# LSPs supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
lua-language-server
vscode-langservers-extracted
emmet-language-server
svelte-language-server
rust-analyzer
ast-grep
prettier
black
nixfmt
rustfmt
nil
python313Packages.python-lsp-server
typescript-language-server
tailwindcss-language-server
stylua
nixd
# other tools # A helper function to generate outputs for each system
lua5_1 # It imports nixpkgs for the system and passes the resulting 'pkgs' to the function 'f'
tree-sitter forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f (import nixpkgs {inherit system;}));
ripgrep in {
gcc # Use the helper to generate the packages attribute for every system
fzf packages = forAllSystems (
gnumake pkgs: let
imagemagick pkgList = with pkgs; [
luarocks # LSPs
]; lua-language-server
vscode-langservers-extracted
emmet-language-server
svelte-language-server
rust-analyzer
ast-grep
prettier
black
alejandra
rustfmt
python313Packages.python-lsp-server
typescript-language-server
tailwindcss-language-server
stylua
nixd
nvimRemoteConfig = pkgs.runCommand "nvim-remote-config" { } '' # other tools
mkdir -p $out/nvim-remote lua5_1
cp ${./init.lua} $out/nvim-remote/init.lua tree-sitter
cp -r ${./lua} $out/nvim-remote/lua ripgrep
''; gcc
fzf
mkWrappedNvim = gnumake
{ imagemagick
name, luarocks
extraWrapArgs ? "",
}:
pkgs.symlinkJoin {
inherit name;
paths = [ pkgs.neovim ];
buildInputs = [ pkgs.makeWrapper ];
meta.mainProgram = "nvim";
postBuild = ''
wrapProgram $out/bin/nvim \
--prefix PATH : ${pkgs.lib.makeBinPath pkgList} \
--set TREE_SITTER_LIB_PATH "${pkgs.tree-sitter}/lib" \
${extraWrapArgs}
'';
};
nvim-wrapped = mkWrappedNvim { name = "nvim"; };
nvim-remote = mkWrappedNvim {
name = "nvim-remote";
extraWrapArgs = ''
--set NVIM_APPNAME "nvim-remote" \
--set XDG_CONFIG_HOME "${nvimRemoteConfig}"
'';
};
in
{
packages.${system} = {
default = nvim-wrapped;
remote = nvim-remote;
};
devShells.${system}.default = pkgs.mkShell {
packages = [
nvim-wrapped
]; ];
in {
shellHook = '' # Define the default package for this system
export TREE_SITTER_LIB_PATH="${pkgs.tree-sitter}/lib" default = inputs.wrappers.wrappers.neovim.wrap {
export DEVSHELL_NAME="󱄅 flake/#89dceb| neovim/green" inherit pkgs;
''; runtimePkgs = pkgList;
}; settings.config_directory = ./.;
}; };
}
);
};
} }

View File

@@ -29,6 +29,19 @@ Keymap("i", "<C-BS>", "<C-W>") -- C-Backscpace for whole words
Keymap("n", "<leader>d", "<cmd>lua vim.diagnostic.open_float()<CR>") -- Diagnostics for Linter Keymap("n", "<leader>d", "<cmd>lua vim.diagnostic.open_float()<CR>") -- Diagnostics for Linter
Keymap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>") -- Diagnostics for Linter Keymap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>") -- Diagnostics for Linter
-- Terminal Keymaps
Keymap("n", "<leader>tj", function() -- open term in new pane
vim.cmd.vnew()
vim.cmd.term()
vim.cmd.startinsert()
end)
Keymap("n", "<leader>tk", function() -- open term in new tab
vim.cmd.tabnew()
vim.cmd.term()
vim.cmd.startinsert()
end)
Keymap("t", "<C-D>", "<C-\\><C-n>") -- escape terminal with c-d
-- Flash keymaps -- Flash keymaps
Keymap("n", "ss", function() Keymap("n", "ss", function()
require("flash").jump() require("flash").jump()

View File

@@ -12,7 +12,7 @@ require("conform").setup({
html = { "prettier" }, html = { "prettier" },
svelte = { "prettier" }, svelte = { "prettier" },
python = { "black" }, python = { "black" },
nix = { "nixfmt" }, nix = { "alejandra" },
css = { "prettier" }, css = { "prettier" },
rust = { "rustfmt" }, rust = { "rustfmt" },
}, },

View File

@@ -4,6 +4,32 @@ vim.pack.add({
{ src = "https://github.com/saghen/blink.lib", name = "blink-lib" }, { src = "https://github.com/saghen/blink.lib", name = "blink-lib" },
}) })
local hostname = vim.uv.os_gethostname()
local lowerHostname = string.lower(hostname)
vim.lsp.config("nixd", {
cmd = { "nixd" },
filetypes = { "nix" },
root_markers = { "flake.nix", ".git" },
settings = {
nixd = {
nixpkgs = {
expr = "import <nixpkgs> { }",
},
formatting = {
command = { "alejandra" },
},
options = {
nixos = {
expr = '(builtins.getFlake "~/.dotfiles/.nixos").nixosConfigurations.'
.. lowerHostname
.. ".options",
},
},
},
},
})
vim.lsp.config("lua_ls", { vim.lsp.config("lua_ls", {
settings = { settings = {
Lua = { Lua = {
@@ -43,6 +69,7 @@ require("blink.cmp").setup({
trigger = { trigger = {
show_on_insert = true, show_on_insert = true,
show_on_trigger_character = true, show_on_trigger_character = true,
show_on_keyword = true,
show_on_backspace = true, show_on_backspace = true,
}, },
list = { list = {

View File

@@ -22,6 +22,7 @@ require("telescope").setup({
}, },
n = { n = {
["<CR>"] = actions.select_drop, ["<CR>"] = actions.select_drop,
["d"] = actions.delete_buffer,
}, },
}, },
}, },