nvim stuff

This commit is contained in:
2025-08-05 21:54:18 +02:00
parent 504f9637d9
commit c3ddd5d3fa
9 changed files with 135 additions and 162 deletions

36
flake.lock generated
View File

@@ -102,6 +102,24 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1754091436,
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixvim", "nixvim",
@@ -289,6 +307,21 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1753579242,
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1753939845, "lastModified": 1753939845,
@@ -339,7 +372,7 @@
}, },
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"systems": "systems_3" "systems": "systems_3"
@@ -386,6 +419,7 @@
"agenix": "agenix", "agenix": "agenix",
"darwin": "darwin_2", "darwin": "darwin_2",
"disko": "disko", "disko": "disko",
"flake-parts": "flake-parts",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"homebrew-bundle": "homebrew-bundle", "homebrew-bundle": "homebrew-bundle",
"homebrew-cask": "homebrew-cask", "homebrew-cask": "homebrew-cask",

147
flake.nix
View File

@@ -1,91 +1,114 @@
{ {
description = "Configuration for my macOS laptops and NixOS server"; description = "Configuration for my macOS laptops and NixOS server";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
agenix.url = "github:ryantm/agenix"; agenix.url = "github:ryantm/agenix";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
darwin = { darwin = {
url = "github:LnL7/nix-darwin/master"; url = "github:LnL7/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-homebrew = { nix-homebrew.url = "github:zhaofengli-wip/nix-homebrew";
url = "github:zhaofengli-wip/nix-homebrew"; homebrew-bundle.url = "github:homebrew/homebrew-bundle";
}; homebrew-core.url = "github:homebrew/homebrew-core";
homebrew-bundle = { homebrew-cask.url = "github:homebrew/homebrew-cask";
url = "github:homebrew/homebrew-bundle";
flake = false;
};
homebrew-core = {
url = "github:homebrew/homebrew-core";
flake = false;
};
homebrew-cask = {
url = "github:homebrew/homebrew-cask";
flake = false;
};
disko = { disko = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixvim = { nixvim.url = "github:nix-community/nixvim";
url = "github:nix-community/nixvim";
};
secrets = { secrets = {
url = "git+ssh://git@github.com/cschmatzler/nixos-config-secrets.git"; url = "git+ssh://git@github.com/cschmatzler/nixos-config-secrets.git";
flake = false; flake = false;
}; };
}; };
outputs = {
agenix,
darwin,
disko,
home-manager,
homebrew-bundle,
homebrew-cask,
homebrew-core,
nix-homebrew,
nixpkgs,
nixvim,
secrets,
self,
} @ inputs: let
systemLib = import ./lib/systems.nix inputs;
inherit
(systemLib)
systemConfigs
mkDarwinSystem
mkNixosSystem
mkApps
;
inherit (systemConfigs) darwinHosts nixosHosts;
allSystems = [ outputs = inputs @ {flake-parts, ...}:
"x86_64-linux" flake-parts.lib.mkFlake {inherit inputs;} (let
"aarch64-darwin" user = "cschmatzler";
]; darwinHosts = builtins.attrNames (builtins.readDir ./hosts/darwin);
forAllSystems = f: nixpkgs.lib.genAttrs allSystems f; nixosHosts = builtins.attrNames (builtins.readDir ./hosts/nixos);
devShell = system: let
pkgs = nixpkgs.legacyPackages.${system};
in { in {
default = with pkgs; systems = ["x86_64-linux" "aarch64-darwin"];
mkShell {
flake.darwinConfigurations = inputs.nixpkgs.lib.genAttrs darwinHosts (hostname:
inputs.darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = inputs // {inherit user hostname;};
modules = [
inputs.home-manager.darwinModules.home-manager
inputs.nix-homebrew.darwinModules.nix-homebrew
{
nix-homebrew = {
inherit user;
enable = true;
taps = {
"homebrew/homebrew-core" = inputs.homebrew-core;
"homebrew/homebrew-cask" = inputs.homebrew-cask;
"homebrew/homebrew-bundle" = inputs.homebrew-bundle;
};
mutableTaps = false;
autoMigrate = true;
};
}
./hosts/darwin/${hostname}
];
});
flake.nixosConfigurations = inputs.nixpkgs.lib.genAttrs nixosHosts (hostname:
inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = inputs // {inherit user hostname;};
modules = [
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.home-manager
./hosts/nixos/${hostname}
];
});
perSystem = {
pkgs,
system,
inputs',
...
}: let
mkApp = name: {
type = "app";
program = "${(pkgs.writeShellScriptBin name ''
PATH=${pkgs.git}/bin:$PATH
echo "Running ${name} for ${system}"
exec ${inputs.self}/apps/${system}/${name} "$@"
'')}/bin/${name}";
};
appNames = [
"apply"
"build"
"build-switch"
"copy-keys"
"create-keys"
"check-keys"
"rollback"
];
in {
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [ nativeBuildInputs = with pkgs; [
bashInteractive bashInteractive
git git
age age
age-plugin-yubikey age-plugin-yubikey
]; ];
shellHook = with pkgs; '' shellHook = ''export EDITOR=nvim'';
export EDITOR=nvim
'';
}; };
};
in { apps = builtins.listToAttrs (map (n: {
devShells = forAllSystems devShell; name = n;
apps = forAllSystems mkApps; value = mkApp n;
darwinConfigurations = nixpkgs.lib.genAttrs darwinHosts mkDarwinSystem; })
nixosConfigurations = nixpkgs.lib.genAttrs nixosHosts ( appNames);
hostname: mkNixosSystem hostname "x86_64-linux" };
); });
};
} }

View File

@@ -10,8 +10,8 @@
keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOk8iAnIaa1deoc7jw8YACPNVka1ZFJxhnU4G74TmS+p"]; keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOk8iAnIaa1deoc7jw8YACPNVka1ZFJxhnU4G74TmS+p"];
in { in {
imports = [ imports = [
../../profiles/base ../../../profiles/base
../../profiles/nixos ../../../profiles/nixos
agenix.nixosModules.default agenix.nixosModules.default
]; ];

View File

@@ -1,91 +0,0 @@
{
nixpkgs,
darwin,
home-manager,
nix-homebrew,
homebrew-bundle,
homebrew-core,
homebrew-cask,
disko,
nixvim,
self,
...
} @ inputs: let
user = "cschmatzler";
mkApp = scriptName: system: {
type = "app";
program = "${
(nixpkgs.legacyPackages.${system}.writeScriptBin scriptName ''
#!/usr/bin/env bash
PATH=${nixpkgs.legacyPackages.${system}.git}/bin:$PATH
echo "Running ${scriptName} for ${system}"
exec ${self}/apps/${system}/${scriptName} "$@"
'')
}/bin/${scriptName}";
};
in {
mkDarwinSystem = hostname:
darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs =
inputs
// {
inherit user;
};
modules = [
home-manager.darwinModules.home-manager
nix-homebrew.darwinModules.nix-homebrew
{
nix-homebrew = {
inherit user;
enable = true;
taps = {
"homebrew/homebrew-core" = homebrew-core;
"homebrew/homebrew-cask" = homebrew-cask;
"homebrew/homebrew-bundle" = homebrew-bundle;
};
mutableTaps = false;
autoMigrate = true;
};
}
../hosts/darwin/${hostname}
];
};
mkNixosSystem = hostname: system:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs =
inputs
// {
inherit hostname user;
};
modules = [
disko.nixosModules.disko
home-manager.nixosModules.home-manager
../hosts/nixos
];
};
mkApps = system: let
appNames = [
"apply"
"build"
"build-switch"
"copy-keys"
"create-keys"
"check-keys"
"rollback"
];
in
nixpkgs.lib.genAttrs appNames (name: mkApp name system);
systemConfigs = {
darwinHosts = [
"chidi"
"jason"
];
nixosHosts = ["tahani"];
};
}

View File

@@ -1,11 +1,11 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [ imports = [
./options.nix
./autocmd.nix ./autocmd.nix
./plugins/conform.nix ./plugins/conform.nix
./plugins/mini.nix ./plugins/mini.nix
./plugins/oil.nix ./plugins/oil.nix
./plugins/treesitter.nix ./plugins/treesitter.nix
./plugins/which-key.nix
]; ];
home.shellAliases.v = "nvim"; home.shellAliases.v = "nvim";

View File

@@ -0,0 +1,6 @@
{
programs.nixvim.globalOpts = {
expandtab = true;
shiftwidth = 2;
};
}

View File

@@ -37,6 +37,11 @@
source_func = "omnifunc"; source_func = "omnifunc";
}; };
}; };
indentscope = {};
move = {};
pairs = {};
trailspace = {};
visits = {};
pick = {}; pick = {};
surround = {}; surround = {};
}; };

View File

@@ -1,5 +0,0 @@
{
programs.nixvim.plugins.which-key = {
enable = true;
};
}

View File

@@ -6,6 +6,7 @@
theme = "catppuccin-latte"; theme = "catppuccin-latte";
default_layout = "compact"; default_layout = "compact";
default_shell = "${pkgs.fish}/bin/fish"; default_shell = "${pkgs.fish}/bin/fish";
no_pane_frames = true;
show_startup_tips = false; show_startup_tips = false;
show_release_notes = false; show_release_notes = false;
}; };