My Nix Configuration

[home] Move git configuration to module

Changed files
+102 -87
homes
x86_64-linux
pyrox
programs
modules
home
programs
-12
homes/x86_64-linux/pyrox/programs/gh.nix
···
-
{pkgs, lib, ...}: {
-
programs.gh = {
-
enable = true;
-
gitCredentialHelper.enable = true;
-
settings = {
-
editor = lib.getExe pkgs.py.nvim;
-
git_protocol = "https";
-
browser = "${pkgs.firefox-wayland}/bin/firefox";
-
prompt = "enabled";
-
};
-
};
-
}
-75
homes/x86_64-linux/pyrox/programs/git.nix
···
-
{pkgs, lib, ...}:
-
{
-
programs.git = {
-
enable = true;
-
package = pkgs.py.customGit;
-
aliases = {
-
a = "add -p";
-
co = "checkout";
-
cob = "checkout -b";
-
f = "fetch -p";
-
c = "commit";
-
p = "push";
-
ba = "branch -a";
-
bd = "branch -d";
-
bD = "branch -D";
-
d = "diff";
-
dc = "diff --cached";
-
ds = "diff --staged";
-
r = "restore";
-
rs = "restore --staged";
-
st = "status -sb";
-
# reset
-
soft = "reset --soft";
-
hard = "reset --hard";
-
s1ft = "soft HEAD~1";
-
h1rd = "hard HEAD~1";
-
# logging
-
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
-
plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'";
-
tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative";
-
rank = "shortlog -sn --no-merges";
-
# delete merged branches
-
bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d";
-
wt = "worktree";
-
};
-
delta = {
-
enable = true;
-
options.line-numbers = true;
-
};
-
extraConfig = {
-
core.editor = lib.getExe pkgs.py.nvim;
-
init.defaultBranch = "main";
-
pull.rebase = false;
-
# gpg.format = "ssh";
-
gpg."ssh".allowedSignersFile = "~/.ssh/authorized_signatures";
-
"credential \"https://git.pyrox.dev\"".username = "pyrox";
-
credential.helper = "rbw";
-
};
-
lfs = {
-
enable = true;
-
skipSmudge = false;
-
};
-
signing = {
-
key = "0xFE1D8A7D620C611F";
-
signByDefault = true;
-
};
-
userEmail = "pyrox@pyrox.dev";
-
userName = "Pyrox";
-
};
-
programs.lazygit = {
-
enable = true;
-
catppuccin.enable = true;
-
settings = {
-
gui = {
-
nerdFontsVersion = "3";
-
showRandomTip = false;
-
theme.selectedLineBgColor = ["default"];
-
};
-
git.paging = {
-
pager = "${lib.getExe pkgs.delta} --dark --paging=never";
-
colorArg = "always";
-
};
-
};
-
};
-
}
+102
modules/home/programs/git/default.nix
···
+
{
+
pkgs,
+
lib,
+
config,
+
...
+
}:
+
let
+
cfg = config.py.programs.git;
+
in
+
{
+
options.py.programs.git = {
+
enable = lib.mkEnableOption "git configuration";
+
lazygit.enable = lib.mkEnableOption "lazygit configuration";
+
gh.enable = lib.mkEnableOption "gh configuration";
+
};
+
config = {
+
programs = {
+
git = lib.mkIf cfg.enable {
+
enable = true;
+
package = pkgs.py.customGit;
+
aliases = {
+
a = "add -p";
+
co = "checkout";
+
cob = "checkout -b";
+
f = "fetch -p";
+
c = "commit";
+
p = "push";
+
ba = "branch -a";
+
bd = "branch -d";
+
bD = "branch -D";
+
d = "diff";
+
dc = "diff --cached";
+
ds = "diff --staged";
+
r = "restore";
+
rs = "restore --staged";
+
st = "status -sb";
+
# reset
+
soft = "reset --soft";
+
hard = "reset --hard";
+
s1ft = "soft HEAD~1";
+
h1rd = "hard HEAD~1";
+
# logging
+
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
+
plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'";
+
tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative";
+
rank = "shortlog -sn --no-merges";
+
# delete merged branches
+
bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d";
+
wt = "worktree";
+
};
+
delta = {
+
enable = true;
+
options.line-numbers = true;
+
};
+
extraConfig = {
+
core.editor = lib.getExe pkgs.py.nvim;
+
init.defaultBranch = "main";
+
pull.rebase = false;
+
# gpg.format = "ssh";
+
gpg."ssh".allowedSignersFile = "~/.ssh/authorized_signatures";
+
"credential \"https://git.pyrox.dev\"".username = "pyrox";
+
credential.helper = "rbw";
+
};
+
lfs = {
+
enable = true;
+
skipSmudge = false;
+
};
+
signing = {
+
key = "0xFE1D8A7D620C611F";
+
signByDefault = true;
+
};
+
userEmail = "pyrox@pyrox.dev";
+
userName = "Pyrox";
+
};
+
lazygit = lib.mkIf cfg.lazygit.enable {
+
enable = true;
+
catppuccin.enable = true;
+
settings = {
+
gui = {
+
nerdFontsVersion = "3";
+
showRandomTip = false;
+
theme.selectedLineBgColor = [ "default" ];
+
};
+
git.paging = {
+
pager = "${lib.getExe pkgs.delta} --dark --paging=never";
+
colorArg = "always";
+
};
+
};
+
};
+
gh = lib.mkIf cfg.gh.enable {
+
enable = true;
+
gitCredentialHelper.enable = true;
+
settings = {
+
editor = lib.getExe pkgs.py.nvim;
+
git_protocol = "https";
+
browser = lib.mkIf config.py.sway.enable pkgs.firefox-wayland;
+
prompt = "enabled";
+
};
+
};
+
};
+
};
+
}