311 lines
5.7 KiB
Nix
311 lines
5.7 KiB
Nix
{ config, pkgs, lib, nixosConfig, inputs, std, ... }:
|
|
|
|
with builtins;
|
|
let
|
|
inherit (nixosConfig.networking) hostName;
|
|
host-config = ./machines + "/${hostName}.nix";
|
|
h = config.home.homeDirectory;
|
|
|
|
editor-script = pkgs.writeScriptBin "edit" ''
|
|
#!${pkgs.zsh}/bin/zsh
|
|
${config.programs.emacs.package}/bin/emacsclient -t $*
|
|
'';
|
|
in {
|
|
programs.home-manager.enable = true;
|
|
|
|
imports = [ ./modules ./profiles ]
|
|
++ lib.lists.optional (pathExists host-config) host-config;
|
|
|
|
home.username = "jez";
|
|
|
|
home.stateVersion = "20.09";
|
|
|
|
home.packages = with pkgs;
|
|
let
|
|
python = (python3.withPackages (py:
|
|
with py; [
|
|
ipython
|
|
sh
|
|
invoke
|
|
cookiecutter
|
|
pyflakes
|
|
black
|
|
isort
|
|
arrow
|
|
numpy
|
|
pandas
|
|
requests
|
|
httpx
|
|
furl
|
|
jupyterlab
|
|
])).override (args: { ignoreCollisions = true; });
|
|
ghc = haskellPackages.ghcWithPackages (pkgs: [ pkgs.tidal ]);
|
|
in [
|
|
httpie
|
|
nmap
|
|
avahi
|
|
iftop
|
|
s3cmd
|
|
dnsutils
|
|
gnutls
|
|
inetutils
|
|
nixfmt
|
|
ncftp
|
|
nix-prefetch-git
|
|
nix-index
|
|
weechat
|
|
borgbackup
|
|
mblaze
|
|
|
|
darcs
|
|
git
|
|
mercurialFull
|
|
|
|
gnutar
|
|
gzip
|
|
bzip2
|
|
zstd
|
|
zip
|
|
xz
|
|
p7zip
|
|
xar
|
|
|
|
yubikey-manager
|
|
yubioath-flutter
|
|
yubikey-personalization
|
|
yubikey-personalization-gui
|
|
lastpass-cli
|
|
tor
|
|
torsocks
|
|
transmission-gtk
|
|
unison
|
|
|
|
(aspellWithDicts (dicts: with dicts; [ en en-computers en-science ]))
|
|
(hunspellWithDicts (with hunspellDicts; [ en_GB-large en_US ]))
|
|
|
|
btop
|
|
bottom
|
|
ranger
|
|
bat
|
|
toot
|
|
tut
|
|
lynx
|
|
w3m
|
|
amfora
|
|
rmapi
|
|
gmni
|
|
|
|
graphicsmagick
|
|
qrencode
|
|
|
|
mpc_cli
|
|
|
|
python
|
|
pipenv
|
|
pew
|
|
poetry
|
|
|
|
pandoc
|
|
graphviz
|
|
zotero
|
|
bibtool
|
|
biber
|
|
mdbook
|
|
netlify-cli
|
|
|
|
R
|
|
gcc_latest
|
|
sqlite
|
|
gnumake
|
|
cmake
|
|
libtool
|
|
libvterm
|
|
|
|
rustup
|
|
go
|
|
gocode
|
|
gore
|
|
gotools
|
|
gotests
|
|
gomodifytags
|
|
nodejs
|
|
yarn
|
|
ghc
|
|
stack
|
|
cabal-install
|
|
hlint
|
|
|
|
lazygit
|
|
lazydocker
|
|
|
|
virt-manager
|
|
virt-viewer
|
|
];
|
|
|
|
home.sessionVariables = {
|
|
WORKON_HOME = "${h}/.local/lib/languages/Python/virtualenvs";
|
|
RUSTUP_HOME = "${h}/.local/lib/languages/Rust/rustup";
|
|
CABAL_CONFIG = "${h}/.config/cabal/config";
|
|
CABAL_DIR = "${h}/.local/lib/languages/Haskell/cabal";
|
|
GOPATH = "${h}/.local/lib/languages/Go";
|
|
|
|
EDITOR = editor-script + /bin/edit;
|
|
ALTERNATE_EDITOR = pkgs.vim + /bin/vim;
|
|
};
|
|
|
|
home.file = {
|
|
".xprofile".source = ./dotfiles/xprofile;
|
|
".Rprofile".source = ./dotfiles/Rprofile;
|
|
|
|
".terminfo/x/xterm-kitty" = {
|
|
source = pkgs.kitty + /lib/kitty/terminfo/x/xterm-kitty;
|
|
recursive = true;
|
|
};
|
|
};
|
|
|
|
xdg = {
|
|
enable = true;
|
|
configFile = {
|
|
"ranger" = {
|
|
source = ./dotfiles/ranger;
|
|
recursive = true;
|
|
};
|
|
"cabal".source = ./dotfiles/cabal;
|
|
|
|
"tut/config.toml".text = std.serde.toTOML {
|
|
general = { editor = "vim"; };
|
|
media.image = {
|
|
program = pkgs.kitty + /bin/kitty;
|
|
args = "+kitten icat --hold";
|
|
terminal = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.info.enable = true;
|
|
programs.man.generateCaches = true;
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
aliases = {
|
|
st = "status";
|
|
ci = "commit";
|
|
co = "checkout";
|
|
h = "help";
|
|
a = "add";
|
|
d = "diff";
|
|
b = "branch";
|
|
m = "merge";
|
|
l = "log";
|
|
};
|
|
includes = [{ path = "~/.config/git/local"; }];
|
|
ignores = [
|
|
"*.pyc"
|
|
"*.log"
|
|
"*.aux"
|
|
"*.lol"
|
|
"*.out"
|
|
"*.toc"
|
|
"*.bcf"
|
|
"*.bbl"
|
|
"*.blg"
|
|
"*.nav"
|
|
"*.run.xml"
|
|
"*.snm"
|
|
"*.fdb_latexmk"
|
|
"*.fls"
|
|
"*.vrb"
|
|
"doc/tags"
|
|
".sass-cache"
|
|
".sconsign.dblite"
|
|
".*.sw[op]"
|
|
".DS_Store"
|
|
"._*"
|
|
"~$*"
|
|
".*.un~"
|
|
"*~"
|
|
"\\#*"
|
|
".\\#*"
|
|
"*.bak"
|
|
".~lock.*\\#"
|
|
".ipynb_checkpoints"
|
|
".stfolder"
|
|
".vscode"
|
|
".envrc"
|
|
];
|
|
extraConfig = {
|
|
color.ui = "auto";
|
|
push.default = "simple";
|
|
pull.rebase = "false";
|
|
github.user = "jezcope";
|
|
fetch.recurseSubmodules = "true";
|
|
init.defaultBranch = "main";
|
|
pager.branch = "false";
|
|
};
|
|
};
|
|
|
|
programs.gpg = {
|
|
enable = true;
|
|
settings = {
|
|
default-key = "0x9E42CE071C4559D1";
|
|
keyserver = "hkps://keys.openpgp.org";
|
|
keyserver-options = "no-honor-keyserver-url include-revoked";
|
|
};
|
|
};
|
|
|
|
services.gpg-agent = {
|
|
enable = true;
|
|
enableScDaemon = true;
|
|
enableSshSupport = true;
|
|
defaultCacheTtl = 3600;
|
|
extraConfig = ''
|
|
no-allow-external-cache
|
|
'';
|
|
};
|
|
|
|
programs.gopass = {
|
|
enable = true;
|
|
jsonAPI.enable = true;
|
|
password-store = "${h}/Reference/Passwords";
|
|
settings = { safecontent = true; };
|
|
};
|
|
|
|
programs.ssh = {
|
|
enable = true;
|
|
matchBlocks = {
|
|
"remarkable" = {
|
|
hostname = "10.11.99.1";
|
|
user = "root";
|
|
};
|
|
"git.emacsconf.org" = {
|
|
port = 22;
|
|
user = "anon";
|
|
identityFile = "~/.ssh/id_rsa_anon_git_emacsconf";
|
|
};
|
|
"envs.net".user = "petrichor";
|
|
};
|
|
};
|
|
|
|
programs.tmux = {
|
|
enable = true;
|
|
prefix = "`";
|
|
};
|
|
|
|
services.keybase.enable = true;
|
|
services.kbfs = {
|
|
enable = true;
|
|
mountPoint = "Keybase";
|
|
};
|
|
|
|
services.protonmail-bridge = { enable = true; };
|
|
|
|
programs.texlive = {
|
|
enable = true;
|
|
extraPackages = tpkgs: {
|
|
inherit (tpkgs) scheme-medium collection-latexextra biblatex;
|
|
};
|
|
};
|
|
|
|
}
|