{ config, pkgs, lib, ... }: let secretiveAuthSocket = "${config.home.homeDirectory}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh"; in { # Programs + packages with configuration --------------------------------------------------------------- {{{ home.sessionVariables = lib.optionalAttrs pkgs.stdenv.isDarwin { SSH_AUTH_SOCK = secretiveAuthSocket; }; programs = { # a nicer cat # https://rycee.gitlab.io/home-manager/options.html#opt-programs.bat.enable bat = { enable = true; config = { style = "auto"; }; }; # Direnv, load and unload environment variables depending on the current directory. # https://direnv.net # https://rycee.gitlab.io/home-manager/options.html#opt-programs.direnv.enable direnv = { enable = true; nix-direnv.enable = true; }; nix-index = { enable = true; enableFishIntegration = true; }; ssh = { enable = true; matchBlocks."*".extraOptions = lib.optionalAttrs pkgs.stdenv.isDarwin { UseKeychain = "yes"; AddKeysToAgent = "yes"; IdentityAgent = secretiveAuthSocket; }; }; # vscode vscode = { enable = true; # extensions = [ pijul-vscode ]; }; }; # }}} # Other packages ----------------------------------------------------------------------------- {{{ home.packages = with pkgs; [ # GUI apps discord-ptb element-desktop lagrange obsidian slack zoom-us # System abduco # lightweight session management atool # archive tool bottom # fancy version of `top` with ASCII graphs coreutils curl du-dust # fancy version of `du` exa # fancy version of `ls` fd # fancy version of `find` mosh # wrapper for `ssh` that better at not dropping connections procs # fancy version of `ps` pv # pipe progress viewer rage # command line file encryption thefuck unrar # extract RAR archives wget xz # extract XZ archives # Dev stuff cloc # source code line counter doctl # command line tools for digitalocean flyctl # command line tools for fly.io hyperfine # benchmarking tool jq # json processor pijul # alternative to `git` ripgrep # better version of `grep` tealdeer # rust implementation of `tldr` xh # reimplementation of `httpie` in rust # Useful nix related tools cachix # adding/managing alternative binary caches hosted by Cachix comma # run software from nixpkgs without installing it nixpkgs-fmt nix-prefetch-git nix-tree nil # nix language server ] ++ lib.optionals stdenv.isDarwin [ m-cli # useful macOS CLI commands is-dark-mode # see /overlays/colors.nix ]; # }}} }