refactor: organize hosts configs into dedicated directory

- Move and rename host-specific configurations (e.g., wsl to hosts/wsl)
- Add home.nix files for mbp and wsl, importing common modules
- Update mbp flake.nix path to new hosts/mbp/configuration.nix
- Integrate home-manager for user environments on macOS/WSL
- Update flake.lock inputs (nixpkgs, home-manager, homebrew) for latest versions
- Add README.md with project overview and setup instructions

This restructures the repo for multi-host support, improves modularity, and ensures reproducible builds with updated dependencies.
This commit is contained in:
Den Afanasyev 2025-10-12 00:38:28 +03:00
parent 42b2706505
commit 665a701aaa
21 changed files with 331 additions and 418 deletions

73
hosts/mbp/configuration.nix Executable file
View file

@ -0,0 +1,73 @@
{ config, lib, pkgs, ... }:
{
#Disable nix managment, since we use nix-determinate
nix.enable = false;
imports = [
../../modules/homebrew.nix
];
homebrew = {
enable = true;
onActivation.autoUpdate = true;
onActivation.upgrade = true;
#onActivation.cleanup = "zap";
casks = [
"bettermouse"
"telegram"
"meta"
"cryptomator"
"citrix-workspace"
"mullvad-vpn"
"vscodium"
"obs"
"arc"
"tailscale-app"
"blender"
"UTM"
"Keka"
"Secretive"
"Obsidian"
"Discord"
"Element"
"IINA"
"ghostty"
"orion"
];
masApps = {
"Bitwarden" = 1352778147;
"DropOver" = 1355679052;
"Yubico Authenticator" = 1497506650;
};
};
system.primaryUser = "duumxh";
users.users.duumxh.home = "/Users/duumxh";
security.pam.services.sudo_local.touchIdAuth = true;
system.stateVersion = 5;
system.defaults = {
screencapture.type = "png";
dock = {
autohide = true;
autohide-delay = 0.0;
mineffect = "scale";
minimize-to-application = true;
mru-spaces = false;
show-recents = false;
tilesize = 40;
};
finder = {
AppleShowAllFiles = true;
AppleShowAllExtensions = true;
ShowPathbar = true;
ShowStatusBar = true;
};
};
nixpkgs.hostPlatform = "aarch64-darwin";
}

22
hosts/mbp/home.nix Executable file
View file

@ -0,0 +1,22 @@
{ config, pkgs, lib, ... }:
{
imports = [
../../modules/common.nix
../../modules/programs/bat.nix
../../modules/programs/eza.nix
../../modules/programs/fzf.nix
../../modules/programs/git.nix
../../modules/programs/k9s.nix
../../modules/programs/micro.nix
../../modules/programs/ssh.nix
../../modules/programs/zoxide.nix
../../modules/programs/zsh.nix
];
programs.zsh = {
localVariables = {
SSH_AUTH_SOCK = "/Users/duumxh/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
};
};
}

29
hosts/wsl/configuration.nix Executable file
View file

@ -0,0 +1,29 @@
# 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, ... }:
{
nix.settings.experimental-features = [ "nix-command" "flakes" ];
wsl.defaultUser = "duumxh";
wsl.interop.register = true;
programs.zsh.enable = true;
users.users.duumxh = {
isNormalUser = true;
shell = pkgs.zsh;
};
# 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?
}

21
hosts/wsl/home.nix Executable file
View file

@ -0,0 +1,21 @@
{
config,
pkgs,
lib,
...
}:
{
imports = [
../../modules/common.nix
../../modules/programs/bat.nix
../../modules/programs/eza.nix
../../modules/programs/fzf.nix
../../modules/programs/git.nix
../../modules/programs/k9s.nix
../../modules/programs/micro.nix
../../modules/programs/ssh.nix
../../modules/programs/zoxide.nix
../../modules/programs/zsh.nix
];
}