Mohammad AlSaleh
b161db94d1
Add a disabled-by-default toggle for using bright colors for bold text
...
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-11 09:58:18 -07:00
Mohammad AlSaleh
fc6e2de78b
Hide cursor if TermMode::SHOW_CURSOR is not set
...
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-11 09:58:18 -07:00
Mohammad AlSaleh
bb95e28899
Support HIDDEN cells
...
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-11 09:58:18 -07:00
Mohammad AlSaleh
7f5736f56a
Use bright colors if bold
...
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-11 09:58:18 -07:00
Mohammad AlSaleh
9188f3c0bf
Use log::warn!() instead of println!()
...
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>
2024-01-10 17:07:32 -07:00
Mohammad AlSaleh
9b185c9610
Sleep for 50ms before sending first Message::TabNew
...
This fixes the issue of two tabs being created at startup.
Should fix #36 .
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-10 17:07:32 -07:00
Jeremy Soller
4bde45bcdc
Improve scrollbar
2024-01-10 16:17:52 -07:00
Mohammad AlSaleh
4ec3e5b2f3
Consider stretch/weight settings advanced and hide them with a toggle
...
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-09 17:18:04 -07:00
Mohammad AlSaleh
59804dc8ab
Handle the case where configured font name is not available
...
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>
2024-01-09 17:18:04 -07:00
Mohammad AlSaleh
5eba6eb4d6
Configurable font stretch, font weight, and bold font weight
...
* 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>
2024-01-09 17:18:04 -07:00
Jeremy Soller
c74d5d6f56
Remove extra items from header
2024-01-09 13:48:12 -07:00
Mohammad AlSaleh
dfb86e4ce2
Handle Ctrl+key_code
...
`tmux` in `cosmic-term` is now usable.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-09 10:23:19 -07:00
Jeremy Soller
db738371ac
Add menu
2024-01-09 10:16:32 -07:00
Jeremy Soller
412acc2b70
Just set needs_update flag on mouse drag
2024-01-04 14:27:18 -07:00
Jeremy Soller
556c32e33f
Use flag to determine when terminal needs update, only update once before draw
2024-01-04 14:25:31 -07:00
Mohammad AlSaleh
ff5c46cd19
Move zoom_adj to App so it doesn't persist between runs
...
Addresses comments from #22 .
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-03 11:29:49 -07:00
Mohammad AlSaleh
1c8a058e82
Implement ZoomIn/ZoomOut/ZoomReset with configurable step
...
Implements #14 .
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-03 08:31:41 -07:00
Jeremy Soller
1e0ce2b7e7
Revert "Check if a Config message was handled before creating first tab"
...
This reverts commit 7b152bd218 .
2024-01-02 13:04:06 -07:00
Mohammad AlSaleh
7b152bd218
Check if a Config message was handled before creating first tab
...
In `Application::subscription()`, `subscription::channel()` would
create a dead terminal tab if it was called before
`config_subscription()`.
Then `subscription::channel()` would be triggered a second time
creating a second terminal tab that works.
This commit fixes this issue by only creating the first terminal
tab after a `Message::Config{}` was handled, i.e. after
`config_subscription()` was run.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-02 13:01:10 -07:00
Mohammad AlSaleh
9ba9f0fb6e
Set configuration on new-tab terminals
...
Non-default settings wouldn't apply to new-tab terminals otherwise.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-02 13:00:46 -07:00
Jeremy Soller
5ac267d228
Use linear colors in buffer to avoid patching glyphon
2024-01-02 12:43:17 -07:00
Jeremy Soller
f901c17e70
Join together background rectangles of the same color
2024-01-02 12:21:46 -07:00
Jeremy Soller
04d00836eb
Use fake italic to ensure consistent fonts
2024-01-02 11:47:31 -07:00
Mohammad AlSaleh
faa03fd376
Support color inversion
...
`htop` with *Monochromatic* colors is rendered correctly now.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-02 10:29:35 -07:00
Mohammad AlSaleh
fb2b251a33
Update to alacritty_terminal v0.20
...
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-02 10:29:11 -07:00
Mohammad AlSaleh
f7ef6a6408
Fix UP/Down/Left/Right/Home/End when APP_CURSOR mode is enabled
...
Fixes #13 , shell history, and many more.
All this code is probably ripe for some refactors and higher
abstractions. But this is good enough for now.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2023-12-30 07:10:58 -07:00
Jeremy Soller
ccd507594b
Improve look of context menu checkbox
2023-12-22 16:08:43 -07:00
Jeremy Soller
898e3add26
Fix off by one in terminal select all
2023-12-22 15:47:59 -07:00
Jeremy Soller
37acfe186e
Add config for showing header bar
2023-12-22 15:40:10 -07:00
Jeremy Soller
7013067582
Fix context menu remaining open some more
2023-12-22 15:25:01 -07:00
Jeremy Soller
af8a23eb62
Fix context menu remaining open
2023-12-22 15:16:40 -07:00
Jeremy Soller
2a4d9f0d28
Implement select all
2023-12-22 15:08:24 -07:00
Jeremy Soller
40c871bcf3
Add context menu
2023-12-22 15:00:50 -07:00
Jeremy Soller
44a5d80740
Add config, translations, settings UI
2023-12-22 14:31:01 -07:00
Jeremy Soller
adb2d2ed3d
Make Ctrl+Shift+T open new tab, expand tab bar width
2023-12-22 11:09:31 -07:00
Jeremy Soller
4718703fe5
Fix alt and add F1-F12 keys
2023-12-22 08:45:53 -07:00
Jeremy Soller
94dd278f53
Fix selection when scrolling
2023-12-21 22:21:01 -07:00
Jeremy Soller
4ffad110b6
Add copy/paste
2023-12-21 22:13:17 -07:00
Jeremy Soller
c2fb3573d5
Show selection
2023-12-21 21:37:39 -07:00
Jeremy Soller
6cad69b414
Adjust to use COSMIC colors
2023-12-21 21:22:24 -07:00
Jeremy Soller
968955230c
Add code to set selection
2023-12-21 15:09:18 -07:00
Jeremy Soller
81e1062211
Send \r instead of \n for Enter
2023-12-21 14:38:26 -07:00
Jeremy Soller
d7798f73e6
Send 0x7F instead of 0x08 for backspace
2023-12-21 14:24:21 -07:00
Jeremy Soller
9783dd4e55
Fix background of tabs
2023-12-21 12:05:05 -07:00
Jeremy Soller
2193003ada
Use 85% opacity by default
2023-12-21 11:57:52 -07:00
Jeremy Soller
a46c5e8219
Remove padding
2023-12-21 10:29:50 -07:00
Jeremy Soller
49149c3e17
Do not draw scrollbar when not needed, draw background behind scrollbar
2023-12-21 10:26:17 -07:00
Jeremy Soller
ccec8e813b
Hide tab bar when only one tab, put new tab button in header
2023-12-21 10:19:16 -07:00
Jeremy Soller
1cbcc1e795
Share terminal config between tabs
2023-12-21 10:14:57 -07:00
Jeremy Soller
51818a34f5
Set up environmental variables for terminal
2023-12-21 10:11:11 -07:00