andreyorst / powerline.kak

Kakoune modeline, but with passion
MIT License
50 stars 8 forks source link

Change the mode_info color on mode change #2

Closed leiserfg closed 5 years ago

leiserfg commented 5 years ago

I think that will be cool if instead of removing the mode_info block when in normal, it changes the color (as in airline)

andreyorst commented 5 years ago

You can't change color of {{mode_info}} atom because it uses colors that are defined in colorscheme, and can't be colored with faces (set-option global modelinefmt '{black,black}{{mode_info}}' will still show mode info with colors defined in colorscheme), so you need to change current colorscheme of Kakoune. I don't think that powerline.kak should ever try to modify colorscheme files, because it is wrong approach and should never happen, and even if I try to do it there are situations when it just can't do that because default themes need root access to be changed.

More than that, current behavior of {{mode_info}} keeps the same behavior of default Kakoune's modeline, and I don't think that it should be changed with some kind of current mode parser, because It will drastically increase performance impact on slow PCs. powerline.kak is already not the lightest implementation of modeline, since it needs to be rebuilt on each buffer change to keep relevant modules on, and hide irrelevant modules.

And mode_info is not being hidden in normal mode, it always shows sel (N), prompt and enter key text.

andreyorst commented 5 years ago

I don't think that powerline.kak should ever try to modify colorscheme files, because it is wrong approach and should never happen, and even if I try to do it there are situations when it just can't do that because default themes need root access to be changed.

I mean powerline.kak could change the actual face, but I still don't think that this is good idea to do actually. Also kakoune modeline structured differently, and I don't think that it should show different modes in different colors.

Yet the performance impact is the main reason not to do so.