The ultimate and most complete extension to initialize commands before and after Hyper terminal starts
With hyper-init you can perform as many commands as you want, before and after Hyper terminal starts, using rules that define when your commands should run.
If you don't have Hyper, install it from here.
So, type the following on Hyper:
hyper i hyper-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'],
allowedShells: ['zsh', 'bash']
}
]
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'],
allowedShells: ['zsh', 'bash']
},
{
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']
}
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 |
An array with your shell commands to run.
You can perform as many commands as you would like.
Example:
commands: ['cd ~/Desktop', 'ls']
An array of allowed shells to restrict the commands to be executed.
Example:
allowedShells: ['zsh', 'bash']
You can omit this property or let the array empty if you would like to allow the commands run for all shells.
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'
}
}
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 `++`
}
}
Contributions are always welcome.
There's a bunch of ways you can contribute to this project, like by:
- 🔌 Creating new features
- 👋 Requesting a feature
- 🪲 Reporting a bug
- 📄 Improving this documentation
- 🚨 Sharing this project and recommending it to your friends
- 💵 Supporting this project on Patreon
- 🐛 Funding an issue on IssueHunt
- 🌟 Dropping a star on this repository
And 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 shells.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'
}
[...]
}