Go to file
sammy 2337f9ab60
refactor: use custom event emitter (#193)
* refactor: use custom event emitter

* fix: sigint hook emit on windows

* fix: restore correct hilbish conf file

* fix: call recoverer for go listeners

* refactor(golibs/bait): use 1 map for listeners

* feat: add once listeners, ability to remove listeners and remove listener on error

* perf: reslice listener slice instead of trying to do ordered move with append

* feat(bait): add release function to remove event listener

* perf: remove listener directly from once emit instead of using off function

* refactor: use bait event emitter on commander

* docs(golibs/bait): add doc strings for functions

* docs: set changelog

* docs(golibs/bait): add docs for lua release function
2022-08-17 18:01:32 -04:00
.github build!: replace make with task (#171) 2022-07-09 11:44:53 -04:00
assets docs: slight refactor of the readme 2021-10-12 16:01:17 -04:00
cmd/docgen fix(docgen): make functions that take varargs have the signature 2022-04-04 21:34:46 -04:00
docs docs: [ci] generate new docs 2022-07-13 19:46:40 +00:00
emmyLuaDocs docs: [ci] generate new docs 2022-07-13 19:46:40 +00:00
gallery docs: update image for readme gallery 2022-03-22 21:19:36 -04:00
golibs refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
libs chore: update lunacolors (adds blackBg format arg) 2022-07-26 10:41:12 -04:00
nature chore!: remove guide command (closes #188) 2022-07-13 16:04:57 -04:00
readline fix: percentages in completion entries causing a problem in the completion menus 2022-07-26 19:24:02 -04:00
util refactor: move out home abbreviating code to a util function 2022-05-17 21:37:42 -04:00
.gitignore feat: add docgen program, document almost all hilbish functions 2021-10-16 10:21:05 -04:00
.gitmodules chore: update lunacolors 2022-03-13 16:37:33 -04:00
.hilbishrc.lua refactor!: move hilbish.greeting to an opt (closes #184) 2022-07-09 17:15:13 -04:00
CHANGELOG.md refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
CONTRIBUTING.md docs: update contributing info to include writing changes to changelog 2022-05-30 18:16:36 -04:00
LICENSE chore: update license 2022-02-12 16:46:41 -04:00
README.md docs: remove getting started section on readme 2022-07-09 18:39:21 -04:00
Taskfile.yaml build!: replace make with task (#171) 2022-07-09 11:44:53 -04:00
aliases.go feat: add hilbish.aliases.resolve to resolve an alias 2022-04-23 12:28:28 -04:00
api.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
complete.go feat: complete files plainly if tab query begins with quotes (workaround #183) 2022-07-09 10:45:42 -04:00
editor.go feat(hilbish.editor): add getLine function to get contents of line 2022-07-19 17:55:03 -04:00
exec.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
execfile_unix.go feat: job enhancements (#153) 2022-05-21 20:53:36 -04:00
execfile_windows.go feat: job enhancements (#153) 2022-05-21 20:53:36 -04:00
go.mod feat: implement job foregrounding/backgrounding (#155) 2022-05-24 19:15:02 -04:00
go.sum feat: implement job foregrounding/backgrounding (#155) 2022-05-24 19:15:02 -04:00
history.go feat: lua backed history (#187) 2022-07-13 16:02:09 -04:00
init_windows.go fix: set vt in on stdin 2022-07-13 15:11:06 -04:00
job.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
job_unix.go feat: implement job foregrounding/backgrounding (#155) 2022-05-24 19:15:02 -04:00
job_windows.go feat: implement job foregrounding/backgrounding (#155) 2022-05-24 19:15:02 -04:00
lua.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
main.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
rl.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
runnermode.go feat: allow runners to specify if they want more input (#162) 2022-06-02 22:33:30 -04:00
signal_unix.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
signal_windows.go refactor: use custom event emitter (#193) 2022-08-17 18:01:32 -04:00
timer.go refactor!: use userdata where appropriate (#157) 2022-05-28 19:03:44 -04:00
timerhandler.go refactor!: use userdata where appropriate (#157) 2022-05-28 19:03:44 -04:00
vars.go fix: change how version is retrieved 2022-05-16 19:36:34 -04:00
vars_darwin.go refactor: (re)organize and change prelude path and structure 2022-04-23 00:03:50 -04:00
vars_linux.go refactor: (re)organize and change prelude path and structure 2022-04-23 00:03:50 -04:00
vars_windows.go fix: add dot to sample config path on windows 2022-08-16 12:30:39 -04:00

README.md



🌺 The flower shell. A comfy and nice little shell for Lua fans!

GitHub commit activity GitHub commits since latest release (by date) GitHub contributors
help wanted GitHub license Discord

Hilbish is a extensible shell (framework). It was made to be very customizable via the Lua programming language. It aims to be easy to use for the casual people but powerful for those who want to tinker more with their shell, the thing used to interface with most of the system.

The motivation for choosing Lua was that its simpler and better to use than old shell script. It's fine for basic interactive shell uses, but that's the only place Hilbish has shell script; everything else is Lua and aims to be infinitely configurable. If something isn't, open an issue!

Table of Contents

Screenshots





Installation

Prebuilt binaries

Go here for builds on the master branch.

AUR

AUR maintainer
Arch Linux users can install Hilbish from the AUR with the following command:

yay -S hilbish

AUR maintainer
Or from the latest master commit with:

yay -S hilbish-git

Nixpkgs

Nix/NixOS users can install Hilbish from the central repository, nixpkgs, through the usual ways. If you're new to nix you should probably read up on how to do that here.

Manual Build

Prerequisites

Build

First, clone Hilbish. The recursive is required, as some Lua libraries are submodules.

git clone --recursive https://github.com/Rosettea/Hilbish
cd Hilbish
go get -d ./...

To build, run:

task

Or, if you want a stable branch, run these commands:

git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
task build

After you did all that, run sudo task install to install Hilbish globally.

Contributing

Any kind of contributions are welcome! Hilbish is very easy to contribute to. Read CONTRIBUTING.md as a guideline to doing so.

Thanks to everyone below who's contributed!

Made with contributors-img.

License

Hilbish is licensed under the MIT license.
Images and assets are licensed under CC-BY-SA 4.0