Skip to content
⚡️ The ultimate and most complete extension to initialize commands before and after Hyper terminal starts.
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
img
src
.gitignore
LICENSE
README.md
index.js
package.json

README.md

logo

hyper-init

The ultimate and most complete extension to initialize commands before and after Hyper terminal starts

become a patron or sponsor Donate npm version downloads mentioned in awesome list license

With hyper-init you can perform as many commands as you would like to do, before and after Hyper terminal starts, using rules that define when your commands should run.

hyper-init gif

Table of Contents

Installation

If you don't have Hyper, install it here.

So, type the following on Hyper:

hyper i hyper-init

Configuration

init

hyper-init can be configured within the config object in the ~/.hyper.js configuration file.

All you have to do to get started is to create an array of objects called init, like this:

init: [
  {
    rule: 'once',
    commands: ['cd ~/Desktop', 'ls']
  }
]

Your ~/.hyper.js configuration file should look like this:

module.exports = {
  config: {

    // add hyper-init configuration like this:
    init: [
      {
        rule: 'once',
        commands: ['cd ~/Desktop', 'ls']
      },
      {
        rule: 'windows',
        commands: ['echo This is only executed on New Windows!']
      },
      {
        rule: ['splitted', 'tabs', 'windows'],
        commands: ['echo Hey, I can set an array of rules!']
      }
    ]
  },

  plugins: ['hyper-init']

}

Rules

A string or array that defines when you want your commands to run.

Rule Description
once executes your commands only at Hyper starts
windows executes your commands only when a new Hyper window opens
tabs executes your commands only when a new tab is opened
splitted executes your commands only when a new pane is opened
all executes your commands every time a terminal opens

Commands

An array with your shell commands to run.
You can perform as many commands as you would like.

Example:

commands: ['cd ~/Desktop', 'ls']

clearCommand

hyper-init can infer the command to clear the screen for a small number of terminals. If it can't infer the command, hyper-init clears the terminal buffer using printf "\\033[H". You can set it manually adding the clearCommand: '' property within the config object. For example:

module.exports = {
	config: {
		clearCommand: 'reset'
	}
}

commandSeparator

hyper-init uses && as the default separator for commands. For known terminals, hyper-init can infer the separator. You can also set it manually by adding the commandSeparator: '' property within the config object, but this overrides for all terminals, even ones that don't support that delimiter. For example:

module.exports = {
	config: {
		commandSeparator: ' ++ ' // For an arbitrary terminal that uses `++`
	}
}

Contributing

hyper-init's ability to infer the clearCommand and commandSeparator is based on its relatively small dictionary. Feel free to add more definitions for terminals not listed in get-specifics.js.

KNOWN_SHELLS = {
	[...]
	shellName: {
		separator: '',
		clearCommand: ''
	}
	[...]
}
  • shellName should be replaced with the name of the shell you want to target (lowercase)
  • The value of separator should be the separator for multiple statements on one line (e.g. ' && ') as a string
  • The value of clearCommand should be the command to clear the target shell (e.g. 'cls') as a string
KNOWN_SHELLS = {
	[...]
	powershell: {
		separator: '; ',
		clearCommand: 'Clear-Host'
	}
	[...]
}

License

MIT License

You can’t perform that action at this time.