refactor(flake)!: machines -> hosts

This commit is contained in:
reo101 2024-07-27 13:04:48 +03:00
parent 703cd0264b
commit a881c5d7e1
Signed by: reo101
GPG key ID: 675AA7EF13964ACB
33 changed files with 52 additions and 45 deletions

View file

@ -0,0 +1,120 @@
{ inputs, outputs, lib, pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [ ];
# environment.darwinConfig = builtins.toString ./configuration.nix;
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix = let
flakeInputs = lib.filterAttrs (lib.const (lib.isType "flake")) inputs;
in {
# Ensure we can work with flakes
# TODO: add to `README.md`
# NOTE: run `sudo -i nix-env --uninstall nix` to uninstall the global `nix`
package = pkgs.nixVersions.monitored.latest;
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
registry = lib.mapAttrs (_: value: { flake = value; }) flakeInputs;
# This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome!
nixPath = lib.mapAttrsToList (key: value: "${key}=flake:${key}") flakeInputs;
# extraOptions = ''
# # Enable flakes and new 'nix' command
# experimental-features = nix-command flakes
# # Allow building multiple derivations in parallel
# max-jobs = auto
# # Deduplicate and optimize nix store
# auto-optimise-store = true
# # Keep outputs and derivations
# keep-outputs = true
# keep-derivations = true
# '';
settings = {
# Enable flakes and new 'nix' command
experimental-features = [
# "nix-command"
# "flakes"
# "no-url-literals" # Disabling URL literals
"ca-derivations" # Content-Addressable Derivations
"recursive-nix" # Recursive Nix
"flakes" # Flakes and related commands
"nix-command" # Experimental Nix commands
"auto-allocate-uids" # Automatic allocation of UIDs
"cgroups" # Cgroup support
# "daemon-trust-override" # Overriding daemon trust settings
# "dynamic-derivations" # Dynamic derivation support
# "discard-references" # Discarding build output references
"fetch-closure" # builtins.fetchClosure
"impure-derivations" # Impure derivations
];
# Allow building multiple derivations in parallel
max-jobs = "auto";
# Deduplicate and optimize nix store
auto-optimise-store = false;
# Keep outputs and derivations
keep-outputs = true;
keep-derivations = true;
trusted-users = [
"root"
"pavelatanasov"
];
# Add nix-community and rix101 cachix caches
substituters = [
"https://rix101.cachix.org"
"https://nix-community.cachix.org"
"https://lean4.cachix.org"
"https://nixpkgs-cross-overlay.cachix.org"
];
trusted-public-keys = [
"rix101.cachix.org-1:2u9ZGi93zY3hJXQyoHkNBZpJK+GiXQyYf9J5TLzCpFY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"lean4.cachix.org-1:mawtxSxcaiWE24xCXXgh3qnvlTkyU7evRRnGeAhD4Wk="
"nixpkgs-cross-overlay.cachix.org-1:TjKExGN4ys960TlsGqNOI/NBdoz2Jdr2ow1VybWV5JM="
];
};
};
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina
# Fonts
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
reo101 = {
system = {
enable = true;
};
brew = {
enable = true;
};
yabai = {
enable = true;
};
};
# Keyboard
system.keyboard.enableKeyMapping = true;
system.keyboard.remapCapsLockToEscape = true;
# Add ability to used TouchID for sudo authentication
security.pam.enableSudoTouchIdAuth = true;
# Used for backwards compatibility, please read the changelog before changing.
# > darwin-rebuild changelog
system.stateVersion = 4;
}

View file

@ -0,0 +1,162 @@
{ inputs, outputs, lib, pkgs, config, ... }:
{
home = {
username = lib.mkForce "pavelatanasov";
homeDirectory = lib.mkForce "/Users/pavelatanasov";
stateVersion = "23.05";
};
# Set env vars
home.sessionVariables = {
EDITOR = "nvim";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
home.packages = with pkgs; [
# WM
yabai
skhd
# Discord
discord
# Shell
btop
ripgrep
zellij
# Neovim
neovim
# (neovim.overrideAttrs (oldAttrs: {
# lua = luajitcoroutineclone;
# }))
(pkgs.writeShellScriptBin "lua" "exec -a $0 ${luajitPackages.nlua}/bin/nlua $@")
# luajitPackages.nlua
fennel
# fennel-language-server
fennel-ls
git
gh
# (gnumake.override { guileSupport = true; })
gnumake
# # Emacs
# (emacs-unstable.override {
# withGTK3 = true;
# :
# })
# Dhall
# dhall
# dhall-lsp-server
# Circom
# circom
# circom-lsp
# Nix
nil
# nixd
nurl
# Mail
# himalaya
# Java
graalvm-ce
# SSH and GPG
openssh
gnupg
pinentry_mac
(pass.withExtensions (extensions: with extensions; [
pass-otp
]))
# GCP
google-cloud-sdk
# FMI
vim-fmi-cli
# Zig
zigpkgs.master
inputs.zls-overlay.packages.${pkgs.system}.default
# Android
android-tools
];
reo101 = {
shell = {
enable = true;
shells = [ "nushell" "zsh" ];
starship = true;
atuin = true;
direnv = true;
zoxide = true;
};
scm = {
git.enable = true;
jj.enable = true;
};
wezterm = {
enable = true;
};
spotify = {
enable = false;
};
};
# programs.git = {
# enable = true;
# userName = "reo101";
# # userEmail = "pavel.atanasov@limechain.tech";
# userEmail = "pavel.atanasov2001@gmail.com";
# signing = {
# signByDefault = true;
# key = "675AA7EF13964ACB";
# };
# # init.defaultBranch = "master";
# lfs = {
# enable = true;
# };
# };
home.file.".gnupg/gpg-agent.conf" = {
text = ''
allow-preset-passphrase
max-cache-ttl 86400
default-cache-ttl 86400
enable-ssh-support
pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac
# pinentry-program /usr/local/opt/pinentry-touchid/bin/pinentry-touchid
'';
};
home.file.".gnupg/sshcontrol" = {
text = ''
CFDE97EDC2FDB2FD27020A084F1E3F40221BAFE7
'';
};
programs.zsh.initExtra = ''
# if [ "''${SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
# export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
# fi
# if [ -z "$SSH_AUTH_SOCK" ]; then
# export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
# fi
unset SSH_AGENT_PID
export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
gpg-connect-agent updatestartuptty /bye >/dev/null
export GPG_TTY=$(tty)
'';
}