From dfb22c985f4859c6f7639b306f68645b9c7648c4 Mon Sep 17 00:00:00 2001 From: jxnshi Date: Thu, 23 Jan 2025 13:33:05 +0100 Subject: [PATCH] Add home.nix --- configuration.nix | 54 +++++++++++++++++++---------------------------- flake.nix | 13 ++++++++++-- home.nix | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 34 deletions(-) create mode 100644 home.nix diff --git a/configuration.nix b/configuration.nix index 0b1b58a..03cf667 100644 --- a/configuration.nix +++ b/configuration.nix @@ -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; @@ -23,52 +24,34 @@ # 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 @@ -76,8 +59,18 @@ 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"; } diff --git a/flake.nix b/flake.nix index 8b90507..f4e1025 100644 --- 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 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"; +} -- 2.49.0