<?xml version="1.0" encoding="utf-8" standalone="yes"?><rssversion="2.0"xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hilbish</title><link>https://rosettea.github.io/Hilbish/versions/merge/</link><description>Recent content on Hilbish</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:linkhref="https://rosettea.github.io/Hilbish/versions/merge/index.xml"rel="self"type="application/rss+xml"/><item><title>Frequently Asked Questions</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/faq/</guid><description>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&rsquo;s main goal, but &hellip;.)
Windows Support? It compiles for Windows (CI ensures it does), but otherwise it is not directly supported. If you&rsquo;d like to improve this situation, checkout the discussion .
Where is the API documentation?</description></item><item><title>Getting Started</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/getting-started/</guid><description>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 make it your user/login shell.</description></item><item><title>Improving Hilbish's Branding</title><link>https://rosettea.github.io/Hilbish/versions/merge/blog/improving-this-website/</link><pubDate>Thu, 13 Apr 2023 22:15:31 -0400</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/blog/improving-this-website/</guid><description>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&rsquo;s logo, so that can be thought of as something for the 2 years milestone?
Logo Hilbish&rsquo;s old logo was.. not that good. It definitely functioned as a logo, but the yellow part of it looked ugly (sorry old logo).</description></item><item><title>v2.1.2 Release</title><link>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.1.2-release/</link><pubDate>Mon, 10 Apr 2023 12:27:41 -0400</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.1.2-release/</guid><description>The release with full changelogs and prebuilt binaries can be seen at the v2.1.2 tag.
This release reverts the April Fool&rsquo;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!</description></item><item><title>v2.1.1 Release</title><link>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.1.1-release/</link><pubDate>Sat, 01 Apr 2023 18:15:42 -0400</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.1.1-release/</guid><description>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 When running this version, you may have noticed an odd message that sometimes comes up when running commands.</description></item><item><title>v2.1 Release</title><link>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.1-release/</link><pubDate>Tue, 07 Feb 2023 18:25:38 -0400</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.1-release/</guid><description>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 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.</description></item><item><title>Hilbish v2.0 Release</title><link>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.0-release/</link><pubDate>Thu, 29 Dec 2022 01:55:21 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/blog/v2.0-release/</guid><description>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&rsquo;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.</description></item><item><title>Install</title><link>https://rosettea.github.io/Hilbish/versions/merge/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/install/</guid><description>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 recommended for download: 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.</description></item><item><title>Interface hilbish.aliases</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.aliases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.aliases/</guid><description>Introduction The alias interface deals with all command aliases in Hilbish.
Functions add(alias, cmd) This is an alias (ha) for the hilbish.alias function.
delete(name) Removes an alias.
list() -&gt; table&lt;string, string&gt; Get a table of all aliases, with string keys as the alias and the value as the command.
resolve(alias) -&gt; command (string) Tries to resolve an alias to its command.</description></item><item><title>Interface hilbish.completions</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.completions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.completions/</guid><description>Introduction The completions interface deals with tab completions.
Functions call(name, query, ctx, fields) -&gt; completionGroups (table), prefix (string) Calls a completer function. This is mainly used to call a command completer, which will have a name in the form of command.name, example: command.git. You can check doc completions for info on the completionGroups return value.
handler(line, pos) The handler function is the callback for tab completion in Hilbish. You can check the completions doc for more info.</description></item><item><title>Interface hilbish.editor</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.editor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.editor/</guid><description>Introduction The hilbish.editor interface provides functions to directly interact with the line editor in use.
Functions getLine() -&gt; string Returns the current input line.
getVimRegister(register) -&gt; string Returns the text that is at the register.
insert(text) Inserts text into the line.
setVimRegister(register, text) Sets the vim register at register to hold the passed text.</description></item><item><title>Interface hilbish.history</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.history/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.history/</guid><description>Introduction The history interface deals with command history. This includes the ability to override functions to change the main method of saving history.
Functions add(cmd) Adds a command to the history.
all() -&gt; table Retrieves all history.
clear() Deletes all commands from the history.
get(idx) Retrieves a command from the history based on the idx.
size() -&gt; number Returns the amount of commands in the history.</description></item><item><title>Interface hilbish.jobs</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.jobs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.jobs/</guid><description>Introduction Manage interactive jobs in Hilbish via Lua.
Jobs are the name of background tasks/commands. A job can be started via interactive usage or with the functions defined below for use in external runners.
Functions add(cmdstr, args, execPath) Adds a new job to the job table. Note that this does not immediately run it.
all() -&gt; table&lt;Job&gt; Returns a table of all job objects.
disown(id) Disowns a job. This deletes it from the job table.</description></item><item><title>Interface hilbish.os</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.os/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.os/</guid><description> Introduction The os interface provides simple text information properties about the current OS on the systen. This mainly includes the name and version.
Interface fields family: Family name of the current OS name: Pretty name of the current OS version: Version of the current OS</description></item><item><title>Interface hilbish.runner</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.runner/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.runner/</guid><description>Introduction The runner interface contains functions that allow the user to change how Hilbish interprets interactive input. Users can add and change the default runner for interactive input to any language or script of their choosing. A good example is using it to write command in Fennel.
Functions setMode(cb) This is the same as the hilbish.runnerMode function. It takes a callback, which will be used to execute all interactive input.</description></item><item><title>Interface hilbish.timers</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.timers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.timers/</guid><description>Introduction If you ever want to run a piece of code on a timed interval, or want to wait a few seconds, you don&rsquo;t have to rely on timing tricks, as Hilbish has a timer API to set intervals and timeouts.
These are the simple functions hilbish.interval and hilbish.timeout (doc accessible with doc hilbish). But if you want slightly more control over them, there is the hilbish.timers interface. It allows you to get a timer via ID and control them.</description></item><item><title>Interface hilbish.userDir</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.userdir/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/hilbish/hilbish.userdir/</guid><description> Introduction This interface just contains properties to know about certain user directories. It is equivalent to XDG on Linux and gets the user&rsquo;s preferred directories for configs and data.
Interface fields config: The user&rsquo;s config directory data: The user&rsquo;s directory for program data</description></item><item><title>Module bait</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/bait/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/bait/</guid><description>Introduction Bait is the event emitter for Hilbish. Why name it bait? Why not. It throws hooks that you can catch. This is what you will use if you want to listen in on hooks to know when certain things have happened, like when you&rsquo;ve changed directory, a command has failed, etc. To find all available hooks thrown by Hilbish, see doc hooks.
Functions catch(name, cb) Catches a hook with name.</description></item><item><title>Module commander</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/commander/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/commander/</guid><description>Introduction Commander is a library for writing custom commands in Lua. In order to make it easier to write commands for Hilbish, not require separate scripts and to be able to use in a config, the Commander library exists. This is like a very simple wrapper that works with Hilbish for writing commands. Example:
local commander = require &#39;commander&#39; commander.register(&#39;hello&#39;, function(args, sinks) sinks.out:writeln &#39;Hello world!&#39; end) In this example, a command with the name of hello is created that will print Hello world!</description></item><item><title>Module fs</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/fs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/fs/</guid><description>Introduction The fs module provides easy and simple access to filesystem functions and other things, and acts an addition to the Lua standard library&rsquo;s I/O and filesystem functions.
Functions abs(path) -&gt; string Gives an absolute version of path.
basename(path) -&gt; string Gives the basename of path. For the rules, see Go&rsquo;s filepath.Base
cd(dir) Changes directory to dir
dir(path) -&gt; string Returns the directory part of path. For the rules, see Go&rsquo;s filepath.</description></item><item><title>Module terminal</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/api/terminal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/api/terminal/</guid><description>Introduction The terminal library is a simple and lower level library for certain terminal interactions.
Functions restoreState() Restores the last saved state of the terminal
saveState() Saves the current state of the terminal
size() Gets the dimensions of the terminal. Returns a table with width and height Note: this is not the size in relation to the dimensions of the display</description></item><item><title>Notification</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/features/notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/features/notifications/</guid><description>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.</description></item><item><title>Runner Mode</title><link>https://rosettea.github.io/Hilbish/versions/merge/docs/features/runner-mode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/docs/features/runner-mode/</guid><description>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 Hilbish as a REPL. This also allows users to add alternative languages, instead of either like Fennel.</description></item><item><title>Welcome to the Hilbish blog</title><link>https://rosettea.github.io/Hilbish/versions/merge/blog/welcome/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rosettea.github.io/Hilbish/versions/merge/blog/welcome/</guid><description>Hello! Welcome to the Hilbish blog. This will mainly contain release announcements and some other things relating to Hilbish (development).</description></item></channel></rss>