An open-source, cross-platform terminal for seamless workflows
Go to file
Red J Adaya 50203a6934
Simplified terminal theming (#570)
* save work

* reusable StyleBlock component

* StyleBlock in elements dir

* root level

* ability to inherit root styles

* change prop from classname to selector

* selector should always be :root

* remove selector prop from StyleBlock

* working

* cleanup

* loadThemeStyles doesn't have to be async

* revert changes in tabs2.less

* remove old implementation

* cleanup

* remove file from another branch

* fix issue where line in history view doesn't reflect the terminal theme

* add key and value validation

* add label to tab settings terminal theme dropdown

* save work

* save work

* save work

* working

* trigger componentDidUpdate when switching tabs and sessions

* cleanup

* save work

* save work

* use UpdatePacket for theme changes as well

* make methods cohesive

* use themes coming from backend

* reload terminal when styel block is unmounted and mounted

* fix validation

* re-render terminal when theme is updated

* remove test styles

* cleanup

* more cleanup

* revert unneeded change

* more cleanup

* fix type

* more cleanup

* render style blocks in the header instead of body using portal

* add ability to reuse and dispose TermThemes instance and file watcher

* remove comment

* minor change

* separate filewatcher as singleton

* do not render app when term theme style blocks aren't rendered first

* only render main when termstyles have been rendered already

* add comment

* use DoUpdate to send themes to front-end

* support to watch subdirectories

* added support for watch subdirectories

* make watcher more flexible so it can be closed anywhere

* cleanup

* undo the app/main split

* use TermThemesType in creating initial value for Themes field

* simplify code

* fix issue where dropdown label doesn't float when the theme selected is Inherit

* remove unsed var

* start watcher in main, merge themes (don't overwrite) on event.

* ensure terminal-themes directory is created on startup

* ah, wait for termThemes to be set (the connect packet needs to have been processed to proceed with rendering)
2024-04-23 23:22:35 -07:00
.github Add scripthaus to path for Build Helper workflow (#458) 2024-03-14 12:23:35 -07:00
.testdriver test pr branch (#376) 2024-03-04 21:06:10 -08:00
.vscode only run prettier on js/ts/css/less files 2024-01-29 13:35:09 -08:00
acknowledgements Fix another acknowledgements readme typo (#431) 2024-03-11 17:46:43 -07:00
assets Keybinding fixes (#591) 2024-04-23 11:18:39 -07:00
buildres output dl links (#414) 2024-03-08 15:16:55 -08:00
housekeeping Create MacOS Universal Build (#62) 2023-11-05 00:00:47 -07:00
public Clean up styling and focus behavior for cmdinput (#546) 2024-04-04 19:29:43 -07:00
src Simplified terminal theming (#570) 2024-04-23 23:22:35 -07:00
waveshell Sudo Caching (#573) 2024-04-16 16:58:17 -07:00
wavesrv Simplified terminal theming (#570) 2024-04-23 23:22:35 -07:00
webpack import aliass and configuration updates (#291) 2024-02-12 22:47:51 -08:00
.gitignore Support Linux packaging via electron-builder (#371) 2024-03-04 22:03:53 -08:00
.prettierignore add prettier to package.json 2023-08-21 21:33:47 -07:00
.prettierrc.json add prettier to package.json 2023-08-21 21:33:47 -07:00
build-linux.md fix directory names in build-linux.md. also fix reload accelerator for Linux (keybindings) 2024-02-15 10:01:18 -08:00
BUILD.md removed unecessary electron-rebuild steps (#439) 2024-03-12 13:12:40 -06:00
CODE_OF_CONDUCT.md PE 178 Add OSS files (#50) 2023-10-28 13:16:50 -07:00
CONTRIBUTING.md Tidy up contribution guide 2023-11-08 14:10:31 -05:00
electron-builder.config.js Add pacman artifact and update product tagline (#412) 2024-03-08 14:05:21 -08:00
go.work Update dependencies (#383) 2024-03-05 16:12:52 -08:00
go.work.sum update go.sum files (#391) 2024-03-06 14:47:41 -08:00
LICENSE Add Apache 2.0 License 2023-10-16 15:22:41 -07:00
NOTICE add notice and license in package.json 2023-10-16 15:21:21 -07:00
package.json Update electron-rebuild reference to @electron/rebuild as recommended by Yarn (#593) 2024-04-23 11:07:52 -07:00
README.md adding new screenshot to readme (#437) 2024-03-12 11:56:47 -06:00
scripthaus.md bump version to v0.7.2, bump waveshell version to 0.6 (#512) 2024-03-27 14:27:55 -07:00
SECURITY.md PE 178 Add OSS files (#50) 2023-10-28 13:16:50 -07:00
tsconfig.json global shortcut for wave (#287) 2024-02-13 17:43:02 -08:00
version.js Get version for build-universal from the build-helper output, use package.json for all versioning (#321) 2024-02-23 17:44:00 -08:00
webpack.config.js big update for webpack configs. use --env to select environment. now dev/prod will combine both web and electron webpack environments 2023-10-25 13:32:15 -07:00
yarn.lock Update electron-rebuild reference to @electron/rebuild as recommended by Yarn (#593) 2024-04-23 11:07:52 -07:00

Wave Terminal Logo

Wave Terminal

Wave is an open-source AI-native terminal built for seamless workflows.

Wave isn't just another terminal emulator; it's a rethink on how terminals are built. Wave combines command line with the power of the open web to help veteran CLI users and new developers alike.

  • Inline renderers to cut down on context switching. Render code, images, markdown, and CSV files without ever leaving the terminal.
  • Persistent sessions that can restore state across network disconnections and reboots
  • Searchable contextual command history across all remote sessions (saved locally)
  • Workspaces, tabs, and command blocks to keep you organized
  • CodeEdit, to edit local and remote files with a VSCode-like inline editor
  • AI Integration with ChatGPT (or ChatGPT compatible APIs) to help write commands and get answers inline

WaveTerm Screenshot

Installation

Wave Terminal works with MacOS and Linux.

Install Wave Terminal from: www.waveterm.dev/download

Also available as a homebrew cask for MacOS:

brew install --cask wave

Building from Source

Contributing

Wave uses Github Issues for issue tracking.

Find more information in our Contributions Guide, which includes: