diff --git a/homes/common/base.nix b/homes/common/base.nix new file mode 100644 index 0000000..0f0a003 --- /dev/null +++ b/homes/common/base.nix @@ -0,0 +1,10 @@ +{ config, pkgs, ... }: +{ + + programs.bash.enable = true; + + programs.fish = { + enable = true; + }; + +} diff --git a/homes/common/default.nix b/homes/common/default.nix new file mode 100644 index 0000000..6cab159 --- /dev/null +++ b/homes/common/default.nix @@ -0,0 +1,11 @@ +{ ... }: +{ + + imports = [ + ./user-info.nix + ./base.nix + ./editor.nix + ./vc.nix + ]; + +} diff --git a/homes/common/editor.nix b/homes/common/editor.nix new file mode 100644 index 0000000..441f4f0 --- /dev/null +++ b/homes/common/editor.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: +{ + + programs.helix = { + enable = true; + defaultEditor = true; + }; + +} diff --git a/homes/common/user-info.nix b/homes/common/user-info.nix new file mode 100644 index 0000000..96f8bd1 --- /dev/null +++ b/homes/common/user-info.nix @@ -0,0 +1,18 @@ +{ lib, ... }: +{ + + options.user.info = { + name = lib.mkOption { + type = lib.types.str; + }; + email = lib.mkOption { + type = lib.types.str; + }; + }; + + config.user.info = { + name = lib.mkDefault "Julien Hémono"; + email = lib.mkDefault "julien@hemono.fr"; + }; + +} diff --git a/homes/common/vc.nix b/homes/common/vc.nix new file mode 100644 index 0000000..9bbb8a3 --- /dev/null +++ b/homes/common/vc.nix @@ -0,0 +1,29 @@ +{ config, pkgs, ... }: +{ + + programs.git = { + enable = true; + settings = { + user = { + email = config.user.info.email; + name = config.user.info.name; + }; + }; + }; + + programs.jujutsu = { + enable = true; + settings = { + user = { + email = config.user.info.email; + name = config.user.info.name; + }; + ui.default-command = "log"; + }; + }; + + programs.gh = { + enable = true; + }; + +} diff --git a/homes/me/default.nix b/homes/me/default.nix index 37cd2dd..e0f747d 100644 --- a/homes/me/default.nix +++ b/homes/me/default.nix @@ -2,44 +2,12 @@ { + imports = [ + ../common + ]; + home.stateVersion = "25.05"; # Please read the comment before changing. - programs.bash.enable = true; - - programs.fish = { - enable = true; - }; - - programs.git = { - enable = true; - settings = { - user = { - name = "Julien Hémono"; - email = "julien@hemono.fr"; - }; - }; - }; - - programs.jujutsu = { - enable = true; - settings = { - user = { - email = "julien@hemono.fr"; - name = "Julien Hémono"; - }; - ui.default-command = "log"; - }; - }; - - programs.gh = { - enable = true; - }; - - programs.helix = { - enable = true; - defaultEditor = true; - }; - programs.uv.enable = true; programs.firefox = { @@ -97,38 +65,4 @@ # nodejs ]; - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/julien/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - }; - } diff --git a/homes/scalizer/default.nix b/homes/scalizer/default.nix index 5d94bf7..08b24ba 100644 --- a/homes/scalizer/default.nix +++ b/homes/scalizer/default.nix @@ -1,50 +1,17 @@ { config, pkgs, ... }: { - # Home Manager needs a bit of information about you and the paths it should - # manage. + + imports = [ + ../common + ]; + home.username = "julien"; home.homeDirectory = "/home/julien"; - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "25.05"; # Please read the comment before changing. + home.stateVersion = "25.05"; - programs.bash.enable = true; - programs.fish = { - enable = true; - }; - - programs.git = { - enable = true; - userName = "Julien Hémono"; - userEmail = "julien@scalizer.fr"; - }; - - programs.jujutsu = { - enable = true; - settings = { - user = { - email = "julien@scalizer.fr"; - name = "Julien Hémono"; - }; - ui.default-command = "log"; - }; - }; - - programs.gh = { - enable = true; - }; - - programs.helix = { - enable = true; - defaultEditor = true; - }; + user.info.email = "julien@scalizer.fr"; programs.uv.enable = true; @@ -52,46 +19,9 @@ enable = true; }; - # The home.packages option allows you to install Nix packages into your - # environment. home.packages = with pkgs; [ ]; - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/julien/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - # EDITOR = "emacs"; - }; - # Let Home Manager install and manage itself. programs.home-manager.enable = true; services.home-manager.autoExpire.enable = true;