]> jxnshi.xyz Git - nix-config.git/commitdiff
Add home.nix
authorjxnshi <jxnshi@proton.me>
Thu, 23 Jan 2025 12:33:05 +0000 (13:33 +0100)
committerjxnshi <jxnshi@proton.me>
Thu, 23 Jan 2025 12:33:05 +0000 (13:33 +0100)
configuration.nix
flake.nix
home.nix [new file with mode: 0644]

index 0b1b58ac15d69b25ee19eea1365cc4a23283f8bf..03cf667e5bac9bd8fd68a26d7025fdbaf3cf20d4 100644 (file)
@@ -1,13 +1,14 @@
-{ config, lib, pkgs, ... }:
+{ inputs, config, pkgs, ... }:
 
 {
     imports = [
-      ./hardware-configuration.nix
+        ./hardware-configuration.nix
+        inputs.home-manager.nixosModules.home-manager
     ];
   
     # LUKS.
     boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ];
-    boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/NIXOS_LUKS";
+    boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-label/NIXOS_LUKS";
 
     hardware.enableAllFirmware = true;
 
     # Timezone.
     time.timeZone = "Europe/Paris";
 
-    # Select internationalisation properties.
+    # Internationalisation properties.
     i18n.defaultLocale = "en_US.UTF-8";
-    # console = {
-    #   font = "Lat2-Terminus16";
-    #   keyMap = "us";
-    #   useXkbConfig = true; # use xkb.options in tty.
-    # };
 
     # X11.
     services.xserver.enable = true; 
     services.xserver.xkb.layout = "us";
 
-    # Window manager.
-    services.xserver.windowManager.dwm.enable = true;
-
-    services.xserver.windowManager.dwm.package = pkgs.dwm.overrideAttrs {
-        src = pkgs.fetchgit {
-            url = "git://jxnshi.xyz/dwm-config.git";
-            hash = "sha256-TRyxbLSDw96azNbP2uV86LL6GPr4uC1yvzKwSzFM7NM=";
-        };
-    };
-
     # Pipewire.
     services.pipewire.enable = true;
     services.pipewire.pulse.enable = true;
 
+    # Home manager.
+    home-manager.extraSpecialArgs = { inherit inputs; };
+    home-manager.users.jxnshi = import ./home.nix;
+
     # Users.
     users.users.jxnshi.isNormalUser = true;
     users.users.jxnshi.extraGroups = [ "networkmanager" "wheel" ];
 
     users.users.jxnshi.packages = with pkgs; [
         dwm        # Window manager.
-        helix      # Text editor.
         librewolf  # Web browser.
         st         # Terminal emulator.
         monero-gui # Monero wallet.
 
-        # Programming languages.
-        odin
-        zig
-
         # Misc.
         dmenu
-        gcc
-        git
-        gnumake
+        home-manager
         syncthing
         tree
         xclip
 
     nixpkgs.config.allowUnfree = true;
 
-    # Firefox.
-    programs.firefox.enable = true;
+    # Window manager.
+    services.xserver.windowManager.dwm.enable = true;
+
+    services.xserver.windowManager.dwm.package = pkgs.dwm.overrideAttrs {
+        src = pkgs.fetchgit {
+            url = "git://jxnshi.xyz/dwm-config.git";
+            hash = "sha256-TRyxbLSDw96azNbP2uV86LL6GPr4uC1yvzKwSzFM7NM=";
+        };
+    };
+
+    # SSH.
+    programs.ssh.startAgent = true;
 
     environment.systemPackages = with pkgs; [
         vim
@@ -90,9 +83,6 @@
     # Experimental features.
     nix.settings.experimental-features = "nix-command flakes";
 
-    # SSH.
-    programs.ssh.startAgent = true;
-
     # State version.
     system.stateVersion = "24.11";
 }
index 8b905077376a9c96f2af63a503081110eb23a9d3..f4e10256f9eb9296ce11d9203a5ec5bafa2973f8 100644 (file)
--- a/flake.nix
+++ b/flake.nix
@@ -1,11 +1,20 @@
 {
     description = "My nix config";
+
     inputs = {
         nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
+
+        home-manager.url = "github:nix-community/home-manager/release-24.11";
+        home-manager.inputs.nixpkgs.follows = "nixpkgs";
     };
-    outputs = inputs@{ self, nixpkgs, ... }: {
+
+        outputs = { self, nixpkgs, ... }@inputs:
+    let
+        system = "x86_64-linux";
+    in
+    {
         nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
-            system = "x86_64-linux";
+            specialArgs = { inherit inputs system; };
             modules = [ ./configuration.nix ];
         };
     };
diff --git a/home.nix b/home.nix
new file mode 100644 (file)
index 0000000..32b6d3c
--- /dev/null
+++ b/home.nix
@@ -0,0 +1,44 @@
+{ config, pkgs, ... }:
+
+{
+    home.username = "jxnshi";
+    home.homeDirectory = "/home/jxnshi";
+
+    home.stateVersion = "24.05";
+
+    home.packages = [
+        pkgs.helix # Text editor.
+
+        # Misc.
+        pkgs.git
+    ];
+
+    home.file = {};
+
+    home.sessionVariables = {
+        EDITOR = "hx";
+    };
+
+    programs.home-manager.enable = true;
+
+    # Helix.
+    programs.helix.enable = true;
+
+    programs.helix.settings.theme = "dark_plus";
+    programs.helix.settings.editor.line-number = "relative";
+    programs.helix.settings.editor.rulers = [80];
+
+    programs.helix.languages.language = [
+        {
+            name = "nix";
+            indent.tab-width = 4;
+            indent.unit = "    ";
+        }
+    ];
+
+    # Git.
+    programs.git.enable = true;
+
+    programs.git.userEmail = "jxnshi@proton.me";
+    programs.git.userName = "jxnshi";
+}