From 56ca2d31a34eb942c08336b01b14ed90bce71835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Tue, 3 Feb 2026 17:46:20 +0100 Subject: [PATCH] git --- flake.lock | 23 +++++++++++++++++++++- flake.nix | 15 ++++++++++---- modules/git.nix | 7 +++++++ packages/git.nix | 26 +++++++++++++++++++++++++ packages/{vim-kmein => vim}/default.nix | 0 packages/{vim-kmein => vim}/init.lua | 0 packages/{vim-kmein => vim}/init.vim | 0 packages/{vim-kmein => vim}/shared.vim | 0 8 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 modules/git.nix create mode 100644 packages/git.nix rename packages/{vim-kmein => vim}/default.nix (100%) rename packages/{vim-kmein => vim}/init.lua (100%) rename packages/{vim-kmein => vim}/init.vim (100%) rename packages/{vim-kmein => vim}/shared.vim (100%) diff --git a/flake.lock b/flake.lock index 8d3d6b0..267fb53 100644 --- a/flake.lock +++ b/flake.lock @@ -18,7 +18,8 @@ "root": { "inputs": { "nixpkgs": "nixpkgs", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix", + "wrappers": "wrappers" } }, "treefmt-nix": { @@ -40,6 +41,26 @@ "repo": "treefmt-nix", "type": "github" } + }, + "wrappers": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1770112394, + "narHash": "sha256-H8d0WplmDeuvOM4bsHNt77T6OWiSJMaTP6UG1XyMNxA=", + "owner": "Lassulus", + "repo": "wrappers", + "rev": "23625835eb91d925c498780f5a37442ead1ae8e5", + "type": "github" + }, + "original": { + "owner": "Lassulus", + "repo": "wrappers", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index ded991c..a53e28a 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,8 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; + wrappers.url = "github:Lassulus/wrappers"; + wrappers.inputs.nixpkgs.follows = "nixpkgs"; treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; }; @@ -22,12 +24,17 @@ in { nixosModules = { - vim-kmein = modules/vim.nix; - zsh-kmein = modules/zsh.nix; + vim = modules/vim.nix; + zsh = modules/zsh.nix; + git = modules/git.nix; }; overlays.default = final: prev: { - vim-kmein = prev.callPackage packages/vim-kmein { }; + vim-kmein = prev.callPackage packages/vim { }; + git-kmein = import packages/git.nix { + inherit (inputs) wrappers; + pkgs = prev; + }; }; packages = eachSupportedSystem ( @@ -39,7 +46,7 @@ }; in { - inherit (pkgs) vim-kmein; + inherit (pkgs) vim-kmein git-kmein; } ); diff --git a/modules/git.nix b/modules/git.nix new file mode 100644 index 0000000..265d61c --- /dev/null +++ b/modules/git.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + environment.shellAliases.g = "git"; + environment.systemPackages = [ + pkgs.git-kmein + ]; +} diff --git a/packages/git.nix b/packages/git.nix new file mode 100644 index 0000000..25a4268 --- /dev/null +++ b/packages/git.nix @@ -0,0 +1,26 @@ +{ wrappers, pkgs }: +let + git = wrappers.wrapperModules.git.apply { + inherit pkgs; + settings = { + alias = { + co = "checkout"; + br = "branch"; + ci = "commit"; + cm = "commit -m"; + st = "status -s"; + amend = "commit --amend"; + unstage = "reset HEAD --"; + last = "log -1 HEAD"; + diffs = "diff --staged"; + pushf = "push --force-with-lease"; + logs = "log --pretty=oneline"; + }; + pull.ff = "only"; + rebase.autoStash = true; + merge.autoStash = true; + push.autoSetupRemote = true; + }; + }; +in +git.wrapper diff --git a/packages/vim-kmein/default.nix b/packages/vim/default.nix similarity index 100% rename from packages/vim-kmein/default.nix rename to packages/vim/default.nix diff --git a/packages/vim-kmein/init.lua b/packages/vim/init.lua similarity index 100% rename from packages/vim-kmein/init.lua rename to packages/vim/init.lua diff --git a/packages/vim-kmein/init.vim b/packages/vim/init.vim similarity index 100% rename from packages/vim-kmein/init.vim rename to packages/vim/init.vim diff --git a/packages/vim-kmein/shared.vim b/packages/vim/shared.vim similarity index 100% rename from packages/vim-kmein/shared.vim rename to packages/vim/shared.vim