[WIP] Refactor nix config
This commit is contained in:
13
newnix/hosts/home/nix/home.nix
Normal file
13
newnix/hosts/home/nix/home.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.username = "martin";
|
||||
home.homeDirectory = "/Users/martin";
|
||||
|
||||
home.stateVersion = "24.05"; # Please read the comment before changing.
|
||||
|
||||
programs.git = {
|
||||
userName = "Martin";
|
||||
userEmail = "git@pander-on.de";
|
||||
};
|
||||
}
|
||||
71
newnix/hosts/home/nixos/configuration.nix
Normal file
71
newnix/hosts/home/nixos/configuration.nix
Normal file
@@ -0,0 +1,71 @@
|
||||
# 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`).
|
||||
|
||||
# NixOS-WSL specific options are documented on the NixOS-WSL repository:
|
||||
# https://github.com/nix-community/NixOS-WSL
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
wsl.enable = true;
|
||||
wsl.defaultUser = "pan";
|
||||
wsl.interop.register = true;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It's perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
networking.hostName = "nix";
|
||||
#networking.networkmanager.enable = true;
|
||||
|
||||
time.timeZone = "Europe/Berlin"; # Adjust to your timezone
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
users.users.pan = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
uid = 1000;
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
|
||||
# Automatic Store Optimization
|
||||
nix.settings.auto-optimise-store = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
wget
|
||||
curl
|
||||
vim
|
||||
];
|
||||
}
|
||||
48
newnix/hosts/home/nixos/flake.nix
Normal file
48
newnix/hosts/home/nixos/flake.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
description = "NixOS-WSL configuration for pan";
|
||||
|
||||
inputs = {
|
||||
# Use nixos-unstable for latest packages
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
# NixOS-WSL for WSL-specific functionality
|
||||
nixos-wsl = {
|
||||
url = "github:nix-community/NixOS-WSL";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Home Manager for user configuration
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixos-wsl, home-manager, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
# Use your hostname: "nix"
|
||||
nix = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
# NixOS-WSL module
|
||||
nixos-wsl.nixosModules.wsl
|
||||
|
||||
# System configuration
|
||||
./configuration.nix
|
||||
|
||||
# Home Manager as NixOS module
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.pan = import ./home.nix;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
30
newnix/hosts/work/nix/home.nix
Normal file
30
newnix/hosts/work/nix/home.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.username = "pan";
|
||||
home.homeDirectory = "/home/pan";
|
||||
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
|
||||
programs.git.settings.user = {
|
||||
name = "Martin Pander";
|
||||
email = "martin.pander@knowtion.de";
|
||||
};
|
||||
|
||||
programs.jujutsu.settings.user = {
|
||||
name = "Martin Pander";
|
||||
email = "martin.pander@knowtion.de";
|
||||
};
|
||||
|
||||
|
||||
home.packages = with pkgs; [
|
||||
yaml-language-server
|
||||
marksman
|
||||
dockerfile-language-server
|
||||
];
|
||||
|
||||
programs.zsh.profileExtra = ''
|
||||
source $HOME/.profile
|
||||
'';
|
||||
|
||||
}
|
||||
64
newnix/hosts/work/nixos/configuration.nix
Normal file
64
newnix/hosts/work/nixos/configuration.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
wsl.enable = true;
|
||||
wsl.defaultUser = "pan";
|
||||
wsl.interop.register = true;
|
||||
|
||||
networking.hostName = "nix";
|
||||
#networking.networkmanager.enable = true;
|
||||
|
||||
time.timeZone = "Europe/Berlin"; # Adjust to your timezone
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
users.users.pan = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
uid = 1000;
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
|
||||
# Automatic Store Optimization
|
||||
nix.settings.auto-optimise-store = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
wget
|
||||
curl
|
||||
vim
|
||||
];
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It's perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
}
|
||||
48
newnix/hosts/work/nixos/flake.nix
Normal file
48
newnix/hosts/work/nixos/flake.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
description = "NixOS-WSL configuration for pan";
|
||||
|
||||
inputs = {
|
||||
# Use nixos-unstable for latest packages
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
# NixOS-WSL for WSL-specific functionality
|
||||
nixos-wsl = {
|
||||
url = "github:nix-community/NixOS-WSL";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Home Manager for user configuration
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixos-wsl, home-manager, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
# Use your hostname: "nix"
|
||||
nix = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
# NixOS-WSL module
|
||||
nixos-wsl.nixosModules.wsl
|
||||
|
||||
# System configuration
|
||||
./configuration.nix
|
||||
|
||||
# Home Manager as NixOS module
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.pan = import ./home.nix;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
45
newnix/hosts/work/nixos/home.nix
Normal file
45
newnix/hosts/work/nixos/home.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./modules/home/default.nix
|
||||
./modules/tmux.nix
|
||||
./modules/git.nix
|
||||
./modules/dev.nix
|
||||
./modules/nvim.nix
|
||||
./modules/task.nix
|
||||
];
|
||||
|
||||
# User details
|
||||
home.username = "pan";
|
||||
home.homeDirectory = "/home/pan";
|
||||
|
||||
# Git and Jujutsu user configuration
|
||||
programs.git.settings.user = {
|
||||
name = "Martin Pander";
|
||||
email = "martin.pander@knowtion.de";
|
||||
};
|
||||
|
||||
programs.jujutsu.settings.user = {
|
||||
name = "Martin Pander";
|
||||
email = "martin.pander@knowtion.de";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
nix-ld
|
||||
];
|
||||
|
||||
# NIX_LD settings for running non-Nix binaries
|
||||
# home.sessionVariables = {
|
||||
# NIX_LD_LIBRARY_PATH = with pkgs; lib.makeLibraryPath [
|
||||
# stdenv.cc.cc
|
||||
# zlib
|
||||
# ];
|
||||
# NIX_LD = lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker";
|
||||
# };
|
||||
|
||||
# This value determines the Home Manager release which the configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
# introduces backwards incompatible changes.
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
Reference in New Issue
Block a user