NVF #9

Merged
don merged 3 commits from NVF into main 2025-08-08 15:22:39 -05:00
5 changed files with 326 additions and 212 deletions

132
flake.lock generated
View file

@ -94,6 +94,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1751685974,
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
"ref": "refs/heads/main",
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
"revCount": 92,
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -118,16 +134,16 @@
"flake-parts_2": { "flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixvim", "nvf",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1754091436, "lastModified": 1753121425,
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -187,24 +203,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_4": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks-nix": { "git-hooks-nix": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@ -256,31 +254,18 @@
"type": "github" "type": "github"
} }
}, },
"ixx": { "mnw": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1748294338, "lastModified": 1748710831,
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=", "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=",
"owner": "NuschtOS", "owner": "Gerg-L",
"repo": "ixx", "repo": "mnw",
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85", "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NuschtOS", "owner": "Gerg-L",
"ref": "v0.0.8", "repo": "mnw",
"repo": "ixx",
"type": "github" "type": "github"
} }
}, },
@ -506,49 +491,27 @@
"type": "github" "type": "github"
} }
}, },
"nixvim": { "nvf": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"mnw": "mnw",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "systems": "systems_3"
"systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1754397955, "lastModified": 1754552918,
"narHash": "sha256-4hQT8mDSRNgPKiPdpYwr2QVJdA4FaUhOjT2lKkW8QHQ=", "narHash": "sha256-vbT+nGdMLNAeYZ1S5WBBLJTVWosGne2VRt46rqPfB2A=",
"owner": "nix-community", "owner": "notashelf",
"repo": "nixvim", "repo": "nvf",
"rev": "8d47a07563120b36af149edf2273034563339a91", "rev": "d61de135ce174f4e04b4e509de02e1afe040a834",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "notashelf",
"repo": "nixvim", "repo": "nvf",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_4",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754301638,
"narHash": "sha256-aRgzcPDd2axHFOuMlPLuzmDptUM2JU8mUL3jfgbBeyc=",
"owner": "NuschtOS",
"repo": "search",
"rev": "a60091045273484c040a91f5c229ba298f8ecc27",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github" "type": "github"
} }
}, },
@ -563,7 +526,7 @@
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_6",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"nixvim": "nixvim" "nvf": "nvf"
} }
}, },
"rust-overlay": { "rust-overlay": {
@ -644,21 +607,6 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

236
flake.nix
View file

@ -15,122 +15,130 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
naviterm.url = "gitlab:detoxify92/naviterm"; naviterm.url = "gitlab:detoxify92/naviterm";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
nixvim.url = "github:nix-community/nixvim"; nvf.url = "github:notashelf/nvf";
nixvim.inputs.nixpkgs.follows = "nixpkgs"; nvf.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs@{ self, nixpkgs, nix, nixpkgs-stable, nixos-hardware outputs = inputs @ {
, home-manager, catppuccin, colmena, ... }: self,
let nixpkgs,
inherit (self) outputs; nix,
lib = nixpkgs.lib // home-manager.lib; nixpkgs-stable,
in { nixos-hardware,
inherit lib; home-manager,
nixpkgs.config.allowUnfree = true; catppuccin,
config.allowUnfree = true; colmena,
nixpkgs.config.allowUnfreePredicate = pkg: ...
builtins.elem (lib.getName pkg) [ "widevine-cdm" ]; }: let
colmena = { inherit (self) outputs;
meta = { lib = nixpkgs.lib // home-manager.lib;
nixpkgs = import nixpkgs { system = "x86_64-linux"; }; in {
specialArgs = { inherit inputs outputs; }; inherit lib;
}; nixpkgs.config.allowUnfree = true;
# ace = import ./hosts/ace/colmena.nix; # Acer C720 config.allowUnfree = true;
book = import ./hosts/book/colmena.nix; # Google Pixelbook 2017 w/ nvme. nixpkgs.config.allowUnfreePredicate = pkg:
display = import ./hosts/display/colmena.nix; # Pi4 builtins.elem (lib.getName pkg) ["widevine-cdm"];
# eve = import ./hosts/eve/colmena.nix; # Google Pixelbook 2017 w/ eMMC. colmena = {
fred = import ./hosts/fred/colmena.nix; # acer server meta = {
loki = import ./hosts/loki/colmena.nix; # Dell XPS 13 nixpkgs = import nixpkgs {system = "x86_64-linux";};
# pi1 = import ./hosts/pi1/colmena.nix; specialArgs = {inherit inputs outputs;};
# pocket2 = import ./hosts/pocket2/colmena.nix;
smaug = import ./hosts/smaug/colmena.nix; # Thinkpad x260
w1 = import ./hosts/w1/colmena.nix; # Hetzner VPS
# w2 = import ./hosts/w2/colmena.nix;
};
nixosConfigurations = {
# clients
ace = lib.nixosSystem {
modules = [ ./hosts/ace ];
specialArgs = { inherit inputs outputs; };
};
dragon = lib.nixosSystem {
modules = [ ./hosts/dragon ];
specialArgs = { inherit inputs outputs; };
};
eve = lib.nixosSystem {
modules = [ ./hosts/eve ];
specialArgs = { inherit inputs outputs; };
};
loki = lib.nixosSystem {
modules = [ ./hosts/loki ];
specialArgs = { inherit inputs outputs; };
};
pocket2 = lib.nixosSystem {
modules = [ ./hosts/pocket2 ];
specialArgs = { inherit inputs outputs; };
};
smaug = lib.nixosSystem {
modules = [ ./hosts/smaug ];
specialArgs = { inherit inputs outputs; };
};
t2 = lib.nixosSystem {
modules = [ ./hosts/t2 ];
specialArgs = { inherit inputs outputs; };
};
pi1 = lib.nixosSystem {
modules = [ ./hosts/pi1 ];
specialArgs = { inherit inputs outputs; };
};
# servers
display = lib.nixosSystem {
modules = [ ./hosts/display ];
specialArgs = { inherit inputs outputs; };
};
fred = lib.nixosSystem {
modules = [ ./hosts/fred ];
specialArgs = { inherit inputs outputs; };
};
vm = lib.nixosSystem {
modules = [
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix"
"${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
./hosts/vm
];
specialArgs = { inherit inputs outputs; };
};
harper2 = lib.nixosSystem {
modules = [ ./hosts/harper2 ];
specialArgs = { inherit inputs outputs; };
};
harper = lib.nixosSystem {
modules = [ ./hosts/harper ];
specialArgs = { inherit inputs outputs; };
};
nuwww = lib.nixosSystem {
modules = [ ./hosts/nuwww ];
specialArgs = { inherit inputs outputs; };
};
pihole = lib.nixosSystem {
modules = [ ./hosts/pihole ];
specialArgs = { inherit inputs outputs; };
};
www2 = lib.nixosSystem {
modules = [ ./hosts/www2 ];
specialArgs = { inherit inputs outputs; };
};
w1 = lib.nixosSystem {
modules = [ ./hosts/w1 ];
specialArgs = { inherit inputs outputs; };
};
# w2 = lib.nixosSystem {
# modules = [./hosts/w2];
# specialArgs = {
# inherit inputs outputs;
# };
# };
}; };
# ace = import ./hosts/ace/colmena.nix; # Acer C720
book = import ./hosts/book/colmena.nix; # Google Pixelbook 2017 w/ nvme.
display = import ./hosts/display/colmena.nix; # Pi4
# eve = import ./hosts/eve/colmena.nix; # Google Pixelbook 2017 w/ eMMC.
fred = import ./hosts/fred/colmena.nix; # acer server
loki = import ./hosts/loki/colmena.nix; # Dell XPS 13
# pi1 = import ./hosts/pi1/colmena.nix;
# pocket2 = import ./hosts/pocket2/colmena.nix;
smaug = import ./hosts/smaug/colmena.nix; # Thinkpad x260
w1 = import ./hosts/w1/colmena.nix; # Hetzner VPS
# w2 = import ./hosts/w2/colmena.nix;
}; };
nixosConfigurations = {
# clients
ace = lib.nixosSystem {
modules = [./hosts/ace];
specialArgs = {inherit inputs outputs;};
};
dragon = lib.nixosSystem {
modules = [./hosts/dragon];
specialArgs = {inherit inputs outputs;};
};
eve = lib.nixosSystem {
modules = [./hosts/eve];
specialArgs = {inherit inputs outputs;};
};
loki = lib.nixosSystem {
modules = [./hosts/loki];
specialArgs = {inherit inputs outputs;};
};
pocket2 = lib.nixosSystem {
modules = [./hosts/pocket2];
specialArgs = {inherit inputs outputs;};
};
smaug = lib.nixosSystem {
modules = [./hosts/smaug];
specialArgs = {inherit inputs outputs;};
};
t2 = lib.nixosSystem {
modules = [./hosts/t2];
specialArgs = {inherit inputs outputs;};
};
pi1 = lib.nixosSystem {
modules = [./hosts/pi1];
specialArgs = {inherit inputs outputs;};
};
# servers
display = lib.nixosSystem {
modules = [./hosts/display];
specialArgs = {inherit inputs outputs;};
};
fred = lib.nixosSystem {
modules = [./hosts/fred];
specialArgs = {inherit inputs outputs;};
};
vm = lib.nixosSystem {
modules = [
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix"
"${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
./hosts/vm
];
specialArgs = {inherit inputs outputs;};
};
harper2 = lib.nixosSystem {
modules = [./hosts/harper2];
specialArgs = {inherit inputs outputs;};
};
harper = lib.nixosSystem {
modules = [./hosts/harper];
specialArgs = {inherit inputs outputs;};
};
nuwww = lib.nixosSystem {
modules = [./hosts/nuwww];
specialArgs = {inherit inputs outputs;};
};
pihole = lib.nixosSystem {
modules = [./hosts/pihole];
specialArgs = {inherit inputs outputs;};
};
www2 = lib.nixosSystem {
modules = [./hosts/www2];
specialArgs = {inherit inputs outputs;};
};
w1 = lib.nixosSystem {
modules = [./hosts/w1];
specialArgs = {inherit inputs outputs;};
};
# w2 = lib.nixosSystem {
# modules = [./hosts/w2];
# specialArgs = {
# inherit inputs outputs;
# };
# };
};
};
} }

View file

@ -1,4 +1,11 @@
{ config, pkgs, inputs, osConfig, outputs, ... }: { {
config,
pkgs,
inputs,
osConfig,
outputs,
...
}: {
imports = [ imports = [
./aerc.nix ./aerc.nix
./bash.nix ./bash.nix
@ -12,10 +19,9 @@
./liquidprompt.nix ./liquidprompt.nix
./listadmin.nix ./listadmin.nix
./mail.nix ./mail.nix
# ./mopidy.nix
./naviterm.nix ./naviterm.nix
./newsboat.nix ./newsboat.nix
./nixvim.nix ./nvf.nix
./ssh.nix ./ssh.nix
./taskwarrior.nix ./taskwarrior.nix
./topgrade.nix ./topgrade.nix
@ -115,8 +121,7 @@
programs.keychain = { programs.keychain = {
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;
keys = keys = "id_aur id_dsa id_ed25519 git C7E41C9F79C846984163693FCCD8E76F07EA701B";
"id_aur id_dsa id_ed25519 git C7E41C9F79C846984163693FCCD8E76F07EA701B";
}; };
home.file.".links/links.cfg".source = files/links.cfg; home.file.".links/links.cfg".source = files/links.cfg;
} }

152
home/common/nvf.nix Normal file
View file

@ -0,0 +1,152 @@
{
config,
pkgs,
nixvim,
...
}: {
home.packages = with pkgs; [tree-sitter fd ripgrep];
programs.nvf = {
enable = true;
settings = {
vim = {
autocomplete.nvim-cmp.enable = true;
binds = {
cheatsheet.enable = true;
};
dashboard.alpha = {
enable = true;
theme = "dashboard";
};
filetree.neo-tree = {enable = true;};
comments.comment-nvim.enable = true;
autopairs.nvim-autopairs.enable = true;
snippets.luasnip.enable = true;
terminal = {
toggleterm = {
enable = true;
lazygit = {
enable = true;
};
};
};
treesitter = {
enable = true;
context.enable = true;
fold = true;
autotagHtml.enable = true;
};
syntaxHighlighting = true;
keymaps = [
{
key = "<Tab>";
action = ":bnext<CR>";
mode = ["n"];
}
{
key = "<leader>t";
action = ":Telescope buffers<CR>";
mode = ["n"];
}
{
key = "<leader>T";
action = ":terminal<CR>";
mode = ["n"];
}
{
key = "<leader>e";
action = ":Neotree toggle<CR>";
mode = ["n"];
}
{
key = "<leader>ow";
action = ":ObsidianWorkspace<CR>";
mode = ["n"];
}
{
key = "<leader>od";
action = ":ObsidianDailies<CR>";
mode = ["n"];
}
{
key = "<leader>on";
action = ":ObsidianNew<CR>";
mode = ["n"];
}
{
key = "<leader>oN";
action = ":ObsidianNewFromTemplate<CR>";
mode = ["n"];
}
];
git = {
enable = true;
gitsigns.enable = true;
gitsigns.codeActions.enable = false;
neogit.enable = true;
};
languages = {
enableTreesitter = true;
enableFormat = true;
enableExtraDiagnostics = true;
bash.enable = true;
lua.enable = true;
go.enable = true;
python.enable = true;
markdown = {
enable = true;
extensions.render-markdown-nvim.enable = true;
};
nix.enable = true;
html.enable = true;
};
lsp = {
enable = true;
formatOnSave = true;
lspkind.enable = false;
lightbulb.enable = true;
lspsaga.enable = false;
trouble.enable = true;
};
options = {conceallevel = 1;};
statusline.lualine.enable = true;
telescope.enable = true;
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
};
viAlias = true;
vimAlias = true;
notes = {
obsidian = {
enable = true;
setupOpts = {
legacy_commands = true;
ui.enable = false;
completion.nvim-cmp = true;
templates = {subdir = "Templates";};
daily_notes = {
date_format = "%Y-%m-%d";
folder = "Daily";
};
workspaces = [
{
name = "main";
path = "~/.obsidian/main";
}
{
name = "journal";
path = "~/.obsidian/journal";
}
{
name = "food";
path = "~/.obsidian/Food";
}
];
};
};
};
};
};
};
}

View file

@ -12,7 +12,8 @@
don = { don = {
imports = [ imports = [
inputs.catppuccin.homeModules.catppuccin inputs.catppuccin.homeModules.catppuccin
inputs.nixvim.homeModules.nixvim inputs.nvf.homeManagerModules.default
# inputs.nixvim.homeModules.nixvim
./common ./common
]; ];
home = { home = {