2022-01-23 01:32:58 +00:00
|
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
|
2022-11-05 22:03:58 +00:00
|
|
|
let
|
|
|
|
secretiveAuthSocket = "${config.home.homeDirectory}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
|
|
|
|
in
|
2022-01-23 01:32:58 +00:00
|
|
|
{
|
2022-09-15 21:17:21 +00:00
|
|
|
# Programs + packages with configuration --------------------------------------------------------------- {{{
|
2022-10-16 23:43:04 +00:00
|
|
|
home.sessionVariables = {
|
|
|
|
EDITOR = "hx";
|
2022-11-05 22:03:58 +00:00
|
|
|
} // lib.optionalAttrs pkgs.stdenv.isDarwin {
|
|
|
|
SSH_AUTH_SOCK = secretiveAuthSocket;
|
2022-10-16 23:43:04 +00:00
|
|
|
};
|
2022-01-23 01:32:58 +00:00
|
|
|
programs = {
|
|
|
|
# a nicer cat
|
|
|
|
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.bat.enable
|
|
|
|
bat = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
2022-09-15 21:17:21 +00:00
|
|
|
style = "auto";
|
2022-01-23 01:32:58 +00:00
|
|
|
};
|
|
|
|
};
|
2022-11-19 20:13:42 +00:00
|
|
|
# See `./shells.nix` for more on how this is used.
|
|
|
|
fish = {
|
|
|
|
functions = {
|
|
|
|
set-bat-colors = {
|
|
|
|
body = ''
|
|
|
|
if test "$term_background" = light
|
|
|
|
set -xg BAT_THEME "Monokai Extended Light"
|
|
|
|
else
|
|
|
|
set -xg BAT_THEME "TwoDark"
|
|
|
|
end
|
|
|
|
'';
|
|
|
|
onVariable = "term_background";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
interactiveShellInit = ''
|
|
|
|
# Set `bat` colors based on value of `$term_backdround` when shell starts up.
|
|
|
|
set-bat-colors
|
|
|
|
'';
|
|
|
|
};
|
2022-01-23 01:32:58 +00:00
|
|
|
# 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;
|
|
|
|
};
|
2022-09-04 17:39:34 +00:00
|
|
|
helix = {
|
|
|
|
enable = true;
|
2022-11-05 22:03:58 +00:00
|
|
|
package = pkgs.helix-flake;
|
|
|
|
settings = {
|
2022-11-19 17:36:37 +00:00
|
|
|
theme = "base16_transparent";
|
2022-11-05 22:03:58 +00:00
|
|
|
editor.indent-guides.render = true;
|
|
|
|
};
|
2022-09-04 17:39:34 +00:00
|
|
|
};
|
2022-09-26 02:34:46 +00:00
|
|
|
nix-index = {
|
|
|
|
enable = true;
|
|
|
|
enableFishIntegration = true;
|
|
|
|
};
|
2022-07-29 22:01:24 +00:00
|
|
|
ssh = {
|
|
|
|
enable = true;
|
2022-10-16 23:43:04 +00:00
|
|
|
matchBlocks."*".extraOptions = lib.optionalAttrs pkgs.stdenv.isDarwin {
|
2022-07-29 22:01:24 +00:00
|
|
|
UseKeychain = "yes";
|
|
|
|
AddKeysToAgent = "yes";
|
2022-11-05 22:03:58 +00:00
|
|
|
IdentityAgent = secretiveAuthSocket;
|
2022-07-29 22:01:24 +00:00
|
|
|
};
|
|
|
|
};
|
2022-04-21 01:26:30 +00:00
|
|
|
# vscode
|
2022-08-09 23:56:18 +00:00
|
|
|
vscode = {
|
2022-04-21 01:26:30 +00:00
|
|
|
enable = true;
|
2022-05-08 01:43:56 +00:00
|
|
|
# extensions = [ pijul-vscode ];
|
2022-04-21 01:26:30 +00:00
|
|
|
};
|
2022-01-23 01:32:58 +00:00
|
|
|
};
|
|
|
|
# }}}
|
|
|
|
|
|
|
|
# Other packages ----------------------------------------------------------------------------- {{{
|
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
2022-11-05 22:03:58 +00:00
|
|
|
# GUI apps
|
|
|
|
discord-ptb
|
|
|
|
element-desktop
|
|
|
|
# kitty
|
|
|
|
lagrange
|
|
|
|
obsidian
|
|
|
|
slack
|
|
|
|
zoom-us
|
|
|
|
|
2022-07-17 17:24:28 +00:00
|
|
|
# System
|
2022-01-23 01:32:58 +00:00
|
|
|
abduco # lightweight session management
|
2022-07-29 22:01:24 +00:00
|
|
|
atool # archive tool
|
2022-01-23 01:32:58 +00:00
|
|
|
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`
|
2022-02-05 21:53:35 +00:00
|
|
|
mosh # wrapper for `ssh` that better at not dropping connections
|
2022-01-23 01:32:58 +00:00
|
|
|
procs # fancy version of `ps`
|
2022-05-08 01:43:56 +00:00
|
|
|
pv # pipe progress viewer
|
2022-07-29 22:01:24 +00:00
|
|
|
rage # command line file encryption
|
2022-01-23 01:32:58 +00:00
|
|
|
thefuck
|
|
|
|
unrar # extract RAR archives
|
|
|
|
wget
|
|
|
|
xz # extract XZ archives
|
|
|
|
|
|
|
|
# Dev stuff
|
|
|
|
cloc # source code line counter
|
2022-07-04 22:00:05 +00:00
|
|
|
doctl # command line tools for digitalocean
|
2022-07-03 02:05:03 +00:00
|
|
|
flyctl # command line tools for fly.io
|
2022-07-17 17:24:28 +00:00
|
|
|
hyperfine # benchmarking tool
|
2022-01-24 00:04:06 +00:00
|
|
|
jq # json processor
|
2022-02-10 05:09:59 +00:00
|
|
|
pijul # alternative to `git`
|
2022-07-17 17:24:28 +00:00
|
|
|
ripgrep # better version of `grep`
|
|
|
|
tealdeer # rust implementation of `tldr`
|
|
|
|
xh # reimplementation of `httpie` in rust
|
|
|
|
|
2022-01-23 01:32:58 +00:00
|
|
|
# Useful nix related tools
|
|
|
|
cachix # adding/managing alternative binary caches hosted by Cachix
|
|
|
|
comma # run software from without installing it
|
2022-01-23 23:50:34 +00:00
|
|
|
nixpkgs-fmt
|
2022-01-23 01:32:58 +00:00
|
|
|
nix-prefetch-git
|
2022-07-11 02:08:44 +00:00
|
|
|
nix-tree
|
2022-01-23 01:32:58 +00:00
|
|
|
] ++ lib.optionals stdenv.isDarwin [
|
|
|
|
m-cli # useful macOS CLI commands
|
2022-07-24 19:58:03 +00:00
|
|
|
is-dark-mode # see /overlays/colors.nix
|
2022-01-23 01:32:58 +00:00
|
|
|
];
|
|
|
|
# }}}
|
2022-01-23 23:50:34 +00:00
|
|
|
}
|