• Stars
    star
    157
  • Rank 238,399 (Top 5 %)
  • Language
    Lua
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Proof-of-concept prototype for Userland

Userland

About this repo

This implementation is not under development anymore, as it was a prototype/proof-of-concept/MVP which I've successfully used to do rapid experimentation and evolve and stabilize the fundamentals of the concept.

I am currently working on a new implementation, which I intend to open-source once it is production-ready.

About Userland

Userland is an integrated dataflow environment for end-users. It allows users to interact with modules that implement functionality for different domains from a single user interface and combine these modules in creative ways.

The UI works as a series of cells. Each cell can be set to a different mode, and each mode implemented as a separate module. There are currently three different modules:

  • spreadsheet - basic spreadsheet-like behavior, activated by typing formulas starting with an equals sign (e.g. =1+1, =A1 * (3/2))
  • shell - Unix shell mode, where each cell represents one command and its output, activated by typing shell. As the cell switches to shell-mode, it displays its current directory and allows commands to be entered.
  • synth - synthesizer mode, activated by typing commands starting with a tilde (e.g ~triangle 220). Pressing Enter when a synth cell is focused will start/stop the audio wave.

Pressing Ctrl-Backspace clears the cell mode back to ?.

This video demonstrates the integration of "spreadsheet" and "shell" modules inside Userland.

At LIVE 2019 I also gave a live demo combining the "shell", "spreadsheet" and "synth" modules.

Running

First, make sure you have the following installed:

You can install Rust support in LuaRocks with:

$ luarocks install luarocks-build-rust

Install the Lua dependencies for Userland:

$ luarocks --lua-version 5.1 --local make

Finally, run userland:

$ ./userland

More Repositories

1

htop

htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
C
5,844
star
2

dit

A console text editor for Unix systems that you already know how to use
C
141
star
3

f-strings

String interpolation for Lua
Lua
83
star
4

tabular

Tabular representation of Lua data
Lua
50
star
5

datafile

A Lua library for handling paths when loading data files
Lua
36
star
6

restserver

A simple server API for writing REST services running over WSAPI
Lua
24
star
7

pull-request-tutorial

An example repository for the Pull Request tutorial
Python
21
star
8

lua-mastodon

A Lua client API for the Mastodon social network
Lua
18
star
9

codegrep

a grep-like tool tailored for code
Lua
18
star
10

safer

Paranoid Lua programming
Lua
14
star
11

subprocess

A port of the Python subprocess module to Lua
C
14
star
12

adaptive-pomodoro

🍅 A pomodoro clock that doesn't break your flow
HTML
12
star
13

lutrace

luTrace (Lua Micro Trace) is a tiny stand-alone module that prints a trace of functions executed by a script (like strace, ltrace, etc.)
Lua
12
star
14

lode-fonts

Custom fonts for GoboLinux
Makefile
11
star
15

lua-syntect

Minimal Lua binding for syntect, a syntax highlighting library
Rust
9
star
16

libscript

A plugin-based library for language-independent application extensibility
C
6
star
17

lsp-client

A Lua library for implementing Language Server Protocol clients
Lua
5
star
18

inf1715

Repositório da disciplina INF1715
Haskell
4
star
19

puredata

A sketch of Pure Data in Haskell
Haskell
4
star
20

cache_cd

A smarter cd for your shell
3
star
21

luatoc

A naive Lua 5.0 to C+Lua translator
Lua
3
star
22

busted-htest

Pretty output handler for Busted
Lua
2
star
23

protosampler

C
2
star
24

lyx2docbook

A simple Lyx to DocBook-XML converter
Lua
2
star
25

xlode

a little game I wrote back in college
1
star
26

poa2020

Quiz Eleição POA 2020: compare as propostas
HTML
1
star