Commit graph

444 commits

Author SHA1 Message Date
Guillermo Rauch
de69aab095 Fixed broken resizing (#2273)
* simplify and fix resizing

* don't lint built bundles

* bump eslint
2017-09-24 12:06:17 +02:00
CHaBou
d3cd9aee00
Merge branch 'master' into canary 2017-09-20 01:39:55 +02:00
Wilson Tayar
4c71c99325 Normalize keymap internals (#2227)
Fix #2195: normalizing keybindings using localeCompare to include non english keyboards as well
2017-09-20 01:36:06 +02:00
CHaBou
14036e9094
Clean out old code 2017-09-18 22:20:34 +02:00
CHaBou
46173019cd
Prevent xterm to emit focus event twice 2017-09-18 22:13:45 +02:00
CHaBou
f8c19b0ef2
Merge branch 'master' into v2 2017-09-17 23:08:33 +02:00
CHaBou
e0d793eeeb Revert "Normalize keymap internals" (#2225)
This reverts commit 751c06e437.
2017-09-17 21:53:37 +01:00
CHaBou
7733067deb
Merge branch 'master' into v2 2017-09-17 10:48:16 +02:00
Wilson Tayar
751c06e437 Normalize keymap internals (#2210)
Fix #2195
2017-09-17 10:43:58 +02:00
CHaBou
f8366d010d
Upgrade React to v16
* Introduce 2 base components: Component and PureComponent. Before, we have only PureComponent but it was impossible to add a shoulComponentUpdate method (used for Terms).
2017-09-16 21:21:50 +02:00
CHaBou
9bd410f1e4
Make Hyper more robust against plugins
* Add some try/catch
* Support React@16 error boundaries for render decorated components
2017-09-13 22:55:54 +02:00
CHaBou
3e632577e5
Merge branch 'master' into xterm-linted
* 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)
2017-09-11 23:14:13 +02:00
Harrison Harnisch
b5f06759ee Set session CWD only if there is an active session (#2191) 2017-09-11 15:06:44 +02:00
CHaBou
1155bb54b1
Add prettier and resolve all lint errors 2017-09-10 16:04:13 +02:00
CHaBou
a9bb9b697b
Add depreaction warning for hterm css
* Notify user when its config conatins deprecated CSS classes
* Add warning in devtools console about plugins using deprecated classes
2017-09-10 11:35:39 +02:00
CHaBou
c91c025edd
Fix horizontal split and term resize 2017-09-09 13:42:19 +02:00
CHaBou
b5eb437751 Use config.colors for 16 first ANSI colors 2017-09-05 18:29:37 +02:00
CHaBou
52bb0d9b3d
Fix term background and scrollbar 2017-09-04 21:42:43 +02:00
CHaBou
944f9d7e89
Merge branch 'master' into xterm
* master: (62 commits)
  1.4.3
  Disable ia32 linux releases (#2164)
  Fixed writing composed characters (#2158)
  Doc: Add yarn install to contribute instructions (#2117)
  Change "Close Session" shortcut on Linux/Windows  (#2160)
  Notice for plugins (#2114)
  Updated dependencies to the latest version (#2146)
  1.4.2
  Reverted class names to as they were before (#2139)
  1.4.1
  AppVeyor environment variables are now on the platform (#2137)
  Brought back the icon for closing tabs (#2136)
  Brought back keymap documentation to the website (#2133)
  1.4.0
  Don't build on master, except for releases (#2132)
  Ensured that `async-retry` is added to the bundle (#2131)
  Ensure correct update channel is displayed in About window (#2130)
  Retry loading it if config doesn't exist in auto updater (#2129)
  Write contents of default config to hyper.js (#2128)
  Use a string for setting the update channel (#2127)
  ...
2017-09-03 22:18:43 +02:00
CHaBou
b656bba285 real xterm and keymap (#1983)
* Use real xterm and intercept shortcuts

* Update xterm.css for selection feature
2017-09-03 21:15:33 +02:00
CHaBou
a348185cc5 Fixed writing composed characters (#2158)
Fixes #2140
2017-09-03 18:06:12 +02:00
Leo Lamprecht
0ee4fb6104 Updated dependencies to the latest version (#2146)
* 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
2017-08-31 15:20:39 +02:00
Leo Lamprecht
5ceca9e200 Brought back the icon for closing tabs (#2136) 2017-08-30 21:51:45 +02:00
Andy
de8e70f935 Make builds work again and catch squirrel errors on windows (#2078)
* Catch errors for electron-squirrel-startup

* Made builds work again

* linting

* linting
2017-08-13 07:03:35 +02:00
Adam Bosco
d9dc415eff Normalize shell name before selecting URL-matching regex (#2070) 2017-08-10 10:45:02 -04:00
Guillermo Rauch
b302962d44 latest 2017-08-02 12:05:47 -07:00
CHaBou
db35faa431 Show plugin (name and version) loaded (#1826)
* Print plugin name and version in devtools
* Add plugins informations in About dialog
2017-06-19 23:02:53 +02:00
Andrej Mihaliak
5ec705000f Set line height same as font size (#1841)
fixes cut font on last line
2017-06-16 09:58:49 +02:00
Albin Ekblom
0bf10f3768 Escape parentheses for dropped files/folders (#1935)
* Escape parentheses for dropped files/folders

Fixes #1933

* Cleanup regex

* Wrap dropped path in single-quote

* Escape single quote inside single quote

* Handle escaping with current shell

* Cleanup escape
2017-06-14 09:12:03 -07:00
Guillermo Rauch
6a1dcf9ef0 bunch of changes 2017-06-11 13:42:39 +03:00
Benjamin Staneck
b609366d76 Replace react-addons-pure-render-mixin by React.PureComponent (#1902)
react-addons-pure-render-mixin is deprecated so use React.PureComponent instead

* https://www.npmjs.com/package/react-addons-pure-render-mixin
* https://facebook.github.io/react/docs/react-api.html#react.purecomponent
2017-06-03 10:31:09 +02:00
Philippe Potvin
93b2229ff5 Implements Commands Key mapping (#1876)
Keymaps part 2
2017-06-02 20:03:47 -04:00
Benjamin Staneck
342580e730 Account for redux-logger 3.0 change (#1898) 2017-06-02 17:43:47 +02:00
Albin Ekblom
216c475c2b Use native Object.values()` (#1880) 2017-05-27 23:42:42 -04:00
Albin Ekblom
af43bbbfed Proxy ReactDOM for plugins (#1878)
* Proxy ReactDOM for plugins

* Update Module._load comment
2017-05-27 15:37:41 -04:00
Philippe Potvin
0d63360011 wipe contents before \k (#1811) 2017-05-26 18:41:43 +02:00
Guillermo Rauch
edd8667801 Revert "Fix unicode display: CJK, powerline, tmux (#1536)" (#1847)
This reverts commit 687df4ed06.
2017-05-19 16:52:36 -07:00
Thibaut Tiberghien
687df4ed06 Fix unicode display: CJK, powerline, tmux (#1536)
* Fix unicode display with braille compatibility

* Remove duplicated styling

* Clean up changes, fix CJK display only

* Remove exising hterm overides for unicode

* Add insertString override (no changes)

* Wrap unicode chars in individual spans

* fix linting

* Fix unicode encapsulation

* Fix multiple rendering of wide chars
2017-05-19 16:48:12 -07:00
Billy Shih
ca40869d5a Fix maximize on doubleclick (#1835) 2017-05-19 00:05:56 +02:00
Albin Ekblom
eeaf4be151 🔥 Cleanup call of php-escape-shell (#1821) 2017-05-13 10:19:03 -04:00
CHaBou
00693de12e Open Hyper config in the native desktop's default manner (#1784) 2017-05-08 20:00:58 -07:00
Guillermo Rauch
c491f7d2e1 re-implement clear, make it not buggy, fix CMD+K (#1796) 2017-05-07 14:57:56 -07:00
Zsolt Dollenstein
af21493e2b check for null/undefined session in addSessionData (#1698)
* check for null/undefined session in addSessionData

* Update sessions.js
2017-04-28 20:40:32 -04:00
CHaBou
f3594b3b14 Add displayName for each plugin HOC (#1735) 2017-04-12 11:22:51 -07:00
CHaBou
7a64c9ee8a Add onDecorated property to decorated components (#1680) 2017-03-27 17:07:55 -07:00
CHaBou
6f2a77f655 Fix partial TermGroup decoration (#1705)
* Fix TermGroup decoration

* Fix partial getTermGroupProps calls
2017-03-27 12:40:42 -07:00
Henrik
4ea3445464 add custom inner children (#1621) 2017-03-18 16:10:31 -07:00
Matheus Fernandes
237595cec8
Revert "term: specify line-height in px"
This reverts commit b7362d18aa.

Reasoning: https://github.com/zeit/hyper/issues/1630
2017-03-10 14:34:45 -03:00
Henrik
3793adabb5 fix echo issue in config pref (#1633)
* fix echo issue in config pref

* fix spacing inconsitency
2017-03-10 14:29:42 -03:00
Stefan Ivic
36f96abb1d windows: fix editing preferences on bash (#1571)
* windows: fix editing preferences on bash

* linter: fix the linting error

* cleanCode : move the code to a function

* cleanCode: move the constants to the function

* clean: remove unnecessary eslint comment

* clean: use platform instead of defining it
2017-02-24 20:50:20 -08:00
Guillermo Rauch
dc3b90028b Add perf optimizations (#1541)
* pass `uid` to term

* term: keep track of term instance references

* sessions: remvoe `write` object overhead

* hterm: cache measurement of codepoints for single char strings

* sessions: merge less eagerly when we receive a PTY_DATA action

* store: handle the side effect of writing to the terminal from a middleware

* terms: add terms instance cache

* lint
2017-02-23 08:10:05 -03:00
Guillermo Rauch
8ec362652c Merge branch 'master' of github.com:zeit/hyper 2017-02-18 00:56:01 -03:00
Guillermo Rauch
9f9da68408 use string based RPC for data events for better perf 2017-02-18 00:55:48 -03:00
Henrik
7a8591bfaf fix uifontfamily reducer (#1550) 2017-02-18 00:37:42 -03:00
Guillermo Rauch
361db6190e avoid layout recalculation upon scrollport resize 2017-02-18 00:27:29 -03:00
Henrik
ade9ad39fd add configurable uifontfamily (#1549)
* add configurable uifontfamily

* rm uifontfamily config default

* fix uifontfamily conf default
2017-02-18 00:15:55 -03:00
Guillermo Rauch
21bd2a7bf1 Merge branch 'master' of github.com:zeit/hyper 2017-02-17 21:34:52 -03:00
Guillermo Rauch
b7362d18aa term: specify line-height in px 2017-02-17 21:34:28 -03:00
Henrik
0ee48c9841 add hterm cursor blink support (#1547)
* add hterm cursor blink support

* update website with cursorblink doc
2017-02-17 21:11:23 -03:00
Guillermo Rauch
27cf69fea3 Revert "fix for line-height that makes emojis be perfectly aligned with text"
This reverts commit 19907ff8e0.
2017-02-17 17:21:55 -03:00
Guillermo Rauch
19907ff8e0 fix for line-height that makes emojis be perfectly aligned with text 2017-02-17 17:17:01 -03:00
Henrik
368a426b01 fix tab text alignment issue (#1543) 2017-02-17 16:48:56 -03:00
Guillermo Rauch
fe6e2977bd 8 times faster matching of enter key within incoming pty data
https://jsperf.com/exec-vs-match-vs-test-vs-search/5
2017-02-17 02:47:09 -03:00
Guillermo Rauch
75b37b7690 Merge branch 'master' of github.com:zeit/hyper 2017-02-17 02:43:05 -03:00
Guillermo Rauch
414503d63b add comment about optimization 2017-02-17 02:42:44 -03:00
Henrik
600f815dff set select color based on caret color (#1532) 2017-02-16 17:56:20 -03:00
Henrik
78709d93cf add better support for narrow tabs (#1527)
* add better support for narrow tabs

* add title for tabs
2017-02-16 15:41:04 -03:00
CHaBou
75b5eb7d3f Fix replaceParent reducer on termgroup exit (#1494) 2017-02-16 14:24:35 -03:00
Martin van Driel
ada6807969 Fix xo linting errors (#1521) 2017-02-16 14:22:27 -03:00
Guillermo Rauch
2e58e568d6 @tibotiber unfortunately I have to undo this line because it was breaking vtop and braille characters 2017-02-16 02:16:59 -03:00
Guillermo Rauch
95141ac537 debounce session data events based on request animation frame 2017-02-16 02:16:41 -03:00
Thibaut Tiberghien
172d487055 Fix display of unicode characters (#1376)
* Fix display of unicode characters

* Fix unicode display issues and CJK cursor
2017-02-16 00:59:11 -03:00
Matheus Fernandes
6842e8500a
Make quickEdit true by default on Windows 2017-02-15 18:51:13 -03:00
Guillermo Rauch
6cda6cad96 Revert "Define widths for BEAM and UNDERLINE cursors (#1389)"
This reverts commit 4a085895e4.
2017-02-15 18:49:49 -03:00
Liudas Dzisevicius
270fe5bef9 [Windows] Add right click copy/paste (#1247)
* Add right click copy/paste

* Add quick edit config option
2017-02-15 17:22:09 -03:00
Matheus Fernandes
d4c1d08701 Revert "Open Preferences in Default JS Editor on Windows" (#1510) 2017-02-15 12:12:48 -03:00
Stefan Ivic
ed282560fb [UI] Make scrollbar look the same on all platforms (#1442)
* [UI] Make scrollbar look the same on all platforms

Linux suffers from the same issue as other platforms where the scrollbar is that ugly electron style. 
This commit will fix this and make it look the same on all platforms and cut down code.

* linter : Use const instead of let

* naming : make the constant easy to understand

The previous code used a variable to define code specific to the os. 
Since we combined the code for all platforms it is not required anymore, so I changed the name to be more understandable to the person reading the code.

* [UI] Make scrollbar look the same on all platforms

Linux suffers from the same issue as other platforms where the scrollbar is that ugly electron style. 
This commit will fix this and make it look the same on all platforms and cut down code.

* linter : Use const instead of let

* naming : make the constant easy to understand

The previous code used a variable to define code specific to the os. 
Since we combined the code for all platforms it is not required anymore, so I changed the name to be more understandable to the person reading the code.
2017-01-27 23:16:41 -02:00
Matheus Fernandes
b4943a05e9 🐛 Fix copy/paste shortcuts on Windows/Linux 🎉 (#1406) 2017-01-18 13:19:11 -02:00
Matheus Fernandes
232295a195 Add the cwd to the redux state (#1412) 2017-01-15 14:40:47 -08:00
Matheus Fernandes
f8d5dcd060
🐛 Fix a regression from the previous commit and a comment 2017-01-14 18:12:08 -02:00
Matheus Fernandes
e5c076e82f
🐛 Focus the current tab after switch from a new one – closes #1273 2017-01-14 17:56:18 -02:00
Louis-André Labadie
4a085895e4 Define widths for BEAM and UNDERLINE cursors (#1389) 2017-01-11 15:53:40 -08:00
Jon Galloway
6a9b3f74c5 Open Preferences in Default JS Editor on Windows (#1138)
* Open Preferences in Wordpad on Windows

Notepad doesn't handle `\n` line breaks, Wordpad does. 

Fixes #1126.

* Update: Use Win editor from reg

If not found, or set to notepad.exe (which can't handle line breaks), show hyper.js config file in folder so user can open in editor of their choice.

* Fixes for Windows

Fixed shell reference, corrected lint errors.

* Fixes for Windows

Fixed shell reference, corrected lint errors.

* Fixes for Windows

Fixed shell reference, corrected lint errors.

* Always show .hyper.js in folder for prefs

* Always show .hyper.js in folder for prefs

* Fixed electron import
2017-01-10 21:49:32 -08:00
Paul Betts
0ff1cb9584 Windows titlebar improvements (#1307)
* 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
2017-01-10 21:45:49 -08:00
Albin Ekblom
95e98006c0 Cleanup getWindowHeaderConfig (#1378) 2017-01-10 14:05:19 -08:00
Guillermo Rauch
12ae25a60b 20% faster bootup time (#1350)
* 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
2017-01-09 13:32:15 -08:00
Guillermo Rauch
74df6920e9 fix decoding race condition with new terminal sessions (#1366) 2017-01-09 16:05:44 -02:00
Gabriel Peña
ed990d473b Scrollbar Fix on Mac. Fixes issue #100 (#1354)
* Fix Scrollbar appearance on webkit mac

* fix linting issues
2017-01-07 17:50:00 -08:00
chabou
1b6d925524 Prevent loosing focus after a char composition ended by Tab key. Fix #1341 (#1349) 2017-01-06 17:46:54 -08:00
Tim Neutkens
f6eaef9457 Expose decorate to plugins (#1261) 2016-12-31 20:26:10 -08:00
Vitaly Domnikov
5a164d0a1d fix line height layout (#1322) 2016-12-29 19:19:16 -08:00
Theodore Dubois
ccf818de5a Add support for cursor styles 5 and 6 to hterm (#1286)
This fixes #270, cursor shape changing in Neovim.
2016-12-24 10:29:52 -08:00
Philippe Potvin
c7f195ba01 Fix ctrl+c to close WebView 🍾 (#1287)
* rm hyperCaretFocus => prevent callstask

* keep caret component
2016-12-21 07:19:41 -08:00
Philippe Potvin
b2f67c73e4 Fix url interpretation (#1259)
* Fix url interpretation

* update regex
2016-12-17 14:17:58 -08:00
Vitaly Domnikov
25fcf3a6a4 Update terminal clear method (#1239) 2016-12-15 17:48:47 -08:00
Vitaly Domnikov
38909e3f16 fix COMMAND-K (#1235) 2016-12-15 13:45:48 -08:00
Philippe Potvin
4943e4a2f8 Fix key focus (#1218) 2016-12-15 11:08:36 -05:00
Kevin Ramsunder
63ab44778b Do not match extra '.' symbol in domain regex (#1216) 2016-12-14 19:21:22 -05:00
Vitaly Domnikov
d6316dd209 🚀 Performance tuning & bugfix (#1111)
* Perfomance tuning

* cleanup matchesContainer method

* fixes #1131
2016-12-14 11:18:15 -08:00
David Barsky
16976bb60d added corner radius to component/notification.js (#889) 2016-12-12 22:38:19 +01:00
Vitaly Domnikov
4264493147 Increase x-row line height (#1107) 2016-12-09 20:35:29 -05:00
Tim Neutkens
34da7d0a60 Don't focus on caret when using modifier keys (#1106)
* Don't focus on caret when using modifier keys

* Removed trailing space
2016-12-09 17:03:03 -02:00
Philippe Potvin
a45fb97283 cmd+A work again (#1102) 2016-12-08 21:09:02 -02:00
Vitaly Domnikov
59a3583028 unicode magic (#1098) 2016-12-08 18:44:25 -02:00
Vitaly Domnikov
aa410812a5 unicode fix (#1018) 2016-12-07 08:17:22 -08:00
Philippe Potvin
d459112676 Add missing param (#1090) 2016-12-06 01:35:40 -02:00
Matheus Fernandes
6508d05e5f
Fix a regression introduced by #1058
Such regression broke the character composition/paste on macOS
2016-12-02 11:22:25 -02:00
Matheus Fernandes
be286c0d5a Fix keyboard shortcuts on Linux and Windows (#1058)
* `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
2016-11-30 15:19:45 -05:00
Matheus Fernandes
31721e5c29
Use the correct EOL character based on the current OS 2016-11-22 09:48:40 -02:00
Matheus Fernandes
d34765faa6
Remove duplicated message and add a missing one 2016-11-22 09:48:17 -02:00
Tim Neutkens
cd47cc7636 Allow require of plugin apis (#977)
* Allow require of plugin apis

* missing semicolon
2016-11-19 18:18:07 -02:00
Weslley Araujo
47f01f92e4 Add an active class on current session panel (#905)
* feat(session): add session_active class to panels

* fix(active-session): rename active session class

see #905

* fix(active-session): rename prop name to `isTermActive`
2016-11-19 18:05:48 -02:00
Levin Rickert
638725fea6 Added pressed state to window buttons on windows / linux (#985)
* Added pressed state to window buttons on windows / linux

* Removed transition causing flicker

* Do not reset color on close button while not hovering but active
2016-11-19 18:05:53 +00:00
Stefan Ivic
b988befea4 [Win] Improve design of the scrollbars (#982)
* [Win] Improve the design of the scrollbars

* Fix code style

* Apply `borderColor` as the `backgroundColor` for the scroll bars
2016-11-19 15:51:01 -02:00
Matheus Fernandes
271a221979
Fix character escaping in the open preferences message 2016-11-18 09:07:34 -02:00
Benoit Averty
da4858a76e Unicode Support / Cursor issues Fix (#740)
* Add container with a fixed width around unicode characters

* Make container width dynamic and fix wide chars clipping issue

* Finer control on the creation of containers for text inserted in the terminal
2016-11-17 17:12:23 -08:00
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
Philippe Potvin
26701d43b5 Fix selection extend when copyOnSelect is true (#975) 2016-11-10 00:03:08 -02:00
Igor Stroganov
48dd4b5c1f Fix inverted text display. Fix #883 (#968)
* Fix inverted text display. Fix #883

* Add a comment explaining setBackgroundColor override
2016-11-10 08:11:51 +08:00
Philippe Potvin
265024cb45 Remove unused blur/focus (#947) 2016-11-04 15:52:03 -02:00
Oliver Dunk
6b385036d7 Change URL regex - fixes #867 (#943) 2016-10-29 13:13:53 +02:00
Leo Lamprecht
630f0f4504
Comply to XO's no-warning-comments rule 2016-10-25 15:04:37 +02:00
David Gómez
8f28573fc0 Prefer default export to make XO happy (#931)
* Comply with prefer-default-export rule for findBySession function

* Remove XO's prefer-default-export rule

* Comply with prefer-default-export rule for init function

* Comply with prefer-default-export rule for getRootGroups function

* Comply with prefer-default-export rule for INIT constant

* Comply with prefer-default-export rule for isExecutable function

* Fix default export for constants

* Comply with prefer-default-export rule for last function

* Comply with prefer-default-export rule for getColorList function
2016-10-25 14:53:15 +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
chabou
3f352ec137 Prevent Hterm to share same preferences between instances (#906)
* Add a random profileId to hterm instance to differentiate PreferenceManager used internally

* Use getPrefs() method instead of accessing prefs_ private property directly
2016-10-19 15:55:06 -07:00
Guillermo Rauch
2ebb2369d1 Revert "Quick full screen (#803)"
This reverts commit 64e87d0d27.
2016-10-17 17:16:39 -07:00
David Gómez
30a1a35937 Enforce null comparisons to make XO happy (#888)
* Remove react/no-eq-null rule from package.json

* Enforce null comparison and add type safety on checks
2016-10-16 22:13:25 +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
f96d02480d temporarily re-enable selection even when the terminal registers interest in order to fix copy/paste 2016-10-15 16:40:12 -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
Cole Peters
ed66433323 Use white background on webviews:
Most web clients apply a default white background to web pages, so some
websites omit explicitly setting their page backgrounds to white. The
default black background on the webview component was making some sites
unreadable. This commit just changes it from black to white.
2016-10-11 15:39:40 -04: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
Martin Ek
db53b08002 Add missing TermGroup props (#815) 2016-10-07 18:50:29 -07:00
Tim Neutkens
3ff3350144 Expose Component to plugins (#778)
* Expose Component to plugins

* remove typo
2016-10-07 18:47:34 -07:00
Marshall Bowers
ad63cbbfdc xo: react/jsx-key (#767)
* Add key to array element

* Enable react/jsx-key rule for xo

* Change key to tabs-list

* Update key name

* Add key for border element

* Add missing JSX keys
2016-10-07 17:36:17 +02:00
Marshall Bowers
0ec2823a23 No string refs (#766)
* Use callback ref instead of string ref

* Enable react/no-string-refs rule for xo

* Replace additional string refs

* Fix broken merge
2016-10-07 17:07:39 +02:00
David Gomez
c6b44d4a50 Remove no-danger rule from the package.json file 2016-10-07 08:29:41 +02:00
Guillermo Rauch
9f771e839f api updates 2016-10-06 08:28:43 -07:00
Martin Ek
17a5a6b250 Make sure focused tabs don't get activity highlighted (#774) 2016-10-05 09:20:08 -07:00
Guillermo Rauch
335562880c remove raf to print the chars to the screen as soon as possible 2016-10-04 21:18:46 -07:00
Guillermo Rauch
d47aa4470a lint 2016-10-04 21:02:39 -07:00
Guillermo Rauch
165954c63f remove pesky warning 2016-10-04 14:52:53 -07:00
Nathan Rajlich
f939d88354 return a Redux thunk for the INIT action (#675)
Before, Redux was throwing an error saying that a plain
object was not being returned from the `init()` function
which was breaking hyperterm.
2016-10-04 14:41:50 -07:00
Guillermo Rauch
fec4954dc1 fixes by @ekmartin 2016-10-04 13:27:27 -07:00
Guillermo Rauch
ffa6a89c5a lint 2016-10-04 12:48:37 -07:00
Guillermo Rauch
d01d3868eb simple version-based notifications system 2016-10-04 12:48:37 -07:00
Martin Ek
71ae9b7e00 Replace explicit null check with != null (#760)
Replace explicit null check with isNil

Replace isNil with != null
2016-10-04 11:16:34 -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
Nick Randall
ee172c3164 fix(meta-key): fix edge cases for meta key usage. (#761) 2016-10-03 17:29:33 +02:00
Aurélien Bottazini
a561f4650b Add Setting for modifier Keys cmdIsMeta and altIsMeta (#686)
* Adds Setting for modifier Keys cmdIsMeta and altIsMeta

* ModifierKeys setting for redux state

* removing from default config modifierKeys
2016-09-30 14:30:11 +02:00
Philippe Potvin
a1f8413680 Fix config-store imports (#733)
* `configureStore` => `configure-store`

* dependencies: add redux-logger
2016-09-21 23:29:23 -03: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
David Gómez
ac69e0b9a0 Fix tab navigation using mouse clicks (#732)
Fixes a bug introduced by #723
2016-09-21 15:44:47 -03: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
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
Vitaly Domnikov
42a69e0c76 Fix tab switching (#709)
* Passthrough tab switching keystrokes

fixes #658

* fix formatting
2016-09-15 07:36:16 +02:00
Matthew Conlen
a3d5004c13 allow plugins to require('react') 2016-08-30 15:04:30 -04:00
chabou
a724f4fbd2 Add French keyboard compatibility (#638) 2016-08-22 18:43:56 +01:00
Philippe Potvin
3a9447185f dblClick test nodeName (#641) 2016-08-21 11:44:17 +02:00
ppot
3813d27d5f Fix ScrollPort SelectAll 2016-08-20 17:25:04 -04:00
ppot
ed4a2c66da Path matching selection on dblClick 2016-08-20 17:25:04 -04:00
James
125fdd98e5 Fix #527: validate cursorColor value and apply default if it fails (#590)
refactor `validateColor`: remove unnecessary variable declaration
2016-08-18 10:33:09 +02:00
Efe Gürkan YALAMAN
e2b270b172 Added customChildrenBefore to the tabs. (#580)
customChildrenBefore was missing on the tabs component.
2016-08-17 10:13:32 +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
James Hall
cb651f6492 Fix international tilde character, and ` and ´ (#584)
* This fixes many more keyboard layouts
* Make backticks work on German keyboards
* Add italian keyboard layout, and also log when uncaught dead key occurs
2016-08-10 18:37:35 +01:00
Ives van Hoorne
749d1f4681 Fix maximizing behaviour (#176)
* Fix maximizing and minimizing

* Emit via side effect in action creator

* Store window state in the store

* Move unmaximize for diff
2016-08-06 11:01:01 +01:00
James Hall
9b42c5ff52 Fix mapXDispatch and allow plugin to access onWheel (credit: lkzhao) (#578)
* Fix mapXDispatch && allow plugin to access onWheel see https://github.com/zeit/hyperterm/pull/563
2016-08-06 10:17:09 +01:00
Albin Ekblom
cc112b6683 Use single quotes for better compatibility (#575) 2016-08-06 09:44:23 +01:00
Albin Ekblom
f954a1e7bc Add config for bell (#468)
* Add config for bell

* Use Set instead
2016-08-05 23:30:40 +01:00
Lorenzo Zottar
9d65cb74c0 File dropped into terminal window adds path to command line (#559)
* 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
2016-08-04 14:43:57 +01:00
James Hall
519210ece6 Initial support for pressing ~ ^ " ' ` on international keyboard layouts until composed characters lands (#521)
* International keyboard support fixes

* Use correct tilde character

* Add correct caret char

* Add alternate key code mapping for ~ and ` - credit: fecabianchi
2016-08-02 01:08:51 +01:00
James Hall
7d765d531e Fix space escaping in paths dragged onto the icon (#545) 2016-08-02 00:02:46 +01:00
Lorenzo Zottar
7e941b0451 Handling file opening (#329)
* 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
2016-08-01 23:52:21 +01:00
James Hall
c95ca509f3 Fallback to nano if no editor is set (#517)
* Fallback to nano if no editor is set

* Add notepad fallback for windows

* Remove padding

* Use constant instead of var
2016-07-30 10:10:01 -07:00
Leo Lamprecht
c3e4cbebe4 Fix code style 2016-07-29 22:40:46 +02:00
Albin Ekblom
220b29c6c7 Correct css Blob type (#508) 2016-07-29 22:30:36 +02:00
Leo Lamprecht
23320bc72f Merge pull request #487 from 7373Lacym/add-localhost-regex
changed regex for most forms of localhost
2016-07-28 22:18:36 +02:00
CHaBou
31731f55f4 Add comment for PR #478 2016-07-28 21:45:19 +02:00
Mitch Lacy
ccbcae0856 added regex for most forms of localhost 2016-07-28 14:12:21 -05:00
chabou
b3dec55f29 Preventing shell history pollution (#478) 2016-07-28 10:44:50 -07:00
Leo Lamprecht
8874feff76 Fix close tab icon
This closes #449
2016-07-28 11:28:41 +02:00
Ayhan
83d7db363d Fix linux tab margin (#442)
* Fix linux tab margin, close #433

* fix statement
2016-07-26 16:37:54 -07:00
Marc Bachmann
7a01ec77c4 Remove duplicated shortcut bindings (#445) 2016-07-26 16:36:19 -07:00
Italo A. Casas
24597f5e8e removing unnecesary line of code (#437) 2016-07-26 13:20:17 -07:00
Guillermo Rauch
6671e65434 notifications: fix (notes) link 2016-07-26 11:31:19 -07:00
Mike
7e889dd509 Add a slight timeout to update the fontSmoothing pref (#407)
This seems like a bug with chrome/electron where the devicePixelRatio
value doesn't update right away. It's probably in the event loop, so
adding a short timeout should solve this problem.
2016-07-26 10:46:23 -07:00
Albin Ekblom
03e1f5f833 Only try to match url if it's needed (#395) 2016-07-25 11:22:25 -07:00
Albin Ekblom
4aa1c2d03d Fix typo in plugin loader (#396) 2016-07-25 11:01:18 -07:00
Guillermo Rauch
aaed99abac Reorg (#386)
* Step 1: move electorn into `app/`.

This is to comply with the suggested directory format of
`electron-builder`: https://github.com/electron-userland/electron-builder#two-packagejson-structure

* Step 2: add build directory with icon files for mac / windows

* Step 3: move all development (web) assets into main directory

* Step 4: add `build` namespace to dev `package.json`

* Step 5: move all dev dependencies into dev file and get rid of
old electron packagers in favor of `eletorn-builder`

* Step 6: target build inside `app/` as everything else is excluded at build time

* Step 7: remove old stuff!

* Step 8: update README

* turn off asar for `child_pty`
2016-07-24 10:59:21 -07:00