diff --git a/flake.lock b/flake.lock index 87a2436..8acde91 100644 --- a/flake.lock +++ b/flake.lock @@ -503,11 +503,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1687171271, + "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", "type": "github" }, "original": { @@ -665,11 +665,11 @@ ] }, "locked": { - "lastModified": 1687506590, - "narHash": "sha256-CSou9mrG9h/WVRjCptfTrATVxvhmtdQXElmWV/ZkrAs=", + "lastModified": 1687856573, + "narHash": "sha256-rzC+5rRsy92Dhjb1q5e5tDjdhRfL1z4WFWwlcD3a+4Q=", "owner": "nix-community", "repo": "home-manager", - "rev": "d2b6f2d154bf6b27a93ed895392f80c503df7cfa", + "rev": "4c08f65ab5105a55eed3fc9003f3e6874b69fe13", "type": "github" }, "original": { @@ -838,11 +838,11 @@ }, "nixlib": { "locked": { - "lastModified": 1687049841, - "narHash": "sha256-FBNZQfWtA7bb/rwk92mfiWc85x4hXta2OAouDqO5W8w=", + "lastModified": 1687654967, + "narHash": "sha256-ki8vItcjn8Z8n+QD9NEoCQbbbG7VzWy71hyOkFFwCkM=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "908af6d1fa3643c5818ea45aa92b21d6385fbbe5", + "rev": "b3ec8fb525fc0c8f08eff5ef93c684b4c6d0e777", "type": "github" }, "original": { @@ -859,11 +859,11 @@ ] }, "locked": { - "lastModified": 1687398392, - "narHash": "sha256-T6kc3NMTpGJk1/dve8PGupeVcxboEb78xtTKhe3LL/A=", + "lastModified": 1687743756, + "narHash": "sha256-WhDERdaMGX73CBxpDfoauKU2Z4NC10+/4khdBbpXjWs=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "649171f56a45af13ba693c156207eafbbbf7edfe", + "rev": "844ce2ab9a0ba819b30df1fff2c48c9b2b2344be", "type": "github" }, "original": { @@ -1066,11 +1066,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1687502512, - "narHash": "sha256-dBL/01TayOSZYxtY4cMXuNCBk8UMLoqRZA+94xiFpJA=", + "lastModified": 1687681650, + "narHash": "sha256-M2If+gRcfpmaJy/XbfSsRzLlPpoU4nr0NHnKKl50fd8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3ae20aa58a6c0d1ca95c9b11f59a2d12eebc511f", + "rev": "1c9db9710cb23d60570ad4d7ab829c2d34403de3", "type": "github" }, "original": { @@ -1081,11 +1081,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1686960236, - "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", + "lastModified": 1687502512, + "narHash": "sha256-dBL/01TayOSZYxtY4cMXuNCBk8UMLoqRZA+94xiFpJA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", + "rev": "3ae20aa58a6c0d1ca95c9b11f59a2d12eebc511f", "type": "github" }, "original": { @@ -1159,11 +1159,11 @@ }, "nixpkgs_stable": { "locked": { - "lastModified": 1687466461, - "narHash": "sha256-oupXI7g7RPzlpGUfAu1xG4KBK53GrZH8/xeKgKDB4+Q=", + "lastModified": 1687729501, + "narHash": "sha256-mTLkMePoHUWvTCf3NuKbeYEea/tsikSIKBWwb9OfRr4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ecb441f22067ba1d6312f4932a7c64efa8d19a7b", + "rev": "35130d4b4f0b8c50ed2aceb909a538c66c91d4a0", "type": "github" }, "original": { @@ -1180,11 +1180,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1687436522, - "narHash": "sha256-qVe/gt1qgVpr+kianMSpp3rQM6GTyYkJf3bM5k+Fr0k=", + "lastModified": 1687855346, + "narHash": "sha256-jC4IPURCQz38VKU9RgeU9+j49qdAYSVYhXZdfr+/Up4=", "owner": "pta2002", "repo": "nixvim", - "rev": "f43505d54fba9141a1f905e140980c3b431b0d1b", + "rev": "b15623e3908e90ef64c31633ca8d0cd8c73ac648", "type": "github" }, "original": { @@ -1195,11 +1195,11 @@ }, "nur": { "locked": { - "lastModified": 1687596377, - "narHash": "sha256-WmwCXiNvZoOdAaKFFzZQ2SIE0FGxfz+VVHAwyiYBJHY=", + "lastModified": 1687855182, + "narHash": "sha256-QrroBJ1lhh/vNbPWxVmSk1nyJszqOwAZ1MdwC+VwIfA=", "owner": "nix-community", "repo": "NUR", - "rev": "6ec87d8ba9fc4d280242d6c39952119d0e8e846c", + "rev": "b6d71a0534aa7ef33b061d3d1cf2c5a4969acd72", "type": "github" }, "original": { @@ -1264,11 +1264,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1686668298, - "narHash": "sha256-AADh9NqHh6X2LOem4BvI7oCkMm+JPCSCE7iIw5nn0VA=", + "lastModified": 1687251716, + "narHash": "sha256-+sFS41thsB5U+lY/dBYPSmU4AJ7nz/VdM1WD35fXVeM=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "5b6b54d3f722aa95cbf4ddbe35390a0af8c0015a", + "rev": "7807e1851d95828ed98491930d2d9e7ddbe65da4", "type": "github" }, "original": { diff --git a/nixos/common/desktop/home.nix b/nixos/common/desktop/home.nix index 67407df..b84eb64 100644 --- a/nixos/common/desktop/home.nix +++ b/nixos/common/desktop/home.nix @@ -41,27 +41,6 @@ in { direnv = true; }; - programs.exa = { - enable = true; - enableAliases = true; - }; - - programs.bat.enable = true; - - programs.git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userName = "Victor"; - userEmail = "victor@xirion.net"; - lfs.enable = true; - extraConfig = { - push.autoSetupRemote = true; - init.defaultBranch = "main"; - }; - - difftastic.enable = true; - }; - programs.firefox.enable = true; programs.chromium = { diff --git a/nixos/common/hm-modules/default.nix b/nixos/common/hm-modules/default.nix index 914008e..29d2e44 100644 --- a/nixos/common/hm-modules/default.nix +++ b/nixos/common/hm-modules/default.nix @@ -1 +1,3 @@ -{ ... }: { imports = [ ./catppuccin.nix ./nvim.nix ./riff.nix ./vscode.nix ]; } +{ ... }: { + imports = [ ./catppuccin.nix ./nvim.nix ./riff.nix ./vscode.nix ./git.nix ]; +} diff --git a/nixos/common/hm-modules/git.nix b/nixos/common/hm-modules/git.nix new file mode 100644 index 0000000..1237fcc --- /dev/null +++ b/nixos/common/hm-modules/git.nix @@ -0,0 +1,31 @@ +{ config, pkgs, lib, ... }: +with lib; +let cfg = config.programs.v.git; +in { + options.programs.v.git = { enable = mkEnableOption "git"; }; + config = mkIf cfg.enable { + programs.git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userName = "Victor"; + userEmail = "victor@xirion.net"; + lfs.enable = true; + extraConfig = { + push.autoSetupRemote = true; + init.defaultBranch = "main"; + # Git merge driver that always grabs upstream changes + # Useful for e.g. lock files + merge.theirs = { + name = "Keep Upstream Changes"; + driver = "cp -f '%B' '%A'"; + }; + }; + + difftastic.enable = true; + }; + + home.file.".config/git/attributes".text = '' + flake.lock merge=theirs + ''; + }; +} diff --git a/nixos/common/users/victor.nix b/nixos/common/users/victor.nix index 5147733..692ddd7 100644 --- a/nixos/common/users/victor.nix +++ b/nixos/common/users/victor.nix @@ -30,6 +30,7 @@ home.stateVersion = "23.05"; programs.v.nvim.enable = true; + programs.v.git.enable = true; programs.tmux = { enable = true; @@ -37,5 +38,13 @@ terminal = "screen-256color"; clock24 = true; }; + + programs.exa = { + enable = true; + enableAliases = true; + }; + + programs.bat.enable = true; + }; }