Luke Granger-Brown
02db8ea7cb
The ntfy package expects to have pyobjc available when running under Darwin, which is currently broken in nixpkgs. There's a fairly involved ongoing effort to package it again, but in the mean time we just patch out the dep. I'm using the pushover backend anyway. To avoid having to rebuild it rather than just fetch from the NixOS cache, I only override it when running on Darwin.
111 lines
3.2 KiB
Nix
111 lines
3.2 KiB
Nix
{ config, configName, depot, lib, pkgs, ... }:
|
|
let
|
|
inherit (pkgs.stdenv.hostPlatform) isDarwin isLinux;
|
|
in
|
|
{
|
|
imports = [ ./ntfy.nix ];
|
|
|
|
programs.ntfy = {
|
|
enable = true;
|
|
package = if isDarwin then pkgs.ntfy.overrideAttrs (oldAttrs: {
|
|
postPatch = ''
|
|
substituteInPlace setup.py \
|
|
--replace '"darwin"' '"darwin-disabled"'
|
|
'';
|
|
}) else pkgs.ntfy;
|
|
settings = {
|
|
backends = [ "pushover" ];
|
|
pushover = {
|
|
user_key = depot.ops.secrets.pushover.userKey;
|
|
api_token = depot.ops.secrets.pushover.tokens.depot;
|
|
};
|
|
};
|
|
};
|
|
|
|
home.username = "lukegb";
|
|
home.homeDirectory = if isDarwin then "/Users/lukegb" else "/home/lukegb";
|
|
home.file = {
|
|
".hgrc".source = ./hgrc;
|
|
};
|
|
home.sessionVariables = {
|
|
EDITOR = "vim";
|
|
VISUAL = "vim";
|
|
};
|
|
|
|
programs.ssh = {
|
|
enable = true;
|
|
forwardAgent = true;
|
|
matchBlocks = let
|
|
allEventBlocks = (lib.concatStringsSep " " (builtins.map (n: "172.${toString n}.*.*") (lib.range 16 31)));
|
|
in ({
|
|
marukuru.port = 20022;
|
|
sar1.hostname = "81.131.50.219";
|
|
sar1-mon1 = {
|
|
user = "eng";
|
|
hostname = "172.16.0.9";
|
|
proxyJump = "sar1";
|
|
};
|
|
} // (builtins.listToAttrs [
|
|
{ name = allEventBlocks; value = { proxyJump = "sar1"; }; }
|
|
]));
|
|
};
|
|
|
|
programs.bash = {
|
|
enable = true;
|
|
enableVteIntegration = !isDarwin;
|
|
|
|
initExtra = ''
|
|
function join_by { local IFS="$1"; shift; echo "$*"; }
|
|
|
|
if [[ -z "$LAUNCH_SHLVL" ]]; then
|
|
export LAUNCH_SHLVL="$SHLVL"
|
|
fi
|
|
export LAUNCH_DEPTH="$(expr $SHLVL - $LAUNCH_SHLVL)"
|
|
export LAUNCH_DEPTH_STR=""
|
|
if [[ "$LAUNCH_DEPTH" > 0 ]]; then
|
|
if [[ "$PATH" == /nix/store/* ]]; then
|
|
declare -a RECENT_PKGS
|
|
while read -rd: pathseg; do
|
|
if [[ "$pathseg" != /nix/store/* ]]; then
|
|
break
|
|
fi
|
|
RECENT_PKGS+=("$(echo "$pathseg" | sed -E -e 's,^/nix/store/[a-z0-9]+-,,' -e 's,/.*$,,' -e 's,-[0-9.]+$,,')")
|
|
done <<< $PATH
|
|
RECENT_PKG="$(join_by ":" "''${RECENT_PKGS[@]}")"
|
|
if [[ "''${#RECENT_PKG}" > 32 ]]; then
|
|
RECENT_PKGS="''${RECENT_PKGS[0]}"
|
|
fi
|
|
if [[ ! -z "$RECENT_PKG" ]]; then
|
|
LAUNCH_DEPTH_STR="[$RECENT_PKG] "
|
|
fi
|
|
fi
|
|
if [[ -z "$LAUNCH_DEPTH_STR" ]]; then
|
|
LAUNCH_DEPTH_STR="[$LAUNCH_DEPTH] "
|
|
fi
|
|
fi
|
|
export PS1="\n\[\033[1;32m\]$LAUNCH_DEPTH_STR[\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$ \[\033[0m\]"
|
|
'';
|
|
};
|
|
programs.vim.enable = true;
|
|
|
|
home.packages = (with pkgs; ([
|
|
ripgrep
|
|
whois
|
|
dnsutils
|
|
] ++ lib.optionals (configName != null) [
|
|
# This only applies to "external" users of this config.
|
|
(writeShellScriptBin "home-manager" ''
|
|
#!/bin/sh
|
|
exec "${home-manager}/bin/home-manager" -f "${config.home.homeDirectory}/depot/home-manager-ext.nix" -A "${configName}" "$@"
|
|
'')
|
|
rxvt_unicode.terminfo tmux rsync libarchive tcpdump restic
|
|
iftop htop jq
|
|
(mercurial.overridePythonAttrs (origAttrs: {
|
|
propagatedBuildInputs = [python3Packages.hg-evolve depot.nix.pkgs.hg-git];
|
|
}))
|
|
] ++ lib.optionals isLinux [
|
|
iotop
|
|
]));
|
|
|
|
home.stateVersion = "20.09";
|
|
}
|