1
1
Fork 1
mirror of https://github.com/oddlama/nix-config.git synced 2025-10-11 07:10:39 +02:00

chore(nixvim): test out nixvim

This commit is contained in:
oddlama 2023-11-04 19:53:05 +01:00
parent abb0a70771
commit b9ca0de56b
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
5 changed files with 248 additions and 24 deletions

95
flake.lock generated
View file

@ -217,6 +217,29 @@
"type": "github" "type": "github"
} }
}, },
"beautysh": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"poetry2nix": "poetry2nix",
"utils": "utils"
},
"locked": {
"lastModified": 1680308980,
"narHash": "sha256-aUEHV0jk2qIFP3jlsWYWhBbm+w/N9gzH3e4I5DcdB5s=",
"owner": "lovesegfault",
"repo": "beautysh",
"rev": "9845efc3ea3e86cc0d41465d720a47f521b2799c",
"type": "github"
},
"original": {
"owner": "lovesegfault",
"repo": "beautysh",
"type": "github"
}
},
"crane": { "crane": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@ -1000,6 +1023,60 @@
"type": "github" "type": "github"
} }
}, },
"nixvim": {
"inputs": {
"beautysh": "beautysh",
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": [
"pre-commit-hooks"
]
},
"locked": {
"lastModified": 1699089411,
"narHash": "sha256-IhhzLIQW/cKQQfkQ7B7urgAzQiPHlLKgMeJbSBV02F8=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "1aecd4c2035b46c49b7f4548e0255b986d59410f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": [
"nixvim",
"beautysh",
"utils"
],
"nixpkgs": [
"nixvim",
"beautysh",
"nixpkgs"
]
},
"locked": {
"lastModified": 1658665240,
"narHash": "sha256-/wkx7D7enyBPRjIkK0w7QxLQhzEkb3UxNQnjyc3FTUI=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "8b8edc85d24661d5a6d0d71d6a7011f3e699780f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -1101,6 +1178,7 @@
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-wayland": "nixpkgs-wayland", "nixpkgs-wayland": "nixpkgs-wayland",
"nixseparatedebuginfod": "nixseparatedebuginfod", "nixseparatedebuginfod": "nixseparatedebuginfod",
"nixvim": "nixvim",
"pre-commit-hooks": "pre-commit-hooks_3", "pre-commit-hooks": "pre-commit-hooks_3",
"stylix": "stylix", "stylix": "stylix",
"templates": "templates", "templates": "templates",
@ -1294,6 +1372,21 @@
} }
}, },
"utils": { "utils": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"locked": { "locked": {
"lastModified": 1652776076, "lastModified": 1652776076,
"narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=",
@ -1314,7 +1407,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"utils": "utils" "utils": "utils_2"
}, },
"locked": { "locked": {
"lastModified": 1697336859, "lastModified": 1697336859,

View file

@ -1,5 +1,5 @@
{ {
description = " oddlama's nix config and dotfiles"; description = " oddlama's nix config and dotfiles";
inputs = { inputs = {
agenix = { agenix = {
@ -73,6 +73,13 @@
inputs.flake-utils.follows = "flake-utils"; inputs.flake-utils.follows = "flake-utils";
}; };
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
microvm = { microvm = {
url = "github:astro/microvm.nix"; url = "github:astro/microvm.nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View file

@ -16,7 +16,7 @@
} }
]; ];
extraSpecialArgs = { extraSpecialArgs = {
inherit minimal; inherit inputs minimal;
}; };
}; };

View file

@ -50,6 +50,7 @@
nixpkgs.overlays = [ nixpkgs.overlays = [
inputs.microvm.overlay inputs.microvm.overlay
inputs.nixpkgs-wayland.overlay inputs.nixpkgs-wayland.overlay
inputs.nixvim.overlays.default
inputs.wired-notify.overlays.default inputs.wired-notify.overlays.default
]; ];
} }

View file

@ -1,29 +1,152 @@
{ {
config, lib,
pkgs, pkgs,
... ...
}: { }: {
programs.neovim-custom = { #programs.neovim-custom = {
config = { # config = {
withPython3 = false; # withPython3 = false;
withRuby = false; # withRuby = false;
withNodeJs = false; # withNodeJs = false;
#extraPython3Packages = p: []; # #extraPython3Packages = p: [];
plugins = with pkgs.vimPlugins; [ # plugins = with pkgs.vimPlugins; [
{ # {
plugin = neo-tree-nvim; # plugin = neo-tree-nvim;
config = # config =
/* # /*
lua # lua
*/ # */
'' # ''
require("neo-tree").setup {} # require("neo-tree").setup {}
''; # '';
} # }
]; # ];
# };
# init = builtins.readFile ./aaa/init.lua;
#};
home.shellAliases.nixvim = lib.getExe (pkgs.nixvim.makeNixvimWithModule {
package = pkgs.neovim-unwrapped.overrideAttrs (_final: prev: {
nativeBuildInputs = (prev.nativeBuildInputs or []) ++ [pkgs.makeWrapper];
postInstall =
(prev.postInstall or "")
+ ''
wrapProgram $out/bin/nvim --add-flags "--clean"
'';
});
colorschemes = {
catppuccin = {
enable = true;
flavour = "mocha";
};
}; };
init = builtins.readFile ./aaa/init.lua;
}; globals.mapleader = ",";
# Hide line numbers in terminal windows
autoCmd = [
{
event = ["BufEnter" "BufWinEnter"];
pattern = ["term://*"];
callback = {
__raw = ''
function()
vim.bo.number = false
end
'';
};
}
];
options = {
# ----------------------------------------------------------------------------------------------------
# -- General
# ----------------------------------------------------------------------------------------------------
undolevels = 1000000; # Set maximum undo levels
undofile = true; # Enable persistent undo which persists undo history across vim sessions
updatetime = 300; # Save swap file after 300ms
mouse = "a"; # Enable full mouse support
# ----------------------------------------------------------------------------------------------------
# -- Editor visuals
# ----------------------------------------------------------------------------------------------------
termguicolors = true; # Enable true color in terminals
splitkeep = "screen"; # Try not to move text when opening/closing splits
wrap = false; # Do not wrap text longer than the window's width
scrolloff = 2; # Keep 2 lines above and below the cursor.
sidescrolloff = 2; # Keep 2 lines left and right of the cursor.
number = true; # Show line numbers
cursorline = true; # Enable cursorline, colorscheme only shows this in number column
wildmode = ["list" "full"]; # Only complete the longest common prefix and list all results
fillchars = {stlnc = "";}; # Show separators in inactive window statuslines
# FIXME: disabled because this really fucks everything up in the terminal.
title = false; # Sets the window title
# titlestring = "%t%( %M%)%( (%{expand(\"%:~:.:h\")})%) - nvim"; # The format for the window title
# ----------------------------------------------------------------------------------------------------
# -- Editing behavior
# ----------------------------------------------------------------------------------------------------
whichwrap = ""; # Never let the curser switch to the next line when reaching line end
ignorecase = true; # Ignore case in search by default
smartcase = true; # Be case sensitive when an upper-case character is included
expandtab = false;
tabstop = 4; # Set indentation of tabs to be equal to 4 spaces.
shiftwidth = 4;
softtabstop = 4;
shiftround = true; # Round indentation commands to next multiple of shiftwidth
# r = insert comment leader when hitting <Enter> in insert mode
# q = allow explicit formatting with gq
# j = remove comment leaders when joining lines if it makes sense
formatoptions = "rqj";
# Allow the curser to be positioned on cells that have no actual character;
# Like moving beyond EOL or on any visual 'space' of a tab character
virtualedit = "all";
selection = "old"; # Do not include line ends in past the-line selections
smartindent = true; # Use smart auto indenting for all file types
timeoutlen = 20; # Only wait 20 milliseconds for characters to arrive (see :help timeout)
ttimeoutlen = 20;
timeout = false; # Disable timeout, but enable ttimeout (only timeout on keycodes)
ttimeout = true;
grepprg = "rg --vimgrep --smart-case --follow"; # Replace grep with ripgrep
};
plugins = {
#alpha.enable = true;
#comment-nvim.enable = true;
diffview.enable = true;
fugitive.enable = true;
gitsigns = {
enable = true;
currentLineBlame = true;
};
lsp-format.enable = true;
#markdown-preview.enable = true;
# mini.enable = true;
#navbuddy.enable = true;
#neorg.enable = true;
neo-tree.enable = true;
notify.enable = true;
#sniprun.enable = true;
#surround.enable = true;
telescope.enable = true;
treesitter.enable = true;
treesitter-context.enable = true;
#trouble.enable = true;
#which-key.enable = true;
};
});
home.packages = let home.packages = let
nvimConfig = pkgs.neovimUtils.makeNeovimConfig { nvimConfig = pkgs.neovimUtils.makeNeovimConfig {