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": {
"nixpkgs": {
"locked": {
"lastModified": 1781074563,
"narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=",
"lastModified": 1782467914,
"narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
"type": "github"
},
"original": {
@@ -16,9 +16,44 @@
"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": {
"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 = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
wrappers.url = "github:BirdeeHub/nix-wrapper-modules";
};
outputs =
{ self, nixpkgs }:
let
system = "x86_64-linux"; # change if needed
pkgs = import nixpkgs { inherit system; };
pkgList = with pkgs; [
# LSPs
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
outputs = {
self,
nixpkgs,
...
} @ inputs: let
# Define the systems you want to support
supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
# other tools
lua5_1
tree-sitter
ripgrep
gcc
fzf
gnumake
imagemagick
luarocks
];
# A helper function to generate outputs for each system
# It imports nixpkgs for the system and passes the resulting 'pkgs' to the function 'f'
forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f (import nixpkgs {inherit system;}));
in {
# Use the helper to generate the packages attribute for every system
packages = forAllSystems (
pkgs: let
pkgList = with pkgs; [
# 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" { } ''
mkdir -p $out/nvim-remote
cp ${./init.lua} $out/nvim-remote/init.lua
cp -r ${./lua} $out/nvim-remote/lua
'';
mkWrappedNvim =
{
name,
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
# other tools
lua5_1
tree-sitter
ripgrep
gcc
fzf
gnumake
imagemagick
luarocks
];
shellHook = ''
export TREE_SITTER_LIB_PATH="${pkgs.tree-sitter}/lib"
export DEVSHELL_NAME="󱄅 flake/#89dceb| neovim/green"
'';
};
};
in {
# Define the default package for this system
default = inputs.wrappers.wrappers.neovim.wrap {
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", "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
Keymap("n", "ss", function()
require("flash").jump()

View File

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

View File

@@ -4,6 +4,32 @@ vim.pack.add({
{ 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", {
settings = {
Lua = {
@@ -43,6 +69,7 @@ require("blink.cmp").setup({
trigger = {
show_on_insert = true,
show_on_trigger_character = true,
show_on_keyword = true,
show_on_backspace = true,
},
list = {

View File

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