summaryrefslogtreecommitdiff
path: root/home/zsh/watch-while.nix
blob: ec42e13065ce8168b460189cab4c0ef9cf48cc9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# This module configures some ZSH aliases such that 'watch-while' is invoked
{
  pkgs,
  lib,
  ...
}: let
  # Program to invoke for long-running commands.
  pkg = pkgs.watch-while;

  # Prorams to wrap with watch-while.
  toWrap = ["nixos-rebuild" "darwin-rebuild" "nmap"];
in {
  # Alias long-running commands to their prefixed versions. These aliases are
  # only loaded for interactive use, so they won't mess with scripts.
  programs.zsh.shellAliases =
    lib.genAttrs toWrap (p: "${pkg}/bin/${pkg.pname} ${p}")
    # Enable alias expansion after sudo with this trick.
    // {
      "sudo" = "sudo ";
      "ww" = "watch-while ";
    };

  # Also add the program to the environment for manual invocation.
  home.packages = [pkg];
}