diff --git a/modules/hm/helix.nix b/modules/hm/helix.nix
index e56390a..b7a2845 100644
--- a/modules/hm/helix.nix
+++ b/modules/hm/helix.nix
@@ -79,11 +79,43 @@
character = "▏";
};
};
- keys.normal = {
- "C-A-l" = ":format";
- "A-r" = ":reload";
- "C-A-r" = ":reload-all";
- };
+ keys =
+ let
+ macro = pkgs.writeShellScript "macro" ''
+ mode="$1"
+ shift
+
+ case "$mode" in
+ t)
+ # Block tag with newlines
+ echo ""
+ cat
+ echo ""
+ ;;
+ i)
+ # Inline tag (no newlines)
+ echo -n ""
+ cat
+ echo -n ""
+ ;;
+ *)
+ echo "Unknown macro mode: $mode" >&2
+ exit 1
+ ;;
+ esac
+ '';
+ in
+ {
+ normal = {
+ "C-A-l" = ":format";
+ "A-r" = ":reload";
+ "C-A-r" = ":reload-all";
+ "L" = { "i" = "@|${macro} isxxxc"; "t" = "@|${macro} tsxxxc"; };
+ };
+ select = {
+ "L" = { "i" = "@|${macro} isxxxc"; "t" = "@|${macro} tsxxxc"; };
+ };
+ };
};
themes =
let
@@ -103,56 +135,24 @@
{
base16 = {
"ui.menu" = transparent;
- "ui.menu.selected" = {
- modifiers = [ "reversed" ];
- };
- "ui.linenr" = {
- fg = gray;
- bg = dark-gray;
- };
- "ui.popup" = {
- modifiers = [ "reversed" ];
- };
- "ui.linenr.selected" = {
- fg = white;
- bg = black;
- modifiers = [ "bold" ];
- };
- "ui.selection" = {
- fg = black;
- bg = blue;
- };
- "ui.selection.primary" = {
- modifiers = [ "reversed" ];
- };
- "comment" = {
- fg = gray;
- };
- "ui.statusline" = {
- fg = white;
- bg = dark-gray;
- };
- "ui.statusline.inactive" = {
- fg = dark-gray;
- bg = white;
- };
- "ui.help" = {
- fg = dark-gray;
- bg = white;
- };
- "ui.cursor" = {
- modifiers = [ "reversed" ];
- };
+ "ui.menu.selected" = { modifiers = [ "reversed" ]; };
+ "ui.linenr" = { fg = gray; bg = dark-gray; };
+ "ui.popup" = { modifiers = [ "reversed" ]; };
+ "ui.linenr.selected" = { fg = white; bg = black; modifiers = [ "bold" ]; };
+ "ui.selection" = { fg = black; bg = blue; };
+ "ui.selection.primary" = { modifiers = [ "reversed" ]; };
+ "comment" = { fg = gray; };
+ "ui.statusline" = { fg = white; bg = dark-gray; };
+ "ui.statusline.inactive" = { fg = dark-gray; bg = white; };
+ "ui.help" = { fg = dark-gray; bg = white; };
+ "ui.cursor" = { modifiers = [ "reversed" ]; };
"variable" = red;
"variable.builtin" = orange;
"constant.numeric" = orange;
"constant" = orange;
"attributes" = yellow;
"type" = yellow;
- "ui.cursor.match" = {
- fg = yellow;
- modifiers = [ "underlined" ];
- };
+ "ui.cursor.match" = { fg = yellow; modifiers = [ "underlined" ]; };
"string" = green;
"variable.other.member" = red;
"constant.character.escape" = cyan;
@@ -165,12 +165,8 @@
"diff.plus" = green;
"diff.delta" = yellow;
"diff.minus" = red;
- "diagnostic" = {
- modifiers = [ "underlined" ];
- };
- "ui.gutter" = {
- bg = black;
- };
+ "diagnostic" = { modifiers = [ "underlined" ]; };
+ "ui.gutter" = { bg = black; };
"info" = blue;
"hint" = dark-gray;
"debug" = dark-gray;