Skip to content
Snippets Groups Projects
terminal.nix 817 B
Newer Older
Jens Nolte's avatar
Jens Nolte committed
{ lib, pkgs, config, ... }:

with lib;
let
Jens Nolte's avatar
Jens Nolte committed
  terminal = pkgs.writeScriptBin "terminal" ''
    PROMPT_NO_INITIAL_NEWLINE=1 ${config.queezle.terminal.executable} "$@"
Jens Nolte's avatar
Jens Nolte committed
  '';
in
{
  options = {
Jens Nolte's avatar
Jens Nolte committed
    queezle.terminal.enable = mkOption {
      type = types.bool;
      default = false;
      description = "Install a 'terminal' wrapper script that launches the configured terminal emulator.";
    };

Jens Nolte's avatar
Jens Nolte committed
    queezle.terminal.executable = mkOption {
      type = types.path;
Jens Nolte's avatar
Jens Nolte committed
      default = if config.queezle.terminal.forceSoftwareRenderer then "${pkgs.foot}/bin/foot" else "${pkgs.kitty}/bin/kitty";
Jens Nolte's avatar
Jens Nolte committed
    };

    queezle.terminal.forceSoftwareRenderer = mkOption {
      type = types.bool;
      default = false;
    };
  };
Jens Nolte's avatar
Jens Nolte committed
  config = mkIf config.queezle.terminal.enable {
    environment.systemPackages = [ terminal ];
  };
Jens Nolte's avatar
Jens Nolte committed
}