Commit graph

866 commits

Author SHA1 Message Date
Guillermo Rauch
17df56d397 bump version + trigger build 2016-12-15 12:40:30 -08:00
Leo Lamprecht
23bff8b4b9
Hyper isn't just on macOS 2016-12-13 08:06:56 +01:00
Matheus Fernandes
2b3c49b1ec
Update hyper-news notification fetching 2016-12-12 13:04:32 -02:00
Brian Reber
7df5cbac08 Specify cols key when spawning pty shell (#1075)
The column size param in pty.js is named ‘cols’, but the shorthand
notation treats it as ‘columns’, causing the column count to not be
correct.
2016-12-07 12:28:41 -02:00
Brian Reber
e345ba4f60 Use homedir() from os package instead of env vars 2016-12-03 22:03:10 +01: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
833383a1cc
v1.0.0 2016-11-22 12:23:17 -02:00
Liudas Dzisevicius
0c30fc0bcf Add shell menu feature (#1017)
* Add shell menu feature

* Rename and remove cofig option
2016-11-22 10:06:03 -02:00
Dylan Frankland
a5b457ed13 Update old electron target engine for dependencies (#970)
This fixes dependencies of Hyper that build based on the engine being
used (`nodegit` for example).
2016-11-19 14:38:27 -02:00
Matheus Fernandes
b97b2dde7c
Bummp uuid to match the root package.json 2016-11-19 10:56:10 -02:00
Zach Buttram
fb2f1d8e1e Start the shell with the correct cwd on Windows (#1016)
* fixes zeit/hyper#1011

* more succinct fix for zeit/hyper#1011
2016-11-18 18:27:38 -02: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
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
James Hall
518b0cd9a5 Open new window offset from last focused window (Credit: albinekb) (#581)
* 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
2016-08-06 11:58:57 +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
3dd8eadc90 Moved "file-uri-to-path" dep to app package.json (#569) 2016-08-05 10:03:49 +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
77a103fbf1 [WIP] Add proper window support (#547)
* 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
2016-08-04 01:52:31 +01:00
Matheus Fernandes
f175268912 Add the very first test 🎉 (#549)
* Add syntactic support for tags - #412
* Add the very first test 🎉
* Simplify multiple assertions into one
2016-08-03 16:39:58 -03:00
Mike
2d4b518519 Prevent hovering on tabs from causing text flicker (#492)
* 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
2016-08-02 12:09:54 -07:00
Richard Zhao
011ae3fd52 Add support for environment variables in config (#534)
* 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
2016-08-02 08:49:25 +01:00
James Hall
c9fe3d82db Add support for opening the terminal on the correct display (#519)
* 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
2016-08-02 01:00:49 +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
Albin Ekblom
3198a90823 Use configured shell to update plugins (#447)
* Use configured shell to update plugins

* Make it more compatible

* Use shell-env@0.2.0
2016-07-30 20:51:09 +02:00
Guillermo Rauch
988f32e373 make the auto updater work on windows (#514) 2016-07-29 21:12:53 -07:00
Darin Morrison
60fbc122a8 Fix #467 and #206; quit app on window close (#489) 2016-07-29 21:12:21 -07:00
Darin Morrison
d05d82cb32 Use babel for minification (#471) 2016-07-27 19:02:19 -07:00
Ayhan
72059a7d93 Fix Close process (#450)
* fix close process

* fix control

* fix lint
2016-07-26 20:11:54 -07:00
Ayhan
ce357c72be Revert "Fix close process" (#451) 2016-07-26 20:11:38 -07:00
Ayhan
ed2c810c9f fix close process (#448) 2016-07-26 20:06:43 -07:00
Darin Morrison
4e04d1c4b1 Adjust eslint configuration (#389) 2016-07-26 16:39:47 -07:00
Darin Morrison
86416cebdf Update dependencies (#390)
⬆️ electron-builder@5.16.0
⬆️ electron-prebuilt@1.3.0
⬆️ husky@0.11.6
2016-07-26 16:39:11 -07:00
Mike
05eba4b521 Update shell after config change and notify the user (#405) 2016-07-26 16:37:42 -07:00
Guillermo Rauch
9c50fd5148 really fix utf-8 now 2016-07-26 12:16:57 -07:00
Guillermo Rauch
60ad05f374 app: bump package.json version 2016-07-26 11:40:36 -07:00
Guillermo Rauch
27b2cd718e session: suffix UTF-8 to locale
cc @ekmartin @heathervv
2016-07-26 11:26:06 -07:00
Guillermo Rauch
05b491f62c revert --ignore-scripts 2016-07-26 11:01:09 -07:00
Jacob Wunder
5764b31e26 Server now extends EventEmitter instead of creating and EventEmitter instance (#406) 2016-07-26 10:47:18 -07:00
Guillermo Rauch
0699d266cd fix app/package.json for debian build 2016-07-25 15:52:39 -07:00
Guillermo Rauch
0e84fd1965 pin uuid 2016-07-25 11:33:16 -07:00
Albin Ekblom
c88c93a622 🔥 Use uuid (#393) 2016-07-25 11:01:01 -07:00
Guillermo Rauch
cb84548623 for now, pin npm_config_target version as it falls outside of the distribution package 2016-07-25 10:30:20 -07:00
Guillermo Rauch
6267899a27 Release 0.7.0 2016-07-25 10:22:41 -07:00
Guillermo Rauch
91991a2e38 update .eslintignore 2016-07-24 13:35:05 -07:00
Guillermo Rauch
9a28ff302f index: prevent double sesson exit (#380) [@timneutkens] 2016-07-24 11:13:17 -07:00
Martin Ek
8c53d25b71 Add decorateEnv to the extensions API (#370)
* plugins: add decorateEnv to the extensions API

* session: replace - with _ in LANG

* plugins: refactor the at-least-one extension check
2016-07-24 11:03:24 -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
Guillermo Rauch
c4a1423818 Revert "Use node6 es2015 features; remove extra transforms (#327)"
This reverts commit 9e3fe9228d.

@freebroccolo while great in theory, this breaks uglifyjs.
minification provides an important advantage in interpretation
time (and therefore reduced bootup time)
2016-07-23 13:26:30 -07:00
Martin Ek
6e79beafd4 app: correctly dispatch ui actions (#369) 2016-07-22 17:26:05 -07:00
Martin Ek
4849dfe96b app: move to the last term with cmd+9 (#261)
This mimics the behavior of Chrome, Firefox, iTerm 2 and similar,
by moving to the last possible tab when Command + 9 is pressed.

Fixes #255.
2016-07-22 12:38:15 -07:00
Guillermo Rauch
f989224a20 term: make sure shim doesn't capture clicks 2016-07-22 11:49:25 -07:00
Nick Christensen
1af99f1338 Add ctrl+tab/ctrl+shift+tab for tab switching (#367) 2016-07-22 10:34:37 -07:00
Nathan Rajlich
8e86883989 fix lint (#351)
* fix lint

* restore `notify` require, add eslint disable comment
2016-07-21 20:26:10 -07:00
William
2e9ac60b2b Add middle click to close tab functionality (#286) 2016-07-21 17:33:10 -07:00
Oskar Cieslik
e66d6c90f0 Add support for multiple cursor shapes (#352)
* Add config support for cursor shapes

* Add cursorShape to default config
2016-07-21 16:15:23 -07:00
Rafael Specht da Silva
0c3d25dd19 fixing syntax error 'missing parenthesis' on ui.js when running 'npm run dev' (#353) 2016-07-21 15:57:52 -07:00
Mike
400d70e9df Allow the color config to be an object (#193)
* Allow the `color` config to be an object

It only covers the ANSI 16 as named colors, but allows for an array to
be used if the full color palette wants to be overridden.

* Better handling for array color configs vs. object configs
2016-07-21 12:24:00 -07:00
Darin Morrison
9e3fe9228d Use node6 es2015 features; remove extra transforms (#327) 2016-07-21 12:18:07 -07:00
Harrison Harnisch
51b72325f2 configurable cursor opacity (#76) 2016-07-21 12:07:19 -07:00
Darin Morrison
c83f1563b4 Hook scripts (#328)
* Add commit hooks

* Fix linter issue
2016-07-21 11:57:45 -07:00
Blake Embrey
ab058e6e8b Update rounded header radius (#333)
Closes #332
2016-07-21 11:54:53 -07:00
Kyle Holzinger
392ce6b127 specify bash to run command in (#314) 2016-07-20 15:22:36 -07:00
Darin Morrison
513bdb3941 Update dependencies (#319) 2016-07-20 15:22:09 -07:00
Darin Morrison
6072b4ca90 Fix linter issues (#321) 2016-07-20 15:21:29 -07:00
Marc Bachmann
3b08c68d97 Disable pinch zoom functionality (#326) 2016-07-20 15:20:40 -07:00
Mike
a81771b27d Fix prop update logic for fontSmoothing (#302) 2016-07-20 10:08:54 -07:00
Jonathan Cuthbert
a2363c52bd allow opening of files in webview (#305) 2016-07-20 10:08:12 -07:00
Mike
b76e004309 Dynamically change the font-smoothing pref (#205)
* Dynamically change the `font-smoothing` pref

By default, hterm defaults to `font-smoothing: 'antialiased'`, which
works really well on retina displays. On non-retina displays, however,
the type looks very thin and is hard to read.

This will look at the devicePixelRatio of the device anytime the term
prefs are set, and change between `antialiased` and
`subpixel-antialiased` dynamically.

* Refactor to add the font smoothing override into state

This also subscribes to the electron `move` event to control when this
piece of state gets updated.

* Add UI_WINDOW_MOVE action with a side effect for font smoothing
2016-07-19 11:30:57 -07:00
Marc Bachmann
961a39e8f3 Add cursor actions (#217)
* Add cursor actions

* Use Command+Option+Left shortcuts to change tabs

This changes the behavior the ones of sublime & chrome
2016-07-19 10:48:11 -07:00
Mauro Otonelli
a8de019665 Override the buggy hexToRGB implementation in hterm. (#272) 2016-07-19 10:46:26 -07:00
Harrison Harnisch
7a3d661afd add reducer to set cwd (#271) 2016-07-19 10:45:28 -07:00
Pierre Margueritte
fee4acbf5a Fix #88 (#279) 2016-07-19 10:43:52 -07:00
Sean Zhu
610d6c6d3e Make preference-opening command universal (#267)
The `$EDITOR ~/.hyperterm.js && exit` requires that the default shell recognize variables as commands and to recognize the `&&` syntax, so it does not work with fish shell. The new command works with all common shells, including fish.
2016-07-18 16:59:16 -07:00
Marc Bachmann
b6e5bf63c7 Remove unused state variable (#268) 2016-07-18 16:58:50 -07:00
Conor Hastings
e073de9aea remove unnecessary comment referencing use of !important due to aphrodite" (#223) 2016-07-18 15:16:02 -07:00
Martin Ek
1214d26323 app: close window when last tab is exited (#263) 2016-07-18 15:12:14 -07:00
Jason Miller
08fc3311f9 Remove unnecessary/odd addEventListener in Term component unmount hook (#242) 2016-07-18 09:44:01 -07:00
Marc Bachmann
112baec8d0 Make CMD + K work for all commands, even tail (#215) 2016-07-17 19:52:29 -07:00
Mauro Otonelli
af945e064c Fixed some documentation typos. (#212) 2016-07-17 14:05:37 -07:00
Marc Bachmann
2ecc23fe1f Hide scrollbar when webview is active (#209) 2016-07-17 13:38:02 -07:00
Guillermo Rauch
a5cfe76c61 notification style improvements and link to release notes upon updates 2016-07-17 13:02:34 -07:00
Teemu Kallio
3d7f6fa060 Fixing problems with alt key and special characters like å, ö and ä. (#201) 2016-07-17 10:18:01 -07:00
Hoony
e85f1658ef change the version of eslint-config-standard from 5.3.1 to 5.3.5 (#166)
the previous dependencies between eslint and eslint-config-standard
return the following warn and error.

```
npm WARN peerDependencies The peer dependency eslint@^2.0.0-rc.0
included from eslint-config-standard will no
npm WARN peerDependencies longer be automatically installed to fulfill
the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to
depend on it explicitly.
```
```
npm ERR! peerinvalid The package eslint@3.0.1 does not satisfy its
siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer eslint-config-standard@5.3.1 wants
eslint@^2.0.0-rc.0
```
so updated the version of eslint-config-standard from 5.3.1 to 5.3.5
which is the newest now.
2016-07-16 18:30:26 -07:00
Harrison Harnisch
04c0b1acff Provide hooks to open a new tab to the same directory (#174)
* provide a cwd for #4

* expose a pid for #4
2016-07-16 15:41:13 -07:00
Guillermo Rauch
4863fe581b app: preserve class names with uglification 2016-07-16 11:58:08 -07:00
Guillermo Rauch
e2ebbf4e5e config: reload config upon plugins change due to decoration 2016-07-16 11:57:42 -07:00
Guillermo Rauch
25027c12a3 config: actually use decorateConfig hook 2016-07-16 11:54:48 -07:00
Guillermo Rauch
87bac682a7 app: expose plugins and config to window which plugin authors might want 2016-07-16 11:54:21 -07:00
Guillermo Rauch
450e337e11 use inline styles overrides :)
cc @jedwatson
2016-07-16 11:54:03 -07:00
Guillermo Rauch
bee6ba0072 component: switch to our fork of aphrodite that prevents !important 2016-07-16 11:53:40 -07:00
Guillermo Rauch
470b7477e8 remove override style utility 2016-07-16 11:53:04 -07:00
Guillermo Rauch
5ba9f27c5d performance improvements 2016-07-14 16:40:15 -07:00
Guillermo Rauch
81bfbd6006 term: fix resize events 2016-07-14 15:02:13 -07:00
Guillermo Rauch
ac689c8b8b terms: improve write performance 2016-07-14 09:26:23 -07:00
Guillermo Rauch
8caadca66c remove unused import 2016-07-14 09:26:23 -07:00
Guillermo Rauch
06be0e2fb1 fix font size keyboard shortcuts 2016-07-13 22:37:46 -07:00
Guillermo Rauch
4a37d3b3d3 index: expose store in window, use store_ internally 2016-07-13 22:19:32 -07:00
Guillermo Rauch
f4474e747d add unload hooks 2016-07-13 22:18:06 -07:00
Guillermo Rauch
343f3396e0 plugins: remove renderer code for notifications 2016-07-13 19:07:38 -07:00
Guillermo Rauch
4a59c13c77 performance improvement 2016-07-13 17:21:23 -07:00
Guillermo Rauch
5e3e2c6a7d sessions: dispatch init to rpc as a side effect of first session add 2016-07-13 16:32:52 -07:00
Guillermo Rauch
05bac56e35 remove logger 2016-07-13 15:13:28 -07:00
Guillermo Rauch
477e40e433 refactor 2016-07-13 13:45:14 -07:00
Guillermo Rauch
d6a2ea0019 cleanup 2016-07-09 10:09:32 -07:00
Guillermo Rauch
412717ce0e tabs: transform to Component for consistency 2016-07-08 17:33:39 -07:00
Guillermo Rauch
64a94788ef package: restore the babel classes transform as native es6 classes weren't
playing well with react-proxy O.o
2016-07-08 17:33:07 -07:00
Guillermo Rauch
55dea3037b hyperterm: cleanup 2016-07-08 17:32:56 -07:00
Guillermo Rauch
5d4d76a2fe hyperterm: fix race condition 2016-07-08 16:01:07 -07:00
Guillermo Rauch
4fdeb59d7e stop minifying as it doesn't improve performance significantly 2016-07-08 16:00:51 -07:00
Guillermo Rauch
25624494ad react prod build 2016-07-08 14:51:48 -07:00
Guillermo Rauch
2d8c6c3d89 hyperterm: remove active marker correctly when closing a tab and marking a new one as active 2016-07-08 14:28:29 -07:00
Guillermo Rauch
1e5e3576cd implement custom CSS from config 2016-07-08 14:27:41 -07:00
Guillermo Rauch
4d99089afb improve decoration with persistent state with react-proxy 2016-07-08 14:26:38 -07:00
Guillermo Rauch
1265528b13 clean up and refactor 2016-07-08 11:48:24 -07:00
Guillermo Rauch
9960c239cd tabs: fix close mark position 2016-07-08 07:57:03 -07:00
Guillermo Rauch
8c0d94aa1d improve config notifications 2016-07-08 07:40:27 -07:00
Guillermo Rauch
7ab272a9fe fix padding 2016-07-08 07:39:51 -07:00
Leo Lamprecht
647d024a39 Centered traffic lights & disabled text selection for indicator (#36)
* Disallow text selection within indicator

* Fix size of menu

* More spacing within text element

* Make traffic lights inset
2016-07-08 06:03:40 -07:00
Guillermo Rauch
aa5441bea4 app: add es2015 babel preset so that we can uglify :\ 2016-07-07 22:24:51 -07:00
Guillermo Rauch
ff2419c54b border color configuration support 2016-07-07 20:37:58 -07:00
Guillermo Rauch
1582b7204c whitelist Notification global 2016-07-07 20:10:43 -07:00
Guillermo Rauch
ffe419f26f fix lint 2016-07-07 20:03:38 -07:00
Guillermo Rauch
9aff04acf3 hyperterm: set global background color 2016-07-07 17:25:56 -07:00
Guillermo Rauch
9f635021c9 first pass at plugins system 2016-07-07 17:16:44 -07:00
Guillermo Rauch
eb147d9b9a config: add plugins hook and decoration 2016-07-07 17:15:42 -07:00
Guillermo Rauch
c693a46896 hyperterm: normalize our events :D 2016-07-07 16:23:01 -07:00
Guillermo Rauch
e39143e4cd hyperterm: exit after editing 2016-07-07 14:37:28 -07:00
Guillermo Rauch
1993ca576f app: get config preferences and not plugins 2016-07-07 13:48:55 -07:00
Guillermo Rauch
80fc25c6a4 make term configurable 2016-07-07 08:53:23 -07:00
Guillermo Rauch
043c9c86da hyperterm: implement font size config 2016-07-07 08:28:46 -07:00
Guillermo Rauch
318f684da4 add <Config> higher order component heavily inspired by @nfcampos (#59) 2016-07-07 08:15:03 -07:00
Guillermo Rauch
98e45a500f webpack: ignore electron, fix optimization 2016-07-07 07:47:10 -07:00
Guillermo Rauch
d3322090a1 add support for editing preferences with cmd+, (#52) 2016-07-07 06:31:03 -07:00
Guillermo Rauch
952c328e01 lint 2016-07-07 06:30:51 -07:00
Guillermo Rauch
f6b0277438 display first line of release notes as update note 2016-07-07 00:19:54 -07:00
Guillermo Rauch
08a106312d remove old updater and add update dismissing 2016-07-07 00:13:53 -07:00
Matias Tucci
461f7d9430 electron auotupdater 2016-07-06 21:42:41 -07:00
Matias Tucci
20aa12d526 uodate indicator styles 2016-07-06 21:42:41 -07:00
Johan Brook
bfefc2d74e Add close cross for tabs (#58)
* Add .DS_Store to gitignore

* Add SVG icon component

* Add button for closing a tab (re: #40)

* Use external icon sheet for icons
2016-07-06 16:39:26 -07:00
Harrison Harnisch
88501ecef9 improved default color palette (#61) 2016-07-05 20:33:39 -07:00
Nuno Campos
ea8ca82186 font size improvements (#57)
* font size improvements
- fixed keyboard shortcut registering (listeners were being called twice)
- now saving fontSize in the state of Hyperterm
- Term now accepts fontSize as a prop and internally sets it
- added font size indicator on change (next to rows x cols)

* linting

* removed font size shortcuts from Hyperterm component, still in electron

* only show font size indicator when it has changed

* clean up fontSizeIndicatorTimeout on unmount, changeFontSize 2nd arg is now an options object
2016-07-05 17:08:45 -07:00
Guillermo Rauch
222064fd03 term: support for urls in fish
cc @paulirish
2016-07-05 13:33:27 -07:00
Guillermo Rauch
01689af952 term: handle legacy sh shell 2016-07-05 13:22:57 -07:00
Guillermo Rauch
951044c17e fix url handling in zsh (#50) 2016-07-05 13:14:30 -07:00
Guillermo Rauch
ed30007ec4 implement most recent hterm with lots of bugfixes 2016-07-04 20:59:40 -07:00
Guillermo Rauch
814677f3b0 lint 2016-07-04 20:09:43 -07:00
Guillermo Rauch
b79b34094f term: cross-platform font family settings (#26) 2016-07-04 19:08:45 -07:00
Guillermo Rauch
a10af11591 remove xterm.css (no longer used) 2016-07-04 19:07:26 -07:00
Guillermo Rauch
a57aedc1db Revert "term: hide them scrolbars (#42)"
This reverts commit fd0c330d98.
2016-07-04 19:05:16 -07:00
Guillermo Rauch
fd0c330d98 term: hide them scrolbars (#42) 2016-07-04 19:02:21 -07:00
Jeff Haynie
55ac59c897 change font size with command shortcuts (#34)
* add standard behavior when you double click window title to maximize/unmaximize the window

* increase/decrease font sizes with command + / -

* DRY up code. added reset to reset font to original size. added window accelerators
2016-07-04 18:39:14 -07:00
Guillermo Rauch
cf0a5783c5 implement a more reasonable update interval check frequency (#33) 2016-07-04 18:13:44 -07:00
Guillermo Rauch
33e3d487a1 minor syntax cleanup (2 vs 4 spaces) and clear clickTimer timeout 2016-07-04 18:01:32 -07:00
Jeff Haynie
50fdbf2ef7 add standard behavior when you double click window (#32)
* add standard behavior when you double click window title to maximize/unmaximize the window

* reset on unmount and added comments about click vs. double click
2016-07-04 17:48:38 -07:00
Guillermo Rauch
45292f33d5 improvements to update checker 2016-07-03 15:12:35 -07:00
Guillermo Rauch
e2215a3413 term: fix edge case when clearing after a screen clear 2016-07-03 14:11:45 -07:00
Guillermo Rauch
d8e841a3d8 Implement hterm (#28)
* remove legacy css

* hyperterm: delegate rows / cols calculation to hterm

* session: handle pty kill problems

* index: fix memory leak by removing sessions from the map upon exit

* app: remove local copy of `xterm.js`

* term: implement the `hterm` API and some needed overrides

* package: add `hterm-umd`

* hyperterm: add optimistic tab exit

* hyperterm: delegate key combination detection to the hterm <iframe> document

* term: register keyboard

* session: fix incorrect width after resizing and creating a new tab (#13)

* tabs: fix `user-select` css property

* term: fix focus issue when exiting a url

Instead of uninstalling the keyboard, we keep the
focus on the underlying terminal.

We register a new IO handler so that we intercept
all data events.

The reason we need to do this is that we can't
programmatically restore focus on the underlying
terminal unless it's in the same tick as a user
event (ie: click).

Since we were uninstalling the keyboard and
subsequently attempting to reinstall it without
such an event, pressing Ctrl+C after a url was
effectively resulting in a loss of focus and a
horrible horrible experience.

Now it's fixed :)

* text-metrics: remove module no longer used

hterm has a much better calculation technique anyways

* term: fix default bg

* term: fix nasty hterm bug that triggered an infinite copy loop

* index: add separator in `View` menu for full screen item

* term: implement cmd+K clearing and improve hterm's `wipeContents`
2016-07-03 13:35:45 -07:00
Guillermo Rauch
c0394e7764 css: fix "Download" link being clickable when hidden (#7) 2016-07-02 15:43:08 -07:00
Guillermo Rauch
b22d310c99 hyperterm: jump to begining of end at edges of tabs when moving sideways (#22) 2016-07-02 15:32:00 -07:00
Guillermo Rauch
0892122d6d hyperterm: add support for cmd+shift+[|] (#11) 2016-07-02 11:05:50 -07:00
Guillermo Rauch
09c85e8069 hyperterm: add ctrl+c for closing <webview> instead of cmd+w (#2) 2016-07-02 10:53:39 -07:00
Guillermo Rauch
bb8a93d5c8 add some missing deps 2016-07-01 14:31:23 -07:00
Guillermo Rauch
db21e8e87d add auto update checking 2016-07-01 13:01:33 -07:00
Guillermo Rauch
e34554398f clarify first metric 2016-06-30 23:08:12 -07:00
Guillermo Rauch
f3f15f79fb ignore dist dir 2016-06-30 23:04:47 -07:00
Guillermo Rauch
b8e39e0e23 ignore npm-debug.log 2016-06-30 23:04:24 -07:00
Guillermo Rauch
1a1178bd38 initial commit 2016-06-30 23:01:04 -07:00