4 ms·
If neovim had a proper gui, you could move away from some of the limitations of the terminal. The biggest being using fixed width characters for drawing UI elem
by doix 2y ago
If neovim had a proper gui, you could move away from some of the limitations of the terminal. The biggest being using fixed width characters for drawing UI elements.
Emacs does it pretty well, one of the few things that makes me jealous of emacs as a vim user.
- kevincox 2y agoIIUC fixed widths is more than just a UI problem. Lots of internal code is assuming that. But maybe it works well-enough that it isn't a real issue. I remember trying a terminal that didn't have fixed char widths and it mostly worked. The only real issue was line wrapping (as vim and the terminal would both wrap based on how long they considered the line to be). So maybe it would be possible! I would love to see solid support for variable-width fonts. I know variable-width fonts are controversial, but I actually think they work well for coding but haven't had the chance to use them much due to Vim limitations. But especially for Markdown and similar mostly-text content they seem like a clear win.
- bbkane 2y agoI'd really like image support in a Neovim GUI. It'd make markdown editing easier for me
- Macha 2y agoSeems more likely to be something you implement with e.g. kitty/iterm/sixel escape codes than moving to a GUI app. Actually probably is something that could be implemented in neovim today. Maybe even by a plugin, not sure what control they have over stuff like that.
- kzrdude 2y agosee 3rd/image.nvim on github. There might be others
- kzrdude 2y agoAnd input limitations can be resolved by non-terminal UIs (for example like Ctrl+i and Tab being mapped to the same control character in old terminals - that one is solved by newer protocols, but the problems don't end there.)
- eviks 2y agoalso even the newer protocols fail to support modifier sides (left vs right shift)
- rockorager 2y agoKitty keyboard protocol does indeed support modifier sides.
- eviks 2y agoNo it doesn't, and the author rejected the proposal to add them https://sw.kovidgoyal.net/kitty/keyboard-protocol/ https://sw.kovidgoyal.net/kitty/keyboard-protocol/ Modifiers are encoded as a bit field with: shift 0b1 (1) alt 0b10 (2) ctrl 0b100 (4) super 0b1000 (8) hyper 0b10000 (16) meta 0b100000 (32) caps_lock 0b1000000 (64) num_lock 0b10000000 (128)
- aumerle 2y agoYes modifiers are a state, not a key. The kitty keyboard protocol does indeed send events for left and right modifier key press/releas as you can easily see for yourself by running kitten show-key -m kitty in a kitty terminal and pressing the left and right modifier keys.
- eviks 2y ago> Yes modifiers are a state, not a key So why are you talking about a key then??? Kitty doesn't support left/right modifiers unlike proper keybinding handling apps, the left/right presses for non-modifier keys aren't relevant How would you bind LeftAlt-A to something different from RightAlt-A in Kitty?
- aumerle 2y agoThere is no such thing as a left or right modifier STATE in ANY application. All applications, including kitty track only CTRL, SHIFT, ALT, ETC modifier states. left and right alt and control are key events and can be bound in any application supporting the kitty keyboard protocol as key events. If some application tracks a left and right modifier state it has to do so manually using key press and release events, the OS does not supply it any such state. You seem to be thoroughly confused about what is a modifier and what is a key. Left and right ctrl/alt/shift are KEYS not MODIFIERS. You can track whether they are held down or up by tracking their press and release events just like for any other key.