summaryrefslogtreecommitdiff
path: root/common/modules/matugen/templates/matugen-sequences.nix
blob: 817edb9a16a3649a5415da290ec23e0711a2c0c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
  config,
  lib,
  ...
}:
{
  config = lib.mkIf config.beeMods.matugen.enable {
    xdg.configFile."matugen/templates/sequences" = {
      text = ''
        #!/bin/sh
        SEQ=""

        # ANSI Palette (Regular 0-7)
        SEQ="$SEQ$(printf '\033]4;0;{{colors.surface_container_high.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;1;{{colors.error.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;2;{{colors.primary.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;3;{{colors.tertiary.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;4;{{colors.secondary.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;5;{{colors.primary_fixed.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;6;{{colors.secondary_fixed.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;7;{{colors.on_surface_variant.default.hex}}\007')"

        # ANSI Palette (Bright 0-7 / ANSI 8-15)
        SEQ="$SEQ$(printf '\033]4;8;{{colors.outline.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;9;{{colors.error.default.hex | to_color | lighten: 10.0}}\007')"
        SEQ="$SEQ$(printf '\033]4;10;{{colors.primary_container.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;11;{{colors.tertiary_container.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;12;{{colors.secondary_container.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;13;{{colors.inverse_primary.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;14;{{colors.outline_variant.default.hex}}\007')"
        SEQ="$SEQ$(printf '\033]4;15;{{colors.on_surface.default.hex}}\007')"

        # UI Elements
        # Default Foreground (Text Color)
        SEQ="$SEQ$(printf '\033]10;{{colors.on_surface.default.hex}}\007')"

        <* if {{ is_dark_mode }} *>
        # Set terminal background to surface color for dark mode
        SEQ="$SEQ$(printf '\033]11;{{colors.surface.default.hex}}\007')"
        <* else *>
        # Set terminal background to a lighter surface container color for light mode
        SEQ="$SEQ$(printf '\033]11;{{colors.surface_container_low.default.hex}}\007')"
        <* endif *>

        # Cursor Color (Block)
        SEQ="$SEQ$(printf '\033]12;{{colors.primary.default.hex}}\007')"

        # Cursor Foreground (Text inside block cursor)
        SEQ="$SEQ$(printf '\033]13;{{colors.on_primary.default.hex}}\007')"

        # Selection Background
        SEQ="$SEQ$(printf '\033]17;{{colors.primary_container.default.hex}}\007')"

        # Selection Foreground
        SEQ="$SEQ$(printf '\033]19;{{colors.on_primary_container.default.hex}}\007')"

        for tty in /dev/pts/*; do
          [ -w "$tty" ] && printf '%s' "$SEQ" > "$tty"
        done
      '';
      executable = true;
    };
  };
}