rix101/machines/nix-darwin/aarch64-darwin/limonka/home/pavelatanasov.nix
reo101 b74f10832c
chore(limonka): update config
Use `flake`'s overlays
Enable `git` `LFS`
Re-enable `pinentry-program` in `GPG` config
2024-01-21 23:43:51 +02:00

193 lines
4.2 KiB
Nix

{ inputs, outputs, lib, pkgs, config, ... }:
{
home = {
username = lib.mkForce "pavelatanasov";
homeDirectory = lib.mkForce "/Users/pavelatanasov";
stateVersion = "23.05";
};
# Add custom overlays
nixpkgs = {
overlays = builtins.attrValues outputs.overlays ++ [
inputs.neovim-nightly-overlay.overlay
inputs.zig-overlay.overlays.default
(final: prev: {
neovim-unwrapped =
let
liblpeg = final.stdenv.mkDerivation {
pname = "liblpeg";
inherit (final.luajitPackages.lpeg)
version meta src;
buildInputs = [
final.luajit
];
buildPhase = ''
sed -i makefile -e "s/CC = gcc/CC = clang/"
sed -i makefile -e "s/-bundle/-dynamiclib/"
make macosx
'';
installPhase = ''
mkdir -p $out/lib
mv lpeg.so $out/lib/lpeg.dylib
'';
nativeBuildInputs = [
final.fixDarwinDylibNames
];
};
in
prev.neovim-unwrapped.overrideAttrs (oldAttrs: rec {
# version = self.shortRev or "dirty";
version = oldAttrs.version or "dirty";
patches =
builtins.filter
(patch:
(
if builtins.typeOf patch == "set"
then baseNameOf patch.name
else baseNameOf
)
!= "use-the-correct-replacement-args-for-gsub-directive.patch")
(oldAttrs.patches or [ ]);
preConfigure = ''
sed -i cmake.config/versiondef.h.in -e 's/@NVIM_VERSION_PRERELEASE@/-dev-${version}/'
'';
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [
liblpeg
final.libiconv
];
});
})
];
};
# 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
fennel
fennel-language-server
# Dhall
dhall
# dhall-lsp-server
# Circom
circom
circom-lsp
# Nix
rnix-lsp
nil
nixd
# Mail
# himalaya
# 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;
};
wezterm = {
enable = true;
};
};
programs.git = {
enable = true;
userName = "reo101";
# userEmail = "pavel.atanasov@limechain.tech";
userEmail = "pavel.atanasov2001@gmail.com";
signing = {
signByDefault = true;
key = "675AA7EF13964ACB";
};
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)
'';
}