Commit Graph

410 Commits

Author SHA1 Message Date
Evan Simkowitz
1f5634a1b6
Only create starter workspace on first launch (#1599) 2024-12-20 16:00:26 -08:00
Evan Simkowitz
62dcf1326d
Allow users to close windows without confirming, delete last window (#1598)
Adds `window:savelastwindow` and `window:confirmclose` settings, which
can be used to alter the default window close behavior. Both of these
default to `true` to maintain the existing default behavior.

If `window:savelastwindow` is unset, the same logic will be used as if
the user had more than one window remaining (see below).

If `window:confirmonclose` is unset, the user will no longer be prompted
to confirm if they are closing a window whose workspace has unsaved
changes (the workspace is not named and it has more than one tab).
2024-12-20 14:02:08 -08:00
Evan Simkowitz
cf578b1d89
Allow empty workspace name while editing workspace (#1592)
Fixes a bug where if you deleted all but one character in the workspace
name, you couldn't delete the final character. To fix this, I have made
the workspace editor save a separate entry from the backend. The backend
will also only update its DB value and notify the frontend if something
was actually edited. If you delete all the characters in the name and
don't put anything new in, though, the name will be whatever the last
character you had was, since the name of a saved workspace cannot be
empty.
2024-12-20 08:55:28 -08:00
Mike Sawka
fca6068599
fix terminal selection colors when transparency is turned on (#1584)
fix some more of the selection background colors and fix onedarkpro (was
too washed out and not using the correct official colors)
2024-12-19 18:39:22 -08:00
Sylvie Crowe
76e8bc4bae
fix: unquote zdotdir for starting zsh in wsl (#1574)
Due to the way this command is run, the quotes are not being handled by
the shell. Removing them allows them to be interpreted correctly in most
cases. This resolves #1569
2024-12-19 12:43:22 -08:00
Sylvie Crowe
2e2a6491e8
SSH Config Panic Handler (#1571)
Match statements in files that are included in an ssh config still seem
to cause panics with the ssh_config library. This adds a panic handler
to catch them, and prevent the app from crashing. It does not resolve
the underlying issue which will need to be done later.
2024-12-19 11:46:35 -08:00
Mike Sawka
eff12635d7
transparent terminal themes (#1561) 2024-12-19 10:41:28 -08:00
Mike Sawka
8ae6e47d9b
fix blockstore panic (#1570) 2024-12-19 10:35:50 -08:00
Evan Simkowitz
0925af5300
Add warning when user is running in ARM translation mode (#1560)
Adds warning and docs to let users know when they're running in ARM
translation mode. Also lets them configure to always dismiss if they
don't care.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a configuration option to dismiss architecture warnings during
application startup.
- Introduced new FAQs addressing ARM64 translation warnings and
instructions for joining beta builds.
- Added platform-specific requirements for macOS, Windows, and Linux in
the getting started documentation.

- **Bug Fixes**
- Enhanced build command flexibility by allowing dynamic command-line
arguments during the build process.

- **Documentation**
- Updated configuration documentation to include the new dismiss
architecture warning key.
- Minor formatting adjustments in FAQs and getting started
documentation.
	- Clarified platform compatibility details in the README.

- **Chores**
- Added a new constant for the dismiss architecture warning
configuration key.
- Introduced a new field for managing architecture warning settings in
the application configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-18 19:44:50 -08:00
Sylvie Crowe
dbc2be1c1e
Global Hotkey Docs (#1548)
Adds the following changes:
- renames "key:globalhotkey" to "app:globalhotkey"
- adds globalhostkey documentation (especially in regard to what keys are allowed)
- improves the algorithm that converts electron keybindings from wave keybindings
- fixes some regexp problems
2024-12-17 15:25:34 -08:00
Evan Simkowitz
0a3dadb628
Add wsh wavepath command for getting Wave paths (#1545) 2024-12-17 14:11:40 -08:00
Evan Simkowitz
799aecd501
Add ZDOTDIR after JWT token for WSL commands (#1546) 2024-12-17 13:00:55 -08:00
Sylvie Crowe
f5305cc8dd
Disable Wsh on Remotes where the Domain Socket Listener Fails (#1542)
A recent change meant that if certain operations for setting up wsh
failed, a fallback would be employed to launch the terminal without the
wsh connection. This adds the domain socket listener to the list of
things that are allowed to fail before retrying without wsh instead of
failing outright.
2024-12-17 12:22:57 -08:00
Evan Simkowitz
78f3cd0472
Synchronize workspace edits across windows, close window when workspace is deleted (#1540) 2024-12-16 21:54:13 -08:00
Sylvie Crowe
71961b373f
Extra Font Size Controls (#1537)
This adds:
- "editor:fontsize" to modify the code editor's font size
- "ai:fontsize" to modify the ai widget's font size (for general text)
- "ai:fixedfontsize" to modify the ai widget's fixed font size (for code
fragments)
2024-12-16 18:23:42 -08:00
Mike Sawka
f1cd6b933d
relative markdown text (#1489) 2024-12-16 16:04:07 -08:00
Sylvie Crowe
51bd45bd2b
Global Hotkey (#1534)
Sets up a configurable global hotkey to focus the last window used in
the application. Note that this is established at startup and
configuration changes will not be applied until rebooting the app.
2024-12-16 15:24:32 -08:00
Mike Sawka
38deb28da5
webview zoom (#1531) 2024-12-16 14:16:21 -08:00
Evan Simkowitz
ec4f6c01de
Create workspace will always create a saved workspace (#1509)
Also moves icon and color definitions to the backend and makes it so the
new workspaces get created with a different icon color for each index.

If an ephemeral window has more than one tab, always create a new window
when switching workspaces

Also fixes workspace accelerators on macOS
2024-12-12 17:21:09 -08:00
Evan Simkowitz
9ce0093751
Fix errors in loading of help view (#1501)
When clicking on one of the cards from the home page of the docsite and
when initially loading the home page of the docsite, the webviewTag was
emitting a `did-frame-navigate` event, which we weren't tracking. This
meant that we were not properly recording that a navigation had
occurred. This caused three separate issues:

- We were never setting the meta url for the block, which meant that
when you navigated to a different tab or reloaded the app, you'd lose
what page you were last on.
- The site would reload after we fixed a broken docsite url, but we
wouldn't remove the error text that blocks the broken site.
- Clicking on the "open in external browser" button wouldn't do
anything.
2024-12-11 16:09:47 -08:00
Evan Simkowitz
4070abadde
Squash some leftover bugs (#1495)
Only create new tab in `CheckAndFixWindow` if no tabs or pinned tabs
exist

Update `resolvers.resolveTabNum` to account for pinned tabs

Remove obsolete and unused `wstore.DeleteTab`

Only show accelerators for first 9 workspaces in workspace app menu to
be consistent with other keybindings

Fix tabbar spacing to remove min size for drag right spacer, account for
workspace switcher button size

Fix updatebanner size calculations
2024-12-11 12:52:15 -08:00
Evan Simkowitz
1d74e56c26
Add license identifiers to my changes (#1475) 2024-12-10 15:18:14 -08:00
Evan Simkowitz
c2312f1c7f
Make default workspace icon the Wave logo (#1470)
I made our logo a custom icon in Font Awesome so we can add it to our
workspace switcher as the default icon
2024-12-10 13:54:11 -08:00
Sylvie Crowe
0174adea7b
Connections Typeahead Additional Fixes (#1457) 2024-12-10 11:13:15 -08:00
Mike Sawka
09128fe88a
new bg theme (#1454)
thanks to shadowarcanist in discord
2024-12-10 10:05:28 -08:00
Evan Simkowitz
edab90aa55
New colors for workspace switcher (#1443)
Also updates workspace switcher button and tab bg colors
2024-12-09 16:24:32 -08:00
systemshift
c071cc04c3
Perplexity api (#1432)
I have added Perplexity to the default AI models. I see Anthropic models
are becoming part of the default as well, so I thought I should add a
model that is specific for web search.

This pull request is a work in progress; reviews and edit
recommendations are welcome.

---------

Co-authored-by: sawka <mike@commandline.dev>
2024-12-09 15:48:33 -08:00
Evan Simkowitz
7c799d74eb
Found another erroneous layout bootstrap (#1442)
CreateTab already bootstraps its own layout, don't need
BootstrapNewWorkspaceLayout
2024-12-09 15:22:41 -08:00
Evan Simkowitz
6a3f72830b
Was accidentally bootstrapping new layout twice (#1441) 2024-12-09 15:11:02 -08:00
Mike Sawka
878a7285ab
implement tab:preset, and increase active tab opacity (#1439) 2024-12-09 14:48:16 -08:00
Evan Simkowitz
c5501a5335
Move wlayout to wcore, create new tab layout for all new tabs (#1437)
Moves the wlayout package contents to wcore to prevent import cycles.
Moves the layout calls to other wcore functions instead of being handled
by the services. Removes redundant CreateTab in EnsureInitialData and
adds a isInitialLaunch flag to the CreateTab and CreateWorkspace
functions to ensure that the initial tab is pinned and does not have the
initial tab layout (since the starter layout gets applied later)
2024-12-09 14:24:02 -08:00
Mike Sawka
ac8dc25ead
fix block controller status (add version) (#1430) 2024-12-06 19:39:58 -08:00
Evan Simkowitz
7bf1ca5a49
Remove unused vars in wcore (#1426) 2024-12-06 15:55:36 -08:00
Evan Simkowitz
e2b999c4b0
Rename "Default workspace" to "Starter workspace" (#1425) 2024-12-06 15:50:52 -08:00
Evan Simkowitz
72ea58267d
Workspace app menu (#1423)
Adds a new app menu for creating a new workspace or switching to an
existing one. This required adding a new WPS event any time a workspace
gets updated, since the Electron app menus are static.

This also fixes a bug where closing a workspace could delete it if it
didn't have both a pinned and an unpinned tab.
2024-12-06 15:33:00 -08:00
Sylvie Crowe
66d1686e84
fix: changes for nowsh compatibility with wsl (#1422)
The wsl largely ignores most nowsh stuff, but there are some options
that can be specified for wsl. This ensures that it will still work
whether or not they are set.

Additionally if fixes the wsh not installed icon.
2024-12-06 14:19:19 -08:00
Mike Sawka
00e3c4ec75
fix bcstart -- don't allow two controllers to start simultaneously (#1418) 2024-12-06 11:08:51 -08:00
Sylvie Crowe
6dfc85b324
Retry Without Wsh on Fail (#1406)
Adds the ability for connections to continue without wsh if they fail.
This involves creating a menu that warns the user that wsh could not be
used.
2024-12-06 10:11:38 -08:00
Mike Sawka
9f10be5629
add more extensions to mimetype database. (#1417)
fallback to text/plain for 0 byte files
2024-12-06 09:36:26 -08:00
Mike Sawka
7386fc19f7
activity update + dont allow empty workspace names (#1393) 2024-12-05 10:35:54 -08:00
Sylvie Crowe
b4b0222c9d
New Connections Configs (#1383)
This adds the following connections changes:
- connections can be hidden from the dropdown in our internal
connections.json config
- `wsh ssh` -i will write identity files to the internal
connections.json config for that connection
- the internal connections.json config will also be used to get identity
files when connecting
- the internal connections.json config allows setting theme, fontsize,
and font for specific connections
- successful connections (including those using wsh ssh) are saved to
the internal connections.json config
- the connections.json config will be used to help pre-populate the
dropdown list
- adds an item to the dropdown to edit the connections config in an
ephemeral block

---------

Co-authored-by: Evan Simkowitz <esimkowitz@users.noreply.github.com>
2024-12-05 10:02:07 -08:00
Mike Sawka
72f36a9639
wsh run (#1376)
implements `wsh run` command.  lots of fixes (and new options) for command blocks.  cleans up the UX/UI for command blocks.  lots of bug fixes for blockcontrollers.  other minor bug fixes.

also makes editor:* vars into settings override atoms.
2024-12-04 14:16:50 -08:00
Evan Simkowitz
3945995d73
Fix tab name calculation to account for pinned tabs (#1385) 2024-12-04 14:00:19 -08:00
Evan Simkowitz
aa77b2c259
Pinned tabs (#1375)
![image](https://github.com/user-attachments/assets/a4072368-b204-4eed-bb65-8e3884687f9a)

This functions very similarly to VSCode's pinned tab feature. To pin a
tab, you can right-click on it and select "Pin tab" from the context
menu. Once pinned, a tab will be fixed to the left-most edge of the tab
bar, in order of pinning. Pinned tabs can be dragged around like any
others. If you drag an unpinned tab into the pinned tabs section (any
index less than the highest-index pinned tab), it will be pinned. If you
drag a pinned tab out of the pinned tab section, it will be unpinned.
Pinned tabs' close button is replaced with a persistent pin button,
which can be clicked to unpin them. This adds an extra barrier to
accidentally closing a pinned tab. They can still be closed from the
context menu.
2024-12-04 13:34:22 -08:00
Evan Simkowitz
a72d3e5c7a
Add recursive flag to prevent unwanted deletion of parents while they're already being deleted (#1378)
When a tab was being deleted, for instance, the last block that got
deleted would cascade to delete its parent tab, even though the
`DeleteTab` function was already going to do this. This would produce DB
collisions that would put the app into a bad state. Now we pass a
`recursive` flag that is used to determine whether to perform the
recursive close of the parents.

Also updates `DeleteWorkspace` so that named workspaces will always be
deleted if they're empty, even if `force` is false
2024-12-03 18:39:06 -08:00
Evan Simkowitz
90e31dfa48
Delete a tab when it's out of blocks, cascade to window (#1374)
Updates `DeleteBlock` to close its parent tab if the tab has no more
blocks. This will also cascade to close the workspace if it no longer
has any tabs, same for window.

I had to move some block-related functionality around on the backend.
2024-12-03 09:38:46 -08:00
Evan Simkowitz
04c4f0a203
Create and rename files and dirs in dirpreview (#1156)
New context menu options are available in the directory preview to
create and rename files and directories

It's missing three pieces of functionality, none of which are a
regression:
- Editing or creating an entry does not update the focused index. Focus
index right now is pretty dumb, it doesn't factor in the column sorting
so if you change that, the selected item will change to whatever is now
at that index. We should update this so we use the actual file name to
determine which element to focus and let the table determine which index
to then highlight given the current sorting algo
- Open in native preview should not be an option on remote connections
with the exception of WSL, where it should resolve the file in the
Windows filesystem, rather than the WSL one
- We should catch CRUD errors in the dir preview and display a popup
2024-12-02 22:23:44 -08:00
Evan Simkowitz
0ec60f5a7b
Fix switch workspace (#1370) 2024-12-02 14:52:34 -08:00
Evan Simkowitz
f368a61c70
Fix close active tab behavior (#1367)
This fixes a bug where closing the active tab would clean up the closed
tab view before switching to an un-closed tab view, putting the window
into an unrecoverable state. This also moves around some of the CloseTab
logic so that it's more standardized and reduces unnecessary
frontend-backend comms and DB writes
2024-12-02 12:59:03 -08:00
Evan Simkowitz
7e49e14977
Fix initialdata bug (#1365)
There was a bug in main-server where we were returning Window from
EnsureInitialData and then overwriting the layout on the active tab. The
return values from this function are unclear. Some of the initial data
was being set in the wcore.EnsureInitialData and some was being set in
main, so I've moved all the logic into EnsureInitialData and now it just
returns error.
2024-12-02 11:44:08 -08:00