🎀 a nice lil shell for lua people made with go and lua

Overview

Hilbish

🎀 a nice lil shell for lua people made with go and lua

It is currently in a mostly beta state but is very much usable (I'm using it right now).

There are still some things missing like pipes but granted that will be added soon. (or you can use dev branch)

Links

Building

Prebuilt binaries are not yet provided, so to try it out you'll have to manually compile.

NOTE: Hilbish is currently only officially supported and tested on Linux

Requirements

  • Go 1.16

Install

git clone https://github.com/Hilbis/Hilbish
cd Hilbish
make build
sudo make install
# Or 
sudo make

Uninstall

sudo make uninstall

License

MIT

Comments
  • feat: windows support

    feat: windows support

    hilbish isnt tested on windows, since i don't have an install of it and don't want to bother getting it just to test. the only problems seem to be the readline library dependency and hardcoded linux paths

    enhancement help wanted 
    opened by TorchedSammy 13
  • hilbish.prompt: %d character isn't autorefreshing when go to another directory

    hilbish.prompt: %d character isn't autorefreshing when go to another directory

    so if i use the next config:

    local hilbish = require "hilbish"
    
    hilbish.prompt('%d ')
    

    it works, and it shows me the prompt correctly:

    ~

    but if i go to ~/.config using cd, it don't autorefresh:

    ~ cd ~/.config
    ~ echo it keeps the ~
    
    opened by AlphaTechnolog 9
  • hilbish install fails when trying to import keys using AUR

    hilbish install fails when trying to import keys using AUR

    When attempting to install hilbish using paru v1.9.3 (henceforth the AUR as well), installation fails when I attempt to import the gpg key for lua-succulent-git-r7.96dc95c-1 (098F50DFBCEEC71A4EAB6DA450EE40A2809851F5) and instead prompts me with this instead: gpg: keyserver receive failed: No data error: failed to run: gpg --recv-keys 098F50DFBCEEC71A4EAB6DA450EE40A2809851F5: attempting to install the hilbish-git version also reveals that the hilbish-git-1.0.4-r3.g0113a4e-1 gpg key 784DF7A14968C5094E16839C904FC49417B44DCD has the same issue. Testing it on my laptop which is running yay also has the same results.

    To reproduce, attempt to install the package from the AUR using any AUR package manager. You should get the same error, or I am just a massive goof and screwing something up terribly.

    bug 
    opened by Joshument 9
  • fix: lunacolors not found in nix-shell

    fix: lunacolors not found in nix-shell

    /home/devin/.hilbishrc.lua:2: module lunacolors not found:
            no field package.preload['lunacolors']
            stat ./lunacolors.lua: no such file or directory
            stat /usr/local/share/lua/5.1/lunacolors.lua: no such file or directory
            stat /usr/local/share/lua/5.1/lunacolors/init.lua: no such file or directory
            stat ./libs/lunacolors/init.lua: no such file or directory
            stat ./lunacolors/init.lua: no such file or directory
            stat ./lunacolors/lunacolors.lua: no such file or directory
            stat /usr/share/hilbish/libs/lunacolors/init.lua: no such file or directory
            stat : no such file or directory
            stat /usr/share/hilbish/libs/lunacolors/lunacolors.lua: no such file or directory
            stat /home/devin/.local/share/hilbish/libs/lunacolors/init.lua: no such file or directory
            stat /home/devin/.local/share/hilbish/libs/lunacolors/lunacolors.lua: no such file or directory
            stat /home/devin/.local/share/hilbish/libs/lunacolors.lua: no such file or directory,
    stack traceback:
            [G]: in function 'require'
            /home/devin/.hilbishrc.lua:2: in main chunk
            [G]: ?
    An error has occured while loading your config! Falling back to minimal default config.
    
    bug help wanted 
    opened by devins2518 8
  • get stdout of hilbish.run

    get stdout of hilbish.run

    Hello! :wave:

    I'm trying to make support to the git branch in my prompt, but i tried using hilbish.run and trying to get the stdout and don't works :c

    here is my code:

    local function get_git_branch()
        local status, stdout, stderr = hilbish.run('git branch', true)
    
        if stdout ~= "" then
            return stdout
        end
    
        return nil
    end
    

    but that function always returns nil, and print the stdout in the terminal without catching it in my variable, here is the demonstration:

    Screenshot from 2022-08-12 12-27-54

    Idk if i'm doing smth wrong, please tell me if i'm doing something wrong lol

    question 
    opened by AlphaTechnolog 6
  • feat: add ctrl delete to forward delete word

    feat: add ctrl delete to forward delete word

    closes #124 @Renzix test thanks


    • [x] I have reviewed CONTRIBUTING.md.
    • [x] My commits and title use the Conventional Commit format.
    • [ ] I have documented any breaking changes according to SemVer.

    enhancement 
    opened by TorchedSammy 6
  • feat: add .editorconfig file

    feat: add .editorconfig file


    • [X] I have reviewed CONTRIBUTING.md.
    • [X] My commits and title use the Conventional Commit format.
    • [ ] I have documented changes and additions in the CHANGELOG.md.

    (I was in doubt whether to use chore or feat))

    I added a .editorconfig because I think it makes it easier for people who use editors that support this tool

    opened by danitw 5
  • fix: naming a alias command with the command name inside of alias

    fix: naming a alias command with the command name inside of alias

    The for loop used to extract command and add args dosen't work when the alias has the same name as the comand itself, beside it I saw no reason to keep using a for loop to extrac args


    • [x] I have reviewed CONTRIBUTING.md.
    • [x] My commits and title use the Conventional Commit format.
    • [ ] I have documented any breaking changes according to SemVer.

    opened by ratogabriel 5
  • Makefile does not respect DESTDIR

    Makefile does not respect DESTDIR

    Hi, I'm the AUR maintainer for this package. I believe @MCotocel had asked earlier if I could start building this with the Makefile instead of directly invoking go build, however, the Makefile in question doesn't seem to respect whatever DESTDIR is set to. This is important for Arch Linux, as packages are not allowed to directly install to /usr/bin without using pacman.

    This is what I get from an unreleased hilbish PKGBUILD, using the latest release:

    make: Warning: File 'Makefile' has modification time 5828 s in the future
    'hilbish' -> '/usr/bin/hilbish'
    install: cannot create regular file '/usr/bin/hilbish': Permission denied
    make: *** [Makefile:9: install] Error 1
    A failure occurred in package().
    Aborting...
    

    And this is what I have in the PKGBUILD:

    package() {
      cd "$pkgname-$pkgver"
      DESTDIR="$pkgdir/" make install
    

    DESTDIR is set to $pkgdir, which expands to the package directory. So ideally it should install to $pkgdir/usr/bin/hilbish

    enhancement 
    opened by lmartinez-mirror 5
  • [FAQ] How to add alias with | pipe?

    [FAQ] How to add alias with | pipe?

    Hi, i want to know if there is a way to add commands like: "pacman -Q | fzf".

    When i add this as a normal alias it return: image

    I don't know too much about lua. Sorry if i'm a dumb!

    opened by linuxmobile 4
  • feat: add command builtins

    feat: add command builtins

    hilbish itself doesnt provide a lot of builtins. the sh interpreter does add a few but the common important ones are not there.

    on windows, a lot of the commands available on a linux system are not available (for hopefully obvious reasons), so there is no ls or cat, etc. hilbish should implement them in some capacity to have a closer and similar experience on all platforms (mainly windows)

    this includes: ls, clear, cat, etc.

    enhancement 
    opened by TorchedSammy 4
  • perf: cache completions

    perf: cache completions

    would be opt in, as i imagine there might be a few problems with this. this would be mainly for binary completions since those change less than normal files. hilbish can save a table of completions in lua and return it if the base path of completion is the same

    enhancement 
    opened by TorchedSammy 0
  • fix: pass command standard output to commanders

    fix: pass command standard output to commanders

    if a commander needs to show input, it would write to the provided files (which will be stdout and stderr) and read from the provided stdin. this would fix the issue with the current cat builtin not working with less and with commanders in general not being able to pipe to each other and external commands.

    enhancement 
    opened by TorchedSammy 0
  • feat: message/notification system

    feat: message/notification system

    since things can happen while a user is running commands (say a job), i think a unified notifying system would be good to add.

    users can then integrate it where they want, an icon in the prompt for example.

    enhancement 
    opened by TorchedSammy 3
  • feat: select multiple completion entries

    feat: select multiple completion entries

    saw this in fzf tab, would be good if you could select multiple completion results with alt enter or some bind like that

    I think a completer would have to return some "context" to know what to put before the actual completion because I imagine it would be a problem of completing full file paths vs just selecting multiple flags ?

    enhancement 
    opened by TorchedSammy 0
  • feat: add case insensitive tab completion

    feat: add case insensitive tab completion


    • [x] I have reviewed CONTRIBUTING.md.
    • [x] My commits and title use the Conventional Commit format.
    • [ ] I have documented changes and additions in the CHANGELOG.md.

    redo of #146 attempt number 2 but should actually work this time closes #104

    enhancement 
    opened by TorchedSammy 0
Releases(v2.0.1)
Owner
Hilbis Development
🌺 Small development team, making cool and elegant software for all.
Hilbis Development
go program that installs and customizes ohmyzsh tmux vim via various plugins and other nice to haves

Pimp-My-Shell Table of Contents Pimp-My-Shell Install Usage About Resources Tmux Hotkeys VIM Hotkeys Adjusting Custom Aliases Mac Fix Terminal bind ke

null 23 Dec 22, 2022
Ddg - DuckDuckGo terminal search that plays nice with grep and fzf

ddg duckduckgo terminal search for use with fzf (or grep) What? With this tool y

Cauê Felchar 3 Apr 1, 2022
painless task queue manager for shell commands with an intuitive cli interface (execute shell commands in distributed cloud-native queue manager).

EXEQ DOCS STILL IN PROGRESS. Execute shell commands in queues via cli or http interface. Features Simple intuitive tiny cli app. Modular queue backend

Mohammed Al Ashaal 13 Dec 14, 2022
ap 是一个 shell 工具,可以让其它 shell 命令的输出能够自动进入交互翻页模式

ap -- auto-pager ap 是一个 shell 工具,可以让其它 shell 命令的输出能够自动进入交互翻页模式。 ap 由两部分组成,一个 Go 语言编写的二进制程序,负责捕获命令的输出并支持翻页, 和一组 shell 脚本,负责为用户指定的命令清单创建与之同名的 wrapper。 经

flw 12 Apr 12, 2022
That's right - order that nice pizza 🍕 with `kubectl`

pizza-controller making kubernetes do what it was always meant to do: order pizza. https://gum.co/kubernetes-crds to get up to speed with custom resou

Ciro S. Costa 110 Sep 27, 2022
Style definitions for nice terminal layouts 👄

Lip Gloss Style definitions for nice terminal layouts. Built with TUIs in mind. Lip Gloss takes an expressive, declarative approach to terminal render

Charm 5.4k Dec 28, 2022
Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.

Sampler. Visualization for any shell command. Sampler is a tool for shell commands execution, visualization and alerting. Configured with a simple YAM

Alexander Lukyanchikov 11.1k Dec 28, 2022
ReverseSSH - a statically-linked ssh server with reverse shell functionality for CTFs and such

ReverseSSH A statically-linked ssh server with a reverse connection feature for simple yet powerful remote access. Most useful during HackTheBox chall

null 652 Jan 5, 2023
Dinogo is an CLI framework for build terminal and shell applications in Go.

dinogo Dinogo is an CLI framework for build terminal and shell applications in Go. Features Cross Platform Fast and efficient Keyboard API Enable/Disa

Mertcan Davulcu 10 Aug 29, 2022
A shell tool to create counting semaphores, acquire them and release them.

A shell tool to create counting semaphores, acquire them and release them. This is useful if you want to e.g. run no more than N out of M commands in parallel.

Antoine Grondin 2 Oct 12, 2021
Testing local and remote shell commands in Go

Testing local and remote shell commands in Go. This is an (intentionally simplified) example of how unix shell commands can be unit-tested in Go. The

Anton 5 Nov 30, 2021
A powerful modern CLI and SHELL

Grumble - A powerful modern CLI and SHELL There are a handful of powerful go CLI libraries available (spf13/cobra, urfave/cli). However sometimes an i

梁辰风 0 Dec 30, 2021
The extremely customizable and themeable shell prompt.

kitch-prompt Kitch-prompt is a cross-platform tool for displaying a shell prompt, which can be extensively customized both in terms of what is shown,

Jason Walton 15 Dec 28, 2022
🧑‍💻📊 Show off your most used shell commands

tsukae ??‍?? ?? Tsukae, 使え - means use in Japanese (so it refers to commands that you use) Built on top of termui and cobra Big shoutout to jokerj40 f

Ilya Revenko 430 Dec 17, 2022
A goroutine monitor to keep track of active routines from within your favorite shell.

roumon A goroutine monitor to keep track of active routines from within your favorite shell. Features Track live state of all active goroutines Termin

Armin Becher 131 Jan 3, 2023
Shelby is a fast ⚡️ , lightweight ☁️ , minimal✨, shell prompt written in Go.

Shelby is a fast ⚡️ ,lightweight ☁️ ,minimal ✨ , shell prompt written in Pure Go. Installation Follow the steps below(Linux and macOS), and Post Insta

Athul Cyriac Ajay 168 Dec 3, 2022
A multiple reverse shell sessions/clients manager via terminal written in go

A multiple reverse shell sessions/clients manager via terminal written in go

Krisna Pranav 11 Nov 9, 2022
A spotify shell client in go.

libman Libman is an interactive spotify shell. Features Control your spotify playback. Edit playlists. Fully complies to the spotify web api terms of

null 5 Oct 16, 2022
Go package for running Linux distributed shell commands via SSH.

Go package for running Linux distributed shell commands via SSH.

Disco 148 Dec 7, 2022