diff options
| author | Stefan Weigl-Bosker <stefan@s00.xyz> | 2025-04-04 18:35:54 -0400 |
|---|---|---|
| committer | Stefan Weigl-Bosker <stefan@s00.xyz> | 2025-04-04 18:35:54 -0400 |
| commit | 2dccaa26240c1a1e0a608dadadb6d5391292495b (patch) | |
| tree | 1b1e5537e85a3bb721e56223923da278f3307770 | |
| parent | f1150b73ebaae94c83d15e9def14acf0bbe704d5 (diff) | |
| download | home-2dccaa26240c1a1e0a608dadadb6d5391292495b.tar.gz | |
git and lazygit
| -rw-r--r-- | modules/default.nix | 2 | ||||
| -rw-r--r-- | modules/git/default.nix | 71 | ||||
| -rw-r--r-- | modules/global.nix | 2 | ||||
| -rw-r--r-- | modules/lazygit.nix | 64 |
4 files changed, 139 insertions, 0 deletions
diff --git a/modules/default.nix b/modules/default.nix index d6cb671..4c44c05 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -7,6 +7,8 @@ ./fzf.nix ./i3status.nix ./tofi.nix + ./lazygit.nix + ./git ./tmux ./zsh ./sway diff --git a/modules/git/default.nix b/modules/git/default.nix new file mode 100644 index 0000000..e8c9d9c --- /dev/null +++ b/modules/git/default.nix @@ -0,0 +1,71 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.modules.git; +in +{ + options.modules.git = { + enable = lib.mkEnableOption "git"; + }; + + config = lib.mkIf cfg.enable { + # home.packages = with pkgs; [ + # ]; + programs.git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userName = "Stefan Weigl-Bosker"; + userEmail = "stefan@s00.xyz"; + aliases = { + co = "checkout"; + ri = "rebase -i"; + ag = "add -g"; + pushf = "push --force-with-lease"; + }; + delta = { + enable = true; + options = { + "syntax-theme" = "base16-256"; + navigate = true; + dark = true; + }; + }; +# extraConfig = {}; + # hooks = { + # pre-commit = ; + # }; + ignores = [ + "*.swp" + "*.swo" + "*.swf" + "*~" + "*.tmp" + "Session.vim" + ".envrc" + ".direnv/" + ".ignore/" + ]; + signing = { + signByDefault = true; + }; + extraConfig = { + init.defaultBranch = "main"; + merge.conflictStyle = "zdiff3"; + pull.rebase = true; + rebase = { + autoSquash = true; + updateRefs = true; + }; + fetch = { + prune = true; + pruneTags = true; + all = true; + }; + url = { + "ssh://git@s00.xyz:".insteadOf = "g:/"; + "ssh://git@github.com:sweiglbosker/".insteadOf = "gh:/"; + "ssh://git@github.com:".insteadOf = "gh:"; + }; + }; + }; + }; +} diff --git a/modules/global.nix b/modules/global.nix index 4fe183c..f815b23 100644 --- a/modules/global.nix +++ b/modules/global.nix @@ -45,6 +45,8 @@ in zsh.enable = true; tmux.enable = true; fzf.enable = true; + git.enable = true; + lazygit.enable = true; }; nixGL = lib.mkIf cfg.notNixOS { diff --git a/modules/lazygit.nix b/modules/lazygit.nix new file mode 100644 index 0000000..855a985 --- /dev/null +++ b/modules/lazygit.nix @@ -0,0 +1,64 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.modules.lazygit; +in +{ + options.modules.lazygit = { + enable = lib.mkEnableOption "lazygit"; + }; + + config = lib.mkIf cfg.enable { + programs.lazygit = { + enable = true; + settings = { + keybinding = { + universal = { + "prevItem-alt" = "e"; + "nextItem-alt" = "n"; + "prevBlock-alt" = "m"; + "nextBlock-alt" = "i"; + "scollUpMain-alt1" = "E"; + "scollDownMain-alt1" = "N"; + nextMatch = "j"; + prevMatch = "J"; + new = "j"; + edit = "k"; + createRebaseOptionsMenu = "h"; + }; + files = { + ignoreFile = "l"; + }; + branches = { + viewGitFlowOptions = "l"; + }; + commits = { + startInteractiveRebase = "u"; + }; + }; + gui= { + notARepository = "skip"; + mouseEvents = false; + showRandomTip = false; + border = "hidden"; + theme = { + # activeBorderColor = [ "#8f8aac" "bold" ]; + activeBorderColor = [ "#8f8aac" "bold" ]; + inactiveBorderColor = [ "#4c4c4c" ]; + searchingActiveBorderColor = [ "#ceb188" ]; + optionsTextColor = [ "#8f8aac" ]; + selectedLineBgColor = [ "#262626" ]; + cherryPickedCommitBgColor = [ "#4c4c4c" ]; + cherryPickedCommitFgColor = [ "#8f8aac" ]; + markedBaseCommitFgColor = [ "#8f8aac" ]; + unstagedChangesColor = [ "#ac8a8c" ]; + defaultFgColor = [ "#cacaca" ]; + }; + git = { + paging.useConfig = true; + parseEmoji = true; + }; + }; + }; + }; + }; +} |