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..713567f 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,14 @@ 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 = prev.callPackage packages/git.nix { }; }; packages = eachSupportedSystem ( 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