* Presumably, the TODO about window resizing interfering with scrolling
is not applicable anymore with the existence of padding from the pane
grid container. So, set `core.window.content_container` to false.
* Pane grid container didn't follow the selected theme. So, set style
on it to fix that.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
Replace '\t' with a space in text buffers, as tab skip/stop is handled
by `alacritty_terminal`.
Also, sending a tab to the shaper causes issues, as fonts either have
no tab codepoint, or worse, some do, with the glyph produced being
anyone's guess. Some may render a tab to some random character like
'0'.
Fixes#73.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
`ctrl`+`N` is a common shortcut to switch to a specific tab. 1-8
switches to the exact tab or the last tab. `ctrl`+`9` always switches to
the last tab.
Make use of the addition to cosmic-text that allows matching
the widths of fallback Monospace fonts to the default one.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
* Add `Metadata` struct to pass bg, underline_color, and flags info via
metadata.
* Keep and `IndexSet` of `Metadata` info in Terminal.
* Use `Metadata` info to render STRIKEOUT, UNDERCURL, and all underline
styles via `BgRect`.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
* Add a color deriver and derive dim colors for all themes.
* Derive actual bright colors for the OneHalfDark theme while at it.
* Use dim colors when the DIM flag is set.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
This zero-width char will force the shaper to treat detected RTL
lines as LTR.
RTL text would still be rendered correctly. But this fixes the wrong
behavior of it being displayed aligned to the right.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
This causes a functional change that may not be obvious.
When running `cosmic-term` from a shell prompt as a detached
process, `stdout`/`stderr` descriptors get deleted, and a `println!()`
message would take the `cosmic-term` process down.
No such an issue with log messages.
This can be tested by running `htop` then exiting the tool, which
would trigger a "TODO: CursorBlinkingChange" message.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
This can happen if configured font name is uninstalled for example.
Pick the first font name available if that's the case.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
* Store a font name => font faces map
* Only list font names that have `NORMAL` and `BOLD` faces with
`Normal` stretch. This will give us defaults and fall-backs that are
guaranteed to always exist.
* Filter by stretch first, with `Normal` chosen as the always existing
default.
* Then only list font weights supported by the font name stretch
selected, for the normal and bold cases.
* When changing the font name selected, the stretch/weight options
will stay the same if supported by the new font name, or revert to
the always existing fall-backs.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>