Commit Graph

99 Commits

Author SHA1 Message Date
Mike Sawka
dc70ab4014
ws reconnection bug + clean up logging (#1058) 2024-10-17 23:42:55 -07:00
Evan Simkowitz
88445b2f1d
Add expect-error to two emain event handlers (#1052)
There were two type errors after the most recent electron upgrade, but
they're both benign (event handler parameter mismatch) so I am adding
ts-expect-error to both instances.
2024-10-17 10:17:47 -07:00
Mike Sawka
8de0c3e210
make size computation a bit more general. adjust for workarea x/y (#1012) 2024-10-10 16:35:11 -07:00
Mike Sawka
3d2d68bc73
fix initial size of windows (#1011) 2024-10-10 16:12:56 -07:00
Evan Simkowitz
64084d3e27
Remove global.ts dependency from emain (#1003)
Removes global atoms dependency from emain by moving WOS to grab the
globalAtoms from window, if present. Also removes interdependency
between wshrpcutil and wps

Also adds showmenubar setting for Windows and Linux
2024-10-10 10:12:42 -07:00
Mike Sawka
9ad8068d13
fix rare bad shutdown loop with logger throwing errors (#1001) 2024-10-09 16:15:42 -07:00
Sylvie Crowe
c43fd787a0
Simple Quicklook (#998)
This adds some ability to use quicklook from the directory view with the
spacebar on mac.
2024-10-09 15:12:20 -07:00
Mike Sawka
f4c7269195
remove special shutdown logic for windows (#992) 2024-10-08 18:39:26 -07:00
Mike Sawka
545a914c4c
better shutdown logic to capture waveapp logs from wavesrv shutdown (#931) 2024-10-06 13:40:02 -07:00
Mike Sawka
1bd2fe83cb
right click save image in webview (#962) 2024-10-04 16:34:05 -07:00
Evan Simkowitz
74cda378f8
Embed static copy of docsite for help view (#949)
This will take the latest artifact from the waveterm-docs repo and embed
it in the app binary. When the help view is launched, it will be served
from our backend. If the embedded copy doesn't exist, such as in
unpackaged versions of the app or in locally packaged versions, it will
use the hosted site instead.

There is a sibling PR in the docs repository to build the embedded
version of the app (strips out some external links, removes Algolia
DocSearch, updates the baseUrl)
https://github.com/wavetermdev/waveterm-docs/pull/46
2024-10-03 20:28:05 -07:00
Sylvie Crowe
de92e53c38
Checkbox and Radio Context Menu Items (#861)
Expands the context menu to allow checkbox and radio button items.
2024-09-25 20:53:32 -07:00
Evan Simkowitz
d35f022b5c
Fetch settings directly from filesystem on launch (#855)
This bypasses the Go backend when fetching the settings for the app on first launch. This allows for actions that need to be performed before the app is ready, such as disabling hardware acceleration.
2024-09-25 14:43:05 -07:00
Evan Simkowitz
d5abf7ea95
Move settings check after wavesrv startup (#854) 2024-09-25 13:46:13 -07:00
Evan Simkowitz
4b665dec90
Add setting to disable Chromium hardware acceleration (#847) 2024-09-25 10:08:15 -07:00
Evan Simkowitz
0f09a70836
Add native titlebar setting (#837) 2024-09-24 22:05:38 -07:00
Evan Simkowitz
370ea132fe
Save update channel to user setting automatically (#401)
When a user first launches Wave, we will read the updater config and
store the channel as a user setting for use on future launches. This
should ensure that if a user on a beta channel gets updated to a latest
release, they will still be subscribed to beta releases going forward.
If a user manually updates the user setting, it will be honored.

---------

Co-authored-by: sawka <mike@commandline.dev>
2024-09-19 11:04:18 -07:00
Mike Sawka
d2366df9db
updated ws loading code (#397) 2024-09-19 10:42:53 -07:00
Evan Simkowitz
adcc564d35
Fix emain package error 2024-09-18 12:06:34 -07:00
Mike Sawka
c7a60a80f8
initwshrpc in electron (#391) 2024-09-17 23:10:09 -07:00
Evan Simkowitz
9f53524971
update version regex 2024-09-17 14:03:10 -07:00
Evan Simkowitz
891fab7422
fix type error in emain 2024-09-11 11:28:26 -07:00
Mike Sawka
5fe0cae244
wsh web (#358) 2024-09-10 12:50:55 -07:00
sawka
5190556c37 always recreate existing window if possible (for the last window only) 2024-09-09 11:49:57 -07:00
Mike Sawka
a5f563b52d
new directory structure and oldmigrate (#327) 2024-09-05 14:05:42 -07:00
Evan Simkowitz
0de41fab08
Fix the client version in the about modal (#315)
The client version in the about modal was hard-coded. Now, it will use
the same values that powered the Electron about modal.
2024-09-03 21:45:44 -07:00
Mike Sawka
a104a6e446
new focus system part 1 (#290) 2024-08-29 16:06:15 -07:00
Mike Sawka
8630e23239
new config system (#283) 2024-08-27 18:49:49 -07:00
Mike Sawka
ab5a9ec749
update window close logic for windows/linux (#268)
Co-authored-by: Sylvia Crowe
2024-08-26 22:03:43 -07:00
Evan Simkowitz
59a2b9b787
Replace default edit menu with one that won't eat keyboard shortcuts (#274)
We only need global Cut/Copy/Paste accelerators on macOS. Linux and
Windows do these automatically. Additionally, having these accelerators
means that we can't use shortcuts like Ctrl+C in the terminal. This PR
removes these accelerators for every platform but macOS.
2024-08-26 13:30:19 -07:00
Evan Simkowitz
3777cd1eb0
move authkey request injection to after app is ready 2024-08-26 13:20:37 -07:00
Evan Simkowitz
e527e2ab77
Add authkey header for requests to the backend (#256)
With this PR, Electron will generate a new authorization key that the Go
backend will look for in any incoming requests. The Electron backend
will inject this header with all requests to the backend to ensure no
additional work is required on the frontend.

This also adds a `fetchutil` abstraction that will use the Electron
`net` module when calls are made from the Electron backend to the Go
backend. When using the `node:fetch` module, Electron can't inject
headers to requests. The Electron `net` module is also faster than the
Node module.

This also breaks out platform functions in emain into their own file so
other emain modules can import them.
2024-08-21 15:04:39 -07:00
Evan Simkowitz
b3de31d0c9
don't register event handler for window controls overlay on darwin 2024-08-20 15:58:21 -07:00
Evan Simkowitz
5c00fc6e78
Fix sharp import issue (#251)
This PR updates the window controls overlay code to remove the
dependency on `sharp`, which is a natively-compiled Node library that is
really hard to package for Electron given the way that we strip node
modules after bundling. I've replaced this with `pngjs`, which has a
smaller footprint and is still relatively fast (it doesn't need to be
perfect since it runs on the Node process instead of the browser
process).
2024-08-20 13:18:47 -07:00
sawka
2f020099ec cmd:n and cmd:t 2024-08-19 22:39:52 -07:00
Red J Adaya
964c422a02
about modal (#244) 2024-08-19 15:49:40 -07:00
Evan Simkowitz
e6003c310e
Set background color for window controls on Linux (#247)
The Window Controls Overlay API applies a transparent overlay on
Windows, but not on Linux. This PR addresses this by capturing the area
underneath the overlay, averaging the color of the area, and setting
this as the overlay background color.

It will also detect whether to make the control symbols white or black,
depending on how dark the background color is.

On Linux, this will set both the background color and the symbol color,
on Windows it will just set the symbol color.

<img width="721" alt="image"
src="https://github.com/user-attachments/assets/e6f9f8f8-a49f-41b6-984e-09e7d52c631d">
2024-08-19 14:16:09 -07:00
Evan Simkowitz
edfe711eda
Use Window Controls Overlay API for native-like experience on Windows and Linux (#240)
This PR implements the [Window Controls Overlay
API](https://web.dev/articles/window-controls-overlay) to let us hide
the menu bar on Windows and Linux and directly embed the window controls
in our tab bar. With #239 merged, we no longer need the menu bar on
these platforms.

The overlaid window controls are transparent so they will take on the
background from the app. I've updated the tab bar to flow properly using
the API's CSS environment variables.

At some point, we may want to update the logic around the symbolColor so
that it can ensure a proper contrast between the background and the
symbols in the window controls. For now, setting them to white works for
all the backgrounds we currently support.

![image
(2)](https://github.com/user-attachments/assets/7610f10b-9696-435c-9a2d-a435bee9fadb)


https://github.com/user-attachments/assets/8d19b512-5281-42b9-8abb-ccb9b850061f
2024-08-16 23:45:22 -07:00
Evan Simkowitz
03587184a0
Replace logo with platform-dependent button to open app menu (#239)
Replace the logo in the tab bar with an ellipsis icon that shows on
Linux and Windows and, when clicked, opens up the system menus. This
also fixes an issue I noticed where the context menus were set to the
wrong coordinates when a window was zoomed in.


![image](https://github.com/user-attachments/assets/1be77cad-73a6-4cb8-b545-08ec908f1d9a)

![image](https://github.com/user-attachments/assets/0beef938-15f8-4084-b7bd-7d9f995187ef)
2024-08-16 16:18:42 -07:00
Sylvie Crowe
c192fe2663
Windows Pty (#206)
Add Windows Pty support, so the terminal works properly on windows
machines
2024-08-09 18:49:35 -07:00
Mike Sawka
ed0279ad72
adding telemetry updates (#209) 2024-08-08 18:24:54 -07:00
sawka
4641271bfa show the buildtimes in the about page 2024-08-08 13:39:17 -07:00
Evan Simkowitz
b8124bbc2e
Clean up the Updater class and fix a runaway interval (#207) 2024-08-08 11:55:44 -07:00
sawka
3c8bac6bf9 add console logs in front of all GetSettingsConfig calls in emain 2024-08-07 14:10:14 -07:00
sawka
4e88a27d9e fix zoom in/out to affect webcontents not webview 2024-08-06 19:47:02 -07:00
Evan Simkowitz
8ebdb58f4b
Use button for update available banner (#202) 2024-08-06 16:48:25 -07:00
Evan Simkowitz
21684b0995
use native install on quit instead 2024-08-06 16:30:42 -07:00
Evan Simkowitz
61f02b27d2
get update status on start, install update on quit 2024-08-06 16:19:55 -07:00
Evan Simkowitz
5187150e3f
await more async functions in emain 2024-08-06 15:32:29 -07:00
Evan Simkowitz
335ab6d55d
fix check for updates, ensure quitAndInstall is not interrupted 2024-08-06 15:13:59 -07:00