From 521529bd762f89361beccc5e3b1b05bd83959b79 Mon Sep 17 00:00:00 2001 From: sammy-ette Date: Sun, 22 Jun 2025 22:52:45 +0000 Subject: [PATCH] deploy: f545e2286eb24ba9b165483c23adba979302d078 --- .../blog/improving-this-website/index.html | 15 +-- .../new-website/blog/v2.0-release/index.html | 27 ++--- .../new-website/blog/v2.1-release/index.html | 23 ++-- .../blog/v2.1.1-release/index.html | 19 ++-- .../blog/v2.1.2-release/index.html | 7 +- .../new-website/blog/v2.2-release/index.html | 17 +-- .../new-website/blog/v2.3-release/index.html | 11 +- versions/new-website/blog/welcome/index.html | 7 +- versions/new-website/docs/api/bait/index.html | 35 +++--- .../new-website/docs/api/commander/index.html | 32 +++--- versions/new-website/docs/api/fs/index.html | 42 +++++--- .../new-website/docs/api/hilbish/index.html | 100 ++++++++++++++---- versions/new-website/docs/api/index.html | 6 +- .../new-website/docs/api/readline/index.html | 11 +- .../new-website/docs/api/snail/index.html | 13 +-- .../new-website/docs/api/terminal/index.html | 20 ++-- versions/new-website/docs/api/yarn/index.html | 13 +-- .../new-website/docs/completions/index.html | 10 +- versions/new-website/docs/faq/index.html | 12 +-- versions/new-website/docs/features/index.html | 6 +- .../docs/features/notifications/index.html | 6 +- .../new-website/docs/features/opts/index.html | 6 +- .../docs/features/runner-mode/index.html | 6 +- .../docs/getting-started/index.html | 14 +-- .../new-website/docs/hooks/command/index.html | 12 +-- .../new-website/docs/hooks/hilbish/index.html | 12 +-- versions/new-website/docs/hooks/index.html | 6 +- .../new-website/docs/hooks/job/index.html | 6 +- .../new-website/docs/hooks/signal/index.html | 6 +- versions/new-website/docs/index.html | 6 +- versions/new-website/docs/jobs/index.html | 16 +-- .../new-website/docs/lunacolors/index.html | 6 +- .../new-website/docs/nature/dirs/index.html | 8 +- .../new-website/docs/nature/doc/index.html | 8 +- versions/new-website/docs/nature/index.html | 8 +- versions/new-website/docs/timers/index.html | 4 +- .../docs/vim-mode/actions/index.html | 6 +- versions/new-website/docs/vim-mode/index.html | 6 +- versions/new-website/index.html | 2 +- versions/new-website/install/index.html | 11 +- versions/new-website/tailwind.css | 15 ++- 41 files changed, 348 insertions(+), 248 deletions(-) diff --git a/versions/new-website/blog/improving-this-website/index.html b/versions/new-website/blog/improving-this-website/index.html index 8bfee89b..000a5cf1 100644 --- a/versions/new-website/blog/improving-this-website/index.html +++ b/versions/new-website/blog/improving-this-website/index.html @@ -1,8 +1,8 @@ -Hilbish
Improving Hilbish's Branding

Improving Hilbish's Branding

Happy birthday Hilbish! As of last month, Hilbish is now 2 years old. +Hilbish

Improving Hilbish's Branding

Improving Hilbish's Branding

Happy birthday Hilbish! As of last month, Hilbish is now 2 years old. Unfortunately I missed the official date, but I will still make a more focused post on the date (19st).

I decided to fix up this website and Hilbish's logo, so that can -be thought of as something for the 2 years milestone?

Logo +be thought of as something for the 2 years milestone?

Logo Hilbish's old logo was.. not that good. It definitely functioned as a logo, but the yellow part of it looked ugly (sorry old logo).

<img src="https://safe.kashima.moe/4c6e9q484pcy.png" width=256> <br>

You would have definitely seen the new logo, since it is currently @@ -13,13 +13,13 @@ in use on the navigation bar and footer. Here it is in a bigger view: # Website Ever since this website was first made, from the release of v2.0, it has -been doing it's job of being a website good enough, but there were a few issues.

Padding +been doing it's job of being a website good enough, but there were a few issues.

Padding Padding is very important! The edges of your screen need space to do nothing, after all. On mobile or screens small enough, there would not be enough space for the auto margin to fill, and since there was no padding besides that, it means things would look a bit cramped. This was simple to fix.

Here it is before: Before

and after: -After

Docs Navigation +After

Docs Navigation On the docs page, the pages are on the left on desktop. Since phones are too small to have this content on the side, it stays at the top. This is a bit counter intuitive since it brings in extra scrolling @@ -28,11 +28,14 @@ was not hidden by default. So a few improvements were made: - Make the doc navigation hidden by default on mobile, just like site wide navigation - Make doc navigation have the same look as site wide navigation

Here's a before:

and after: -

Looks a lot better now.

Other Changes +

Looks a lot better now.

Other Changes If you haven't noticed, I have made other changes to the website. This includes: - Borders! Something this simple makes the website look a lot better, especially on mobile. -- More padding and margin everywhere. Home, doc pages, blog post listing.

\ No newline at end of file diff --git a/versions/new-website/blog/v2.0-release/index.html b/versions/new-website/blog/v2.0-release/index.html index 026ed17a..355a13f6 100644 --- a/versions/new-website/blog/v2.0-release/index.html +++ b/versions/new-website/blog/v2.0-release/index.html @@ -1,9 +1,9 @@ -Hilbish
Hilbish v2.0 Release

Hilbish v2.0 Release

Hilbish v2.0 has been released! +Hilbish

Hilbish v2.0 Release

Hilbish v2.0 Release

Hilbish v2.0 has been released! Well actually, it was released a week ago, but I only wrote this Hilbish blog after that.

This is a *big* release, coming 9 months after the previous v1.2.0 and featuring over 40+ bug fixes and tons of new features and enhancements, so -let's see what is in this release.

Documentation +let's see what is in this release.

Documentation When querying about the problems people have with Hilbish, one of the issues was its poor documentation. Hilbish had plain text, autogenerated documentation which only covered the module functions (bait, hilbish, @@ -11,31 +11,31 @@ commander, etc.) and did not include the interfaces (hilbish.jobs and all that).

I have tried to improve this by working on documenting all the interfaces (except for some functions of hilbish.runner, that's hard to do) and made the documentation markdown for use on this website. This means -that users can look at documentation here or with the doc command.

Hopefully this addresses documentation complaints, and if not, please open an issue.

Main Bug Fixes +that users can look at documentation here or with the doc command.

Hopefully this addresses documentation complaints, and if not, please open an issue.

Main Bug Fixes As this is a piece of software with no unit testing that is maintained by me alone, there is gonna be either some bug or something that I overlooked when making a change. I make a lot of mistakes. There's also the other fact that sometimes there's just bugs for any other reasosn. Good thing I fixed -more than 40 of those bugs in this release!

A few of the fixes (and additions) include:

  • Fixing various crashes, including when there is a "stray" newline at the end of text

  • Grid completion menu causing spam and duplicate text when there are items longer than

the terminal and/or contain Japanese or other characters. - Cursor positioning with CJK characters -- Adding new keybinds and fixing others

Breaking changes + - Completion related fixes, like showing the full name, completing files with spaces

Breaking changes This release is a major version bump not only because there are tons of fixes, but because there are breaking changes. This means that there are some changes done which would -cause errors with an old user config (breaking).

Lua 5.4 +cause errors with an old user config (breaking).

Lua 5.4 The most important is the use of a new Lua VM library. Previously, Hilbish used gopher-lua, which implements Lua 5.1. This has been changed to golua, which implements Lua 5.4.

Moving from 5.1 to 5.4 does have breaking changes even if it doesn't seem like it, -and since these are different Lua implementations, there may be some differences there too.

Userdata +and since these are different Lua implementations, there may be some differences there too.

Userdata Previously, objects such as jobs or timers were represented by tables. -This has been changed to userdata to make more sense.

Other changes +This has been changed to userdata to make more sense.

Other changes Runner functions are now required to return a table. It can (at the moment) have 4 variables: - input (user input) @@ -46,20 +46,23 @@ User input has been added to the return to account for runners wanting to prompt for continued input, and to add it properly to history. continue got added so that it would be easier for runners to get continued input without having to actually handle it at all.

The MacOS config paths now match Linux, since it makes more sense for -a program like Hilbish.

The Hilbish greeting is now an opt, and is printed by default.

Feature Additions +a program like Hilbish.

The Hilbish greeting is now an opt, and is printed by default.

Feature Additions Besides fixes and changes, this release also includes a good portion of new features! Users can now add handlers for syntax highlighting and inline hinting.

Some new hooks have been added, like hilbish.cancel and hilbish.init. You can look at all the hooks via the doc hooks command

Job management functions have also been added. You can now put jobs in the foreground/background and disown them via the expected commands and also -via the Lua API.

The hilbish.timers API interface was also added in this release!

Closing Off +via the Lua API.

The hilbish.timers API interface was also added in this release!

Closing Off Hilbish has gone from something small and simple for myself to a slightly advanced shell with a decent amount of features, and a few users. It still hasn't reached levels of other alt shells in regards to literally everything, but the goal is to get there!

If you want to check the FULL changelog, you can do so here. This v2.0 release marks an advancement in Hilbish (and also how long one of my projects hasn't died) and I hope it can advance even further.

Thanks for reading, and I'll be back for the v2.1 release notes, or maybe -something else in between.

\ No newline at end of file diff --git a/versions/new-website/blog/v2.1-release/index.html b/versions/new-website/blog/v2.1-release/index.html index 44fd82b4..bbaa024a 100644 --- a/versions/new-website/blog/v2.1-release/index.html +++ b/versions/new-website/blog/v2.1-release/index.html @@ -1,39 +1,42 @@ -Hilbish
v2.1 Release

v2.1 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.1 Release

v2.1 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.1.0 tag.

Oh look! A new release of Hilbish! This time is the v2.1 release, with a small amount of features and mainly documentation changes and -bug fixes.

Documentation +bug fixes.

Documentation There have been a few documentation enhancements for this release. This includes: - Adding the return types for all functions that need them - Documenting Hilbish types like job objects and timers properly. They now have a separate heading and listing of properties and methods. -- Fixing outdated documentation

Features

Sinks +- Fixing outdated documentation

Features

Sinks A major addition is the new "sink" type for commanders to write their output to. This was the solution to pipes and other shell operators not working with builtins. If you wrote a commander -and made it print, use sinks.out:write instead.

This is also documented at the commander docs.

doc command +and made it print, use sinks.out:write instead.

This is also documented at the commander docs.

doc command Since API documentation has been moved to an API folder and also includes interfaces, a change has been made to get the module name from the passed from the requested page. This means that -doc api hilbish hilbish.jobs is now shortened to doc api hilbish.jobs

Bug Fixes +doc api hilbish hilbish.jobs is now shortened to doc api hilbish.jobs

Bug Fixes Small release, small amount of bug fixes. Even though, this is the main -part of this release.

Segfaults +automatically add the ending slash. This has been fixed.

Segfaults I found that when I updated my terminal of choice ([Tym]) for the new daemon feature, Hilbish would sometimes segfault on startup. This is due to it getting a resize event on startup while bait was not initialized -yet.

API Fixes +yet.

API Fixes - The hilbish.which function works with aliases. - hilbish.completion.files and hilbish.completion.bins will no longer -cause a panic with all empty arguments passed.

Next Release +cause a panic with all empty arguments passed.

Next Release Stay tuned for the v2.2 release, which will have a bigger set of features -and maybe some more bug fixes!

\ No newline at end of file diff --git a/versions/new-website/blog/v2.1.1-release/index.html b/versions/new-website/blog/v2.1.1-release/index.html index 0f96e8bc..6a3cc4fc 100644 --- a/versions/new-website/blog/v2.1.1-release/index.html +++ b/versions/new-website/blog/v2.1.1-release/index.html @@ -1,21 +1,24 @@ -Hilbish
v2.1.1 Release

v2.1.1 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.1.1 Release

v2.1.1 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.1.1 tag.

Welcome to a fresh new release of Hilbish! Some people (or none) may be awaiting the long coming v2.2 release with lots of features, but I needed to push -out this little bug fix (wink) release.

Bug Fixes

Validation checks for command input +out this little bug fix (wink) release.

Bug Fixes

Validation checks for command input When running this version, you may have noticed an odd message that sometimes comes up when running commands. This is from the new TMOLI42SH -(The Meaning of Life is 42 String Hash) input validation scheme.

Improved runtime code +(The Meaning of Life is 42 String Hash) input validation scheme.

Improved runtime code Commands now have a chance of taking exactly 2-3s ~~more~~ less time of running due to -improvements in the code for shell runners!!!!!

Validate lua code +improvements in the code for shell runners!!!!!

Validate lua code Hilbish already threw an error when Lua code was not valid in syntax, but there was the need for an extra validation scheme (called OpTTCLC - Opinion based Turing Test to Check Lua Code) -which results in less time wasted running invalid and TERRIBLE Lua code.

Features -There is only 1 new feature in this glorious release.

Fix your mistakes for the future -If you run a command that does not exist, Hilbish will say goodbye.

Closing +which results in less time wasted running invalid and TERRIBLE Lua code.

Features +There is only 1 new feature in this glorious release.

Fix your mistakes for the future +If you run a command that does not exist, Hilbish will say goodbye.

Closing Hope you enjoy this new release! It took a lot of effort to create this new version -while I was busy doing completely nothing. :)))

\ No newline at end of file diff --git a/versions/new-website/blog/v2.1.2-release/index.html b/versions/new-website/blog/v2.1.2-release/index.html index bce826b8..9690a8a1 100644 --- a/versions/new-website/blog/v2.1.2-release/index.html +++ b/versions/new-website/blog/v2.1.2-release/index.html @@ -1,9 +1,12 @@ -Hilbish
v2.1.2 Release

v2.1.2 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.1.2 Release

v2.1.2 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.1.2 tag.

This release reverts the April Fool's code additions in v2.1.1. It is functionally equal to v2.1.0. Nice!

A real release will come possibly in a few days or next week, so stay tuned for -the good and feature-filled release of v2.2!

\ No newline at end of file diff --git a/versions/new-website/blog/v2.2-release/index.html b/versions/new-website/blog/v2.2-release/index.html index 5e7a2546..7bfe98f9 100644 --- a/versions/new-website/blog/v2.2-release/index.html +++ b/versions/new-website/blog/v2.2-release/index.html @@ -1,10 +1,10 @@ -Hilbish
v2.2 Release

v2.2 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.2 Release

v2.2 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.2.0 tag.

Welcome to a very long awaited release of Hilbish, and on Christmas. Just think of it as a long preparing, late Christmas gift. :) This release does not contain a whole lot of changes, but it is a new -release with enhancements and bug fixes!

Documentation +release with enhancements and bug fixes!

Documentation As is a trend, the documentation has been improved by ONE HUNDRED TIMES. Okay, not quite, but they've definitely been given an uplift. Everything has been rewritten, new documentation has been added to both @@ -17,10 +17,10 @@ The first new added feature is the Greenhouse pager! It is a library and command accessible via greenhouse. It will have better integration with Hilbish things, like notifications and can be used as a base for displaying multi-line text output instead of paging to less. The usage of Greenhouse is -more efficient and better in Hibish!

Notifications +more efficient and better in Hibish!

Notifications Wait... notifications? Yes! All new in the 2.2 release is a generic notification interface for things in Hilbish to alert the user of things going on. Stuff like -background jobs finishing, simple alarms, actual messages, whatever you like.

Fuzzy Searching +background jobs finishing, simple alarms, actual messages, whatever you like.

Fuzzy Searching Users can now use fuzzy search for command history and completion search. Enable it with hilbish.opts.fuzzy = true!

Smaller Enhancements Did you know of the cdr command? I personally don't use it, but I've made @@ -31,7 +31,7 @@ just aliases. A simple example: normally there would be a space after.

Simple fix: lua hilbish.alias('run', 'nix run nixpkgs#%1') -

Rejoice!

Bug Fixes +

Rejoice!

Bug Fixes There are a small amount of bug fixes but they're still fixes!

In some cases Hilbish will panic if: - Alias resolution results in something empty - A user does not return a table in a runner functions @@ -39,11 +39,14 @@ These are both fixed.

An infinite loop has been patched out if someone nav having any prior history. Imagine pressing the up key on a fresh Hilbish install and you shell no longer working... that's gone now.

Something else that's gone... is still Windows support, but I added a fix which will make file completion work now. Job management commands work as -well now too due to an oversight when changing up the job functions.

Towards v2.3 +well now too due to an oversight when changing up the job functions.

Towards v2.3 For the next release, I'm hoping that it won't take as long to deliver on what is realistically a small amount of changes. So v2.3 will be coming in a short time with some good changes, promise! See you in the -next blog post.

\ No newline at end of file diff --git a/versions/new-website/blog/v2.3-release/index.html b/versions/new-website/blog/v2.3-release/index.html index 94417166..965a78ae 100644 --- a/versions/new-website/blog/v2.3-release/index.html +++ b/versions/new-website/blog/v2.3-release/index.html @@ -1,9 +1,9 @@ -Hilbish
v2.3 Release

v2.3 Release

> The release with full changelogs and prebuilt binaries can be +Hilbish

v2.3 Release

v2.3 Release

> The release with full changelogs and prebuilt binaries can be seen at the v2.3.0 tag.

Hilbish v2.3 has now been released! This is small feature and bug fix release which took a while to cme ut since I took a long break from programming in general. -The next release will be great, so stay tuned for that.

Features

Pipes (via Lua) +The next release will be great, so stay tuned for that.

Features

Pipes (via Lua) Commands can now be piped to each other via the Lua API with the hilbish.run function and an fs.pipe.

Here is a minimal example of the new usage which allows users to now pipe commands directly via Lua functions: @@ -18,13 +18,16 @@ hilbish.run('ls -l', { stdin = pr })

This also means it's easier to make commands output to any stream output, -including in commanders.

Bug Fixes +including in commanders.

Bug Fixes - Commanders can now be cancelled with Ctrl-C, which means if they froze for some reason they can now be exited. - The shell script interpreter now keeps its environment, and this also fixes the current working directory being wrong with some commands. - Some greenhouse bugs have been fixed, like randomly appearing when resizing the terminal -and some text attributes like color appearing where they weren't supposed to.

\ No newline at end of file diff --git a/versions/new-website/blog/welcome/index.html b/versions/new-website/blog/welcome/index.html index fb47f092..9e48c01b 100644 --- a/versions/new-website/blog/welcome/index.html +++ b/versions/new-website/blog/welcome/index.html @@ -1,6 +1,9 @@ -Hilbish
Welcome to the Hilbish blog
\ No newline at end of file diff --git a/versions/new-website/docs/api/hilbish/index.html b/versions/new-website/docs/api/hilbish/index.html index c6324e2f..8821d248 100644 --- a/versions/new-website/docs/api/hilbish/index.html +++ b/versions/new-website/docs/api/hilbish/index.html @@ -1,5 +1,6 @@ -Hilbish
Module hilbish

Module hilbish

Introduction

Functions

+Hilbish
Module hilbish

Module hilbish

the core Hilbish API

Introduction

The Hilbish module includes the core API, containing +interfaces and functions which directly relate to shell functionality.

Functions

@@ -68,14 +69,56 @@
-

Functions


+

Static module fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
verThe version of Hilbish
goVersionThe version of Go that Hilbish was compiled with
userUsername of the user
hostHostname of the machine
dataDirDirectory for Hilbish data files, including the docs and default modules
interactiveIs Hilbish in an interactive shell?
loginIs Hilbish the login shell?
vimModeCurrent Vim input mode of Hilbish (will be nil if not in Vim input mode)
exitCodeExit code of the last executed command
+

Functions


hilbish.alias(cmd, orig) -

Sets an alias, with a name of cmd to another command.

Parameters

string cmd + +

Sets an alias, with a name of cmd to another command.

Parameters

string cmd Name of the alias

string orig Command that will be aliased

Example

-- With this, "ga file" will turn into "git add file"
 hilbish.alias('ga', 'git add')
@@ -90,7 +133,8 @@ hilbish.appendPath(dir)
 
 	
 
-

Appends the provided dir to the command path ($PATH)

Parameters

string|table dir + +

Appends the provided dir to the command path ($PATH)

Parameters

string|table dir Directory (or directories) to append to path

Example

hilbish.appendPath '~/go/bin'
 -- Will add ~/go/bin to the command path.
 
@@ -106,7 +150,8 @@ hilbish.complete(scope, cb)
 
 	
 
-

Registers a completion handler for the specified scope. + +

Registers a completion handler for the specified scope. A scope is expected to be command.<cmd>, replacing <cmd> with the name of the command (for example command.git). The documentation for completions, under Features/Completions or doc completions @@ -140,14 +185,16 @@ hilbish.cwd() -> string -

Returns the current directory of the shell.

Parameters

This function has no parameters.


+ +

Returns the current directory of the shell.

Parameters

This function has no parameters.


hilbish.exec(cmd) -

Replaces the currently running Hilbish instance with the supplied command. + +

Replaces the currently running Hilbish instance with the supplied command. This can be used to do an in-place restart.

Parameters

string cmd


@@ -155,7 +202,8 @@ hilbish.goro(fn) -

Puts fn in a Goroutine. + +

Puts fn in a Goroutine. This can be used to run any function in another thread at the same time as other Lua code. *NOTE: THIS FUNCTION MAY CRASH HILBISH IF OUTSIDE VARIABLES ARE ACCESSED.* *This is a limitation of the Lua runtime.*

Parameters

function fn


@@ -165,7 +213,8 @@ hilbish.highlighter(line) -

Line highlighter handler. + +

Line highlighter handler. This is mainly for syntax highlighting, but in reality could set the input of the prompt to display anything. The callback is passed the current line and is expected to return a line that will be used as the input display. @@ -182,7 +231,8 @@ hilbish.hinter(line, pos) -

The command line hint handler. It gets called on every key insert to + +

The command line hint handler. It gets called on every key insert to determine what text to use as an inline hint. It is passed the current line and cursor position. It is expected to return a string which is used as the text for the hint. This is by default a shim. To set hints, @@ -198,7 +248,8 @@ hilbish.inputMode(mode) -

Sets the input mode for Hilbish's line reader. + +

Sets the input mode for Hilbish's line reader. emacs is the default. Setting it to vim changes behavior of input to be Vim-like with modes and Vim keybinds.

Parameters

string mode Can be set to either emacs or vim


@@ -208,7 +259,8 @@ hilbish.interval(cb, time) -> @Timer -

Runs the cb function every specified amount of time. + +

Runs the cb function every specified amount of time. This creates a timer that ticking immediately.

Parameters

function cb

number time Time in milliseconds.


@@ -217,7 +269,8 @@ hilbish.multiprompt(str) -

Changes the text prompt when Hilbish asks for more input. + +

Changes the text prompt when Hilbish asks for more input. This will show up when text is incomplete, like a missing quote

Parameters

string str

Example

--[[
 imagine this is your text input:
 user ~ ∆ echo "hey
@@ -240,14 +293,16 @@ hilbish.prependPath(dir)
 
 	
 
-

Prepends dir to $PATH.

Parameters

string dir


+ +

Prepends dir to $PATH.

Parameters

string dir


hilbish.prompt(str, typ) -

Changes the shell prompt to the provided string. + +

Changes the shell prompt to the provided string. There are a few verbs that can be used in the prompt text. These will be formatted and replaced with the appropriate values. %d - Current working directory @@ -265,7 +320,8 @@ hilbish.read(prompt) -> input (string) -

Read input from the user, using Hilbish's line editor/input reader. + +

Read input from the user, using Hilbish's line editor/input reader. This is a separate instance from the one Hilbish actually uses. Returns input, will be nil if Ctrl-D is pressed, or an error occurs.

Parameters

string prompt? Text to print before input, can be empty.


@@ -275,7 +331,8 @@ hilbish.timeout(cb, time) -> @Timer -

Executed the cb function after a period of time. + +

Executed the cb function after a period of time. This creates a Timer that starts ticking immediately.

Parameters

function cb

number time Time to run in milliseconds.


@@ -284,9 +341,10 @@ hilbish.which(name) -> string -

Checks if name is a valid command. -Will return the path of the binary, or a basename if it's a commander.

Parameters

string name

Types


Sink

A sink is a structure that has input and/or output to/from a desination.

Methods

autoFlush(auto)

Sets/toggles the option of automatically flushing output. -A call with no argument will toggle the value.

flush()

Flush writes all buffered input to the sink.

read() -> string

Reads a liine of input from the sink.

readAll() -> string

Reads all input from the sink.

write(str)

Writes data to a sink.

writeln(str)

Writes data to a sink with a newline at the end.

\ No newline at end of file diff --git a/versions/new-website/docs/api/index.html b/versions/new-website/docs/api/index.html index 774fb76b..f16bd841 100644 --- a/versions/new-website/docs/api/index.html +++ b/versions/new-website/docs/api/index.html @@ -1,6 +1,6 @@ -Hilbish \ No newline at end of file diff --git a/versions/new-website/docs/api/readline/index.html b/versions/new-website/docs/api/readline/index.html index 235c3fb6..e3b9a1e5 100644 --- a/versions/new-website/docs/api/readline/index.html +++ b/versions/new-website/docs/api/readline/index.html @@ -1,9 +1,9 @@ -Hilbish
Module readline

Module readline

Introduction

The readline module is responsible for reading input from the user. +Hilbish

Module readline

Module readline

line reader library

Introduction

The readline module is responsible for reading input from the user. The readline module is what Hilbish uses to read input from the user, including all the interactive features of Hilbish like history search, syntax highlighting, everything. The global Hilbish readline instance -is usable at hilbish.editor.

Functions

+is usable at hilbish.editor.

Functions

@@ -12,14 +12,15 @@ is usable at hilbish.editor
-

Functions


+

Functions


readline.new() -> @Readline -

Creates a new readline instance.

Parameters

This function has no parameters.

Types


Readline

Methods

deleteByAmount(amount)

Deletes characters in the line by the given amount.

getLine() -> string

Returns the current input line.

getVimRegister(register) -> string

Returns the text that is at the register.

insert(text)

Inserts text into the Hilbish command line.

log(text)

Prints a message before the prompt without it being interrupted by user input.

read() -> string

Reads input from the user.

getChar() -> string

Reads a keystroke from the user. This is in a format of something like Ctrl-L.

setVimRegister(register, text)

Sets the vim register at register to hold the passed text.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025

Creates a new readline instance.

Parameters

This function has no parameters.

Types


Readline

Methods

deleteByAmount(amount)

Deletes characters in the line by the given amount.

getLine() -> string

Returns the current input line.

getVimRegister(register) -> string

Returns the text that is at the register.

insert(text)

Inserts text into the Hilbish command line.

log(text)

Prints a message before the prompt without it being interrupted by user input.

read() -> string

Reads input from the user.

getChar() -> string

Reads a keystroke from the user. This is in a format of something like Ctrl-L.

setVimRegister(register, text)

Sets the vim register at register to hold the passed text.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +GitHub \ No newline at end of file diff --git a/versions/new-website/docs/api/snail/index.html b/versions/new-website/docs/api/snail/index.html index 90e81c85..321188b8 100644 --- a/versions/new-website/docs/api/snail/index.html +++ b/versions/new-website/docs/api/snail/index.html @@ -1,7 +1,7 @@ -Hilbish
Module snail

Module snail

Introduction

The snail library houses Hilbish's Lua wrapper of its shell script interpreter. +Hilbish

Module snail

Module snail

shell script interpreter library

Introduction

The snail library houses Hilbish's Lua wrapper of its shell script interpreter. It's not very useful other than running shell scripts, which can be done with other -Hilbish functions.

Functions

+Hilbish functions.

Functions

@@ -10,16 +10,17 @@ Hilbish functions.

Functions


+

Functions


snail.new() -> @Snail -

Creates a new Snail instance.

Parameters

This function has no parameters.

Types


Snail

A Snail is a shell script interpreter instance.

Methods

dir(path)

Changes the directory of the snail instance. + +

Creates a new Snail instance.

Parameters

This function has no parameters.

Types


Snail

A Snail is a shell script interpreter instance.

Methods

dir(path)

Changes the directory of the snail instance. The interpreter keeps its set directory even when the Hilbish process changes -directory, so this should be called on the hilbish.cd hook.

run(command, streams)

Runs a shell command. Works the same as hilbish.run, but only accepts a table of streams.

\ No newline at end of file diff --git a/versions/new-website/docs/api/terminal/index.html b/versions/new-website/docs/api/terminal/index.html index 40e6a149..d56e2363 100644 --- a/versions/new-website/docs/api/terminal/index.html +++ b/versions/new-website/docs/api/terminal/index.html @@ -1,5 +1,5 @@ -Hilbish
@@ -20,36 +20,40 @@
-

Functions


+

Functions


terminal.restoreState() -

Restores the last saved state of the terminal

Parameters

This function has no parameters.


+ +

Restores the last saved state of the terminal

Parameters

This function has no parameters.


terminal.saveState() -

Saves the current state of the terminal.

Parameters

This function has no parameters.


+ +

Saves the current state of the terminal.

Parameters

This function has no parameters.


terminal.setRaw() -

Puts the terminal into raw mode.

Parameters

This function has no parameters.


+ +

Puts the terminal into raw mode.

Parameters

This function has no parameters.


terminal.size() -

Gets the dimensions of the terminal. Returns a table with width and height -NOTE: The size refers to the amount of columns and rows of text that can fit in the terminal.

Parameters

This function has no parameters.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025

Gets the dimensions of the terminal. Returns a table with width and height +NOTE: The size refers to the amount of columns and rows of text that can fit in the terminal.

Parameters

This function has no parameters.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +GitHub \ No newline at end of file diff --git a/versions/new-website/docs/api/yarn/index.html b/versions/new-website/docs/api/yarn/index.html index b373f8dd..7d5df40f 100644 --- a/versions/new-website/docs/api/yarn/index.html +++ b/versions/new-website/docs/api/yarn/index.html @@ -1,12 +1,12 @@ -Hilbish
Module yarn

Module yarn

Introduction

Yarn is a simple multithreading library. Threads are individual Lua states, +Hilbish

Module yarn

Module yarn

multi threading library

Introduction

Yarn is a simple multithreading library. Threads are individual Lua states, so they do NOT share the same environment as the code that runs the thread. Bait and Commanders are shared though, so you can throw hooks from 1 thread to another.

Example:

local yarn = require 'yarn'
 
 -- calling t will run the yarn thread.
 local t = yarn.thread(print)
 t 'printing from another lua state!'
-

Functions

+

Functions

@@ -15,15 +15,16 @@ t 'printing from another lua state!'
-

Functions


+

Functions


yarn.thread(fun) -> @Thread -

Creates a new, fresh Yarn thread. -fun is the function that will run in the thread.

Parameters

This function has no parameters.

Types


Thread

Methods

\ No newline at end of file diff --git a/versions/new-website/docs/completions/index.html b/versions/new-website/docs/completions/index.html index 4074366c..42bf0cbd 100644 --- a/versions/new-website/docs/completions/index.html +++ b/versions/new-website/docs/completions/index.html @@ -1,5 +1,5 @@ -Hilbish
Completions

Completions

Completions for commands can be created with the hilbish.complete +Hilbish

Completions

Completions

Tab completion for commands.

Completions for commands can be created with the hilbish.complete function. See the link for how to use it.

To create completions for a command is simple. The callback will be passed 3 parameters:

  • query (string): The text that the user is currently trying to complete. This should be used to match entries.

  • ctx (string): Contains the entire line. Use this if more text is needed to be parsed for context.

  • fields (string): The ctx split up by spaces.


In most cases, the completer just uses fields to check the amount and query on what to match entries on.

In order to return your results, it has to go within a "completion group." @@ -23,7 +23,7 @@ local cg2 = { return {cg, cg2}, prefix

Which looks like this: -{{< video src="https://safe.saya.moe/t4CiLK6dgPbD.mp4" >}}

Completion Group Types

grid

Grid is the simplest completion group type. All items are strings and when +{{< video src="https://safe.saya.moe/t4CiLK6dgPbD.mp4" >}}

Completion Group Types

grid

Grid is the simplest completion group type. All items are strings and when completion is done is displayed in a grid based on size.

Example:

{
 	items = {'just', 'a bunch', 'of items', 'here', 'hehe'},
 	type = 'grid'
@@ -46,7 +46,7 @@ entry or the description

Completion Handler

Like most parts of Hilbish, it's made to be extensible and +

Completion Handler

Like most parts of Hilbish, it's made to be extensible and customizable. The default handler for completions in general can be overwritten to provide more advanced completions if needed. This usually doesn't need to be done though, unless you know @@ -55,7 +55,7 @@ what you're doing.

The default completion handler provides 3 things: function hilbish.completion.handler(line, pos) -- do things end -

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +GitHub
\ No newline at end of file diff --git a/versions/new-website/docs/faq/index.html b/versions/new-website/docs/faq/index.html index 583c461f..02ffee3b 100644 --- a/versions/new-website/docs/faq/index.html +++ b/versions/new-website/docs/faq/index.html @@ -1,13 +1,13 @@ -Hilbish
Frequently Asked Questions

Frequently Asked Questions

Is Hilbish POSIX compliant?

No, it is not. POSIX compliance is a non-goal. Perhaps in the future, +Hilbish

Frequently Asked Questions

Frequently Asked Questions

Is Hilbish POSIX compliant?

No, it is not. POSIX compliance is a non-goal. Perhaps in the future, someone would be able to write a native plugin to support shell scripting -(which would be against it's main goal, but ....)

Windows Support?

It compiles for Windows (CI ensures it does), but otherwise it is not +(which would be against it's main goal, but ....)

Windows Support?

It compiles for Windows (CI ensures it does), but otherwise it is not directly supported. If you'd like to improve this situation, -checkout the discussion.

Why?

Hilbish emerged from the desire of a Lua configured shell. +checkout the discussion.

Why?

Hilbish emerged from the desire of a Lua configured shell. It was the initial reason that it was created, but now it's more: -to be hyper extensible, simpler and more user friendly.

Does it have "autocompletion" or "tab completion"

Of course! This is a modern shell. Hilbish provides a way for users +to be hyper extensible, simpler and more user friendly.

Does it have "autocompletion" or "tab completion"

Of course! This is a modern shell. Hilbish provides a way for users to write tab completion for any command and/or the whole shell. -Inline hinting and syntax highlighting are also available.

\ No newline at end of file diff --git a/versions/new-website/docs/features/index.html b/versions/new-website/docs/features/index.html index 055a9bf5..bb0f52f9 100644 --- a/versions/new-website/docs/features/index.html +++ b/versions/new-website/docs/features/index.html @@ -1,8 +1,8 @@ -Hilbish
Features

Features

Hilbish has a wide range of features to enhance the user's experience +Hilbish

Features

Features

Hilbish has a wide range of features to enhance the user's experience new ones are always being added. If there is something missing here or something you would like to see, please start a discussion -or comment on any existing ones which match your request.

\ No newline at end of file diff --git a/versions/new-website/docs/features/notifications/index.html b/versions/new-website/docs/features/notifications/index.html index b6cecd47..680f97b2 100644 --- a/versions/new-website/docs/features/notifications/index.html +++ b/versions/new-website/docs/features/notifications/index.html @@ -1,11 +1,11 @@ -Hilbish
Notification

Notification

Hilbish features a simple notification system which can be +Hilbish

Notification

Notification

Get notified of shell actions.

Hilbish features a simple notification system which can be used by other plugins and parts of the shell to notify the user of various actions. This is used via the hilbish.message interface.

A message is defined as a table with the following properties:

  • icon: A unicode/emoji icon for the notification.

  • title: The title of the message

  • text: Message text/body

  • channel: The source of the message. This should be a unique and easily readable text identifier.

  • summary: A short summary of the notification and message. If this is not present and you are using this to display messages, you should take part of the text instead.


The hilbish.message interface provides the following functions:

  • send(message): Sends a message and emits the hilbish.notification signal. DO NOT emit the hilbish.notification signal directly, or the message will not be stored by the message handler.

  • read(idx): Marks message at idx as read.

  • delete(idx): Removes message at idx.

  • readAll(): Marks all messages as read.

  • clear(): Deletes all messages.


There are a few simple use cases of this notification/messaging system. It could also be used as some "inter-shell" messaging system (???) but is intended to display to users.

An example is notifying users of completed jobs/commands ran in the background. Any Hilbish-native command (think the upcoming Greenhouse pager) can display -it.

HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
HilbishThe Moon-powered shell!MIT License, copyright sammyette 2025
\ No newline at end of file +GitHub
\ No newline at end of file diff --git a/versions/new-website/docs/features/opts/index.html b/versions/new-website/docs/features/opts/index.html index e1571eb8..6bbe472d 100644 --- a/versions/new-website/docs/features/opts/index.html +++ b/versions/new-website/docs/features/opts/index.html @@ -1,5 +1,5 @@ -Hilbish
Options

Options

Opts are simple toggle or value options a user can set in Hilbish. +Hilbish

Options

Options

Simple customizable options.

Opts are simple toggle or value options a user can set in Hilbish. As toggles, there are things like autocd or history saving. As values, there is the motd which the user can either change to a custom string or disable.

Opts are accessed from the hilbish.opts table. Here they can either be read or modified.

autocd

Value: boolean

Default: false

The autocd opt makes it so that lone directories attempted to be executed are @@ -17,7 +17,7 @@ includes a small range of things added in the current release.

This can via the menu in Ctrl-R. Fuzzy searching is an approximate searching method, which means results that match closest will be shown instead of an exact match.


notifyJobFinish

Value: boolean

Default: true

If this is enabled, when a background job is finished, -a notification will be sent.


processorSkipList

Value: table

Default: {}

A table listing the names of command processors to skip.

\ No newline at end of file diff --git a/versions/new-website/docs/features/runner-mode/index.html b/versions/new-website/docs/features/runner-mode/index.html index ebbac358..698a45b1 100644 --- a/versions/new-website/docs/features/runner-mode/index.html +++ b/versions/new-website/docs/features/runner-mode/index.html @@ -1,5 +1,5 @@ -Hilbish
Runner Mode

Runner Mode

Hilbish allows you to change how interactive text can be interpreted. +Hilbish

Runner Mode

Runner Mode

Customize the interactive script/command runner.

Hilbish allows you to change how interactive text can be interpreted. This is mainly due to the fact that the default method Hilbish uses is that it runs Lua first and then falls back to shell script.

In some cases, someone might want to switch to just shell script to avoid it while interactive but still have a Lua config, or go full Lua to use @@ -13,7 +13,7 @@ first then going to shell script. If you want the reverse order, you can set it to hybridRev and for isolated modes there is sh and lua respectively.

You can also set it to a function, which will be called everytime Hilbish needs to run interactive input. For more detail, see the API documentation

The hilbish.runner interface is an alternative to using hilbish.runnerMode -and also provides the shell script and Lua runner functions that Hilbish itself uses.

Functions

These are the "low level" functions for the hilbish.runner interface.

  • setMode(mode) > The same as hilbish.runnerMode

  • sh(input) -> table > Runs input in Hilbish's sh interpreter

  • lua(input) -> table > Evals input as Lua code

These functions should be preferred over the previous ones.

  • setCurrent(mode) > The same as setMode, but works with runners managed via the functions below.

  • add(name, runner) > Adds a runner to a table of available runners. The runner argument is either a function or a table with a run callback.

  • set(name, runner) > The same as add but requires passing a table and overwrites if the named runner already exists.

  • get(name) > runner > Gets a runner by name. It is a table with at least a run function, to run input.

  • exec(cmd, runnerName) > Runs cmd with a runner. If runnerName isn't passed, the current runner mode is used.

\ No newline at end of file diff --git a/versions/new-website/docs/getting-started/index.html b/versions/new-website/docs/getting-started/index.html index 94850e2b..8d719dd4 100644 --- a/versions/new-website/docs/getting-started/index.html +++ b/versions/new-website/docs/getting-started/index.html @@ -1,15 +1,15 @@ -Hilbish
Getting Started

Getting Started

To start Hilbish, open a terminal. If Hilbish has been installed and is not the +Hilbish

Getting Started

Getting Started

To start Hilbish, open a terminal. If Hilbish has been installed and is not the default shell, you can simply run hilbish to start it. This will launch a normal interactive session. -To exit, you can either run the exit command or hit Ctrl+D.

Setting as Default

Login shell

There are a few ways to make Hilbish your default shell. A simple way is +To exit, you can either run the exit command or hit Ctrl+D.

Setting as Default

Login shell

There are a few ways to make Hilbish your default shell. A simple way is to make it your user/login shell.

{{< warning It is not recommended to set Hilbish as your login shell. That is expected to be a POSIX compliant shell, which Hilbish is not. Though if you still decide to do it, there will just be a few variables missing in your environment >}}

To do that, simply run chsh -s /usr/bin/hilbish.

Some distros (namely Fedora) might have lchsh instead, which is used like lchsh <user>. -When prompted, you can put the path for Hilbish.

Default with terminal

The simpler way is to set the default shell for your terminal. The way of -doing this depends on how your terminal settings are configured.

Run after login shell

Some shells (like zsh) have an rc file, like .zlogin, which is ran when the shell session -is a login shell. In that file, you can run Hilbish with this command: exec hilbish -S -l

This will replace the shell with Hilbish, set $SHELL to Hilbish and launch it as a login shell.

Configuration

Once installation and setup has been done, you can then configure Hilbish. +When prompted, you can put the path for Hilbish.

Default with terminal

The simpler way is to set the default shell for your terminal. The way of +doing this depends on how your terminal settings are configured.

Run after login shell

Some shells (like zsh) have an rc file, like .zlogin, which is ran when the shell session +is a login shell. In that file, you can run Hilbish with this command: exec hilbish -S -l

This will replace the shell with Hilbish, set $SHELL to Hilbish and launch it as a login shell.

Configuration

Once installation and setup has been done, you can then configure Hilbish. It is configured and scripted via Lua, so the config file is a Lua file. You can use any pure Lua library to do whatever you want.

Hilbish's sample configuration is usually located in hilbish.dataDir .. '/.hilbishrc.lua'. You can print that path via Lua to see what it is: print(hilbish.dataDir .. '/.hilbishrc.lua').

As an example, it will usually will result in /usr/share/hilbish/.hilbishrc.lua on Linux.

To edit your user configuration, you can copy that file to hilbish.userDir.config .. '/hilbish/init.lua', which follows XDG on Linux and MacOS, and is located in %APPDATA% on Windows.

As the directory is usually ~/.config on Linux, you can run this command to copy it: @@ -35,7 +35,7 @@ to change our prompt. Change our prompt to what, exactly?
The doc for the fun our prompt some nice color.

But you might have also noticed that this is in the doPrompt function, which is called once, and then used again in a bait hook. Specifically, the command.exit hook, -which is called after a command exits, so when it finishes running.

\ No newline at end of file diff --git a/versions/new-website/docs/hooks/command/index.html b/versions/new-website/docs/hooks/command/index.html index eb091f51..b5a60d3c 100644 --- a/versions/new-website/docs/hooks/command/index.html +++ b/versions/new-website/docs/hooks/command/index.html @@ -1,11 +1,11 @@ -Hilbish
Command

Command

command.preexec

Thrown right before a command is executed.

Variables

string input +Hilbish

Command

Command

command.preexec

Thrown right before a command is executed.

Variables

string input The raw string that the user typed. This will include the text without changes applied to it (argument substitution, alias expansion, etc.)

string cmdStr -The command that will be directly executed by the current runner.


command.exit

Thrown after the user's ran command is finished.

Variables

number code +The command that will be directly executed by the current runner.


command.exit

Thrown after the user's ran command is finished.

Variables

number code The exit code of what was executed.

string cmdStr -The command or code that was executed


command.not-found

Thrown if the command attempted to execute was not found. +The command or code that was executed


command.not-found

Thrown if the command attempted to execute was not found. This can be used to customize the text printed when a command is not found.

Example:

local bait = require 'bait'
 -- Remove any present handlers on `command.not-found`
 
@@ -19,9 +19,9 @@ bait.catch('command.not-found', function(cmd)
 	print(string.format('The command "%s" was not found.', cmd))
 end)
 

Variables

string cmdStr -The name of the command.


command.not-executable

Thrown when the user attempts to run a file that is not executable +The name of the command.


command.not-executable

Thrown when the user attempts to run a file that is not executable (like a text file, or Unix binary without +x permission).

Variables

string cmdStr -The name of the command.

\ No newline at end of file diff --git a/versions/new-website/docs/hooks/hilbish/index.html b/versions/new-website/docs/hooks/hilbish/index.html index 6a495431..b68f7f61 100644 --- a/versions/new-website/docs/hooks/hilbish/index.html +++ b/versions/new-website/docs/hooks/hilbish/index.html @@ -1,15 +1,15 @@ -Hilbish
Hilbish

Hilbish

hilbish.exit

Sent when Hilbish is going to exit.

Variables

This signal returns no variables.


hilbish.vimMode

Sent when the Vim mode of Hilbish is changed (like from insert to normal mode). +Hilbish

Hilbish

Hilbish

hilbish.exit

Sent when Hilbish is going to exit.

Variables

This signal returns no variables.


hilbish.vimMode

Sent when the Vim mode of Hilbish is changed (like from insert to normal mode). This can be used to change the prompt and notify based on Vim mode.

Variables

string modeName The mode that has been set. -Can be these values: insert, normal, delete or replace


hilbish.cancel

Sent when the user cancels their command input with Ctrl-C

Variables

This signal returns no variables.


hilbish.notification

Thrown when a notification is sent.

Variables

table notification -The notification. The properties are defined in the link above.


hilbish.cd

Sent when the current directory of the shell is changed (via interactive means.) +Can be these values: insert, normal, delete or replace


hilbish.cancel

Sent when the user cancels their command input with Ctrl-C

Variables

This signal returns no variables.


hilbish.notification

Thrown when a notification is sent.

Variables

table notification +The notification. The properties are defined in the link above.


hilbish.cd

Sent when the current directory of the shell is changed (via interactive means.) ~~If you are implementing a custom command that changes the directory of the shell, you must throw this hook manually for correctness.~~ Since 3.0, hilbish.cd is thrown when fs.cd is called.

Variables

string path Absolute path of the directory that was changed to.

string oldPath -Absolute path of the directory Hilbish was in.


hilbish.vimAction

Sent when the user does a "vim action," being something like yanking or pasting text. +Absolute path of the directory Hilbish was in.


hilbish.vimAction

Sent when the user does a "vim action," being something like yanking or pasting text. See doc vim-mode actions for more info.

Variables

string actionName Absolute path of the directory that was changed to.

table args -Table of args relating to the Vim action.


\ No newline at end of file diff --git a/versions/new-website/docs/hooks/index.html b/versions/new-website/docs/hooks/index.html index 3e5875f6..46a983b0 100644 --- a/versions/new-website/docs/hooks/index.html +++ b/versions/new-website/docs/hooks/index.html @@ -1,6 +1,6 @@ -Hilbish \ No newline at end of file diff --git a/versions/new-website/docs/hooks/job/index.html b/versions/new-website/docs/hooks/job/index.html index 949a2508..edf0a804 100644 --- a/versions/new-website/docs/hooks/job/index.html +++ b/versions/new-website/docs/hooks/job/index.html @@ -1,6 +1,6 @@ -Hilbish \ No newline at end of file diff --git a/versions/new-website/docs/hooks/signal/index.html b/versions/new-website/docs/hooks/signal/index.html index 79210e9b..8da33f02 100644 --- a/versions/new-website/docs/hooks/signal/index.html +++ b/versions/new-website/docs/hooks/signal/index.html @@ -1,7 +1,7 @@ -Hilbish
Signal

Signal

signal.sigint

Thrown when Hilbish receive the SIGINT signal, +Hilbish

Signal

Signal

signal.sigint

Thrown when Hilbish receive the SIGINT signal, aka when Ctrl-C is pressed.

Variables

This signal returns no variables.


-## signal.resize

Thrown when the terminal is resized.

Variables

This signal returns no variables.


signal.sigusr1

Thrown when SIGUSR1 is sent to Hilbish.

Variables

This signal returns no variables.


signal.sigusr2

Thrown when SIGUSR2 is sent to Hilbish.

Variables

This signal returns no variables.

\ No newline at end of file diff --git a/versions/new-website/docs/index.html b/versions/new-website/docs/index.html index 1f0e202b..54bccb83 100644 --- a/versions/new-website/docs/index.html +++ b/versions/new-website/docs/index.html @@ -1,8 +1,8 @@ -Hilbish
Introduction

Introduction

Hilbish is a hyper-extensible shell mainly intended for interactive use. +Hilbish

Introduction

Introduction

Hilbish is a hyper-extensible shell mainly intended for interactive use. To enhance the interactive experience, Hilbish comes with a wide range of features and sane defaults, including a nice looking prompt, -advanced completion menus and history search.

Here documents some of the features of Hilbish and the Lua API.

\ No newline at end of file diff --git a/versions/new-website/docs/jobs/index.html b/versions/new-website/docs/jobs/index.html index 1e95c9f2..27136be2 100644 --- a/versions/new-website/docs/jobs/index.html +++ b/versions/new-website/docs/jobs/index.html @@ -1,20 +1,20 @@ -Hilbish

(This has mainly been replaced by hilbish.jobs).

Hilbish has pretty standard job control. It's missing one or two things, +Hilbish

(This has mainly been replaced by hilbish.jobs).

Hilbish has pretty standard job control. It's missing one or two things, but works well. One thing which is different from other shells (besides Hilbish) itself is the API for jobs, and of course it's in Lua. -You can add jobs, stop and delete (disown) them and even get output.

Job Interface -The job interface refers to hilbish.jobs.

Functions +You can add jobs, stop and delete (disown) them and even get output.

Job Interface +The job interface refers to hilbish.jobs.

Functions (Note that in the list here, they're called from hilbish.jobs, so a listing of foo would mean hilbish.jobs.foo)

  • all() -> {jobs}: Returns a table of all jobs.

  • last() -> job: Returns the last added job.

  • get(id) -> job: Get a job by its ID.

  • add(cmdstr, args, execPath) -> job: Adds a new job to the job table.

Note that this does not run the command; You have to start it manually. cmdstr is the user's input for the job, args is a table of arguments for the command. It includes arg0 (don't set it as entry 0 in the table) and execPath is an absolute path for the command executable. -- disown(id): Removes a job by ID from the job table.

Job Object +- disown(id): Removes a job by ID from the job table.

Job Object A job object is a piece of userdata. All the functions of a job require you to call them with a colon, since they are methods for the job object. Example: hilbish.jobs.last():foreground() Which will foreground the last job.

You can still have a job object for a disowned job, -it just won't be working anywhere. :^)

Properties +it just won't be working anywhere. :^)

Properties - cmd: command string - running: boolean whether the job is running - id: unique id for the job @@ -22,12 +22,12 @@ it just won't be working anywhere. :^)

exitCode: exit code of the job In ordinary cases you'd prefer to use the id instead of pid. The id is unique to Hilbish and is how you get jobs with the -hilbish.jobs interface. It may also not describe the job entirely.

Functions +hilbish.jobs interface. It may also not describe the job entirely.

Functions - stop(): Stops the job. - start(): Starts the job. - foreground(): Set the job as the current running foreground process, or run it in the foreground after it has been suspended. -- background(): Run the job in the background after it has been suspended.

\ No newline at end of file diff --git a/versions/new-website/docs/lunacolors/index.html b/versions/new-website/docs/lunacolors/index.html index f8e16847..e1aaa3d6 100644 --- a/versions/new-website/docs/lunacolors/index.html +++ b/versions/new-website/docs/lunacolors/index.html @@ -1,5 +1,5 @@ -Hilbish
Lunacolors

Lunacolors

Lunacolors is an ANSI color/styling library for Lua. It is included +Hilbish

Lunacolors

Lunacolors

Lunacolors is an ANSI color/styling library for Lua. It is included by default in standard Hilbish distributions to provide easy styling for things like prompts and text.

For simple usage, a single color or style is enough. For example, you can just use lunacolors.blue 'Hello world' and that'll return @@ -27,7 +27,7 @@ Styles: variants have a Bg suffix, while bright variants use the bright prefix. These can also be combined. Note that appropriate camel casing must be applied. For example, bright blue would be written as brightBlue, a cyan background as -cyanBg, and combining them would result in brightBlueBg.

\ No newline at end of file diff --git a/versions/new-website/docs/nature/dirs/index.html b/versions/new-website/docs/nature/dirs/index.html index df6fd7ba..f4ad303d 100644 --- a/versions/new-website/docs/nature/dirs/index.html +++ b/versions/new-website/docs/nature/dirs/index.html @@ -1,7 +1,7 @@ -Hilbish
Module dirs

Module dirs

Introduction +Hilbish
Module dirs

Module dirs

internal directory management

Introduction The dirs module defines a small set of functions to store and manage -directories.

Functions +directories.

Functions ||| |----|----| |<a href="#setOld">setOld(d)</a>|Sets the old directory string.| @@ -55,7 +55,7 @@ dirs.setOld(d) </a> </h4>

Sets the old directory string. #### Parameters -d **string**

</div>

\ No newline at end of file diff --git a/versions/new-website/docs/nature/doc/index.html b/versions/new-website/docs/nature/doc/index.html index ca82d6e4..9e1f3d19 100644 --- a/versions/new-website/docs/nature/doc/index.html +++ b/versions/new-website/docs/nature/doc/index.html @@ -1,9 +1,9 @@ -Hilbish
Module doc

Module doc

Introduction +Hilbish
Module doc

Module doc

command-line doc rendering

Introduction The doc module contains a small set of functions used by the Greenhouse pager to render parts of the documentation pages. This is only documented for the sake of it. It's only intended use -is by the Greenhouse pager.

Functions +is by the Greenhouse pager.

Functions ||| |----|----| |<a href="#renderInfoBlock">renderInfoBlock(type, text)</a>|Renders an info block. An info block is a block of text with| @@ -41,7 +41,7 @@ doc.renderInfoBlock(type, text) an icon and styled text block. #### Parameters type **string** -Type of info block. The only one specially styled is the warning.

text **string**

</div>

\ No newline at end of file diff --git a/versions/new-website/docs/nature/index.html b/versions/new-website/docs/nature/index.html index 79dcf18f..536b2add 100644 --- a/versions/new-website/docs/nature/index.html +++ b/versions/new-website/docs/nature/index.html @@ -1,10 +1,10 @@ -Hilbish
Nature

Nature

A bit after creation, we have the outside nature. Little plants, seeds, +Hilbish

Nature

Nature

A bit after creation, we have the outside nature. Little plants, seeds, growing to their final phase: a full plant. A lot of Hilbish itself is written in Go, but there are parts made in Lua, being most builtins (doc, cd, cdr), completions, and other things.
Hilbish's Lua core module is called nature. -It runs after Hilbish's Go core does.

Nature Modules

Currently, nature provides 1 intended public module: nature.dirs.
It is a simple API for managing recent directories and old -current working directory.

\ No newline at end of file diff --git a/versions/new-website/docs/timers/index.html b/versions/new-website/docs/timers/index.html index 8ccdd481..c3da41a2 100644 --- a/versions/new-website/docs/timers/index.html +++ b/versions/new-website/docs/timers/index.html @@ -1,5 +1,5 @@ -Hilbish \ No newline at end of file diff --git a/versions/new-website/docs/vim-mode/actions/index.html b/versions/new-website/docs/vim-mode/actions/index.html index 2b241204..900ceddb 100644 --- a/versions/new-website/docs/vim-mode/actions/index.html +++ b/versions/new-website/docs/vim-mode/actions/index.html @@ -1,10 +1,10 @@ -Hilbish
Actions

Actions

Vim actions are essentially just when a user uses a Vim keybind. +Hilbish

Actions

Actions

Vim actions are essentially just when a user uses a Vim keybind. Things like yanking and pasting are Vim actions. This is not an "offical Vim thing," just a Hilbish thing.

The hilbish.vimAction hook is thrown whenever a Vim action occurs. It passes 2 arguments: the action name, and an array (table) of args relating to it.

Here is documentation for what the table of args will hold for an -appropriate Vim action.

  • yank: register, yankedText

The first argument for the yank action is the register yankedText goes to.

  • paste: register, pastedText

The first argument for the paste action is the register pastedText is taken from.

\ No newline at end of file diff --git a/versions/new-website/docs/vim-mode/index.html b/versions/new-website/docs/vim-mode/index.html index 9f94c420..c4756688 100644 --- a/versions/new-website/docs/vim-mode/index.html +++ b/versions/new-website/docs/vim-mode/index.html @@ -1,6 +1,6 @@ -Hilbish
Vim Mode
\ No newline at end of file diff --git a/versions/new-website/index.html b/versions/new-website/index.html index 3d271bbd..4d1562d6 100644 --- a/versions/new-website/index.html +++ b/versions/new-website/index.html @@ -1,5 +1,5 @@ -Hilbish

Hilbish

Something Unique.

Hilbish is the new Moon-powered interactive shell for Lua fans!
Extensible, scriptable, configurable: All in Lua.

Scroll for more

Feature Overview

What Makes Hilbish Great?

The Moon-powered shell

Hilbish makes use of the Lua programming language for interactive and config scripting. +Hilbish

Hilbish

Something Unique.

Hilbish is the new Moon-powered interactive shell for Lua fans!
Extensible, scriptable, configurable: All in Lua.

Scroll for more

Feature Overview

What Makes Hilbish Great?

The Moon-powered shell

Hilbish makes use of the Lua programming language for interactive and config scripting. If you write Lua on a regular basis, Hilbish will be the perfect resident in your terminal. You can still use shell script, but Lua takes the spotlight (or the moonlight..)

Modern, Helpful Interactive Features

Graphical TUI history, sensible tab completions, elegantly refreshing prompts, name it all and Hilbish either has it or it's 1 suggestion or 1 script away from being possible. diff --git a/versions/new-website/install/index.html b/versions/new-website/install/index.html index 755306d6..709a6b49 100644 --- a/versions/new-website/install/index.html +++ b/versions/new-website/install/index.html @@ -1,9 +1,12 @@ -Hilbish

Install

Install

Official Binaries

The best way to get Hilbish is to get a build directly from GitHub.

At any time, there are 2 versions of Hilbish available to install: -the latest stable release, and development builds from the master branch.

You can download both at any time, but note that the development builds may -have breaking changes.

For the latest stable release, check here: https://github.com/Rosettea/Hilbish/releases/latest

For a development build: https://nightly.link/Rosettea/Hilbish/workflows/build/master

Compiling

To read the steps for compiling Hilbish, head over to the GitHub repository.

Package Repositories

Methods of installing Hilbish for your Linux distro.

Fedora (COPR)

An official COPR is offered to install Hilbish easily on Fedora. +Hilbish

Install

Install

Steps on how to install Hilbish on all the OSes and distros supported.

There are a small amount of ways to grab Hilbish. You can download the releases from GitHub, use your package manager, or build from source.

Official Binaries

The easiest way to get Hilbish is to get a build directly from GitHub. +At any time, there are 2 versions of Hilbish available to install: +the latest stable release, and development builds from the master branch.
You can download both at any time, but note that the development builds may have breaking changes.
To download the latest stable release, see here

For the latest development build, click here

Package Repositories

Methods of installing Hilbish for your Linux distro.

Fedora (COPR)

An official COPR is offered to install Hilbish easily on Fedora. Enable the repo: dnf copr enable sammyette/Hilbish

And install Hilbish: dnf install hilbish

Or for the latest development build from master: dnf install hilbish-git

Arch Linux (AUR)

Hilbish is on the AUR. Setup an AUR helper, and install.

Example with yay: yay -S hilbish

Or, from master branch: yay -S hilbish-git

Alpine Linux

Hilbish is currentlty in the testing/edge repository for Alpine. -Follow the steps here (using testing repositories) and install: apk add hilbish

\ No newline at end of file diff --git a/versions/new-website/tailwind.css b/versions/new-website/tailwind.css index 90f5a539..b95ff380 100644 --- a/versions/new-website/tailwind.css +++ b/versions/new-website/tailwind.css @@ -737,9 +737,6 @@ .mb-2 { margin-bottom: calc(var(--spacing) * 2); } - .mb-4 { - margin-bottom: calc(var(--spacing) * 4); - } .mb-8 { margin-bottom: calc(var(--spacing) * 8); } @@ -877,9 +874,6 @@ .h-auto { height: auto; } - .h-full { - height: 100%; - } .h-lh { height: 1lh; } @@ -913,6 +907,9 @@ .min-h-screen { min-height: 100vh; } + .w-3\/4 { + width: calc(3/4 * 100%); + } .w-\[100px\] { width: 100px; } @@ -1544,6 +1541,9 @@ .overflow-y-auto { overflow-y: auto; } + .overflow-y-scroll { + overflow-y: scroll; + } .scroll-auto { scroll-behavior: auto; } @@ -2180,9 +2180,6 @@ .pt-0 { padding-top: calc(var(--spacing) * 0); } - .pt-2 { - padding-top: calc(var(--spacing) * 2); - } .pt-6 { padding-top: calc(var(--spacing) * 6); }