HOTDOG
概述
HOTDOG的设计目标包括:
- 基于复古计算机系统的图形用户界面,包括Hot Dog Stand(Windows 3.1)、Amiga Workbench、Atari ST GEM、Mac Classic和Aqua
- 自定义轻量级Objective-C基础
- 位图图形,低DPI显示
- 有意不支持Unicode
HOTDOG在GCC Objective-C运行时之上使用自定义轻量级Objective-C基础。其Objective-C风格与苹果使用的完全不同,基本上一切都是id。
另外,也可以使用GNUstep Objective-C运行时的较旧版本,该版本使用旧的对象结构布局(位于external/libobjc2中)。这需要使用clang编译所有内容,并允许使用Objective-C 2.0特性,如NSFastEnumeration和NSArray/NSDictionary字面量,以及块和libdispatch(需要适当的库)。但是,GCC运行时性能更好,因此它是默认选项。
HOTDOG有意不支持Unicode。
由于图形是位图的且大小固定,因此更适合低DPI显示。
HOTDOG不使用自动引用计数。它在编译期间会导致类型检查问题(太严格)。
HOTDOG是一个缩写,代表Horrible Obsolete Typeface and Dreadful Onscreen Graphics(可怕的过时字体和糟糕的屏幕图形)。
如何编译和运行
$ sh makeUtils.sh
$ perl build.pl
运行窗口管理器:
$ ./hotdog runWindowManager
运行iPod风格界面:
$ ./hotdog
注意事项
Aqua模式使用'compton'实现窗口阴影效果,使用'feh'设置壁纸。
一些Perl脚本使用JSON模块。
截图
WinMac 1280x1024
WinMac是Windows 3.1窗口边框和字体、经典Mac菜单栏以及Zero Wing(All your base are belong to us)中CATS特色对话框的组合。
Hot Dog Stand 1280x1024
Atari ST GEM 1280x1024
Amiga截图 1280x1024
Mac Classic 1280x1024
Mac Color 1280x1024
Mac Platinum 1280x1024
Aqua 1280x1024
iOS 4/5/6
这是一个尝试重现iOS 4/5/6的项目,采用简化的图形,适合8位或16位时代。
主屏幕
这是主屏幕的初步版本,使用Windows 3图标。
音乐
一个仿旧版iOS风格的音乐浏览器。
根据当前目录中的文件显示列表,使用以下脚本的输出:
- hotdog-music-listAlbumsForArtist:.py
- hotdog-music-listArtists.py
- hotdog-music-listSongsForArtist:.py
- hotdog-music-listTracksForAlbum:.py
这些脚本可以根据需要修改。
目前需要Python模块mutagen和pillow。
显示专辑:
$ hotdog show AlbumListNavigation
点击专辑列出曲目:
显示歌曲:
$ hotdog show SongListNavigation
显示艺术家:
$ hotdog show ArtistListNavigation
联系人
一个仿旧版iOS风格的vcf/vcard浏览器。
根据当前目录中的文件显示列表,使用以下脚本的输出:
- hotdog-contacts-list.py
- hotdog-contacts-printFile:.py
这些脚本可以根据需要修改。
目前需要Python模块vobject和pillow。
显示列表:
$ hotdog show ContactListNavigation
点击一行显示详细信息:
日历
使用'cal'命令的输出显示实际日历。
脚本'hotdog-calendar-listEvents.py'读取当前目录中的.ics文件并列出事件日期,这些日期会以黄色高亮显示。
这些脚本可以根据需要修改。
目前需要Python模块vobject。
显示年历:
$ hotdog show CalendarInterface
锁屏
$ hotdog show LockScreen
法律声明
版权所有 (c) 2020 Arthur Choung。保留所有权利。
电子邮件:arthur -at- fmamp.com
根据GNU通用公共许可证第3版发布。
有关许可证的详细信息,请参阅LICENSE文件。