- Lua 99.9%
- Shell 0.1%
| bin | ||
| lasso | ||
| .gitignore | ||
| README.md | ||
Lasso
Notice: Undergoing refactor for 0.2.0 changes. Currently in broken state. Use 0.1.0 tag until this notice is removed.
Infinite canvas Arcan appl.
Config and setup
Install by:
cd ~/.arcan/appl: Or wherever your applpath is setgit clone https://codeberg.org/tsamples/lasso.gitarcan lasso
Bindings are contextual based on mode and submode. Conceptually not too dissimilar from a modal editor like vim or helix. mode is based on what is or isn't selected. submode indicates new or editing. Bindings base on mode can be configured in ./bindings.lua
Default bindings (to be improved):
-
lctrl-l: Line -
lctrl-w: Target -
lctrl-r: Rectangle -
lctrl-x: Terminal -
lctrl-t+mouse 1: Text -
escape: Unfocus -
delete: Delete -
lalt-f: Float (moves with you) -
lalt-a: Attach (stays put) -
lctrl-c: Copy -
lctrl-c: Paste -
lalt_2: Cycle Spawn Target -
lalt_5: Cycle Font Size -
lalt_8: Cycle Font Color -
lalt_9: Cycle Line Color -
lalt_0: Cycle Fill Color -
lalt_k: Cycle Keyboard Layout -
lalt_lctrl_u: Hide/Show UI
Targets are determined by list_targets() from the API and as such they need to be added via arcan_db:
$ arcan_db add_target lasso BIN /usr/local/bin/arcan_lwa lasso
Development plans
0.1.0: Initial canvas
- Infinite Panning
- Nested instances of
Lasso - Create primitives:
Line,Rect,Text,Target,Terminal - Manipulate said primitives via
Delete,Move - Dark mode
0.2.0: Media as mediums
- Reimplementing line and rect in shaders
- Enables rotation, will allow for fixes to blending
- Integration with
arcan-net- discovery modes
Text: Pipe to editor, decode as ttsRect: Into image, into Lasso, as a selection- New primitives:
Image,Video,Audio,<$decode> - Persistence; dump contents to json
0.3.0: Lets get physical
- Integration with
vaquero(mix of syndicated actors and shmif clients) - Pair
Videowith an instance oflasso - Spawn clients in
lassobased on information decoded from video
0.n.0: TBD
- ???
- Profit
Ugly bits
Some things that are known and will eventually be improved. Some of these have reasonable explanations; time, interest, knowledge, challenged myself to various constraints, etc... and others do not.
- Bindings aren't where I want them.
- Commands are currently pretty haphazard.
- This UI is temporary.
License
Unlicense