Commit graph

204 commits

Author SHA1 Message Date
Matheus Fernandes
27a20e0cfc Add support for composed chars and fix issues with "foreign" keyboard layouts (#1006)
* 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
2016-11-16 10:44:04 -08:00
Matheus Fernandes
9c90e19760 Add Windows support and first-class Linux support (#946)
* `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
2016-11-11 15:18:04 -02:00
Vladimir Starkov
41d54d58de add onRendererWindow, because it actually available. check ./lib/utils/plugins.js:193 (#924) 2016-10-29 13:15:46 +02:00
Vladimir Starkov
7d05d0f148 increase timeout for update checks (#928)
* 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
2016-10-29 13:14:39 +02:00
Mike Engel
8cc47a498c Make the close menu items less ambiguous
@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.
2016-10-25 22:34:28 -04:00
Vladimir Starkov
698cdb0e31 log plugins' errors in Electron console (#923)
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.
2016-10-23 09:42:58 -02:00
Andrea Parodi
97432df7a4 Improve tabs title (#892)
* Set tab title when asked by the contained shell process via ANSI code

* Commented out process polling code

* Removed unused module and constant

* Remove getTitle method

* Removed props binding

* Removed polling clearTimeout

* Removed session focus & blur

* Remove listening for session `title` event

* Removed SESSION_SET_PROCESS_TITLE action

* Removed remainig blur
2016-10-22 13:05:32 -07:00
Vladimir Starkov
3f772311db increase notification timeout up to 30m (#913)
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.
2016-10-22 12:16:05 -07:00
Guillermo Rauch
a8b17e6322 0.8.3 2016-10-17 17:37:13 -07:00
Guillermo Rauch
91d3b9afbf 0.9.0 2016-10-17 17:23:20 -07:00
Guillermo Rauch
2ebb2369d1 Revert "Quick full screen (#803)"
This reverts commit 64e87d0d27.
2016-10-17 17:16:39 -07:00
Kyle Robinson Young
235b289bee Ignore file watch errors. Fixes GH-225 (#893) 2016-10-17 16:58:43 -07:00
Leo Lamprecht
83b47a553d
Make description match the repo's 2016-10-17 10:29:49 +02:00
Leo Lamprecht
a639965669
Remove duplicates from package files 2016-10-17 10:29:12 +02:00
Marshall Bowers
64e87d0d27 Quick full screen (#803)
* 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
2016-10-16 00:20:10 -05:00
Guillermo Rauch
d6009888a3 0.8.2 2016-10-15 17:47:28 -05:00
Guillermo Rauch
396a938ffc package: bump gaze to hopefully resolve uncaughts 2016-10-15 16:46:43 -05:00
Martin Ek
7a08b1dc3e Fix xo 0.17 errors and use root xo config for app (#859)
* Use parent xo config in app/

* lint: Fix xo 0.17 errors

* app: add missing semver dependency
2016-10-12 20:35:44 -05:00
chabou
ec9787fda4 Change default cursor opacity. Fix #869 (#870) 2016-10-12 19:42:28 -05:00
Hrvoje Šimić
7e71bf356b fix various typos and grammar errors in comments (#834) 2016-10-10 12:26:47 +02:00
Martin Ek
fe91b4c76e Refactor plugin retrieval (#695)
* plugins: refactor props decorators

* plugins: add missing plugin functions to notifier

* plugins: refactor reducer decorators

* bug: make sure reduceTermGroups are added from plugins
2016-10-08 14:38:47 -07:00
Daniel Bayerlein
aa285a8bc6 Cleanup (rename HyperTerm to Hyper) (#812)
* Rename container

* Rename hyper container itself

* Add HYPER_DEBUG for debug

* Rename HyperTerm to Hyper

* Rename HyperTerm connector and extension

* Add HyperTerm state and dispatch for backwards compatibility
2016-10-08 09:26:07 -07:00
Martin Ek
2ffc1aee3d Move notification fetching to the main process (#804)
* Move notification fetching to the main process

* Add npm run app
2016-10-07 20:28:40 -07:00
Daniel Bayerlein
6a5ddc0c70 HyperTerm 👉 Hyper.app 2016-10-06 19:33:08 +02:00
Guillermo Rauch
787fb0f604 lint 2016-10-06 08:31:31 -07:00
Guillermo Rauch
9f771e839f api updates 2016-10-06 08:28:43 -07:00
Guillermo Rauch
fd29fab068 Revert "package: update"
This reverts commit f3688c1fd6.
2016-10-05 09:21:27 -07:00
Guillermo Rauch
f3688c1fd6 package: update 2016-10-05 09:21:17 -07:00
Guillermo Rauch
689e73d3d8 change version 2016-10-04 20:02:26 -07:00
Martin Ek
540414f59d split panes: set hotkeys based on OS (#771) 2016-10-04 08:33:21 -07:00
Martin Ek
a7595c1a45 Split Panes (#693)
* 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
2016-10-03 19:00:50 -07:00
Marshall Bowers
de1a01ff57 Preserve multi-byte encoded utf-8 characters (#769) 2016-10-02 09:54:27 -07:00
Philippe Potvin
7aa20a8d45 Memorize window position and size (#617)
* 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
2016-10-01 18:44:34 -07:00
Brandon Bayer
6959667589 fix: on Linux/Win, hide OSX specific menu items and change 'Shell' to 'File' (#736)
Based on this document:
https://github.com/electron/electron/blob/master/docs/api/menu.md#user-content-notes-on-os-x-application-menu
2016-10-01 18:07:23 -07:00
Leo Lamprecht
ee1405997d
Let xo handle all directories 2016-09-22 07:41:07 +02:00
Krzysztof Kaczor
bbf0af66b2 Improve developer pleasure (#556)
* single command to run webpack and app

* added dev tools and custom store for development mode only

* fix linter issues
2016-09-21 15:11:42 -07:00
Matheus Fernandes
1866104d03 [WIP] Use XO instead of Standard (#723)
* 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
2016-09-21 16:27:11 +02:00
Brandon Bayer
32a665d7c0 feat: in development, use git-describe for appVersion (#729)
Normally appVersion is set from package.json
closes #718
2016-09-20 19:51:15 -03:00
Daniel Bayerlein
d610104a7a Add missing color dependency (#725) 2016-09-20 13:49:30 -03:00
Guillermo Rauch
8a01f8a48b Add window bgcolor updates (#524)
* 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
2016-09-19 08:47:33 +02:00
Leo Lamprecht
fbe0c9c556
Increment version tag 2016-09-15 09:23:57 +02:00
Leo Lamprecht
ae9a583b9f
These can be self-closing 2016-09-11 01:34:20 +02:00
Matheus Fernandes
3be8ffd486 Fix: do not throw when shellArgs is not present in .hyperterm.js (#678)
See dfcb0a9629 (commitcomment-18834267)
2016-08-31 23:33:01 -03:00
Brandon Bayer
dfcb0a9629 fix: errors and crashes on Linux because shellArgs being mutated (#662)
Fixes #661
2016-08-29 19:05:00 -03:00
Brian Douglas
9a0316dd59 issue-656/config-values-arent-scoped (#669)
* issue-656/scoped plugins to hyperterm.plugins

* Scoping plugin versions to hyperterm
2016-08-29 16:38:05 +02:00
Leo Lamprecht
56f718a0f4 Adjusted author 2016-08-20 09:47:30 +02:00
tim neutkens
c8784c2d08 Rename Actual Size to Reset Zoom Level #124 2016-08-20 00:44:04 +02:00
chabou
f0b049b2e3 Fix session exiting (#560)
* Fix session exiting

* Restore original flow and just remove listeners on session when exiting

* Prevent sending data from pty after session exited
2016-08-19 22:19:04 +02:00
Philippe Potvin
fd351a5b93 Provide clear selection of text in terminal view (#608)
* Permit clearSelection on text enter and mouse selection. Fix #591

* Add config for copyOnSelect

* Update with descriptive comment
2016-08-13 23:03:44 +02:00
Efe Gürkan YALAMAN
77597da1d3 Added shellArgs to the config. (#572)
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.
2016-08-13 21:30:17 +02:00