DMCRN3CEDMPBFFQA37BSGYQCUVLFDETXSS3NFJ3U4K6XSFPPDC2AC WAQFRM2UWDNWO3QZB2KXBEMFUSLMDMDDJ6GAYCYEOXVZ6UG7QIQAC M3F33OYQJ6NDWXXLMQ7P3ZS6F3YCHGWY433G3DDDE3FPCOOKWYYQC PHN2H24FBVZGS3EARPE7FCU65CUIC3GRVZA4AV6EIQJW4Q4DYSCQC WVKFFN6FAJVKUL6NGAOWSS33WFD63GPOPSLDQ7JT4WM27KV7H65QC MISEW25VIMXQ6ID37VQ365KAMPQ5O4COYWEIK6M4JXKIG7L5DVSQC R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC FS2ITYYHBLFT66YUC3ENPFYI2HOYHOVEPQIN7NQR6KF5MEK4NKZAC L2HMMGZPLQTMRPSHKIZZA77KOKKNVREUOWNSUKTIMS2GPMLJL4BAC GDBDGLRHJSMN527PHXGZVSGF55EYT4X3GFNF4LF6363JE2FGBQXQC SGZ44T7WGWSQ27MZ6CSCHTGBOLQTIECJIP6KBSTP7A55DZCUBLHAC BPYWIU627AGHPXJ7KAZEYFJMUEVTCHQ624UHTLZ4VMAVOLZM255AC PNBKVYZ4ANUAZNQN6KEWYNDF7552ROZPNAPRJE7Q6O7ZZJMJ3S3QC CZRMAMSBRVX26IXKHNPG6M3YSWMOZTM73X3XHAMBDSNETTFVRCUQC 2DVVKKVA6PJ7VKYLGPQ22AXUB6ZWFMPWB445PRDZJDNLURUFDNDQC D4FEFHQCSILZFQ5VLWNXAIRZNUMCDNGJSM4UJ6T6FDMMIWYRYILQC KQWIMWJ5VRAXM7SFNWDSBZMQ6ZE3CZQTKZHVM5ZQCW4RHPTI64MQC VY24DRY6CZGUUURGPIYSL63HYTE22D573G5UX4MN55JORJ5GNW6AC MD3W5IRAC6UQALQE4LJC52VQNDO3I3HXF3XE2XHDABXBYJBUVAXQC ZTMRQZSWUL6FJRI4C4H37MR2IMV22DB6KRGEOUNYRWW5CTAVQFKAC IDGP4BJZTKAD6ZO4RLAWYVN6IFCMIM76G6HJGPTE27K4D6CDBUHQC json = require 'json'function main(args)local infile = io.open(args[1])local manifest_s = infile:read('*a')infile:close()local manifest = json.decode(manifest_s)local core_filenames = {}for k,v in pairs(manifest) doif not starts_with(k, 'fw_') thentable.insert(core_filenames, k)endendtable.sort(core_filenames)for _,core in ipairs(core_filenames) dolocal filename = ('%04d'):format(manifest[core])..'-'..corelocal f = io.open(filename)if f thenprint(f:read('*a'))print('')endendendfunction starts_with(s, prefix)if #s < #prefix thenreturn falseendfor i=1,#prefix doif s:sub(i,i) ~= prefix:sub(i,i) thenreturn falseendendreturn trueendmain(arg)
Run this app from the terminal, [passing its directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games)You'll see a page that's currently hard-coded in the app.All text is currently editable. There's a table on the right that will growand shrink as you add and delete text.Changes you make are currently not saved. This is just a demo.
To pan, drag the surface around. To increase/decrease zoom, press `ctrl+=`,`ctrl+-` respectively. To reset zoom press `ctrl+0`.this live without restarting the app each time, install [the driverapp](https://codeberg.org/akkartik/driver.love). Here's an example sessionusing a fork of this repo:To run from the terminal, [pass this directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games).
Run this app from the terminal, [passing its directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games)
[More information about the on-disk representation of freewheeling apps.](representation.md)
* Don't give up your other tools just yet. It's easy to make a mistake thatthe app doesn't recover from when you fix it. Try restarting the app, and ifit still doesn't work, perhaps you need to fix the initial load. This isn'tyet a tool you can keep open for months on end. (And I'm ambivalent aboutmaking it such a tool since your programs might stop working for others.)
* Both freewheeling apps and the driver for them currently benefit from beinglaunched in terminal windows rather than by being clicked on in a desktopOS. See [the driver app](https://codeberg.org/akkartik/driver.love/src/branch/main/README.md)for details.
* I still see driver and the app being driven occasionally crash. When I do Itry to make things more robust. If you do you'll quite possibly crash againif you try to restart. In such a situation you'll have to bump down toediting the underlying version files by other means. See [representation.md](representation.md)for details of the underlying representation on disk.* Given the above issues, both this driver and its client freewheeling appbenefit from being launched in terminal windows rather than by being clickedon in a desktop OS.