diff --git a/.config/kak/colors/ashen.kak b/.config/kak/colors/ashen.kak index 4912a3bd..a7f43555 100644 --- a/.config/kak/colors/ashen.kak +++ b/.config/kak/colors/ashen.kak @@ -57,22 +57,33 @@ set-face global link "%opt{red_glowing}+ui" set-face global bullet "%opt{orange_glow}" set-face global list "%opt{orange_glow}" -# Helix-like insert mode cursor -set-face global PrimaryCursorNormal "%opt{background},%opt{orange_blaze}+gfb" -set-face global SecondaryCursorNormal "%opt{background},%opt{orange_muted}+gf" -set-face global PrimaryCursorInsert "%opt{background},%opt{g_3}+gfb" -set-face global SecondaryCursorInsert "%opt{background},%opt{g_7}+gf" -set-face global PrimaryCursor PrimaryCursorNormal -set-face global SecondaryCursor SecondaryCursorNormal +# SPECIAL CURSOR BLOCK +# We implement a Helix-like cursor changing color. +# Off by default; ashen_cursor option must be declared: +# declare-option bool ashen_cursor true +try %{ + # check if ashen_dynamic_cursor option is set + nop %opt{ashen_dynamic_cursor} + # Helix-like insert mode cursor + set-face global PrimaryCursorNormal "%opt{background},%opt{orange_blaze}+gfb" + set-face global SecondaryCursorNormal "%opt{background},%opt{orange_muted}+gf" + set-face global PrimaryCursorInsert "%opt{background},%opt{g_3}+gfb" + set-face global SecondaryCursorInsert "%opt{background},%opt{g_7}+gf" + set-face global PrimaryCursor PrimaryCursorNormal + set-face global SecondaryCursor SecondaryCursorNormal -hook global ModeChange (push|pop):.*insert %{ - set-face window PrimaryCursor PrimaryCursorInsert - set-face window SecondaryCursor SecondaryCursorInsert -} + hook global ModeChange (push|pop):.*insert %{ + set-face window PrimaryCursor PrimaryCursorInsert + set-face window SecondaryCursor SecondaryCursorInsert + } -hook global ModeChange (push|pop):insert:.* %{ - set-face window PrimaryCursor PrimaryCursorNormal - set-face window SecondaryCursor SecondaryCursorNormal + hook global ModeChange (push|pop):insert:.* %{ + set-face window PrimaryCursor PrimaryCursorNormal + set-face window SecondaryCursor SecondaryCursorNormal + } +} catch %{ + set-face global PrimaryCursor "%opt{background},%opt{orange_blaze}+gfb" + set-face global SecondaryCursor "%opt{background},%opt{orange_muted}+gf" } # Built-in UI @@ -189,3 +200,4 @@ set-face global ts_string_special_url "%opt{red_glowing}+b" set-face global ts_comment_block_documentation "%opt{g_5}+i" set-face global ts_keyword_operator "%opt{orange_blaze}" set-face global ts_markup_list "%opt{orange_glow}" + diff --git a/.config/kak/kakrc b/.config/kak/kakrc index 923f1120..956acdf4 100644 --- a/.config/kak/kakrc +++ b/.config/kak/kakrc @@ -1,4 +1,5 @@ eval %sh{ kak-tree-sitter -dks --init $kak_session } +declare-option bool ashen_dynamic_cursor true colorscheme ashen # disable clippy