Commit Briefs

6940039126 Brett Fisher

README.md: Create file. (main, origin/main)


40b59c550a Brett Fisher

Makefile: Add rules for manual pages.


bf369a536a Brett Fisher

man/aestel.7, man/browsefiles.1, man/launchprogram.1,

man/setbackground.1: Create manual pages.


2ead0ef5fe Brett Fisher

bin/browsefiles.lua: Update heading comment for consistency across

project scripts.


07e76aec4d Brett Fisher

Makefile, bin/browsefiles.lua, bin/setbackground.lua: Refactor to

reflect module renamed from navigate.lua to browse.lua.


076f13abe4 Brett Fisher

aestel/browse.lua, aestel/navigate.lua: Rename module for clarity

with purpose of module. - Refactor module - Update heading comment for consistency across project modules. - Remove redundant narrative comments and unused commented out code


60e1b851d9 Brett Fisher

aestel/display.lua: Refactor module for readabiity.

- Update heading comment for consistency across project modules. - Remove redundant narrative comments. - Reorder functions.


5b6952961c Brett Fisher

aestel/opener.lua: Fix typo in heading comment.


5a0ba17d30 Brett Fisher

aestel/input.lua: Update heading comment for consistency across

project modules.


badf3df92f Brett Fisher

aestel/colors.lua: Update heading comment for consistency across

project modules.


Branches

Tags

This repository contains no tags

Tree

LICENSE.mdcommits | blame
Makefilecommits | blame
README.mdcommits | blame
aestel/
bin/
man/

README.md

# README.md

__aestel__

A collection of Lua terminal utilities.

## An Aestel?

The aestel project is named for the Old English _æstel_, a wax  
tablet used for recording and preserving knowledge.

__aestel__ is a collection of lightweight, modular utilities for  
terminal-based workflow, productivity, knowledge management, and  
system administration.

## Project Structure

The utilities are ports of the author's shell scripts to Lua. At  
present they include the following scripts.

    browsefilies.lua     Directory browsing and file opening
    launchprogram.lua    Menu-driven program launcher
    setbackground.lua    Background setting utility

The utilities are scripts written in Lua that rely on a shared set  
of Lua modules.

     browse.lua       Browsing directory structure and content.
     colors.lua       Shared ANSI color constants.
     display.lua      Shared terminal output display.
     input.lua        Shared low-level terminal input utilities.
     menu.lua         Rendering and navigating menus.
     opener.lua       Opening files based on MIME type.

- bin/: User-facing scripts (browsefiles, launchprogram, etc.)
- aestel/: Shared Lua modules providing the core UI/navigation primitives
- man/: Manual pages for the utilities

## Scripting Language Dependencies

- Lua 5.4
- LuaFileSystem (lfs)

### Preferred Program Dependencies

Aestel is designed to be modular. The following programs are used  
by default for their alignment with the author's design values  
(written in C, minimal, and Unix-compliant):

- Terminal Emulator: [st](https://st.suckless.org)
- Text Editor: [vis](https://github.com/martanne/vis), and,
- Background Setter: [bgs](https://github.com/Gottox/bgs).

These programs are not strictly required. Users may substitute their  
preferred programs. Note that doing so will require modification of  
the relevant Lua script or module source code.

## Install

Install the libraries, binaries, and manual pages. Note that root  
privileges are not required as the default destination `~/.local/`  
directory.

```
make install
```

## Uninstall

Remove the libraries, binaries, and manual pages.

```
make uninstall
```

## Configuration

Configuration of the user's configuration file for the user's  
interactive shell is required for scripts to exit to the current  
working directory. The author uses the Almquist Shell and places  
the following in `~/.ashrc` file.

```
browsefiles() {
    local target
    target=$(command browsefiles "$@")
    [ -n "$target" ] && [ -d "$target" ] && cd "$target"
}

setbackground() {
    local target
    target=$(command setbackground "$@")
    [ -n "$target" ] && [ -d "$target" ] && cd "$target"
}
```