Commit graph

56 commits

Author SHA1 Message Date
Mattias Eriksson
1940f2c056 Support splitting of terminals using a Pane Grid 2024-01-17 16:09:56 +01:00
Jeremy Soller
7f37ede453
Allow specifying startup command with -e, --command, or -- 2024-01-14 12:33:28 -07:00
Mohammad AlSaleh
5159b130f9 Fix broken UI if font not found at startup
Change was not reflected in settings.

 Noticed while investigating #46.

Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-12 12:42:51 -07:00
Mohammad AlSaleh
e56e582f90 Add option for setting dim font weight
Allows users to set this to a value lower than default font weight.

Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-12 10:40:10 -07:00
Jeremy Soller
9b2ab1202a
Implement search 2024-01-11 14:31:20 -07:00
Jeremy Soller
928269a239
Add find stub 2024-01-11 13:20:16 -07:00
Jeremy Soller
2a679ab96f
Fix warnings 2024-01-11 11:40:22 -07:00
Jeremy Soller
3f09e17156
Normalize scrollbar style with figma designs 2024-01-11 11:33:39 -07:00
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
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
Jeremy Soller
db738371ac
Add menu 2024-01-09 10:16:32 -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
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
Jeremy Soller
ccd507594b
Improve look of context menu checkbox 2023-12-22 16:08:43 -07:00
Jeremy Soller
37acfe186e
Add config for showing header bar 2023-12-22 15:40:10 -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
4ffad110b6 Add copy/paste 2023-12-21 22:13:17 -07:00
Jeremy Soller
6cad69b414 Adjust to use COSMIC colors 2023-12-21 21:22:24 -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
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
Jeremy Soller
8008d0d2b0
Fix warnings 2023-12-21 09:53:31 -07:00
Jeremy Soller
8ec9fd22c9
Use OneHalfDark theme by default, do not have title when no tab open 2023-12-21 09:49:32 -07:00
Jeremy Soller
a83c593a24
Add OneHalfDark theme and script for testing theme 2023-12-21 09:44:44 -07:00
Jeremy Soller
07942c6f86 Remove all reference to scale factor 2023-12-20 19:54:18 -07:00
Jeremy Soller
7f181d0e64
Scroll on text input 2023-12-20 15:01:47 -07:00
Jeremy Soller
f9f7904117
Implement scrollbar 2023-12-20 14:57:44 -07:00
Jeremy Soller
ee3cc21ece
Add scrollbar and scrolling 2023-12-20 14:26:41 -07:00
Jeremy Soller
f6118a5cee
Convert to libcosmic 2023-12-20 13:31:10 -07:00
Jeremy Soller
2b0548de46
Fix ctrl characters 2023-12-18 13:57:38 -07:00
Jeremy Soller
65b613e6e4
Add glyphon renderer 2023-12-18 13:54:08 -07:00
Jeremy Soller
f2d716ea7b
Allow setting title and add zero width text to buffer 2023-12-18 11:53:56 -07:00