Client for playing 300 publicly available Sokoban puzzles on a computer or phone.
Go to file
Kartik K. Agaram fff4dc198c explicitly state stance on autosave 2024-03-17 10:49:45 -07:00
assets
0000-freewheeling-start
0001-on
0002-Debug_animations_in_progress
0003-refresh_debug_animations
0004-on.update explicitly state stance on autosave 2024-03-17 10:49:45 -07:00
0005-animate
0006-loiter
0007-save_callstack
0008-Debug_animation_period
0010-Line_height
0011-on.initialize
0012-on.draw
0013-on.keychord_press
0014-on.text_input
0015-on.key_release
0016-on.mouse_press
0017-on.mouse_release
0019-Line_number_padding
0020-draw_editor_border
0021-draw_menu
0023-Menu_top
0024-Menu_left
0025-Menu_height
0026-Menu_bottom
0027-Menu_background
0028-draw_output_border
0029-Safe_width
0030-Safe_height
0031-on.resize
0032-update_font_settings
0033-Normal_color
0034-draw_scrollbar
0035-compute_scrollbar
0036-adjust_scrollbar
0038-on_editor_scrollbar
0040-on_editor_scrollbar_area
0042-draw_canvas
0043-map
0045-Current_pane
0046-Global_state
0047-Current_pane_index
0048-Panes
0049-new_pane
0050-print_to_output
0051-run_button
0052-enable_loiter
0054-Animations_in_progress
0056-end_frame
0058-draw_next_frames_of_animations
0059-previous_pane_button
0060-next_pane_button
0061-new_pane_button
0063-Show_code
0064-show_code_button
0065-hide_code_button
0066-copy_button
0067-paste_button
0069-output_editor_state
0070-code_editor_state
0072-settings_button
0074-clear_pane_button
0075-clear_pane
0076-delete_pane_button
0077-example_pane
0078-Example_panes
0079-White
0080-Show_menu
0081-draw_settings_menu
0082-draw_slider
0083-slider
0084-update_sliders
0085-slider_value
0086-mouse_press_consumed_by_any_slider
0087-on_slider
0090-Background_color
0091-Foreground_color
0092-Settings_menu_area
0093-on_area
0097-Font_height
0098-on.save_settings
0099-on.load_settings
0100-car
0101-on.mouse_wheel_move
0102-send_errors_to_output
0104-call_protected
0105-clear_handlers
0106-stop_button
0108-Overflow_button
0109-overflow_button
0110-maybe_draw_overflow_button
0111-populate_missing_handlers
0112-load_example_panes
0113-Deleted_example_panes
0114-update_output_editor
0115-Title_font
0116-save_button
0117-load_button
0118-overflowable_button
0119-draw_file_dialog
0120-Show_file_dialog
0121-Directory
0122-Directory_contents
0123-refresh_directory_contents
0124-styled_button
0125-File_dialog_callback
0126-one_time_save
0127-one_time_load
0128-draw_file_dialog_input
0129-draw_cursor
0131-keychord_press_on_file_dialog
0132-text_input_on_file_dialog
0133-File_dialog_input_text
0134-reset_file_dialog_state
0138-File_dialog_input_start_suffix
0140-refresh_file_dialog_input_start
0141-File_dialog_input_draw_suffix
0142-right_justified_button
0143-File_dialog_input_right_margin
0144-filenames_from_all_panes
0145-Initial_load_filenames
0146-load_panes_from_previous_session
0147-Highlighted_button_color
0148-Active_button
0149-Border_color
0150-Button_pressed
0151-compute_scrollbar_topy
0152-Real_print
0153-Legacy_directory
0154-on.mouse_move
0155-on.touch_press
0156-on.touch_release
0157-on.touch_move
0158-Font_filename
0159-run_screen
0161-press_run_button
0162-press_stop_button
0163-press_show_button
0164-press_hide_button
0165-press_save_button
0166-press_load_button
0167-press_next_pane_button
0168-press_previous_pane_button
0169-editor_right_margin
0171-code_editor_bottom_margin
0172-Tooltip_background
0173-Tooltip_foreground
0174-Is_mobile
0175-show_tooltip
0176-on.quit explicitly state stance on autosave 2024-03-17 10:49:45 -07:00
LICENSE.txt
Manual_tests.md
MemoryReferenceInfo.lua.0
MemoryReferenceInfo.lua.unused
README.md
app.lua
button.lua
colorize.lua
conf.lua
default_map
edit.lua
file.lua
json.lua
keychord.lua
live.lua
main.lua
nativefs.lua
reference.md
search.lua
select.lua
test.lua
text.lua
text_tests
text_tests.lua
undo.lua
wav.lua

README.md

Lua Carousel

screenshot

A lightweight environment for writing small, throwaway Lua and LÖVE programs. Tested on Windows, Mac, Linux, iOS and Android. The environment itself can be modified as it runs. In early release; please report issues, particularly with usability or accessibility.

This repo is an example of a Freewheeling App, designed above all to be easy to run, easy to modify and easy to share.

Getting started

Install LÖVE. It's just a 5MB download, open-source and extremely well-behaved.

Run the app using LÖVE.

Hacking

To modify it live without restarting the app each time, download the driver app. Here's an example session using a fork of this repo:

making changes without restarting the app

(Only on non-mobile platforms for now.)

Some reference documentation on how to create your own apps.

If the app being modified by the driver lives in a .love file, your changes will go into the save directory. If it lives in a directory (like this repo), your changes will go straight into the same directory.

Keyboard shortcuts

Within the editor widget:

  • ctrl+f to find patterns within a file
  • ctrl+c to copy, ctrl+x to cut, ctrl+v to paste
  • ctrl+z to undo, ctrl+y to redo
  • ctrl+= to zoom in, ctrl+- to zoom out, ctrl+0 to reset zoom
  • alt+right/alt+left to jump to the next/previous word, respectively
  • mouse drag or shift + movement to select text, ctrl+a to select all

Exclusively tested so far with a US keyboard layout. If you use a different layout, please let me know if things worked, or if you found anything amiss: http://akkartik.name/contact

Known issues

  • No support yet for Unicode graphemes spanning multiple codepoints.

  • No support yet for right-to-left languages.

  • Undo/redo may be sluggish in editor windows containing large files. Large files may grow sluggish in other ways.

  • If you kill the process, say by force-quitting because things things get sluggish, you can lose data.

  • Can't scroll while selecting text with mouse.

  • Some colors can't be customized yet.

Contributors

Many thanks to Mike Stein for code, feedback and suggestions.

Mirrors and Forks

This repo is a fork of lines.love, an editor for plain text where you can also seamlessly insert line drawings. Its immediate upstream is the template repo for freewheeling apps. Updates to it can be downloaded from the following mirrors:

Further forks are encouraged. If you show me your fork, I'll link to it here.

Feedback

Most appreciated.