diff --git a/flake.lock b/flake.lock index e33fb64..3920ac5 100644 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ ] }, "locked": { - "lastModified": 1756022458, - "narHash": "sha256-J1i35r4HfNDdPpwL0vOBaZopQudAUVtartEerc1Jryc=", + "lastModified": 1758545873, + "narHash": "sha256-0VP5cVd6DyibHNPC/IJ5Ut+KuNYUeKmr5ltzf+IcpjA=", "owner": "nix-community", "repo": "home-manager", - "rev": "9e3a33c0bcbc25619e540b9dfea372282f8a9740", + "rev": "de5369834ff1f75246c46be89ef993392e961c26", "type": "github" }, "original": { @@ -64,11 +64,11 @@ ] }, "locked": { - "lastModified": 1754100706, - "narHash": "sha256-ctRwk+Fjl/jxN+J6GjD9pYmnyHvgR2ub04q1pXeaAho=", + "lastModified": 1758506415, + "narHash": "sha256-nM3vIhN+dRm37VsaDLtnvYrTSJ44RxetY3rzJVT9Z7c=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "1656ec240ab8de9f78eba6f38c5ae5f0d5c6d936", + "rev": "d7cdbfe6c5f85827da2e10bc0c093e2808c341ec", "type": "github" }, "original": { @@ -79,11 +79,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1753122741, - "narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=", + "lastModified": 1757943327, + "narHash": "sha256-w6cDExPBqbq7fTLo4dZ1ozDGeq3yV6dSN4n/sAaS6OM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22", + "rev": "67a709cfe5d0643dafd798b0b613ed579de8be05", "type": "github" }, "original": { @@ -95,11 +95,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1753939845, - "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", + "lastModified": 1758277210, + "narHash": "sha256-iCGWf/LTy+aY0zFu8q12lK8KuZp7yvdhStehhyX1v8w=", "owner": "nixos", "repo": "nixpkgs", - "rev": "94def634a20494ee057c76998843c015909d6311", + "rev": "8eaee110344796db060382e15d3af0a9fc396e0e", "type": "github" }, "original": { @@ -126,11 +126,11 @@ ] }, "locked": { - "lastModified": 1752544651, - "narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=", + "lastModified": 1758425756, + "narHash": "sha256-L3N8zV6wsViXiD8i3WFyrvjDdz76g3tXKEdZ4FkgQ+Y=", "owner": "Mic92", "repo": "sops-nix", - "rev": "2c8def626f54708a9c38a5861866660395bb3461", + "rev": "e0fdaea3c31646e252a60b42d0ed8eafdb289762", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ad78100..c336cef 100644 --- a/flake.nix +++ b/flake.nix @@ -59,7 +59,7 @@ # Specify your home configuration modules here, for example, # the path to your home.nix. - modules = [ ./home.nix ]; + modules = [ ./homes/scalizer ]; # Optionally use extraSpecialArgs # to pass through arguments to home.nix diff --git a/homes/me/default.nix b/homes/me/default.nix new file mode 100644 index 0000000..56e8f4a --- /dev/null +++ b/homes/me/default.nix @@ -0,0 +1,130 @@ +{ config, pkgs, ... }: + +{ + + home.stateVersion = "25.05"; # Please read the comment before changing. + + programs.bash.enable = true; + + programs.fish = { + enable = true; + }; + + programs.git = { + enable = true; + userName = "Julien Hémono"; + userEmail = "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 = { + enable = true; + nativeMessagingHosts = with pkgs; [ passff-host ]; + }; + + programs.browserpass.enable = true; + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = with pkgs; let + tex = texlive.combine { + inherit (texlive) + scheme-basic + moderncv + fontawesome5 + pgf # For tikz.sty + multirow + arydshln; + }; + my-vscode = vscode-with-extensions.override { + vscodeExtensions = with vscode-marketplace; [ + ms-python.python + ms-python.vscode-pylance + ms-python.debugpy + ms-python.black-formatter + ms-python.isort + ms-vscode-remote.remote-containers + github.copilot + github.copilot-chat + dbaeumer.vscode-eslint + ]; + }; + in [ + chromium + docker-compose + drawing + hunspell + hunspellDicts.fr-classique + # inkscape + libreoffice-fresh + my-vscode + # nixfmt + pass-wayland + pwgen + # scribus + tex + + # General development + # dbeaver-bin + devenv + # poetry + pre-commit + # 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/home.nix b/homes/scalizer/default.nix similarity index 100% rename from home.nix rename to homes/scalizer/default.nix diff --git a/hosts/gwiad/configuration.nix b/hosts/gwiad/configuration.nix index 8606f64..8a02f1a 100644 --- a/hosts/gwiad/configuration.nix +++ b/hosts/gwiad/configuration.nix @@ -8,6 +8,7 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + ./home.nix # Services ./btrbk.nix ./syncthing.nix @@ -41,64 +42,10 @@ ]; }; - # User account - users.users.jhemono = { - isNormalUser = true; - uid = 1000; - extraGroups = [ "wheel" ]; # Enable 'sudo' for the user. - packages = with pkgs; let - tex = texlive.combine { - inherit (texlive) - scheme-basic - moderncv - fontawesome5 - pgf # For tikz.sty - multirow - arydshln; - }; - my-vscode = vscode-with-extensions.override { - vscodeExtensions = with vscode-marketplace; [ - ms-python.python - ms-python.vscode-pylance - ms-python.debugpy - ms-python.black-formatter - ms-python.isort - ms-vscode-remote.remote-containers - github.copilot - github.copilot-chat - dbaeumer.vscode-eslint - ]; - }; - in [ - chromium - docker-compose - drawing - hunspell - hunspellDicts.fr-classique - # inkscape - libreoffice-fresh - my-vscode - # nixfmt - pass-wayland - pwgen - # scribus - tex - - # General development - # dbeaver-bin - # poetry - pre-commit - # nodejs - uv - ]; - }; - users.groups.jhemono.gid = 1000; - # System packages environment.systemPackages = with pkgs; [ android-tools bc - devenv git htop jq @@ -111,12 +58,6 @@ zip ]; - programs.firefox = { - enable = true; - nativeMessagingHosts.packages = with pkgs; [ passff-host ]; - }; - programs.browserpass.enable = true; - virtualisation.docker.rootless = { enable = true; setSocketVariable = true; @@ -131,12 +72,12 @@ services.xserver = { enable = true; xkb.layout = "fr"; - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; excludePackages = with pkgs; [ xterm ]; }; + services.displayManager.gdm.enable = true; + services.desktopManager.gnome.enable = true; environment.gnome.excludePackages = with pkgs; [ epiphany geary @@ -147,15 +88,19 @@ environment.variables.EDITOR = "vim"; # Nix configuration - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 7d"; + nix = { + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 7d"; + }; + settings = { + experimental-features = [ "nix-command" "flakes" ]; + auto-optimise-store = true; + trusted-users = [ "jhemono" ]; + }; + channel.enable = false; }; - nix.settings.auto-optimise-store = true; - nix.settings.trusted-users = [ "jhemono" ]; - nix.channel.enable = false; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. diff --git a/hosts/gwiad/home.nix b/hosts/gwiad/home.nix new file mode 100644 index 0000000..ca921ef --- /dev/null +++ b/hosts/gwiad/home.nix @@ -0,0 +1,25 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +{ config, lib, pkgs, inputs, outputs, ... }: + +{ + imports = [ + inputs.home-manager.nixosModules.home-manager + ]; + + users.users.jhemono = { + isNormalUser = true; + uid = 1000; + extraGroups = [ "wheel" ]; # Enable 'sudo' for the user. + }; + users.groups.jhemono.gid = 1000; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "bak"; + users.jhemono = ../../homes/me; + }; +}