2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-05-06 04:13:24 +00:00

62 lines
8.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="bg-stone-50 dark:bg-neutral-950 text-black dark:text-white"><head><meta content="width=device-width, initial-scale=1.0" name="viewport"><link href="/tailwind.css" rel="stylesheet"><title>Hilbish</title><meta content="#ff89dd" name="theme-color"><meta content="./hilbish-flower.png" property="og:image"><meta content="Hilbish" property="og:title"><meta content="Hilbish" property="og:site_name"><meta content="website" property="og:type"><meta content="Something Unique. Hilbish is the new interactive shell for Lua fans. Extensible, scriptable, configurable: All in Lua." property="og:description"><meta content="Something Unique. Hilbish is the new interactive shell for Lua fans. Extensible, scriptable, configurable: All in Lua." name="description"><meta content="Lua,Shell,Hilbish,Linux,zsh,bash" name="keywords"><meta content="https://rosettea.github.io/Hilbish/versions/new-website" property="og:url"></head><body><nav class="flex sticky top-0 w-full z-50 border-b border-b-zinc-300 backdrop-blur-md h-12"><div class="flex my-auto px-2"><div><a class="flex items-center gap-1" href="/"><img class="h-6" src="/hilbish-flower.png"><span class="self-center text-2xl">Hilbish</span></a></div></div></nav><div class="flex flex-col"><div class="block sm:hidden h-10 sticky top-12 flex py-2 px-4 border-b border-b-zinc-300 w-full gap-2 backdrop-blur-sm bg-zinc-300/50 z-50"><label class="cursor-pointer" for="sidebar-toggle"><tag><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" class="fill-black"><path d="M120-240v-80h240v80H120Zm0-200v-80h480v80H120Zm0-200v-80h720v80H120Z"/></svg></tag></label><span>Getting Started</span></div><div class="grid sm:flex"><input class="peer hidden" id="sidebar-toggle" type="checkbox"><div class="border-r border-r-zinc-300 col-start-1 row-start-1 sticky top-22 sm:top-12 h-full sm:h-svh bg-neutral-200 basis-3/5 transition-transform duration-300 -translate-x-full sm:translate-x-0 peer-checked:translate-x-0 z-30"><div class="p-4 -mb-4 overflow-y-auto h-full"><h2 class="text-xl font-semibold mb-4">Sidebar</h2><ul><li class="mb-2">Lunacolors</li><li class="mb-2">Introduction</li><li class="mb-2">Completions</li><li class="mb-2">Frequently Asked Questions</li><li class="mb-2">Getting Started</li><li class="mb-2">Options</li><li class="mb-2">Features</li><li class="mb-2">Runner Mode</li><li class="mb-2">Notification</li><li class="mb-2">Signals</li><li class="mb-2">Signal</li><li class="mb-2">Command</li><li class="mb-2">Hilbish</li><li class="mb-2">Vim Mode</li><li class="mb-2">Actions</li><li class="mb-2">Module bait</li><li class="mb-2">Module terminal</li><li class="mb-2">API</li><li class="mb-2">Module fs</li><li class="mb-2">Module commander</li><li class="mb-2">Module snail</li><li class="mb-2">Module hilbish.aliases</li><li class="mb-2">Module hilbish.abbr</li><li class="mb-2">Module hilbish</li><li class="mb-2">Module hilbish.userDir</li><li class="mb-2">Module hilbish.messages</li><li class="mb-2">Module hilbish.runner</li><li class="mb-2">Module hilbish.history</li><li class="mb-2">Module hilbish.jobs</li><li class="mb-2">Module hilbish.editor</li><li class="mb-2">Module hilbish.module</li><li class="mb-2">Module hilbish.os</li><li class="mb-2">Module hilbish.completion</li><li class="mb-2">Module hilbish.timers</li><li class="mb-2">Module dirs</li><li class="mb-2">Nature</li><li class="mb-2">Module doc</li></ul></div></div><main class="col-start-1 row-start-1 transition-all duration-300 peer-checked:filter peer-checked:blur-sm peer-checked:bg-black/30 px-4 pt-2"><h1>Getting Started</h1><Tag xmlns="namespace"><p>To start Hilbish, open a terminal. If Hilbish has been installed and is not the
default shell, you can simply run <code>hilbish</code> to start it. This will launch
a normal interactive session.
To exit, you can either run the <code>exit</code> command or hit Ctrl+D.</p>
<h1>Setting as Default</h1>
<h2>Login shell</h2>
<p>There are a few ways to make Hilbish your default shell. A simple way is
to make it your user/login shell.</p>
<p>{{&lt; warning <code>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</code> &gt;}}</p>
<p>To do that, simply run <code>chsh -s /usr/bin/hilbish</code>.
Some distros (namely Fedora) might have <code>lchsh</code> instead, which is used like <code>lchsh &lt;user&gt;</code>.
When prompted, you can put the path for Hilbish.</p>
<h2>Default with terminal</h2>
<p>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.</p>
<h2>Run after login shell</h2>
<p>Some shells (like zsh) have an rc file, like <code>.zlogin</code>, which is ran when the shell session
is a login shell. In that file, you can run Hilbish. Example:</p>
<pre><code><span>exec hilbish -S -l
</span></code></pre>
<p>This will replace the shell with Hilbish, set $SHELL to Hilbish and launch it as a login shell.</p>
<h1>Configuration</h1>
<p>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.</p>
<p>Hilbishs sample configuration is usually located in <code>hilbish.dataDir .. '/.hilbishrc.lua'</code>.
You can print that path via Lua to see what it is: <code>print(hilbish.dataDir .. '/.hilbishrc.lua')</code>.
As an example, it will usually will result in <code>/usr/share/hilbish/.hilbishrc.lua</code> on Linux.</p>
<p>To edit your user configuration, you can copy that file to <code>hilbish.userDir.config .. '/hilbish/init.lua'</code>,
which follows XDG on Linux and MacOS, and is located in %APPDATA% on Windows.</p>
<p>As the directory is usually <code>~/.config</code> on Linux, you can run this command to copy it:<br>
<code>cp /usr/share/hilbish/.hilbishrc.lua ~/.config/hilbish/init.lua</code></p>
<p>Now we can get to customization!</p>
<p>If we closely examine a small snippet of the default config:</p>
<pre><code><span><span>-- Default Hilbish config</span>
</span><span><span>-- .. with some omitted code .. --</span>
</span><span>
</span><span><span>local</span> <span>function</span> <span>doPrompt</span><span>(</span><span>fail</span><span>)</span>
</span><span> <span>hilbish</span><span>.</span><span>prompt</span><span>(</span><span>lunacolors</span><span>.</span><span>format</span><span>(</span>
</span><span> <span>'&lbrace;blue&rbrace;%u &lbrace;cyan&rbrace;%d '</span> <span>..</span> <span>(</span><span>fail</span> <span>and</span> <span>'&lbrace;red&rbrace;'</span> <span>or</span> <span>'&lbrace;green&rbrace;'</span><span>)</span> <span>..</span> <span>'∆ '</span>
</span><span> <span>)</span><span>)</span>
</span><span><span>end</span>
</span><span>
</span><span><span>doPrompt</span><span>(</span><span>)</span>
</span><span>
</span><span><span>bait</span><span>.</span><span>catch</span><span>(</span><span>'command.exit'</span><span>,</span> <span>function</span><span>(</span><span>code</span><span>)</span>
</span><span> <span>doPrompt</span><span>(</span><span>code</span> <span>~=</span> <span>0</span><span>)</span>
</span><span><span>end</span><span>)</span>
</span></code></pre>
<p>We see a whopping <strong>three</strong> Hilbish libraries being used in this part of code.
First is of course, named after the shell itself, <a href="../api/hilbish" rel="noopener noreferrer"><code>hilbish</code></a>. This is kind of a
“catch-all” namespace for functions that directly related to shell functionality/settings.</p>
<p>And as we can see, the <a href="../api/hilbish/#prompt" rel="noopener noreferrer">hilbish.prompt</a> function is used
to change our prompt. Change our prompt to what, exactly?</p>
<p>The doc for the function states that the verbs <code>%u</code> and <code>%d</code>are used for username and current directory
of the shell, respectively.</p>
<p>We wrap this in the <a href="../lunacolors" rel="noopener noreferrer"><code>lunacolors.format</code></a> function, to give
our prompt some nice color.</p>
<p>But you might have also noticed that this is in the <code>doPrompt</code> function, which is called once,
and then used again in a <a href="../api/bait" rel="noopener noreferrer">bait</a> hook. Specifically, the <code>command.exit</code> hook,
which is called after a command exits, so when it finishes running.</p></Tag></main></div></div><footer class="py-4 px-6 flex flex-row justify-around border-t border-t-zinc-300"><div class="flex flex-col"><a class="flex items-center gap-1" href="/"><img class="h-24" src="/hilbish-flower.png"><span class="self-center text-6xl">Hilbish</span></a><span class="text-xl">The Moon-powered shell!</span><span class="text-light text-neutral-500">MIT License, copyright sammyette 2025</span></div><div class="flex flex-col"><a href="https://github.com/Rosettea/Hilbish"><span class="text-pink-300 text-light">GitHub</span></a></div></footer></body></html>