-{ 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
# Experimental features.
nix.settings.experimental-features = "nix-command flakes";
- # SSH.
- programs.ssh.startAgent = true;
-
# State version.
system.stateVersion = "24.11";
}
{
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 ];
};
};
--- /dev/null
+{ 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";
+}