99 lines
2.3 KiB
Nix
99 lines
2.3 KiB
Nix
{
|
|
config,
|
|
options,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (builtins) toString;
|
|
inherit (lib.meta) getExe;
|
|
inherit (lib.modules) mkIf mkMerge;
|
|
in {
|
|
options.modules.desktop.terminal.alacritty = let
|
|
inherit (lib.options) mkEnableOption;
|
|
in { enable = mkEnableOption "OpenGL terminal emulator"; };
|
|
|
|
config = mkIf config.modules.desktop.terminal.alacritty.enable {
|
|
modules.shell.toolset.tmux.enable = true;
|
|
|
|
hm.programs.alacritty = {
|
|
enable = true;
|
|
|
|
settings = mkMerge [
|
|
{
|
|
env = {
|
|
TERM = "xterm-256color";
|
|
WINIT_X11_SCALE_FACTOR = "1.0";
|
|
};
|
|
|
|
window.dynamic_title = true;
|
|
|
|
scrolling = {
|
|
history = 5000;
|
|
multiplier = 3;
|
|
};
|
|
|
|
selection = {
|
|
semantic_escape_chars = '',│`|:"' ()[]{}<>'';
|
|
save_to_clipboard = false;
|
|
};
|
|
|
|
live_config_reload = true;
|
|
|
|
shell = {
|
|
program = "${getExe pkgs.zsh}";
|
|
args = ["-l" "-c" "tmux new || tmux"];
|
|
};
|
|
}
|
|
|
|
# (mkIf (active != null) {
|
|
# import = ["~/.config/alacritty/config/${active}.toml"];
|
|
# })
|
|
];
|
|
};
|
|
|
|
# create.configFile = mkIf (active != null) {
|
|
# alacritty-conf = {
|
|
# target = "alacritty/config/${active}.toml";
|
|
# source = let
|
|
# inherit (config.modules.themes.font) mono sans;
|
|
# tomlFormat = pkgs.formats.toml {};
|
|
# in tomlFormat.generate "alacritty-theme" {
|
|
# font = {
|
|
# builtin_box_drawing = true;
|
|
# size = mono.size;
|
|
#
|
|
# normal = {
|
|
# family = "${mono.family}";
|
|
# style = "${sans.weight}";
|
|
# };
|
|
#
|
|
# italic = {
|
|
# family = "${mono.family}";
|
|
# style = "${sans.weight} Italic";
|
|
# };
|
|
#
|
|
# bold = {
|
|
# family = "${mono.family}";
|
|
# style = "${mono.weight}";
|
|
# };
|
|
#
|
|
# bold_italic = {
|
|
# family = "${mono.family}";
|
|
# style = "${mono.weight} Italic";
|
|
# };
|
|
#
|
|
# offset = {
|
|
# x = 0;
|
|
# y = 0;
|
|
# };
|
|
# glyph_offset = {
|
|
# x = 0;
|
|
# y = 0;
|
|
# };
|
|
# };
|
|
# };
|
|
# };
|
|
# };
|
|
};
|
|
}
|