vercel / hyper

A terminal built on web technologies
https://hyper.is
MIT License
43.32k stars 3.52k forks source link

Is there a way to configure a default working directory when launching the hyper? #4721

Closed sudansth closed 4 years ago

sudansth commented 4 years ago

Issue

I am unable to set the custom default working directory so that I can launch to the pre-set (not default) directory while launching the hyper app. Is there any way to set a hyper's working directory to the custom directory path? Can we support this in the hyper's configuration file?

LabhanshAgrawal commented 4 years ago

You can set the workingDirectory property (needs full path) It might not be there in 3.0.2 Should work with the canary build

sudansth commented 4 years ago

@LabhanshAgrawal, Thank you for your response. Where do i get the canary build of hyper?

LabhanshAgrawal commented 4 years ago

you can get it from the ci

sudansth commented 4 years ago

I get exception while installing the canary build in windows version 2004 (OS Build 19041.329). The Hyper just displays blank back UI

Error: "A JavaScript error occurred in the main process. Uncaught Exception: Error: File not found: at new WindowsPtyAgent ...... ....."

LabhanshAgrawal commented 4 years ago

can you post the full error

LabhanshAgrawal commented 4 years ago

also post your config

sudansth commented 4 years ago

This is my config: " // Future versions of Hyper may add additional config options, // which will not automatically be merged into this file. // See https://hyper.is#cfg for all currently supported options.

module.exports = { config: { // choose either 'stable' for receiving highly polished, // or 'canary' for less polished but more frequent updates updateChannel: 'stable',

// default font size in pixels for all tabs
fontSize: 14,

// font family with optional fallbacks
fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

// default font weight: 'normal' or 'bold'
fontWeight: 'normal',

// font weight for bold characters: 'normal' or 'bold'
fontWeightBold: 'bold',

// line height as a relative unit
lineHeight: 1,

// letter spacing as a relative unit
letterSpacing: 0,

// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
cursorColor: 'rgba(248,28,229,0.8)',

// terminal text color under BLOCK cursor
cursorAccentColor: '#000',

// `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
cursorShape: 'BLOCK',

// set to `true` (without backticks and without quotes) for blinking cursor
cursorBlink: true,

// color of the text
foregroundColor: '#fff',

// terminal background color
// opacity is only supported on macOS
backgroundColor: '#000',

// terminal selection color
selectionColor: 'rgba(248,28,229,0.3)',

// border color (window, tabs)
borderColor: '#333',

// custom CSS to embed in the main window
css: '',

// custom CSS to embed in the terminal window
termCSS: '',

// if you're using a Linux setup which show native menus, set to false
// default: `true` on Linux, `true` on Windows, ignored on macOS
showHamburgerMenu: '',

// set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
// additionally, set to `'left'` if you want them on the left, like in Ubuntu
// default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
showWindowControls: '',

// custom padding (CSS format, i.e.: `top right bottom left`)
padding: '12px 14px',

// the full list. if you're going to provide the full color palette,
// including the 6 x 6 color cubes and the grayscale map, just provide
// an array here instead of a color map object
colors: {
  black: '#000000',
  red: '#C51E14',
  green: '#1DC121',
  yellow: '#C7C329',
  blue: '#0A2FC4',
  magenta: '#C839C5',
  cyan: '#20C5C6',
  white: '#C7C7C7',
  lightBlack: '#686868',
  lightRed: '#FD6F6B',
  lightGreen: '#67F86F',
  lightYellow: '#FFFA72',
  lightBlue: '#6A76FB',
  lightMagenta: '#FD7CFC',
  lightCyan: '#68FDFE',
  lightWhite: '#FFFFFF',
},

// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
// if left empty, your system's login shell will be used by default
//
// Windows
// - Make sure to use a full path if the binary name doesn't work
// - Remove `--login` in shellArgs
//
// Bash on Windows
// - Example: `C:\\Windows\\System32\\bash.exe`
//
// PowerShell on Windows
// - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
shell: `'C:\\Program Files\\Git\\git-cmd.exe'`,

// for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
// by default `['--login']` will be used
shellArgs: ['--command=usr/bin/bash.exe', '-l', '-i'],

// for environment variables
env: {TERM: 'cygwin'},

// set to `false` for no bell
bell: 'SOUND',

// if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
copyOnSelect: false,

// if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
defaultSSHApp: true,

// if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
// selection is present (`true` by default on Windows and disables the context menu feature)
quickEdit: false,

// choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
// or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
// (inside tmux or vim with mouse mode enabled for example).
macOptionSelectionMode: 'vertical',

// URL to custom bell
// bellSoundURL: 'http://example.com/bell.mp3',

// Whether to use the WebGL renderer. Set it to false to use canvas-based
// rendering (slower, but supports transparent backgrounds)
webGLRenderer: true,

// for advanced config flags please refer to https://hyper.is/#cfg

},

// a list of plugins to fetch and install from npm // format: [@org/]project[#version] // examples: // hyperpower // @company/project // project#1.0.1 plugins: [ 'hyper-material-theme', 'hyperpower', 'hypercmd', 'hyperborder', 'hyperterm-tab-icons', 'hyper-blink', 'hyperterm-cursor'],

// in development, you can create a directory under // ~/.hyper_plugins/local/ and include it here // to load it and avoid it being npm installed localPlugins: [],

keymaps: { // Example // 'window:devtools': 'cmd+alt+o', }, }; "

And the screenshot of the error message is: Error

LabhanshAgrawal commented 4 years ago

either remove ` from shell or set shell: 'C:\\Program Files\\Git\\bin\\bash.exe' and shellArgs: []

sudansth commented 4 years ago

Setting these worked for me. shell: 'C:\\Windows\\System32\\bash.exe' and shellArgs: ['~']

andreasvirkus commented 3 years ago

@LabhanshAgrawal thanks! Setting workingDirectory worked for me on canary 3.1.0-canary.4 (it wasn't there for 3.0.2 as you mentioned). It also accepts a relative path on MacOS

workingDirectory: '~/code',