2024 年 3 月 14 日发布 Picotron,作者在其后数天尽情探索,3 月 20 日写博客介绍在其中制作的程序,包括 DVD 屏保、cli 工具、Wordle 克隆、基本 Mastodon 客户端、pipes 屏保等,此篇博客将展示过去一年在 Picotron 制作的软件,包括未完全发布的。
Projects and Cartridges:
- Picotron Utilities:最早开始制作的项目之一,一年来有改进,新增三个工具(echo、fd、stat),多数命令有彩色输出,使 Picotron 终端使用更便捷,如 touch 创建文件、grep 搜索项目、fd 搜索文件名、tree 查看文件夹概览。
- Fuzzy Finder:类似 fzf 的模糊查找工具,可快速搜索并打开文件。
- Picotron Remote Terminal:尝试从主机远程控制 Picotron 以方便外部编辑,曾尝试使用命名管道但失败,现通过轮询 Web 服务器接收命令执行,之后可能会在支持 TCP/websockets 时重新改造。
- Picotron Definitions:为使 Picotron 项目能使用语言服务器而编写的 LuaLS 定义文件集。
- 8Ball and Snowglobe:Magic 8 Ball 是检测窗口移动的小演示,受 Clairvoyant 启发,摇晃窗口可获取答案;Snowglobe 类似,摇晃窗口会下雪。
- PUSH:作者最喜欢的作品之一,将 Shell 从 Bash 切换为 Fish,为在 Picotron 中包含 Fish 的快捷方式,修改 terminal.lua 加入 modloader 实现,README 中有很多 PUSH 能做的示例。
- Pico 1K Jam 2024 - Balloon Run:在 Pico 1K Jam 2024 中制作的游戏,在 1024 字节内制作了类似 Balloon Fight 的游戏。
- Advent of Code 2024:第二年参加 Advent of Code,选择在 Picotron 中进行,因前一年看到 Pico8 的可视化效果,想尝试制作带可视化的解决方案,虽未发布为 cart,但可从源码运行。
- Trash Manager:实现 Picotron 中的回收站,遵循 XDG Trash Spec,可通过 CLI、GUI、工具托盘指示器等多种方式使用,还可集成到 Filenav.p64 中。
- extload 和 extrunner:用于处理外部编辑器的方案,通过修改 load.lua 加载外部文件夹,使用 extrunner 切换目录并包含代码,无需在主机上进行特殊设置。
- Bouncy Ball:桌面玩具,可在桌面扔动弹球,有基本物理模拟和窗口碰撞处理,原计划作为工具托盘玩具,后改为桌面版,修复了弹球被夹在地面时的振动问题。
- Calendar and Clock Widgets:制作的两个工具托盘小部件,替换了默认的时钟部件为模拟时钟,还包括颜色参考、控制参考、Pomodoro 计时器、日历、垃圾桶、猫头鹰和记事本等。
Libraries and Cool Tricks:
- Startup Folder:许多程序通过将配置文件拆分到不同文件来简化配置,作者设置启动脚本从 /appdata/system/startup/ 文件夹加载文件,便于管理启动文件,目前有四个主要启动文件。
- Easy to Access Logs:使用 printh() 可打印到 stdout 用于制作日志或调试程序,但通常无法访问,作者通过 picotron-logging 脚本将输出保存到 /tmp/picotron.log 文件,可通过 tail -f 查看。
- INI Parser:将 INI(-ish)文件加载到 lua 对象的函数,可添加注释,比 POD 或 JSON 更适合配置文件。
- Inline Image Editor:创建 one-off 字符的工具,Pico-8 支持相同格式的 one-off 字符,但 Picotron 没有,作者制作了此工具。
Work in Progress:
- Archive Utility:可提取.tar、.gz 和.tar.gz 文件的工具,使用 LibDeflate 解压 gz 档案,还使用 CRC32 工具验证 gz 校验和,目前默认行为是提取到文件夹,不确定是否要在 Picotron 中创建归档。
- Cointris:正在制作 Super Mario Party Jamboree 中的 Coin Conveyor 克隆游戏“Cointris”,已完成输送带、游戏场地和完成行的功能,还需添加得分和抛光。
- Pac-Man Thing:开始制作类似 Pac-Man 的东西,探索无需不同方向精灵即可旋转精灵的方法,制作了小演示,此演示可作为台球或高尔夫游戏的基础。
- LulPeg:将 LPeg 移植到 Picotron 的纯 lua 库,可用于创建更复杂的解析器,但作者目前没有具体使用计划,主要是想验证其可行性。
- Weather:制作时钟和日历部件时想制作天气部件,找到 Open-Meteo 提供的天气 API,但 Picotron 存在获取长 URL 导致崩溃的 bug,暂不处理。
此外,文中还包含多个项目的相关链接和一些注释说明,如 Picotron Utilities 的GitHub 链接、BBS 链接等,以及一些注释说明如初始提交时间↩︎、关于 Picotron 中 Y 轴方向的说明↩︎、关于 LibDeflate 支持的文件格式说明↩︎、关于 Picotron 写文件时的元数据注释说明↩︎。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。