74 lines
2.2 KiB
Nix
74 lines
2.2 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
let
|
|
cfg = config.programs.kitty;
|
|
# helper scripts for changing kitty colors
|
|
term-background = pkgs.writeShellScriptBin "term-background" ''
|
|
# Accepts the name of a theme file in color-pkg
|
|
# If shell is running in a Kitty window set the colors.
|
|
if [ -n "$KITTY_WINDOW_ID" ]; then
|
|
kitty @ --to $KITTY_LISTEN_ON set-colors --all --configured \
|
|
${cfg.colors.color-pkg}/"$1".conf &
|
|
fi
|
|
'';
|
|
term-light = pkgs.writeShellScriptBin "term-light" ''
|
|
${term-background}/bin/term-background ${cfg.colors.light-name}
|
|
'';
|
|
term-dark = pkgs.writeShellScriptBin "term-dark" ''
|
|
${term-background}/bin/term-background ${cfg.colors.dark-name}
|
|
'';
|
|
inherit (lib) mkIf mkOption types;
|
|
in {
|
|
options.programs.kitty = {
|
|
colors = {
|
|
enable = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = ''
|
|
When enabled, commands <command>term-dark</command> and <command>term-light</command>
|
|
will toggle between your dark and a light colors.
|
|
|
|
There is also <command>term-background</command> which accepts one argument, the name
|
|
of the theme.
|
|
|
|
(Note that the Kitty setting <literal>allow_remote_control = true</literal> is set to
|
|
enable this functionality.)
|
|
'';
|
|
};
|
|
|
|
color-pkg = mkOption {
|
|
type = types.package;
|
|
default = pkgs.kitty-colors;
|
|
description = "Package from which to load kitty colors.";
|
|
};
|
|
|
|
light-name = mkOption {
|
|
type = types.str;
|
|
default = "light";
|
|
description = "The name to use for the light colorscheme.";
|
|
};
|
|
|
|
dark-name = mkOption {
|
|
type = types.str;
|
|
default = "dark";
|
|
description = "The name to use for the dark colorscheme.";
|
|
};
|
|
};
|
|
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
home.packages =
|
|
mkIf cfg.colors.enable [ term-light term-dark term-background ];
|
|
|
|
programs.kitty.settings = mkIf cfg.colors.enable {
|
|
allow_remote_control = "yes";
|
|
listen_on = "unix:/tmp/mykitty";
|
|
};
|
|
|
|
xdg.configFile."kitty/macos-launch-services-cmdline" =
|
|
mkIf (pkgs.stdenv.isDarwin && cfg.colors.enable) {
|
|
text = "--listen-on unix:/tmp/mykitty";
|
|
};
|
|
};
|
|
}
|