From 5fc67d3648e113aa4b59e8c7425d0a5191648be2 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 4 Jan 2018 21:04:31 +0100 Subject: [PATCH 1/6] launch devtools in detached mode --- terminus-core/src/services/hostApp.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terminus-core/src/services/hostApp.service.ts b/terminus-core/src/services/hostApp.service.ts index 4eccd72c..d7164b1c 100644 --- a/terminus-core/src/services/hostApp.service.ts +++ b/terminus-core/src/services/hostApp.service.ts @@ -74,7 +74,7 @@ export class HostAppService { } openDevTools () { - this.getWindow().webContents.openDevTools() + this.getWindow().webContents.openDevTools({ mode: 'undocked' }) } focusWindow () { From 15c23eb7ddea0b6fe858600834e1c8afc30ed87f Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 4 Jan 2018 21:04:44 +0100 Subject: [PATCH 2/6] deps --- terminus-ssh/yarn.lock | 56 +----------------------------------------- yarn.lock | 34 +++---------------------- 2 files changed, 5 insertions(+), 85 deletions(-) diff --git a/terminus-ssh/yarn.lock b/terminus-ssh/yarn.lock index 21551c06..57674b8d 100644 --- a/terminus-ssh/yarn.lock +++ b/terminus-ssh/yarn.lock @@ -6,10 +6,6 @@ version "8.0.53" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8" -"@types/openpgp@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/openpgp/-/openpgp-0.0.29.tgz#feabb9d547cb107f7b98fdd51ac616f6cf5aaebd" - "@types/ssh2-streams@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.2.tgz#7aa18b8c2450f17699e9ea18a76efc838188d58d" @@ -748,12 +744,6 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - enhanced-resolve@3.3.0, enhanced-resolve@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3" @@ -1039,7 +1029,7 @@ glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1192,18 +1182,10 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -1387,10 +1369,6 @@ is-regex@^1.0.3: dependencies: has "^1.0.1" -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -1730,13 +1708,6 @@ nanomatch@^1.2.5: snapdragon "^0.8.1" to-regex "^3.0.1" -node-fetch@^1.3.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" @@ -1765,12 +1736,6 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-localstorage@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/node-localstorage/-/node-localstorage-1.3.0.tgz#2e436aae8dcc9ace97b43c65c16c0d577be0a55c" - dependencies: - write-file-atomic "^1.1.4" - node-pre-gyp@^0.6.39: version "0.6.39" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" @@ -1879,13 +1844,6 @@ once@^1.3.0, once@^1.3.3: dependencies: wrappy "1" -openpgp@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-2.6.1.tgz#7d9da10433e37d87300fbac1fe173c80f0a908c9" - dependencies: - node-fetch "^1.3.3" - node-localstorage "~1.3.0" - os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -2450,10 +2408,6 @@ single-line-log@^1.1.2: dependencies: string-width "^1.0.1" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -2947,14 +2901,6 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^1.1.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - xkeychain@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/xkeychain/-/xkeychain-0.0.6.tgz#1c58b3dd2f80481f8f67949c3511aa14027c2b9b" diff --git a/yarn.lock b/yarn.lock index 72e23aad..4b2bf70d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1212,7 +1212,7 @@ debug@^2.1.3, debug@^2.2.0, debug@^2.5.1, debug@^2.6.1, debug@^2.6.3: dependencies: ms "2.0.0" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -2271,7 +2271,7 @@ import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2795,10 +2795,6 @@ lockfile@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -2806,28 +2802,10 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -2852,10 +2830,6 @@ lodash.mergewith@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - lodash.tail@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" @@ -4407,7 +4381,7 @@ readable-stream@~1.1.10, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -5453,7 +5427,7 @@ val-loader@0.5.0: dependencies: loader-utils "0.2.x" -validate-npm-package-license@*, validate-npm-package-license@^3.0.1: +validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" dependencies: From 9c257b0002174013ff4cdfcbf434997263b81976 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 4 Jan 2018 21:13:46 +0100 Subject: [PATCH 3/6] allow specifying the SSH port (fixes #269) --- terminus-ssh/src/api.ts | 1 + .../src/components/editConnectionModal.component.pug | 8 ++++++++ terminus-ssh/src/components/sshModal.component.pug | 2 +- terminus-ssh/src/components/sshModal.component.ts | 8 +++++++- terminus-ssh/src/components/sshSettingsTab.component.ts | 1 + terminus-ssh/src/services/ssh.service.ts | 1 + 6 files changed, 19 insertions(+), 2 deletions(-) diff --git a/terminus-ssh/src/api.ts b/terminus-ssh/src/api.ts index 8136018c..90e5b051 100644 --- a/terminus-ssh/src/api.ts +++ b/terminus-ssh/src/api.ts @@ -3,6 +3,7 @@ import { BaseSession } from 'terminus-terminal' export interface SSHConnection { name?: string host: string + port: number user: string password?: string privateKey?: string diff --git a/terminus-ssh/src/components/editConnectionModal.component.pug b/terminus-ssh/src/components/editConnectionModal.component.pug index 881a5cf4..4a76e6d9 100644 --- a/terminus-ssh/src/components/editConnectionModal.component.pug +++ b/terminus-ssh/src/components/editConnectionModal.component.pug @@ -13,6 +13,14 @@ [(ngModel)]='connection.host', ) + .form-group + label Port + input.form-control( + type='number', + placeholder='22', + [(ngModel)]='connection.post', + ) + .form-group label Username input.form-control( diff --git a/terminus-ssh/src/components/sshModal.component.pug b/terminus-ssh/src/components/sshModal.component.pug index ff1f160e..809b6599 100644 --- a/terminus-ssh/src/components/sshModal.component.pug +++ b/terminus-ssh/src/components/sshModal.component.pug @@ -3,7 +3,7 @@ type='text', [(ngModel)]='quickTarget', autofocus, - placeholder='Quick connect: [user@]host', + placeholder='Quick connect: [user@]host[:port]', (keyup.enter)='quickConnect()' ) diff --git a/terminus-ssh/src/components/sshModal.component.ts b/terminus-ssh/src/components/sshModal.component.ts index 3f712b0f..935e4285 100644 --- a/terminus-ssh/src/components/sshModal.component.ts +++ b/terminus-ssh/src/components/sshModal.component.ts @@ -31,12 +31,18 @@ export class SSHModalComponent { quickConnect () { let user = 'root' let host = this.quickTarget + let port = 22 if (host.includes('@')) { [user, host] = host.split('@') } + if (host.includes(':')) { + port = parseInt(host.split(':')[1]) + host = host.split(':')[0] + } + let connection: SSHConnection = { name: this.quickTarget, - host, user, + host, user, port } window.localStorage.lastConnection = JSON.stringify(connection) this.connect(connection) diff --git a/terminus-ssh/src/components/sshSettingsTab.component.ts b/terminus-ssh/src/components/sshSettingsTab.component.ts index 16212f3a..020f6a9a 100644 --- a/terminus-ssh/src/components/sshSettingsTab.component.ts +++ b/terminus-ssh/src/components/sshSettingsTab.component.ts @@ -21,6 +21,7 @@ export class SSHSettingsTabComponent { let connection: SSHConnection = { name: '', host: '', + port: 22, user: 'root', } let modal = this.ngbModal.open(EditConnectionModalComponent) diff --git a/terminus-ssh/src/services/ssh.service.ts b/terminus-ssh/src/services/ssh.service.ts index 30ca35c4..b8d550eb 100644 --- a/terminus-ssh/src/services/ssh.service.ts +++ b/terminus-ssh/src/services/ssh.service.ts @@ -100,6 +100,7 @@ export class SSHService { ssh.connect({ host: connection.host, + port: connection.port || 22, username: connection.user, password: privateKey ? undefined : '', privateKey, From 692045ce772eb990661cddeaf547aafc75786d75 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 4 Jan 2018 21:20:42 +0100 Subject: [PATCH 4/6] fixed button alignment on macOS --- terminus-core/src/components/appRoot.component.pug | 2 +- terminus-core/src/components/appRoot.component.scss | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/terminus-core/src/components/appRoot.component.pug b/terminus-core/src/components/appRoot.component.pug index ac4bf554..a2f9d5c1 100644 --- a/terminus-core/src/components/appRoot.component.pug +++ b/terminus-core/src/components/appRoot.component.pug @@ -29,7 +29,7 @@ title-bar( ) i.fa([class]='"fa fa-" + button.icon') - .drag-space(*ngIf='config.store.appearance.frame == "thin" && hostApp.platform != Platform.macOS') + .drag-space([class.persistent]='config.store.appearance.frame == "thin" && hostApp.platform != Platform.macOS') .btn-group button.btn.btn-secondary.btn-tab-bar( diff --git a/terminus-core/src/components/appRoot.component.scss b/terminus-core/src/components/appRoot.component.scss index 218f4120..67bbbfe4 100644 --- a/terminus-core/src/components/appRoot.component.scss +++ b/terminus-core/src/components/appRoot.component.scss @@ -55,15 +55,20 @@ $tab-border-radius: 4px; } &>.drag-space { - min-width: 100px; - flex: 1 0 25%; + min-width: 1px; + flex: 1 0 1%; -webkit-app-region: drag; + + &.persistent { + min-width: 100px; + flex: 1 0 25%; + } } &.inset { padding-left: 85px; } - + window-controls { margin-left: 10px; } From 46d9aabbdd37f458bc5b66900203ad1b078c9046 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 4 Jan 2018 21:38:02 +0100 Subject: [PATCH 5/6] configure() doesn't have to be async --- terminus-terminal/src/components/terminalTab.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terminus-terminal/src/components/terminalTab.component.ts b/terminus-terminal/src/components/terminalTab.component.ts index 426556cb..67c42f64 100644 --- a/terminus-terminal/src/components/terminalTab.component.ts +++ b/terminus-terminal/src/components/terminalTab.component.ts @@ -321,7 +321,7 @@ export class TerminalTabComponent extends BaseTabComponent { this.hterm.onVTKeystroke('\f') } - async configure (): Promise { + configure (): void { let config = this.config.store preferenceManager.set('font-family', `"${config.terminal.font}", "monospace-fallback", monospace`) this.setFontSize() From 65aaa131ef12cc5693b4c59dcd36252ec4389fc1 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 4 Jan 2018 21:38:17 +0100 Subject: [PATCH 6/6] removed Screen hotkeys from the standard macOS config --- terminus-core/src/configDefaults.macos.yaml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/terminus-core/src/configDefaults.macos.yaml b/terminus-core/src/configDefaults.macos.yaml index 0025408f..e38d54c9 100644 --- a/terminus-core/src/configDefaults.macos.yaml +++ b/terminus-core/src/configDefaults.macos.yaml @@ -3,46 +3,29 @@ hotkeys: - 'Ctrl+Space' close-tab: - '⌘-W' - - ['Ctrl-A', 'K'] - toggle-last-tab: - - ['Ctrl-A', 'A'] - - ['Ctrl-A', 'Ctrl-A'] + toggle-last-tab: [] next-tab: - - '⌘-ArrowRight' - - ['Ctrl-A', 'N'] - 'Ctrl-Tab' previous-tab: - - '⌘-ArrowLeft' - - ['Ctrl-A', 'P'] - 'Ctrl-Shift-Tab' tab-1: - '⌘-1' - - ['Ctrl-A', '1'] tab-2: - '⌘-2' - - ['Ctrl-A', '2'] tab-3: - '⌘-3' - - ['Ctrl-A', '3'] tab-4: - '⌘-4' - - ['Ctrl-A', '4'] tab-5: - '⌘-5' - - ['Ctrl-A', '5'] tab-6: - '⌘-6' - - ['Ctrl-A', '6'] tab-7: - '⌘-7' - - ['Ctrl-A', '7'] tab-8: - '⌘-8' - - ['Ctrl-A', '8'] tab-9: - '⌘-9' - - ['Ctrl-A', '9'] tab-10: - '⌘-0' - - ['Ctrl-A', '0'] pluginBlacklist: ['ssh']