X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'none'
Content-Type: text/plain; charset=UTF-8
Content-Length: 501
Content-Disposition: inline; filename="fbclock.1"
Last-Modified: Mon, 03 Aug 2026 01:44:18 GMT
Expires: Thu, 31 Jul 2036 01:44:18 GMT
ETag: "3195eb4286a34e4118348b515cbd790579cc7930"

.Dd September 7, 2018
.Dt FBCLOCK 1
.Os
.
.Sh NAME
.Nm fbclock
.Nd framebuffer clock
.
.Sh SYNOPSIS
.Nm
.
.Sh DESCRIPTION
.Nm
displays a clock
in the top-right corner
of the Linux framebuffer.
.
.Sh ENVIRONMENT
.Bl -tag
.It Ev FONT
Path to gzipped PSF file.
.
.It Ev FRAMEBUFFER
The framebuffer device path.
.El
.
.Sh FILES
.Bl -tag
.It Pa /dev/fb0
The default framebuffer device path.
.It Pa /usr/share/kbd/consolefonts/Lat2-Terminus16.psfu.gz
The default font path.
.El
.
.Sh SEE ALSO
.Xr setfont 8
ame='showmsg' value='1'/><select name='h' onchange='this.form.submit();'>
<option value='43baf3a45f5f569b741ea52ef2e629db334c281d'>this commit</option>
<optgroup label='branches'><option value='master' selected='selected'>master</option>
</optgroup></select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>dontfiles
</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/src/'>summary</a> <a href='/src/refs/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3'>refs</a> <a class='active' href='/src/log/?showmsg=1'>log</a> <a href='/src/tree/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3'>tree</a> <a href='/src/commit/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3'>commit</a> <a href='/src/diff/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3'>diff</a></td><td class='form'><form class='right' method='get' action='/src/log/'>
<input type='hidden' name='id' value='959054e3d0d83e6fa524829c16055e5b27fcd1c3'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/src/log/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3&amp;ofs=1150'>Collapse</a>)</th><th class='left'>Author</th><th class='left'>Age</th></tr>
<tr class='nohover'><td class='commitgraph'>...</td><td colspan='4' /></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=3d5bb56a28f0c54c372d31a9a1c5b9f1f8ee780d'>Add gfxx to README</a></td><td>June McEnroe</td><td><span title='2018-02-28 00:42:04 -0500'>2018-02-28</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=f8da8964643fc5c891e08b2db69c5ba86f449e58'>Clean up gfxx and add default palette</a></td><td>June McEnroe</td><td><span title='2018-02-28 00:19:42 -0500'>2018-02-28</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
The palette was generated in Rust:

    extern crate hsl;
    fn main() {
        for i in 0..256 {
            let h = i as f64 * 360.0 / 256.0;
            let hsl = hsl::HSL { h, s: 1.0, l: 0.5 };
            let (r, g, b) = hsl.to_rgb();
            println!("0x{:02X}{:02X}{:02X},", r, g, b);
        }
    }


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=130152d94496a614bf7c453669243ddb5a99c4b7'>Print message in gfx/none</a></td><td>June McEnroe</td><td><span title='2018-02-27 17:51:25 -0500'>2018-02-27</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=e58ad6ede68c2c73b15216ec6aabefc395593bb7'>Check revents with &amp;</a></td><td>June McEnroe</td><td><span title='2018-02-27 16:11:28 -0500'>2018-02-27</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=277906f45fd5831ebd1692c9bc6697e6c4d0394b'>Remove jrp</a></td><td>June McEnroe</td><td><span title='2018-02-25 12:53:50 -0500'>2018-02-25</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
It was fun.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d3499dd9c529c9bc643f46ac44ebba690089c9c9'>Tweak watch exit codes</a></td><td>June McEnroe</td><td><span title='2018-02-25 12:50:20 -0500'>2018-02-25</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=517a393bf8560cc3b198ed1fb5ebf2da3768d774'>Clean up klon</a></td><td>June McEnroe</td><td><span title='2018-02-25 00:13:49 -0500'>2018-02-25</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=b936c73adcd312cbe234c353e935d1298f79db15'>Replace cmcenroe.me with causal.agency</a></td><td>June McEnroe</td><td><span title='2018-02-24 23:40:31 -0500'>2018-02-24</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d1dc82b4c29c4969393b8c4027b29ca9cc2249df'>Clean up xx</a></td><td>June McEnroe</td><td><span title='2018-02-23 18:06:02 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
There are probably like 12 commits with this title.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=7ca9ce9defde19d4cc77709d4545680d13366908'>Clean up wake</a></td><td>June McEnroe</td><td><span title='2018-02-23 17:51:22 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=bb7198a777ed79000c71ae539582c097bb253750'>Avoid unnecessary FDs in errors</a></td><td>June McEnroe</td><td><span title='2018-02-23 17:47:47 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=073941edf75404936e2df414ab7256b2f97ff068'>Clean up pbd</a></td><td>June McEnroe</td><td><span title='2018-02-23 17:46:13 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Seems probably a good idea to CLOEXEC sockets.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=de6746127b335345e0a1c89cdd330e8968182218'>Clean up fbclock</a></td><td>June McEnroe</td><td><span title='2018-02-23 16:15:54 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
You can't use the return value of gzerror to check if an error occurred
or not. Its implementation actually checks if the internal error is NULL
and returns the empty string if it is! This is stupid and unhelpful, so
check gzeof first since its return value actually means something.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d0111e9a6bc30cd798baa1ea137697f44b03f6b1'>Don't bother checking result of close(2) in dtch</a></td><td>June McEnroe</td><td><span title='2018-02-23 16:15:12 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=671a80136c2ea81681c1f323b2faa640c1b2505c'>Tweak fbatt exit codes</a></td><td>June McEnroe</td><td><span title='2018-02-23 15:28:27 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=e1f47dc538488ed6054f6154631015cd4a85c8d1'>Clean up dtch (again, probably)</a></td><td>June McEnroe</td><td><span title='2018-02-23 13:52:25 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Mostly changes to exit codes and renaming len to size. Also no more
writeAll.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=6553360469bb3a9d4dc2d07de91573bbcf5a8785'>Return NOINPUT on execvp failure</a></td><td>June McEnroe</td><td><span title='2018-02-23 13:48:33 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=87e1ca14532fd3abd967b553190af1f68cda612a'>Return EX_OSFILE in bri</a></td><td>June McEnroe</td><td><span title='2018-02-23 13:47:51 -0500'>2018-02-23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=3857789faaa647b8497e91fc3417ca6be0bee0ad'>Rewrite bri</a></td><td>June McEnroe</td><td><span title='2018-02-22 23:41:15 -0500'>2018-02-22</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d4ecec0f619f8a24e3a776c1e5a9e1090f529c39'>Exit cleanly from hnel on Linux</a></td><td>June McEnroe</td><td><span title='2018-02-22 23:13:27 -0500'>2018-02-22</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Okay the change that actually does that is checking revents == POLLIN.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=9f120328da597207fb7d45f7383ada05ea807c7d'>Abort on other values of enums in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-22 22:52:58 -0500'>2018-02-22</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=2ee1c3bcb1ce71e2d15290e405652796698dd91e'>Fix zlib types on 32-bit</a></td><td>June McEnroe</td><td><span title='2018-02-22 22:44:02 -0500'>2018-02-22</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=ed379819489db2b257d51f024c0518fb5beb804c'>Git config merge.conflictStyle diff3</a></td><td>June McEnroe</td><td><span title='2018-02-21 19:27:33 -0500'>2018-02-21</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
This is probably a good idea, though I haven't run into a merge conflict
yet.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=0d55ef88837334cce6606d105e72fca7c33090fa'>Switch to and vendor Go Mono font</a></td><td>June McEnroe</td><td><span title='2018-02-21 19:22:10 -0500'>2018-02-21</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Go Mono is almost identical to Luxi Mono (same designers) but
MIT-licensed.

From https://go.googlesource.com/image font/gofont/ttfs.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d8c264de6b799f856476546382570d27e1ac886b'>Add unistd.h include to pngo.c</a></td><td>June McEnroe</td><td><span title='2018-02-20 22:03:17 -0500'>2018-02-20</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Where getopt properly lives.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=9749191d0625d1239c672ed6a583dd187002c8b0'>Take multiple inputs to pngo</a></td><td>June McEnroe</td><td><span title='2018-02-20 18:30:34 -0500'>2018-02-20</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=c23863782d4bae4d0fb925f7e658cd28fbac9b25'>Reduce bit depth in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-20 18:00:50 -0500'>2018-02-20</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=a85157254bb42b4a1423d18d0509d763e3ee0cb4'>Always use None filter for indexed or bit depth &lt; 8</a></td><td>June McEnroe</td><td><span title='2018-02-20 11:34:02 -0500'>2018-02-20</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=567498ffa39760b28e860346259ff464e00ca8d8'>Add pngo command line options</a></td><td>June McEnroe</td><td><span title='2018-02-19 17:47:25 -0500'>2018-02-19</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=8a72ecff1b7a09d961052c6253523ef71d9a081b'>Clean up pngo optimization functions</a></td><td>June McEnroe</td><td><span title='2018-02-19 16:08:27 -0500'>2018-02-19</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d5e73418730311200648f1a2a7d99b000a799967'>Index color if possible in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-19 01:01:35 -0500'>2018-02-19</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=6f16be6fc016f721bceaf5f37c32f0ba8845039b'>Read and write palette in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-19 00:06:56 -0500'>2018-02-19</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=5a5959a2b00c19ef43d7b992e5c81f6566e67f7f'>Add pngo to README</a></td><td>June McEnroe</td><td><span title='2018-02-18 12:43:10 -0500'>2018-02-18</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d6a37626cc1b309201eaedb84b40dccec3794e5c'>Always dump truecolor PNG in gfxx</a></td><td>June McEnroe</td><td><span title='2018-02-18 12:30:40 -0500'>2018-02-18</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
pngo can handle reducing it to grayscale.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=9301ec21272bb9d3b087c16791486eab5fa1eebf'>Eliminate redundant color in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-18 12:29:36 -0500'>2018-02-18</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=a4c349d0e060b4968d7b703359e909738ad8a504'>Just globalize all the things in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-18 11:26:28 -0500'>2018-02-18</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=9642db5668aea198a3b1066263e1211fc1800ea4'>Tweak pngo code</a></td><td>June McEnroe</td><td><span title='2018-02-17 22:54:45 -0500'>2018-02-17</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=df69fad3193f3ca7063ccaf0d26b57634ef4b7ab'>Eliminate redundant alpha in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-17 16:29:26 -0500'>2018-02-17</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=d31fd611a391d7aa2445bf263b0c8f30ebac4d38'>Support all bit depths in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-17 12:58:35 -0500'>2018-02-17</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=021c78cccbeb286150bdc91dd1b7c4bd1aa727e2'>Implement filter heuristic from PNG spec</a></td><td>June McEnroe</td><td><span title='2018-02-17 12:05:38 -0500'>2018-02-17</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=5e4b4eb646cbe1ae5a642ca8bb609c8be5a70adf'>Fix pngo glitch</a></td><td>June McEnroe</td><td><span title='2018-02-16 20:20:57 -0500'>2018-02-16</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Basically changing the filter type without actually recalculating the
bytes results in some interesting stuff.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=a2398672619d36626ce06c17fa02bd3721a47f6a'>Refactor scanlines and filter bytes, more glitch</a></td><td>June McEnroe</td><td><span title='2018-02-16 20:07:22 -0500'>2018-02-16</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=6623a97decd7c690271cb5370ae263a782f882cb'>Fix paethPredictor comparison</a></td><td>June McEnroe</td><td><span title='2018-02-16 17:14:56 -0500'>2018-02-16</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=90051708be39ba8173cba9ddbcbb21d6fc37fe37'>Handle more color types, depths, IDATs in pngo</a></td><td>June McEnroe</td><td><span title='2018-02-16 13:36:01 -0500'>2018-02-16</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> 
<span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
Also fixed reconData so that it can at least round-trip the glitches it
creates.


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=7803af2414b35a5f0b3edbcc9e000bf1a813da40'>Add WIP pngo which produces glitch art</a></td><td>June McEnroe</td><td><span title='2018-02-15 21:43:04 -0500'>2018-02-15</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=3ad29de9fe35e8b4ee22f0a3c329bdec295aea7a'>Encode grayscale PNGs in gfxx</a></td><td>June McEnroe</td><td><span title='2018-02-14 22:47:46 -0500'>2018-02-14</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=3397b6f86d7d3563a8f6ea43ae395bc3a7acb609'>Avoid accessing past last byte in gfxx</a></td><td>June McEnroe</td><td><span title='2018-02-14 22:01:48 -0500'>2018-02-14</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=8f1832ee3bce790273029074c30815452a9f47f1'>Print PNG path on gfxx dump</a></td><td>June McEnroe</td><td><span title='2018-02-14 20:46:16 -0500'>2018-02-14</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=2ac7127c45e4d2026a3288914d1288bd34d5a22b'>Add gfxx 4444 preset</a></td><td>June McEnroe</td><td><span title='2018-02-14 20:40:27 -0500'>2018-02-14</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/src/commit/?id=eca2ec2a63f6d9efe86b1192d1fb0e909aa49d1e'>Fix gfxx row scrolling for BITS_TOTAL &lt; 8</a></td><td>June McEnroe</td><td><span title='2018-02-14 17:12:39 -0500'>2018-02-14</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column5'>|</span> </td>
<td colspan='3' class='logmsg'>
</td></tr>
</table><ul class='pager'><li><a href='/src/log/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3&amp;ofs=1100&amp;showmsg=1'>[prev]</a></li><li><a href='/src/log/?id=959054e3d0d83e6fa524829c16055e5b27fcd1c3&amp;ofs=1200&amp;showmsg=1'>[next]</a></li></ul></div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.causal.agency/cgit-pink/about/'>cgit-pink 1.4.1</a> (<a href='https://git-scm.com/'>git 2.36.1</a>) at 2026-08-03 01:44:18 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>
