64 lines
1.8 KiB
Nix
64 lines
1.8 KiB
Nix
{ lib, config, ... }:
|
|
let
|
|
homeModules = config.flake.modules.homeManager;
|
|
in
|
|
{
|
|
flake.modules.homeManager.terminal-kitty =
|
|
{ pkgs, ... }:
|
|
let
|
|
kitty = pkgs.symlinkJoin {
|
|
name = "kitty-single";
|
|
paths = [ pkgs.kitty ];
|
|
meta = pkgs.kitty.meta;
|
|
buildInputs = [ pkgs.makeWrapper ];
|
|
postBuild = ''
|
|
wrapProgram $out/bin/kitty --add-flags "-1"
|
|
rm $out/share/applications/kitty.desktop
|
|
sed 's/^Exec=kitty/Exec=kitty -1/' ${pkgs.kitty}/share/applications/kitty.desktop > $out/share/applications/kitty.desktop
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
programs.kitty = {
|
|
enable = true;
|
|
package = kitty;
|
|
settings = {
|
|
disable_ligatures = "always";
|
|
scrollback_lines = 10000;
|
|
enable_audio_bell = false;
|
|
confirm_os_window_close = 0;
|
|
window_padding_width = 3;
|
|
update_check_interval = 0;
|
|
};
|
|
keybindings."shift+enter" = "send_text all \\x0a";
|
|
};
|
|
systemd.user.services.kitty-daemon = {
|
|
Unit = {
|
|
Description = "Kitty Terminal Daemon";
|
|
PartOf = [ "graphical-session.target" ];
|
|
After = [ "graphical-session.target" ];
|
|
};
|
|
Install = {
|
|
WantedBy = [ "graphical-session.target" ];
|
|
};
|
|
Service = {
|
|
ExecStart = "${lib.getExe kitty} --start-as=hidden ${pkgs.coreutils}/bin/tail -f /dev/null";
|
|
Restart = "on-failure";
|
|
};
|
|
};
|
|
};
|
|
|
|
flake.modules.homeManager.primary-terminal-kitty =
|
|
{ config, lib, ... }:
|
|
{
|
|
imports = [ homeModules.terminal-kitty ];
|
|
|
|
desktop.commands.terminal = [ (lib.getExe config.programs.kitty.package) ];
|
|
|
|
xdg.terminal-exec = {
|
|
enable = true;
|
|
settings.default = [ "kitty.desktop" ];
|
|
};
|
|
};
|
|
}
|