aboutsummaryrefslogtreecommitdiff
path: root/ui-terminal-vt100.c
AgeCommit message (Collapse)AuthorFilesLines
2025-01-11buffer: clear out one line functionsRandy Palamar1-2/+2
Buffer is fully exposed to the program, no need to rely on the linker to optimize useless code.
2025-01-11buffer: delete pointless buffer_init functionRandy Palamar1-1/+0
lets not make the code harder to read for no reason
2025-01-04curses ui: fix default color detectionRandy Palamar1-8/+0
closes: #1209
2025-01-04ui-vt100: write ouptut using write(3)Randy Palamar1-4/+2
we use raw write elsewhere; no need to go through stdio unnecessarily.
2024-05-21remove some ui pointer chasingRandy Palamar1-14/+11
There only exists a single Ui so there is no need to force a pointer redirection for accessing it. The Ui member was moved down in vis-core.h to punt around an issue with the way lua checks for existing objects. It may show up again as I flatten more structs.
2024-05-21replace UiTerm with Ui & delete function pointersRandy Palamar1-29/+17
2024-03-25ui: refactor style handlingRandy Palamar1-2/+16
The old style handling had a lot edge cases where one of the colours or the attribute wouldn't get applied correctly. This commit adds a new style_set() method to the Ui which should be called instead of manually touching a cell's style. This also means that the Cell struct can be made opaque since all the handling is now done inside the ui-terminal files. With this it is now viable to combine the light and dark 16 colour themes into a single base-16 theme. This theme works very well with the Linux virtual console and will now be the default theme regardless of if the terminal supports 256 colours or not. This should address the common complaints about vis not respecting the users default terminal colours. fixes #1151: Theming is sometimes partially applied or ignored see #1103: terminal no longer has transparency/opacity see #1040: Transparent background and setting options by default
2023-12-02Add ansi escaping values and theming keyword for dimmed textHaz1-0/+2
This adds `[not]dim` to the set of accepted theme keywords
2023-07-18Add fullscreen param to vis_pipe_collect() and Lua API vis:pipe()Jörg Bakker1-1/+1
This enables restoring the terminal from a fullscreen command like curses based program. Use cases are e.g. a file picker based on some external program like nnn (https://github.com/jarun/nnn).
2020-05-12vt100: do not crash if termkey is not yet initializedMarc André Tanner1-0/+1
Previously calling die would segfault, e.g: $ vis .
2020-04-27vt100: use shorter escape sequence to clear screenMarc André Tanner1-2/+2
Instead of clearing the whole screen and then moving the cursor to the home position, we can first move it there and then clear everything below it.
2020-03-17color-column: Don't change fg/bg if not set explicitlyGennadiy Volkov1-0/+4
eg. if your long line is a comment with green fg, and you set your column color bg red while not specifying the fg, then the result is green fg on red bg. Prior to this change the result would be default fg on red bg, thus one char in the long line of green text would look odd/wrong. Of course if you do explicitly set the column color fg to default in your theme then the result will not be what you expect - ideally we need an UNSPECIFIED color type instead of relying on DEFAULT.
2017-03-22ui: try to fix job control issues with certain shellsMarc André Tanner1-3/+7
Make sure that curses and libtermkey don't fight over the terminal state. Also send use SIGTSTP instead of SIGSTOP. Previously certain shells (e.g. csh, dash) would get stuck after the editor process was suspended for the second time. Not completely sure whether this is correct, but it seems to work in my limited tests.
2017-03-17ui: fix vt100 compilationMarc André Tanner1-10/+10
2017-03-16ui: further cleanup display codeMarc André Tanner1-1/+3
2017-03-15ui: fix compiler warningMarc André Tanner1-1/+1
2017-03-14Add experimental raw vt100 UI backendMarc André Tanner1-0/+211
The intention of this is not to slowly reimplement curses but to provide a minimal working terminal UI backend which can also be used for debugging, fuzzing and in environments where curses is not available. Currently no attempt is made to optimize terminal output. The amount of flickering will depend on the smartness of your terminal emulator.