nixos-config/modules/alacritty.nix

47 lines
1.3 KiB
Nix
Raw Normal View History

2022-01-02 07:33:54 +00:00
{ config, lib, pkgs, ... }:
# alacritty.yml is needed in both <current-system>/sw/etc/ and /etc/, or
# it won't work correctly in some environments (at least plasma+wayland)
# That's why it's in systemPackages AND environment.etc.
# (November 2021)
2021-09-08 00:32:11 +00:00
let
cfg = config.sconfig.alacritty;
2022-01-02 07:33:54 +00:00
configText = builtins.toJSON
{
env.TERM = "xterm-256color";
key_bindings = [
{ action = "ScrollHalfPageDown"; mods = "Shift"; key = "PageDown"; }
{ action = "ScrollHalfPageUp"; mods = "Shift"; key = "PageUp"; }
{ action = "SpawnNewInstance"; mods = "Control|Shift"; key = "N"; }
{ action = "SpawnNewInstance"; mods = "Control|Shift"; key = "T"; }
];
};
2021-09-08 00:32:11 +00:00
in
2021-08-31 22:21:37 +00:00
{
2021-09-08 00:32:11 +00:00
options.sconfig.alacritty.enable = lib.mkEnableOption "Enable Alacritty";
config = lib.mkIf cfg.enable {
2022-01-02 07:33:54 +00:00
environment.etc."xdg/alacritty.yml".text = configText;
environment.systemPackages = [
pkgs.alacritty
(pkgs.writeTextFile {
name = "alacritty.yml";
destination = "/etc/xdg/alacritty.yml";
2022-01-02 07:33:54 +00:00
text = configText;
})
];
2021-09-08 00:32:11 +00:00
2021-08-31 22:21:37 +00:00
programs.bash.interactiveShellInit = ''
function _set_title() {
printf "\033]0;%s@%s:%s\007" "''${USER}" "''${HOSTNAME%%.*}" "''${PWD/#$HOME/\~}"
}
[ -z "$VTE_VERSION" ] && PROMPT_COMMAND="_set_title; $PROMPT_COMMAND"
'';
};
}