* Add migration path from Hyper2 config location to Hyper3
* Use fs-extra, not fs-extra-p
* Better approach that also handles plugin migration
* Remove plugins migrationn
* Migrate local plugins
* Empty to force CI
* Update copyright year
I don't know if this is necessary or not as it's not for the license(from https://github.com/zeit/hyper/pull/2566).
Still mentioning it since I noticed it.
* Remove a typo
* Now displaying the renderer type in the About dialog
* Show the number of renderers per type in the About dialog
* Use values instead of entries (key is unused)
Co-Authored-By: onecamp <juancampa@gmail.com>
* Fix location of webGLRenderer flag in default-config.js
* Fix incorrect check of webGLRenderer flag
* Explain that disabling WebGL enables transparent backgrounds
Co-Authored-By: juancampa <juancampa@gmail.com>
* Only use WebGL if background is opaque
The hardcoding to white was also removed in favor of a temporary hack in
xterm.js that uses either white-over-black or black-overwhite to
maximize contrast with the background color
Two possible value:
* `'vertical'` (Default): enable column selection when Option key is hold
* `'force'`: force selection regardless of whether the terminal is in mouse events mode
* Upgrading xterm.js with emoji support
* Removing emoji shortcut
My understanding is that this was needed at some point because we
weren't typing into a textarea. No that we're typing into a textarea the
browser (i.e. Chromium) handles this for us
* Bumping electron to 3.0.10
* Updating node version in travis and appveyor
* Fixing incorrect require of electron-fetch
* Fix zoom to match previous versions
Additionally I'm removing a call to disable pinch-zoom, it's disable by
default since Electron 2 (https://electronjs.org/releases#2.0.0)
* Bumping electron to 4.0.0-beta.8
* Bumping electron to 4.0.0-beta.9
* Work around for Copy accelerator not firing on electron v4
* Batch session data before sending it to renderer
* Fix linting issues
* Fixing header/titlebar in MacOS
* Upgrading to electron 4.0.0 and node-pty 0.8.0
* Adding yarn.lock changes for electron 4.0.0
* Adding comments for editor:copy workaround. Scaling issue is only on Linux
* Upgrading node-abi to support electron 4.0.0
* Adding isDestroyed check
* Enabling webGL renderer
* Use @zeit/xterm fork of xterm
* Adding webGLRenderer config
* Fix linting issues
* Allow for hot-reloading of webGLRenderer
* Adding link to WebGL renderer issue we're working around
* Using NPM tarball instead of resolutions (which wasn't working
* Hard-coding selection color to white because nothing else is yet supported
* Bumping electron to 3.0.10
* Updating node version in travis and appveyor
* Fixing incorrect require of electron-fetch
* Fix zoom to match previous versions
Additionally I'm removing a call to disable pinch-zoom, it's disable by
default since Electron 2 (https://electronjs.org/releases#2.0.0)
* Bumping electron to 4.0.0-beta.8
* Bumping electron to 4.0.0-beta.9
* Work around for Copy accelerator not firing on electron v4
* Fixing header/titlebar in MacOS
* Upgrading to electron 4.0.0 and node-pty 0.8.0
* Adding yarn.lock changes for electron 4.0.0
* Adding comments for editor:copy workaround. Scaling issue is only on Linux
* Upgrading node-abi to support electron 4.0.0
* popup now takes an object as input
Improves upon previous work completed in #2631:
- Add additional system default check: `JSFile`
- Relax restriction on `.exe` file extension as it is an invalid assumption:
Closes#3223
During plugin updates, each `plugin.onUnload` is invoked regardless of
whether the plugin changed. This commit ensures that each `plugin.onApp`
is invoked once all plugins have been updated. Fixes#2415.
* WIP
* WIP
* Wip
* Wip
* wip
* Refactor without normalize and plugin
* Replace extendKeymaps by decorateKeymaps
* WIP
* Add mousetrap
* Add first command over rpc
* More commands
* Add all commands
* Begin to hook commands
* Working multiple keymaps
* Use redux action to trigger command
* Use forked version of Mousetrap to capture key events
* Fix lint
* Add command in redux action to debug purpose
* ExecCommand from menu click
* Remove unused files
* Fix xterm should ignore catched events
* Re-enable IntelliSense checking
* Remove unused runes dep
* master:
Fix yarn.lock (#2194)
Fix for keymapping bug on Linux and Windows (#2189)
Set session CWD only if there is an active session (#2191)
Upgrade Electron to v1.7.6 (#2193)
Fix plugin path in dev mode (#2192)
* Fix for keymapping bug on Linux and Windows
In response to issue #2156, the keymapping conflict has been removed from linux.json and win32.json in the app/keymaps/ directory. Now the keymap for window close is ctrl+shift+q and the keymap for pane close is ctrl+shift+w.
* Fix for failed test on initial commit.
* master:
Add default keymaps reference to documentation (#2185)
Add category option under linux key in root package.json (#2184)
Add vscode debug config, update readme (#2181)
Get default config options when not specified in user config (#2126)
Fix session cleaning (#2176)
Delete .DS_Store file (#2171)
* Bumped dependencies to the latest version
* Bumped root lockfile
* Bumped app dependencies
* Fixed linting
* No command line switch needed anymore for native async/await
* Fixed color error
* Bumped Node.js versions for CI
* Downgraded hterm-umdjs
* Try to fix the AppVeyor build
* Made colors work again
* 🎉 Check for WScript.exe
* 🔥 Move openConfig
* 🔥 Make openNotepad mimic openItem
* 🌹 Add comments
* 🔥 Cleanup windows workaround
* 🔥 Cleanup
* 🎉 Use openConfig on darwin too
* Add support for the fish shell
Fixes#1142
The fish shell is not POSIX-compliant. As a result, the installation
command's use of `&&` caused `updatePlugins` to fail, erroneously
claiming there would be details in `~/.hyper_plugins/npm-debug.log`.
They of course weren't there because the command it tried to run was an
invalid command. I've added an object to choose the install command to
run based on the shell you're in, and a very basic test to determine if
we're in fish. Most shells should be able to be handled by the
'default' key, so for now it just checks to see if it's fish by doing a
regex on the configured `shell` option.
* Rename default -> posix
* Added --help command line argument.
Also looks for -v and --version.
* Fixing linting issues.
* Deleted incorrect comment that used to make sense.
* Cleaner arguments checking.
* Used newer JS syntax.
* Make double-clicking on the titlebar work
* We don't actually need this
* Draw a Restore icon when the window is Maximized
* Update React State when BrowserWindow changes behind our back
* Cleanup
* Don't show the border if the window is maximized
* Fight with the linter
* bump webpack, babel and include babili
* fix for babili
* add heuristics for faster v8 parsing
* lint fixes
* fix windows build. infinitely grateful to @stefanivic for helping us test windows
* `command` => `mod`
* `Option` => `Alt`
* Allow hterm to consume a keyboard event only if it's not a Hyper accelerator
* Remove `console.log`s
* Say no to bikeshedding
* We already clear the selection on `onKeyDown`
* Add comments
* Remove meaningless comment
* Add fullscreen shortcut for Windows and Linux
* Use the accelerators defined in `accelerators.js` for the app menu
* ime
* Fix code style
* Add visual feedback for composition events
* Temporarily disable `hterm`'s `onKeyDown` hacks
* Replicate the focus/blur state of our caret on the `hterm` caret
* Fix: focus our caret when there's a tab change
* `caret_` => `hyperCaret`
* Reorg: move the caret hacks to the `hterm.js` extensions
* Remove `console.log`
* Remove the `Dead key` hack and reenable keyboard commands
* Add a (temporary?) fix to re-enable text selection
* Check for a selection `onMouseUp` instead `onFocus`
* Fix wrong buggy hterm's cursor styling on term focus/blur
* Fix the cursor style after the bell rings – closes#674
* Enable `acceptFirstMouse` to focus the correct term – closes#861
* Fix code style
* Fix: clear the `hyper-caret` when a char is inserted via the IME dialog
* Remove useless function
* Add coments regarding text selection
* Fix code style
* `child_pty` => `pty.js`
* Create a frameless window on Windows and Linux
* Add a brand new UI for Linux and Windows 💅
* [Windows] Fix plugin installation
* [Windows] Fix the `build` script
* [Windows] Add a bigger `icon.ico`
* [Mac] Add `WebKitAppRegion: drag` when running on macOS
* Fix code style 🤔
* Add `appveyor.yml`
* Fix code style (again)
* [Windows] Fix AppVeyor's `install` script
* [Windows] Try a new AppVeyor config
* [Windows] Set the binary path so Spectron can run the tests
* [Windows] Try to build on x64
* Try again to build on x64
* Try one more time 😩
* Throw an error to indicate that `pty.js` was built incorrectly
* [Win/Linux] Add `display: hidden` to <Tabs /> if tabs.length === 1
* [Win/Linux] Reorganize SVGs – via @CodeTheory
* [Win/Linux] Fix the hamburger menu height
* Make the SVGs look better with `shape-rendering: crispEdges;`
* [Win/Linux] Add config options for the window controls and the 🍔 menu
* Add `electron-squirrel-startup` dependency
* [Win] Handle Squirrel commands
* [Win/Linux] Fix default color for the 🍔 and window controls – via @CodeTheory
* [Win/Linux] Add some padding - via @CodeTheory
* [Win/Linux] Add hover states – via @CodeTheory
* [Win] Fix empty window/tab titles
* [Win] Fix opening Preferences (#978)
* [Win] Fix opening Preferences
* Update ui.js
* Update ui.js
* Enhance messages and default editor
* [Win] Add dependency instructions to the README.md [skip ci]
* Fix code style
* [Win/Linux] Check the number of open windows before quitting the app
* increase timeout for update checks
It seems like, there are lots of them and GitHub is not happy.
So increasing timeout 6x should fix that. In the end there is no need
to check updates every 5 minutes.
Fix#880
* restore check updates on start
@Tyriar brought up a good point in #123 that the close menu items can be
ambiguous and misleading. This clarifies them so you know exactly what
you're closing.
Fixes#123.
Default `err.message` notification is not helpful,
because it lacks stack and context.
it doesnt hurt for end users to add `console.error(err)`,
because they arent gonna see it. Though, as far as `console.error`
is being logged in Electron console, developers will get
enough information to identify problems with plugin they are developing.
fetchNotifications error can happen in two cases:
* https://hyper-news.now.sh is down
* you are offline
In both cases it doesn't hurt to wait half an hour.
PS. right now it hurts, when you are offline and developing
anything for Hyper, `console.error` logs the same error
every 10s and ruins your investigation.
* Add pseudo quick full screen
* Record window size before entering full screen
* Restore window size when leaving full screen
* Toggle menu items for quick full screen
* Remove redundant filters
* Add accelerators for Linux
* Only save window state when not full screen
* npm: add .npmrc with save-exact=true
* split panes: create initial implementation
This allows users to split their Hyperterm terms into
multiple nested splits, both vertical and horizontal.
Fixes#56
* split panes: suport closing tabs and individual panes
* split panes: ensure new splits are placed at the correct index
New split panes should be placed after the currently active
pane, not at the end like they were previously.
* split panes: add explicit dependency to uuid
* split panes: implement split pane cycling
This adds menu buttons for moving back and forward between
open split panes in the currect terminal tab.
Doesn't add a hotkey yet, needs some bikeshedding.
* split panes: move activeSessionUid to its own object
It made little sense to have so many objects with `activeSessionUid`
set to `null` when it only mattered on the top level.
Now it's an object mapping term-group `uid` to `sessionUid` instead.
* split panes: make sure closing the last split pane exits the app
* split panes: fix a crash after closing specific panes
Sometimes the terminal would crash when a specific
split pane was closed, because the `activeSessions`
mapping wasn't updated correctly.
* split panes: fix a bug that caused initial session sizing to be wrong
* fix all our focus / blur issues in one fell swoop :O (famous last words)
* get rid of react warning
* hterm: make sure not to lose focus when VT listens on clicks
* term: restore onactive callback
* add missing `return` to override (just in case)
* split pane: new split pane implementation
* goodbye react-split-pane
* added term group resizing action and reducer
* terms: supply border color so that we can use it for splits
* term-group: add resizing hook
* term-groups: add resizing constant
* remove split pane css side-effect
* split panes: pass existing hterm instances to Term
* split panes: add keybindings for split pane cycling
* split panes: remove unused action
* split panes: remove unused styling
* split-pane: remove `console.log`
* split-pane: remove `console.log`
* split panes: rebalance sizes on insert/removal
* split panes: pass existing hterm instances to Term
* split panes: add keybindings for split pane cycling
* split panes: remove unused action
* split panes: remove unused styling
* split panes: rebalance sizes on insert/removal
* split panes: set a minimum size for resizing
* split-pane: fix vertical splits
* css :|
* package: bump electron
* split panes: attach onFocus listener to webviews
* 1.4.1 and 1.4.2 are broken. they have the following regression:
- open google.com on the main window
- open a new tab
- come back to previous tab. webview is gone :|
* split panes: handle PTY exits
* split panes: add linux friendly keybindings
* Memorize window position
* Memorize window size
* Add forced settings and window config
* use destructuring and shorthand method
* Set default config
* Use options defaults in createWindow
* Use options object only
* Update return function
* xo comply
* Bump `eslint-plugin-react`
* Add `eslint-config-xo-react`
* Add XO
* Remove eslint-related dependencies, add XO config and use XO as the linter
* Code style: Standard => XO ✨
* Use xo property to ignore files
* Fix remaining errors
* transparent + reactive background colors
* refactor header to not set its own background color
* make terms not set background color
* dramatically improve tab borders
* remove background color from electron windows
* Revert "remove background color from electron windows"
This reverts commit ca4de3c5dc28095f1a598f7ac79d4dff4b66ccd5.
* put alpha first for electron
* remove initial bg color setting, but maintain reactive one
* fix
In case someone wants to use non-login shells there is a field added to
the configuration file.
If shellArgs not set default shell will be used as before.
i.e. for using interactive shell (and use .bashrc instead of
.bash_profile on linux) use shellArgs: ['-i'] and shell: '/bin/bash'
this is useful especially if you are on Linux.
* Open new window offset from last focused window
* Make sure a newly opened window is seen to now have focus
* Instead of setting focus time, simply emit the event first
* Add comment explaining why we emit the focus event
* Don't fire the event, as that can make it fire twice
* Added file-uri-to-path dependency
* Added new rpc event to send data to session
* Modified sendSessionData to use activeUid if no uid is passed to function
* "will-navigate" prevented on file drop, path added to session
* Add proper window support to both the top menu, and the dock
* Sort out linting
* Only create dockMenu on Mac
* Remove label from menu as it is not needed when using role
* Fix spacing
* Prevent hovering on tabs from causing text flicker
For some reason, geometricPrecision was causing text to flicker on
non-retina screens when hovering over the tabs
* Use a pixel ratio media query for text-rendering on retina displays
* Allow env to be specified in config (#424)
This is referencing #424. User specified environment variables
in the `.hyperterm.js` file are expected under a field named `env`.
An example config:
```
module.exports = {
config: {
...
// Environment variables
env: {
WHAT_UP: 'heyo',
}
...
},
plugins: [],
localPlugins: []
};
```
* Add env field to default config
* Add support for opening the terminal on the correct display
* Fix whitespace issue
* Start from the top left again when we run out of space
* Add semicolon
* Add function to escape a shell argument.
* Keep track of the last used window.
* Implement support for the open-file event.
* The shell escape regex needs parentheses to be captured.
* Removed lastWindow and added getLastFocusedWindow method to app
* Create window create new session only if no callback passed
* Added app.windowCallback to handle open-file before "ready"
* Small lint fixes
* Differeent open file handling: check if it is directory, and if the file is executale or not
* Small fixed and added some comments
* Added php-escape-shell module in place of custom escapeShellArgument()
* Fixed wrong code and added detailed comment
* Aliased php_escapeshellcmd import
* Rebased; added error handling in OpenFile
* changed string contatenation with template literal
* Pinned php-escape-shell dependency
* Typo fix
* getLastdFocusedWindow now uses Array.prototype.reduce()
* Notify users of unexisting path while open file