YFWDBAWXXEYS2Q2JAAL56B3NDNC4AV5KFNM3VPH6OXNKEOX6RDKAC LTQO757MZC7ZR4SN4HC2O3MJA5SKQP4GJZ2QU4PEEEWDLJHKAS3AC EFJC3BLN5DBJ3PIARYH3IYNB445GW5OH6NGETQG6C3O7GFCLJKWQC CZKXX4IK4HO4I4VHQQP5TS65PYYFUKUNYBNYS6SUBXJ74RAPO3LAC 5Z2GRRZO42SQ67HWWNFXTBPJTSS73XI4ZVJALYLISYBXVW3KP7GQC VAAUU7UCMLWNJFVE3MCL5WXVKGC5U5VR2KBNLBZRN7LFTJHYFK6AC AHAA7UNL2RRXP7KERGVCC42GB564WS5BYSSFEOXW3EKVMB2UVEOAC UDJHWRQM6REBOHZBCCPL2BJPH2HDBMT7VOKKS5PFBVNFBQIDWPWAC RNWOGVNATUUYTVBM44BM57OMCKDNOA5J4OKUNB5OJI2QGLFTTEIQC 5G7WRBMWKG6DMCOHE6WQHTYZACUHO2UPBZRWN72CFH7P45NN5E7QC HQ4UTQK5UQXMEUZRYQSCTEKW73UZLJQHPA4YD75FCKBKHS5NMJOAC SCB7IK7YNYAR3WTV2XYGPYCGCUW2GPJSWAA5S2ZGCYSZ5AZKXIDAC WRZ7ISE3YY7EIZPX3YOQOGZ3R6O3E5XEFB7SV74JC3WBSWZZAEVQC 4MM66MG2G2RUFJOTWRBCMWEK4YYCMKPQCO45CZLQ6VDVIO3ITMJQC A4CEWKDCNUJRE2PNF6NVZOZOF45Q3DVQWHLJCDRWJRGC6STSUY4QC VBOVCG25QZCME2X7KQRB6SZESTUMMPTN4JVR6YNZFDYEZMY6HJZAC XRIQFCB3Y7NWW3ZV45TX5IC6IW6JOPDRIXSTBNFTUVRWEYOFKAGQC MBMEGIUAQV6INNHFZFMB4YFU7X6FQJR7ABOVZKAOFJ7I6NQEILTQC ULAK3OU5SJALLFJJ2IWYE5RSFJ2GE6KITFGXAGJQETFUCJIZLSRAC QOY7D3GZ3WF7HAMEHAW2CIUB5TDQCFE3YDZEO23R5MFQEBN635WAC YQTJKSDUZ6Y6LSJGOKBYQOPG3IG5RFMRKO2JGVUN5Q7AHPGOWFTAC QRPPLHLL6YZU3Z35JNJFXHMBY3BX4THHN4AMWDFCUSFHYAHWTRHAC 7JXSMY6LHRP5IAYJMTKHYUOWAOFQFPG3ORTGW432GFVQ5GUKXVDQC KS6BKN73G3KK54BWWHT76DHYTHYPXVZYEALNOV6ENTW6CRKY53VQC QEYE6IEG73H4YBRUA3QGQK5NOPWW4YYK2R4NHAUY65ST6WSZNKGAC 2DIZADJ7LT4NBPGYWHLVDIQLG2IXELNR62GHYDXIGPWXBXMMDGBAC 3GJU6PUPM2SSKIRESLX2EY52ICYB6AJMI3SUR4HBDITO25ARNHBQC I2MW67LSPOZ6RLZSQNOEZU4WLIZ4KRNZTKWROH5J36S43CQBHEBQC 3YM6RNMKXXSOW6TELU5A5LWTTNPTA5GDRTLJZTMUAJL3EM4LOI3AC 67RHSA3OCOY7XLCFHOEWFLUR44DKSXYIIFZTMC7RNLNSCNW6R3RAC NSVZE7IGPMVKRMPDGLTWXU7DJIKWB5YJRD5KYVRHG4LHBQZMHRMQC AL4EOXGUP2GEKRMCLQ6MK64XCQKSCMQ3NOADQ5QBRP3YLLOAI5ZQC BMH36OHVL6DAJUXZ7K4HUMLDJ6BZ32IMLMQGZBTZFJK2YLXXH66AC XDU5TYGDCNCMLWTQLAW4BQORGEFBEEX4WJA3YI2JP4HT26IJYV2QC HJW2EOW6AUC3ZWT3O5BMK6YXR25COHYPN5XBTYRBTEYAB3P3M5OQC LFQQPAE4OQEWK4MRAB4VDAWRXRHWKSACGRL3XDGGXC3UMWPW2J3QC shellAliases = {cat = "bat";ls = "eza";sl = "eza";ll = "eza -la";la = "eza -a";lsa = "eza -a";lsl = "eza -l -a";v = "vim";vi = "vim";nv = "nvim";nvi = "nvim";claude = "claude --continue";
shellAliases = config.environment.shellAliases // {
cdr = "cd (git rev-parse --show-toplevel | str trim)";cdn = "cd ~/nixos-config/dotfiles/nvim";cdc = "cd ~/nixos-config";cdp = "cd ~/projects";cdu = "cd ~/nixos-config/modules/common/shell";
in{home-manager.sharedModules = [{programs.gh = enabled {settings = {git_protocol = "ssh";editor = config.environment.variables.EDITOR;
in {environment.shellAliases = {g = "git";gi = "git";gt = "git";gti = "git";};home-manager.sharedModules = [{programs.gh = enabled {settings = {git_protocol = "ssh";editor = config.environment.variables.EDITOR;};
rebase.autoStash = true;rebase.missingCommitsCheck = "warn";rebase.updateRefs = true;rerere.enabled = true;
branch.sort = "-committerdate";tag.sort = "-taggerdate";
fetch.fsckObjects = true;receive.fsckObjects = true;transfer.fsckObjects = true;
core.compression = 9;core.preloadindex = true;core.editor = config.environment.variables.EDITOR;core.longpaths = true;core.excludesfile = "~/.global_gitignore";
core.compression = 9;core.preloadindex = true;core.editor = config.environment.variables.EDITOR;core.longpaths = true;core.excludesfile = "~/.global_gitignore";
merge.conflictStyle = "zdiff3";
cm = "commit -m";ca = "commit --amend";aa = "add .";ap = "add -p";lg = "log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
st = "status -s";sta = "status";
a = ''!f() { \for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git add "$matches"; \echo "added: $matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \echo "$matches" | xargs git add; \echo "added all matches"; \fi; \done; \
sus = "!f() { git branch --set-upstream-to $1; }; f";a = ''!f() { \for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git add "$matches"; \echo "added: $matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \echo "$matches" | xargs git add; \echo "added all matches"; \fi; \done; \
r = ''!f() { \if [ $# -eq 0 ]; then \git restore .; \echo "restored all files"; \return; \
r = ''!f() { \if [ $# -eq 0 ]; then \git restore .; \echo "restored all files"; \return; \fi; \for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git restore "$matches"; \echo "restored: $matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \printf "restore all? (y/n): "; \read response; \if echo "$response" | grep -q "^[Yy]"; then \echo "$matches" | xargs git restore; \echo "restored all matches"; \fi; \
for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git restore "$matches"; \echo "restored: $matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \printf "restore all? (y/n): "; \read response; \if echo "$response" | grep -q "^[Yy]"; then \echo "$matches" | xargs git restore; \echo "restored all matches"; \fi; \fi; \done; \
done; \
rs = ''!f() { \if [ $# -eq 0 ]; then \git restore --staged .; \echo "unstaged all files"; \return; \
rs = ''!f() { \if [ $# -eq 0 ]; then \git restore --staged .; \echo "unstaged all files"; \return; \fi; \for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git restore --staged "$matches"; \echo "unstaged: $matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \printf "unstage all? (y/n): "; \read response; \if echo "$response" | grep -q "^[Yy]"; then \echo "$matches" | xargs git restore --staged; \echo "unstaged all matches"; \fi; \
for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git restore --staged "$matches"; \echo "unstaged: $matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \printf "unstage all? (y/n): "; \read response; \if echo "$response" | grep -q "^[Yy]"; then \echo "$matches" | xargs git restore --staged; \echo "unstaged all matches"; \fi; \fi; \done; \
done; \
d = ''!f() { \if [ $# -eq 0 ]; then \git diff; \return; \
d = ''!f() { \if [ $# -eq 0 ]; then \git diff; \return; \fi; \for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git diff "$matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \echo "$matches" | xargs git diff; \
for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git diff "$matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \echo "$matches" | xargs git diff; \fi; \done; \
done; \
ds = ''!f() { \if [ $# -eq 0 ]; then \git diff --staged; \return; \
ds = ''!f() { \if [ $# -eq 0 ]; then \git diff --staged; \return; \fi; \for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \
for pattern in "$@"; do \matches=$(git ls-files | grep -i "$pattern"); \if [ -z "$matches" ]; then \echo "no files found matching \"$pattern\""; \continue; \fi; \if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git diff --staged "$matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \echo "$matches" | xargs git diff --staged; \fi; \done; \
if [ $(echo "$matches" | wc -l) -eq 1 ]; then \git diff --staged "$matches"; \else \echo "multiple matches for \"$pattern\":"; \echo "$matches"; \echo "$matches" | xargs git diff --staged; \fi; \done; \
in{
in {environment.shellAliases = {nvim = "echo 'no more neovim, use hx'";nv = "echo 'no more neovim, use hx'";vim = "echo 'no more vim, use hx'";v = "echo 'no more vim, use hx'";h = "hx";e = "hx"; # editor};