From a24d0ab51be678b2ce8c19498c03d48da057ff46 Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Mon, 3 May 2021 14:25:02 -0400 Subject: [PATCH] modules/programs/bash: add support for undistract-me --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/bash/undistract-me.nix | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 nixos/modules/programs/bash/undistract-me.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 4aedc434ecf..ecfbf6af4a8 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -116,6 +116,7 @@ ./programs/bash/bash.nix ./programs/bash/bash-completion.nix ./programs/bash/ls-colors.nix + ./programs/bash/undistract-me.nix ./programs/bash-my-aws.nix ./programs/bcc.nix ./programs/browserpass.nix diff --git a/nixos/modules/programs/bash/undistract-me.nix b/nixos/modules/programs/bash/undistract-me.nix new file mode 100644 index 00000000000..378144f598b --- /dev/null +++ b/nixos/modules/programs/bash/undistract-me.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.bash.undistractMe; +in +{ + options = { + programs.bash.undistractMe = { + enable = mkEnableOption "notifications when long-running terminal commands complete"; + + playSound = mkEnableOption "notification sounds when long-running terminal commands complete"; + + timeout = mkOption { + default = 10; + description = '' + Number of seconds it would take for a command to be considered long-running. + ''; + type = types.int; + }; + }; + }; + + config = mkIf cfg.enable { + programs.bash.promptPluginInit = '' + export LONG_RUNNING_COMMAND_TIMEOUT=${toString cfg.timeout} + export UDM_PLAY_SOUND=${if cfg.playSound then "1" else "0"} + . "${pkgs.undistract-me}/etc/profile.d/undistract-me.sh" + ''; + }; + + meta = { + maintainers = with maintainers; [ metadark ]; + }; +}