From f007f169b7dbb87a2539c6d471b0499ac0dfebc8 Mon Sep 17 00:00:00 2001 From: "Peter D. Gray" Date: Thu, 25 Apr 2024 10:19:54 -0400 Subject: [PATCH] sharpen status-bar text --- graphics/compress.py | 3 +- graphics/graphics_q1.py | 112 +- graphics/icon-samples.png | Bin 5301 -> 1677 bytes graphics/ter-powerline-x12b.bdf | 17913 ++++++++++++++++++++++++++++++ graphics/ter-powerline-x12b.pbm | Bin 0 -> 1285 bytes graphics/ter-powerline-x12b.pil | Bin 0 -> 5143 bytes releases/ChangeLog.md | 1 + shared/lcd_display.py | 4 +- 8 files changed, 17974 insertions(+), 59 deletions(-) create mode 100644 graphics/ter-powerline-x12b.bdf create mode 100644 graphics/ter-powerline-x12b.pbm create mode 100644 graphics/ter-powerline-x12b.pil diff --git a/graphics/compress.py b/graphics/compress.py index 690e14cd..38d83c55 100755 --- a/graphics/compress.py +++ b/graphics/compress.py @@ -87,7 +87,8 @@ def make_icons(): except: raise - sm_font = ImageFont.truetype(FONT_PATH + 'iosevka-heavy.ttf') + # use a bitmap font for best readability + sm_font = ImageFont.load('ter-powerline-x12b.pil') targets = [ #( 'brand', True, 'Q', dict(col='#ffb000') ), diff --git a/graphics/graphics_q1.py b/graphics/graphics_q1.py index ba7a05dc..15206ebd 100644 --- a/graphics/graphics_q1.py +++ b/graphics/graphics_q1.py @@ -37,52 +37,52 @@ class Graphics: b'\xed\xd2!p\xa3L\x18\x06\xe0\x855\xc8\x93\x95\xc8\xfe2\xb2\x0e\x16U\x19\xd9\x93\x95\x91\x95Qt\xebz2\x12\x19\x19\x19\xd9\x8a\x02\x91\xc8\xc8Jd#\x91\xcc\xfc\xe12-\xb0\xfb-|K\x12z\x9d\xec\xee\xcc\xcd\xf4\x08/\xfb\xbd\xfb\x10R\xaf\xabp\xc5\x0bZ\x06\xd0\xce\xd39\'\xbd\xcb\xf1\x16\xf6G\n\'\xech\xc4~y\x8a\xf7\xc8\xe1\xbd-\xbb\x8b\xc9\xc05\xb1^m\xd5\xe9\x9bsp\x8e\xcb\x9b\xf3\\1IAW\xdc}\xd3;\xdd4\xde\xb22\xf8H\x17\xb6\xe3\x1d\xd7\xa3p\x8eP\x95\xf1\xcb\x8b\x90\x19Wa\xdfy\xae\xe3\xbc\'i\xc5\xfb&\xda\xd8\xdd\t[\x85\x8e\xe6{\x0fl\x98\x8c~\x17\xd89\xaa\xb5d}\xc6\xae5\x14?\xf0\xfa\xcdL\xd1Ase\x0c;\x8b\xfa\x1c\xa7\xc8\xc0\xca\xe8k\xb5_\x86J\xc74nKv<}\x1b/\t\xb6\t\x8c\x8e%;\xbeQX\x86\xaa\x83\xe6\xba\xb7tf\x81\xcfq\x8a\x0c\x1d\x19]\xad\xe2d\xc0\xcd,\x847o|}\x1b\x05\xd5\xe9\xa2[\x07F\x06^\x87(\xa3_G\xc4\xf4f\x81\xce\xb1\xc7)2te@\xad\xea\xc9\x90\x9b\xf9\x1e\x1b\xb0\x0e\x1d\x19\xfd:\x1e8\xb6\x83\xe3\xeeU>\xc7)2\xdcPW\x86\xd8\xaaCte\x1c\x9aq\xbc\xef\xb6!\xeb\xd0\x95qh\xd4}\xd3\x97\xd1\xa5c\xc8\xbd\xfe=Gx\xfe\x8c\x82\xbe?57\x942\xfd\xba\xbf9x\x8avBA\xe5_<\'g\xb4!L\xd01G\\g\xdc>\x0e\x9bd\x9d\x0c\x91\xa1\xd6!\xdeI\x9e\xca\xb3@\xe7hJ?E\x86\xfc|G\'V\xff\x94\x11\xfb|\xba\xb1\xe5\xa7wq;\xe1\xf6Q\xfe\xce\x96\x9d\xcf\xc6\xfb\x13\xf6\xb6\x96\xac~\xbe\x00&\xe1\xc2\xbd_\xc7y*\xfd\x8a\x0e\x93\xa1\xd2!\xde\xeb\x8d/\xe7C\xe7(\xa8^\xc6\xc4\xda\xd1\xae\x8c~\x19\xf0\xa4u\xa7\x19\xeb\x93\x01\xeb\xa8\xefo,\x1b\xd0\x1c+^?\x8dX\x9f\x0c\xd5\xad8(\x19\x1b\xbb\xa0\x18\x1d\x98{\x85\xcfQ\'\xe12 \x1d\xaaN\x0bP\x064\xed\xbd\xa5\xb2\x01\xc98\xe8\xf8~\x1b\x84\xcc9\xde\xc6s\x02g\x88\xb7\x921\x8c\x8c\xeaK\xb7\x8f\x18\x1d\xb8{\xad\xce!\xa6\xe9\xda\xa8t\x88\x19\xfa\x9d\xb6\'\xce\x98CT6\xdasb\xeeoL\x1b\xffYx\x1b\xaa>E\x1d\xed\xdf\xcd\x952\xaa\x85\xd1\x81\xbdWB\xde\x9f\x8e\xb5!g\x0c\xb1A\xc8]\xbc\xdd\xe7\x144jMr\x896\x08q\xc3\x15\xafnyc\xb7\x7f5\xb1\xbad\xa8uD\xecg\xdb\xa8\x96#\xfd\xcfe\xdaP\xad?v\xb7\x0c\x95\x8e\x82\xfe|\x1b\xc4\xd8\xe8\\b\x86,C\xa5\xe3\x14\xf7jl\xfc$\x1b;\xfa\xc0f\xc0^\'\xc6\xc6\xa5\xdb\xc0oc\xc3\xd806\x8c\x8d\xf3\xdb\xe0\xc99|\x19\x1b?\xdf\x86,\xa3\x0c\x1cc\xe3\xc2l\xcc\xd8\x8d/\xeeg@F\x9e\xd6\xe706.\xc3\x06v\xcf\xb9\xb1al@\xbb9\x89\xb1\xf1\x13l,\xec\x19\x83\xf7GzJ\x1bm\x19\xc6\xc6O\xb0\x81\xbf\x93cl\x882\xbe\xc7\x86cl\xfcs6d\x19\xe3\xdb\xb8\x8b\xb7\xfb\x9c\x82F\xacy\xff\x97i\xc3\rW\xbc\xa0e\xb0\xb1\xdb\xbf\x1a\xdf\x06$cl\x1b\x0f\x8d\xafe\xcc\xb9h\x1b\xd7q\x9e\xc2\xbf\x1b\xdf\xc6\xc4\x1a\xc7FA\xe1/\xb5eT\xfb\xdeR\xd9\xb8\x8b\xe1\x84\xdb\xc7\x7f\xc1\xc6\x9c\xe3m<\'\x18\x19e\x90\xb1\xf3\xdaX\'\x11;\xec\xf6w\x0f;O\xaf\xe3\xe16&VAq6\xca`\x07\xeax\x90$/\x99\xca\x06\xac\xe3\xf6Q<\xc3w\xd8\x90\xe7\xe8\xb2Q\x06<\xe9\x97Qm\xe7\xac6\xea\x0c\xe8\xdb\xb0\x0e\x9c\x8d\x89\xb5\xa3bZ\xfd\xb4\xa0\xfd:\xe4F\xcb \xfa\xb2\xb1\xb1\xe5\xa7\xa2\x0eYF\x19l\xd9\xd86\xa09j\xe3\x84,\x80ID\x1d\xe0\xedP2\x92\r\xbc\x0e\x8c\rHFA\xd5\x19\x87\xe7\xefO\xcd-\xff\xa2\x0c\xa6_\xf77\xe7\xd0\xf3v\x82,\xa3\x0c\x9e\x13U\x9fy\xda~[\xde[\x1617T\xdb()\xf4\x168G\xdc\x14q\xfb\xa3\xd5\xc6\x90\x84\xf6\x1c\xd5Z\x0e8I\x9e\xbaoc\xdaP\xebh\x9eC\xcc@\xcf\x12\xf6\x7fI\xa7Q\xc7\xd3\xd5\xb1eu\x13Cm\x94\xc1Kr\x9c\rq\x8e!:\xf2\x96\xd0ql\xa8\xee\xac9\xcf\x10\x1b\xe2,\xfa:\xa0F\xf5t\xb4e\x0c\xb7Q\x06\xce\x116\xa09tu\xc8m\x8ec\x03\xbe\xb3\x82\x1ec\x03\x92\xa1\xa7C\xd5(^\x87(\x83\x90\x85=\xd8\xc6WRAO#CG\x07\xd4\xa6hcb\xa9\xbe\x92\t\xbf\xd4\xcd\x80\xeel\x98\xf0z\x96\x19Y\xc7\x19[\xc7\xb3\x01:\xba\x1a\xc5\xe9\x90e\x102\x8d\x87\xc9\xc8X\x9d\xf1\x92\x9cJ\x06\xb6YH\x06!\xbf\xad\xe6o>R\xf57\xfe\xb4\xda\xda\xd8\xf5\x93{d\x86xg\xea\x0c\xdc,\xeb8\xb2\xdc\x90\x10\xdf[\xfa\x91\xa5\xa7\xa3\xaf\xd1~\x1d\x90\x8cjaT\xc9\xdb\xf7\xeb\x84\x89U\xd0S\xc9\xc0\xe8\x80e\x88\xb3\xdc[\xea/\\\x85u\xdf\x05\xbd\xf1\x9b\xcf2\x86\xcbh\xde\xd9>\xc3Re`f\x89\xac\xe7xF\xf2$c\x19\xab\xfe\x9a\t\xa7]qU\xc3y:G4\xeax\x0b\xfbC!lG#\x85\x8c\xfd{D\xfd\x1e\xbc7v\xbb\xcdJ\xc7\xab]\xd2\xfe\x1e8b\x8ej\xcdy\xae8QAW\xdc}\xeb\xeb`\xcb\xa6q\xf7\x17\xdcC\xdft?\x8b\x05gd\xe8\x8cW{"d\xfc\xf2"D\xa7\xd5,W\xe1\xc14!\xb3\xbd\x89J\x95\xef\xb9\xe1:&f\x99\xf5w-\xfd\xcaF\xc6"\xeb\x9d\x7fZ1\xcb\xacO\x0b3\xb2\x8e\x97~dU\x7f\xafc\xd3\x89Y\x87\xb5\x8e\xddpF"\xcb\r\xf3\xc4\r\xa7\xe1\xd27\x9d\x98uX\xd3pcO\xf7:\x08\x99\xef\xff\xcd\x98\x1b\x9aN\xcc\xaaudl\xe9G\xd6\xd2\xdf\xd8\xbeg\xfa0K\xf41#\x9f.\xfe\x07' ) - shift_0 = (25, 11, - b'\xcd\x90\xa1\x0e\xc0 \x0cD+&N"\xb1|\x02\x12I?\r\xc1\x8f!\xf6[\xcb\xe5B60\xd8AH/\xa5\x8f\xf60\xfb\xe7\xca\xdd\x91\xbbY\x1c\x0e3G\x1c\xa19\xb8CC\x95\x8a#]R\xe9b\x9d\xceK\x88f$\xc1\x17PQ\x95ST\xaf/\xc1JT\xc5\xd0t?sf\xe5\xce\x9d\x8a\x84&X\tG\xb9W\x82N\x98#A\x07;\xc1Iv\x82}V\x1f_bVM}v\xbe\x13\xe7\xdf\xdd\x89\x07' + shift_0 = (30, 13, + b'c`\x18\x8a\xc0\x89\x03\x04!,\x98\x08\xba8\x0c\xa2\xb3\x11\xeaQ\xf5b\xd2\x08\xdb0\xc5I\xd5\x8b\xcbm\xa8z\x91E\xb1\x9bE\xba\xbd\x94\xfb\x97<{\x89\x89#\xfcn\xa67\x00\x00' ) - shift_1 = (25, 11, - b'\xcd\xd0\xa1\x0e\x830\x10\x06\xe0\x13\x15\'\x10\x95\x88\x99\xcaI$\xb2$\x13[\xc2\x03\x8cd\n\x89\xec\x1b4\x04\xc9#\xf0&\xa8% Hf\x11$TNN"\xbb\\\x9a\xa5\x83\x05\xbf\xd64\xd7\xff\xcb\xf5\n\xf0\x8f\x0be;Z\xd3\x8e(U\xbd4\x00K\xa3\xea\x04\xad\xa1\x9d\xe0\xf1\xe4N\xaa.\xb9;\x95<\x1b\xac\xc9\x03k\xb2\xc1\x0b\xae\x8b\xd4\x9a"\xe5\x9aD\x91^\xce\x82\t\xe6j\x82\x91\xe0\x1a%\x00\t\x94$\x00\xa2\xca\x9a\xa8\x02 \x11\xf7t\xebk(\xe7\xe9q\x15\x8c\xc4\xe7\x05ka\xcd<}\x0b\x80\xf0\xde\x8e\xcf\x03\xd7\xd4#\xee\x7f{\xe4\x81\xcby\x81\x12\xe5\xeb\xa6j?\xc7Z\xb8\x94\xafQ.\x1b(\xb77\xf9Vp\xdd\x85\xd6t\xe1\xfe\xefn\xc5\x1b' + shift_1 = (30, 13, + b'c`\x18\x8a\xe0\xff}\x10\x84\xb0`"\xe8\xe20\x88\xceF\xa8G\xd5\x8bI#l\xc3\x14\'U/.\xb7\xa1\xeaE\x16\xc5n\x16\xe9\xf6R\xee_\xf2\xec%&\x8e\xf0\xbb\x99\xde\x00\x00' ) - symbol_0 = (15, 11, - b'\xb5\x8f\xa1\x0e\xc0 \x0cDO *\x91X$\x12\x89\xa4\t?\x86\xe0\xc7&\xf8\xad\xe5r!\x9b\x98\x1d\x84\n^\xefz\x05\xfe;u\xb9\xd5\x05\xe4\xd06\xd0v\x0ee\x94\x01\xb0\xa6\xcbM\xcf\xba[\x9cn\xd6\xcbP\x9f\xe8qi\x9b\x97*\xf5\xd1\xa1\xed\xba\xac\x93\xe6\xe0\x96\x03)\xff\xa8\xd5d*\x00\xf6\xc7I\xaa,\xa2\xd4\xa7\x0b\xe0d\xba0\x8f\xb2=\xa9\xde\x94;H{6\xfa\xa27' + symbol_0 = (18, 13, + b"c`\xa0'p\xe2\x00A\x08\x0b&B,\x1b\x99D5\x13&\x02c\xc1x0\xbbp\xabA\xc8\xe2\xa3\t\xa9!\xa4\x1f\xd3=\xf8\xed\xa2\x14\x00\x00" ) - symbol_1 = (15, 11, - b'\xb5\xce\xa1\x0e\x830\x10\x06\xe0\x13\x13\x15\x13\x15\x15\x08\xcc\x1e\x01\x89\xec\xdc\xe6*\x10#\x99\xda#\xf0\x06dA5H\xe4\\%\x12\x89Z\x02\x82d\x16\xd1\xa4\'\x91\x93\xc8[.\xa8ezw\xf2\xbb\xfc\xf7\x03\xfck\x84\xeeg\xc2~\x16\xda\x9a\xe0\x01\x96\xd8\x1a\xa7\xda\x0c\xa0\xcd\x9c\xca\'\xc2\xdb\x9e0\x9f\x92\x8a\xf0|"L*\xa7\x96\x98\xef6\x95\xa5\xd0\x9c\x13\xf2i}|k\xd7\x00t\x8dS\xb2\xdcR\xb8\xd7\xaf~\x00' + symbol_1 = (18, 13, + b"c`\xa0'\xf8\x7f\x1f\x04!,\x98\x08\xb1ld\x12\xd5L\x98\x08\x8c\x05\xe3\xc1\xec\xc2\xad\x06!\x8b\x8f&\xa4\x86\x90~L\xf7\xe0\xb7\x8bR\x00\x00" ) - caps_0 = (20, 11, - b'\xc5\x90!\x0e\x00!\x0c\x04+\x10\x95H,\xf2$\x12I\x13>\x86\xe0c\x08\xbeu\xd9l\x9a\xde\x0f\xae$\x84v\x87nA\xe4\xafh\xdb\xb4m\x9c\xca1-G$/S\xaf\xb9J\xcd4/\x91\x9aLk"\xc7\xba\xab\xe5\xd4\xd4\xaf\x88\x0e\xde\xc5"\x87\xac&0t%\xc7\xe8\x97\x198\x1d\xc8Pk\x1b]\xbe\x1c\xdcq\x9f\xf3\xf5\xeb. \xc2\x97*X\x9c0o\xf8\xc4\xa4y\x95\xd3o^\xa8\xb1k\xfc\x00\x7f\xc1_\xfeL\xecm?3\xb8P_' + caps_0 = (24, 13, + b'c`\x18l\xc0\x89\x03\x04\xd1\xd9\x10\x166q\x98\x08ilb\xf4"\xab\xc1\xa7\x1e\x9b{\x90\xdd\x0cQ\x8f\xec~\xe2\xdd\x83K=\xb1\xfe"\x14V\x98aN[\x00\x00' ) - caps_1 = (20, 11, - b'\xc5\x90\xa1j\xc4@\x10\x86G\x9cXqb\xe5\x8a\x98\x93}\x84\xc8-T\xb4\x10\x91\xba\x04V\x9d\x8c\xcc\x1b,\xa7J\x88\x08\xa1\xf2\xde\xa2rU!\x11\x81\xd8\x15\x0772r\xe5\xc9)\xc3P\xd27\xe8\xa8\x85\xef[\xfe\xf9\x07\xe0\x7fF\xd9\x10\t\xbf>\x95\x058\x1f\t\xcfG\x80\xb7WB\xc2\x10\x95\x15\xca\xaf\xa6`FX/\x00]I\xd8\x95\xe2\xd5\xcb\xe3\xda\xf6\xf5\xf2K/\xfa~\x03xz\xd1\x1e \xc4\xb5\nQ<\xed\xd7j\x1c\xd8\xd3\x9e\xb3\xc4\x93\xd9\xb2\xae\xdc2\xf1N\x87\xe4.Z\xd9\xfbm\xadN\x87\xbf\x9e\xf6\x84\xef\x1f\xfc_\xf6K\x8e\xb9\xf9\x0eq\xcb\xb4\xdfs\xf3\x99)a>\xb3\xf7\xac8\x8d{*\x9b\\\xdb\xef=\x9a"\xb9|N\xae)d?\xb6\xda\xfeq\x95F\xfb]\xc6a2\x00\x93\x19\x87\xdd\xd3~2\x84\x93Q\xf6\x07' + caps_1 = (24, 13, + b'c`\x18l\xe0\xff}\x10DgCX\xd8\xc4a"\xa4\xb1\x89\xd1\x8b\xac\x06\x9fzl\xeeAv3D=\xb2\xfb\x89w\x0f.\xf5\xc4\xfa\x8bPXa\x869m\x01\x00' ) - bip39_0 = (50, 11, - b'\xedR\xb1\x0e\x85 \x0cd`\xe8\xc8\xe8\xea\xe8\xc8\xc8\x08\x89?\xc6\xc0\x8f9\xf0[\xe6ri\x8a/5\xf1\x03\x1eFs\xb6w\xb4\xf4\x08\xe1\xbf\xbe\xae\xd4\x9b4\xc9\x03x\xbb\x9al\x17P\x1e\x1aSd<\xb0B\x00\x13\xe8]\xcb,\xa2\xd0j~\x8fM\xf6\xa8|\xdd\x85\xaf\xf1\x9e5\x18\x7f\xd3\xa6\x9e\xbaTpP\x1b\xf9<\xf0h\xa7\xda\x9d\x9d\x97\xbcg\x8d\x10\xca\xfc\xa2\x95J\x1e\xbee"Zf\x1eRWd<\x9b\x81U\xf3\xb4\xe4!\xc69\x97\x89(O\xce\xdayP\xa1\xc8x6!\xdb\xc5\xd3\x92\xa7\xfd\xa5n\xee\xeb\x1f\xfa\xa1\x87D\xc6{\xce\xaa\xcc\xe3\xf4\xb5\xbfs\xa6\xb6\xcc\xd45\xeby\xbe\xcey\xcd\xbekW\xcf\xb1\x8e\x13\x9e\xe5\x81\xbe\xfc\xbb\xeb\xd5\x00\xda\xa3\xa75\xdfn' + bip39_0 = (60, 13, + b"c`\x18\x05\xf4\x00N\x1c\x10\x88\xcc\xc3\xc7FV\x8f\x90%\xce\x1c\x98\x1a\x88zd\xbd\xf4ac\xba\x19\xbf\x1ab\xd4Sj\x0e\xee\xb0\xc2\x0c[|\xf6\xe2\x8e#\xec\xe1\x8f\xcb\x8d\xc4\xc4/.s\x88\xf1;n{q\x87\x15\xba~r\xec%/m`\x0b\x07R\xfd\x8b?~\x89u'\xb6\xf8E6c\xa4\x00\x00" ) - bip39_1 = (50, 11, - b'\xedR\xabr\xc30\x10<((\x18\xeaO(\x14\xbb)\x0c,4\r44,9P\x18\x98_\xe8gx\xe6\x90a`\xa1\xa9\xa1\xa1\xa1sk%svGi\xfb\x01\x95f\xec\x9d\xd3\xae\xf6\x1e"\xfa_\x7f]G^t\xd1N\x03\x13\x9dh\xd1\x93\xc5\x02w\xf7\x98#\xe7\xb52\x0b\xd1,\xad\xed\x9f\xb4\xb5.\xebn\x05\xdaZ\xa1 :\x1b>\x1b\x1f\xa7\xd0\xd4\xea\xc8y[\x8fY\xde\x04\xf1g\xda\xa3\xe5V\xaduD\xb9\xf2\xc5t\x9d^-\x8b\xcc\x8b\x12x\x8b\x9c\x87\x9b\x03\xbb\xdb\xa0\x1f\xf4\xbb\xb6\xa2\x89\xc1\x1b-\x9bq\xadw0E\xb5C\xce\xcb\x1dB\x0f\xe0q\xb0\xda\x1a.is\xaf\x06}\xccc\xb2h4-*\x8f\x96\xdb\xc1::\xd2\x169\x0f7\'\xf5y\xe0\xb4\xa4\x85G\xd2\x17\xc9\x1e\xaf\x84\x8a\xd2}FI\x91M\xe0\x891\xa3\x07r\xde~\x1e_\xf2Ie-<\xfc]\xc1\x9d\xa8\xb1\x93d\x996\xeb\xcb\xf1\xf9f\xe4\xbc\xbd\x07\xe6\x1b\xa5\xa4\xfd>sh/\xd2\xdb\xb7\xb7\x7f4\xb4ho\x199z\xe6\x81\x9c\xdf\xb5\xa4\xf5\xb7{\x03' + bip39_1 = (60, 13, + b'c`\x18\x05\xf4\x00\xff\x0f@ 2\x0f\x1f\x1bY=B\x968s`j \xea\x91\xf5\xd2\x87\x8d\xe9f\xfcj\x88QO\xa99\xb8\xc3\n3l\xf1\xd9\x8b;\x8e\xb0\x87?.7\x12\x13\xbf\xb8\xcc!\xc6\xef\xb8\xed\xc5\x1dV\xe8\xfa\xc9\xb1\x97\xbc\xb4\x81-\x1cH\xf5/\xfe\xf8%\xd6\x9d\xd8\xe2\x17\xd9\x8c\x91\x02\x00' ) - tmp_0 = (40, 11, - b'c`\x18\x05\xa3`\x14\xd0\x0b\x00\x00' + tmp_0 = (48, 13, + b'c`\x18\x05\xa3`\x14\x8c\x82\xe1\t\x00' ) - tmp_1 = (40, 11, - b'\xe5\x92!\x12\x830\x10E\xbfD"\x919\x02\xb2\x12\x89\xacD"\x919\x02G\xa8\xac\x8cD"+\x91=\x02\x12\x89\xacD\xf6g\x13\x92L\'3\xado\x18\xd8\xbf\xc9\xeeK\xb2\x0b\xf0_c\xc4!\xcf\x08\x83\x89\xfeD\xdb\xca\xcc\x03E\x12W\xd0ws\x9d\xcf\xd0\x89\xd2\xfc\xbepg\x9c\xc2@=\xd0\x1al\xf47\xcf\xeb\xb8\xae\x13\x9e\xcd\xede\xde\xaa\x96\x8fJ\x94f\xb4\xe5\\\x19Y\xd3\xd6\xb4\x86\xb6\xe1\xebx%\x9e\xb8}\xf0J9qNY\x1e\xb0\xf2\x96)o\xc5\xc2\xd7\xf1\x14vY\x8d\xf7]\xb9\x83\xf2\x94\x83^\xaa\xf2\xbc\x85j\t\xf5\xdb%;\x8e\x8a\xd5\xdbx\x1eK\xb9HFTy\xdeD\xff\xecG\x13\xbaQ\x85\x13\x16\xdc\xc3u!\xd6\xc0\x8d9\xe9s(\x03\x00" ) - devmode = (15, 11, - b'c`\xa0\x15\xd0\xe6K\x97O\xbbg\x13\xcc\xc0\xa0\xd4\x9d.\x0f\x82\xda|6B\xa13\x19\x18Bg\xda\x08i\xf3\xa5\xdd\xd3\xe6M\x97W\xf2\x02\xc9JqJqr\x1c\xd1\xe6\x8d\x9b\xcb\xc0\x107W\x9b\x17$\x0bdE\x1bO\x00\xc9281820H\x1e\x07\xb2\x9a\xd2\xe5%\x8fCd\xc3\xa4!\xb2\xe9\xf2q\xd2\x0c\x0c\x1cM \xb3\xd2\xe59\x9aPe%\x8f\x0b\xba\x81\\\x13\x17c#\x14\x17\x03r\x15\x8a\xc9P\xe0\x1b\x1ez\xcb7\x1c"\x8b\xee*\x06\x06\x1b\xc1ty\x1bA\xec>\x02\xb2\xcf\x00\xd5\x9fa`\x00\x00' + devmode = (18, 13, + b'c`\xa0\x1fH\x97\x07Ad6\x84\x8f\x10\x83\xb1\x91I\x84\x1c\xaa\x1aT6~5\xa86\xa3\x9b\x8fn\x0eyj0\xdd\x8c\xaa\x1f\xbb\xdf\xb1\xe9\xa1\x14\x00\x00' ) - edge = (20, 11, - b'c`\x18\x18\xa0\xd4\x9d.\x0f\x82\xda|\xda|\xe9\xf2i\xf7l\x82\x81\x82\x8e\xbe\xe1\xe9\xf2\xbe\xe1\x0c\x8e\x08Y\x10K\x8aS\x8a\x93\xe3\x886_\xda=m\xdety%/\xad\xb3@\xf2L\xda]\xa5n\x84,\x88\xc5\xe0\xc4\xe0\xc8\xc0\x00R\xc7\xc0\x10\x17m<\xc1xB\x984\xc8T\x88m\x10Y\x88\xc9q\xd20ua\xd2\x10u\xc6\x13`\xb6AdA,\xc9\xe3\x82n\xe8\xea8\x0e\x03]\xc1\x87\x90\x05\x9b\x0c\x06\xe8\xf6\xc2\xd4!\xfc\x8b\xee\x0f\x10i|\x11\xd5\x97\xd8\xc2\x85\xa39.\xc6W<\xf4\x16\xcc} Y\x00' + edge = (24, 13, + b'c`\x18\\ ]\x1e\x06alT\x19L5\xc8z\xd1I\x08\x8d\xa9\x06\x95\x8d_\r\xb2\xbd\xb8\xd4c\xaa\xc1\xa6\x1e\xb7\x9bq\xbb\x87\xb0z\xe2\xdcFlx\xd2\x1a\x00\x00' ) bat_0 = (16, 14, @@ -105,68 +105,68 @@ class Graphics: b"c`\x80\x81\xbf\r\x8e\r\x10\xd6\x11\x87\xa6\x03\x0c\x18\xe0\x8c\x83\xa5\x03\x84\xb5\xb8!\xcb\x01U\xce\xb3\x01\x13* \x99\xf1\xb7\x01\x13V!\xc9K\x00\xf9\x9aH\xe6\xad>0\x1b\xc5\x06\x90\xbc!\x12\x7f3\x9a<\xd0\x06\x87@$\xf3\xae4T5\xa0\xcao>p\xc4\x01\xe1\xda\xbf\x0e\x86h\xbeS8\xf0\x16\xe8\xef\xc0\x03\x96@\xbf\xffu\x98\x8c\xe9}\xa0\x8a\xcd@\x99\xbf\rw\x0e\x1490\xe0\x00Y\x0eo\x19\xf0\x81$\x86'\x07\xf0\xc9{6\xacFs7\x00" ) - ch_0 = (5, 11, - b'c`\xc0\x078\x1c\xf7^\xff\x7f\x7f\xefu\x0e\xc7l\xdf\xef\xf3\xa2N\xff\xbf\x9f\xed\xdb"p\xef6\x03\xc3\xbd\xdb-\x02 V\xf5\xf9\xff\xf7A\xac\xff\xf7{\x02ab\x10Y\x88\x8e\xef\xf3\xb2}\x11\xa6\x00\x00' + ch_0 = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16L\x04\xc6\x86\xc8\xa0b\x84ZL\xf5\xc8\xfa`"\xd8\x01\x00' ) - ch_1 = (5, 11, - b'c`\xc0\x0f\xb2}\xff\xdf\xaf>\xcf\xc0\xe0\xc4q.\xf2},\x88\xc5\xc0\xc0\xe1\xf8\\\x06\xc2b` \x8d\x05\x00' + ch_1 = (6, 13, + b'c` \x0e\xfc\xbf\x8f`!\xd8\xc8\xe2\xa4\xb2A\xe6 \xcb`\x02\x00' ) - ch_2 = (5, 11, - b"c`\xc0\x078\x1c\xf7^\xff\x7f\x7f\xefu\x0e\xc7\xa8\xd3\xff\xef'\xf3\x80\xb0@\x93\xa6+\x03\xc3\xfb\xd8\xe2>\x90\n/\xcf\xff\xf7\r\xdb t\xf5y\x90\x8e\xf7\xb1s.\x83d\x82\xba@\xaa\xbd<\x15Y\xb2}\xff\xdf\x07\xc1\xe2>\x00" + ch_2 = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16L\x04\x95M\x1a\x0bf"\xccT\xec\x00\x00' ) - ch_3 = (5, 11, - b'c`\xc0\x0f\xb6N\xfb\x7f\x7f\xefu\x0eG/\xcf\xff\xf7\x93y\xfe\xdf\x8f:\r\x12Ud\xf9\x7f?\xa8\x0b\xc4z.s\xef6DeP\x17HV\x91\xc5\xb0\x8d\x81\xe1\\\xe4\x94I\xd9\xbe\xdf\xe7E\x9d\xfe>\xaf\xb8\x8f\xc3q\xef\xf5\xff\xf7\x8fIp8\x02\x00' + ch_3 = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16L\x04Y\x16\xa1\nU\x17*\x1bU/\xc2L\\\x00\x00' ) - ch_4 = (5, 11, - b"c` \x04\xd6\x86.\x15\x01\xd1\x12\x87\xff\xdf\xb7<\x0eb\xb5\x08\x9c\x8b\x84\xc8=\x979&\xf1\xff>\x03CP\xd7\xf7y\xc5} V\x8b\xc0\xff\xfb X\xdc'q\xd8\xf28\x88'q\x18\xa42\x99\x07$\x0b\x00" + ch_4 = (6, 13, + b'c` \x1e\xfc\xbf\x8f`\xc1\xd8 \x1a\xc2F\x90\xa8r0\x88\xcd\x1cT6:\x00\x00' ) - ch_5 = (5, 11, - b'c`\xc0\x07\xa2N\xff\xbf\x0f\x82N\x1c \x96\x97\xa7\x97\xa7@\x13\x88\xc5\xe1\x88\x90=&\xc1\xe1\x18\xd4\xf5>\x16\xc4\xcb\xf6\x85\xe8\xbbw\xbbE \xa8\xeb\xff\xfdd\x9e\xff\xf7\xa3N30l\x9d\xf6\xff\xfe\xd6i\x1c\x8e\x00' + ch_5 = (6, 13, + b'c` \x0c\xfe\xdf\x87A\x10\x1bY\x1cS\r\xaa>T6\x8c\x0f\xa11\xd5\xa3\x03\x00' ) - ch_6 = (5, 11, - b'c`\xc0\x0f8\x1c\xbf\xcf+\xee\x03\xb1\x8a\xfb\xbe\xcf\x13h\x02\xb1\xee\xdd^*\x02\xa2\x9d8\xfe\xdf\xff\x7f\xff\x98\x04\x87c\xf5\xf9\xff\xf7\xa3N\xff\xbf\x9f\xccS}\xfe\xdem\x90\x8a\x16\x81\xa0.\x10\x1f\x84\x19\x18\xd6\x86\xfe\xbf\xbfu\x1a\x87#\x00' + ch_6 = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16\xb2(\xba\nT5 \x1a\x17\x1b\xd9L\\\x00\x00' ) - ch_7 = (5, 11, - b'c`\xc0\x07\x8a\xfb\xfe\xdf\x07\xc1\xe2>E\x16/\xcf\xa0\xae\xff\xf7\xa3N\x83\xc4\x9d8\xfe\xdf\x978\x0cb\xf5\x04\xde\xbb\rQ{.r\xca$\x10-\xd0\xf4\xff~P\x17\x88\x05R/\xd0\x04b\xcd\xb9|.\x12D\x03\x00' + ch_7 = (6, 13, + b'c` \x0c\xfe\xdf\x87Ad1llRDQ\xd9\xd8\x00\x00' ) - ch_8 = (5, 11, - b"c`\xc0\x0f\xb6N\xfb\x7f\x7f\xeb4\x06\x06'\x8e\xff\xf7\x8b\xfb\xfe\xdfw\xe2\x00\xb1\x82\xba@,\x06\x86s\x91\xff\xef\x9f\x8bd`\x908\xfc>\x16\x04%\x0e\x17\xf7\xbd\x8f\xe5p|\x1f[\xdc\x97\xed\xfb}^\xd4\xe9\xef\xf3\xb2}\x05\x9a\x8eI\xfc\xbf\x7fLB\xa0\t\x00" + ch_8 = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16L\x04\x95M\x8c\x1a\\\xeaq\x01\x00' ) - ch_9 = (5, 11, - b"c`\xc0\x0f\xb6N\xfb\x7f\x7fm(\x03C\xd4\xe9\xff\xf7\xb3}\xff\xdf\x0f\xeaj\x11\xb8w\x9b\x81\xe1\xde\xed\xea\xf3\xd9\xbe\xdf\xe7i\xba~\x9fW\xdc'\xd0\xf4\\\xe6\xff\xfd\xff\xf7\x9d8\x18\x188\x1c\xd7\x86\x82T\x80X 9\x10\xab\xb8\xef\xfb<\x0eG\x06\x06\x00" + ch_9 = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16L\x047\x1b\xa6\x1e&\x86\xac\x0f]\r>[\x01' ) - ch_a = (5, 11, - b"c`\xc0\x0f\x92y\xfe\xdfO\xe6\x01\xb1z\x02\xff\xdf\xef\t\x04\xb1\xf6^?\x17\xb9\xf7:\x88\xf5\\\xa6'\xf0\xb9\x0c\x03\x83@\xd3\xff\xfbA]\xff\xef\x0b4Y\x1e\xff\x7f\x1f\x04-\x8fg\xfb\xbe\x8f\xb5<\xfe>6\xdbw\xca\xa4c\x12\x0c\x0c\xc7$\xa6L\x02\x00" + ch_a = (6, 13, + b'c` \x06\xfc\xbf\x0f\x82\x10\x16L\x04\x1f\x1b\x06\x89S\x8f\x0b\x00\x00' ) - ch_b = (5, 11, - b'c`\xc0\x07\x8a\xfb\xfe\xdf\xff\x7f\x7fm(\x88\xf5}^\xb6\xef\xff\xfbN\x1c \x96\xa6+\x84\x05\x92}.\x03\x91\xf5\xf2\xfc>/\x99\x07\xc4b`8\x179e\x12\x88\x15\xd4\xf5}^q\x1fD\xdd\xd6i\x1c\x8e\x00' + ch_b = (6, 13, + b'c` \x0c\xfe\xdf\x87@\x08\x1b&\x86\xce&F\rv\xf5\xb8\x00\x00' ) - ch_c = (5, 11, - b'c`\xc0\x078\x1c\xf7^\xff\x7f\x7f\xeb4\x0e\xc7l\xdf\xff\xf7\x93y\xfe\xdf\x8f:\xdd"p\xef6\x03\x83\xa6\xab@\x13\x84\x05\x02\xe8,\x90,B\x07\xc2\x14\x00' + ch_c = (6, 13, + b"c` \x06\xfc\xbf\x0f\x82\x10\x16L\x04\xc1F\x16'\x86\r3\tf&.\x00\x00" ) - ch_d = (5, 11, - b'c`\xc0\x07\x8a\xfb\xfe\xdf\xff>o\xcee\x10\xeb\xfb\xbcl\xdf\xff\xf7\x83\xba@,\x06\x86{\xb7[\x04\x08\xb3`:`\xa6\x00\x00' + ch_d = (6, 13, + b'c` \x0c\xfe\xdf\x07A\x18\x1b\x9d\x84\xd0\xc4\xb3a$\xc2L\\\x00\x00' ) - ch_e = (5, 11, - b'c`\xc0\x07\xa2N\xff\xbf\x0f\x82\xc5} \x96\x97\xa7\x97\xa7"\x0b\x88%\xd0\xc4\xe1\x08\x93\xbdw\x1b\xc2\xb2\x10+\xdb\xd7\xcbS\x91\x05\xc4\xb2<\xce\xe1\x08\x93\xbdw\x1b\xc2J\xe61l\x83\xb0@4v\x16\x00' + ch_f = (6, 13, + b'c` \x0c\xfe\xdf\x87A\x10\x1bY\x1cS\r\xa68a6.\x00\x00' ) diff --git a/graphics/icon-samples.png b/graphics/icon-samples.png index f86ccfb3189210614b50203739cc54add68ae87f..2af60b74f01e0b20d77586ab97606db9ae80f5d4 100644 GIT binary patch literal 1677 zcmV;826Fj{P)7{~t`Eg}*KLW^w<*)vm_syHU znVp%pfFKBhAPDifZy!_x$DY`;T>b!OU+P{!g3wnCbvpn-5ClOO2$aIg8vglr&$7CS z%|E*rkRbFGm2L+h2!bH=0rOBvpniR~k?bDV_rD9t$ z>&?v9*#bFpac0Mg(;2yT?&QOb+?k7Z?&L#E#2;rszRr6WP#3rNnw?HJfHu-CwvJM5 z&Xr1FUG4uCAl#*XqCGiO0A)Pd)E$fIkSSH^tlY^$Y}DzE-7C%?s-!I1KE0vLzv^

;}{-Bt(K+M!16EI3zp*#VfcR3 zrb|^bWj)MZ#QPU%I-KXNzJ%q>(hrD-9#z1Y&Wb0ter$i|h#W(oD^9#Bp#9r0N9&|) zTm0otYJSYPld^5`mpiHXq2yby*HZ;Qlw6cjsX`%fW?Bk~JkwH6F6CG#m`Nw)Ubft= zsP?k53QkXtg45GuA-1ueDcS|w$N5)}Cb5>JOi?ybzzYPoH-RQaO<`&(+wJ5@tgR8$ z8X2pYyK0kIJ72b%W^6xH1Ba_=`xmDfE4$q1Ey$xxn0`P!tf*L;0sh=;W4BMw`qMib z#Vy$1cb=8FGFLe4iFQFG`Rc_vbI~rf+Da$MMK1uGA1hOm2UpsPQF5D&3PRbE_MS8#9 zwm1oRN;s7%bqzSqjed$HKdD`NeLR42Fu8|=Rdb*%3orLla?e@P4W%8Q; zCOPx9S5;XFI&-oAC2|ID-wu1G#XX5@V>iCt!wNi`tMT_k=ecU9V9vUTc;<+j)X7w* z#n!O}bJjIDq%x+=HB+Zxoz5{DGXIn@Y-%f0)iT++g|C0Ysps+eW!$>GYn(ia$42qh z3PY!aMM`cJ_M02UDzmN)n|2f7zKas@(SqwAHQxZZF|hm{b5@~Wh_@(c6855%AJ29_ zYoU~qul)%mtS&#E?S9tthtjmkGOFnrR@b1>{bzX(;C%b4aQ-5H$-v4AW@iDQ+3e`k zYGIxxw{jh`#%oNiZI{|M=D!J1OVQlIk%t*-32%LjD<9(fvp9DNTP-|u81KA@kG{kY zs|=A|o3IAx#}f}DYRasw;{gAGB0XmfUX9C1w>}@l$TxN_^qBKxN6#WgzINn!a`7KW zE~n3@W|>Y49edhZl=7gVTx+ZOr6~CK{aFVCf@|SY1CC_*i~=p%oV8X%vx!Cn07gbI zGU8GjMXQB{1%lcEG=D?mN}DnD!qe!3Xl-MGFw1nRnT$NZP}5vn$CERddj+4K!oGXZ z+`{QkFn5We5SxIF`#kHWh3gA+xW_+w;YN_ov)b5iDdmKCM#O%TDJT7Mo;55^?p0xt z_tbe-zo7HN%ro4Dbd2EhtbRe~h5qxbVbu)+{`0Kb*vUd~)MS~{`7Klk-LJP5Qnfh0 z0E=7iIa)Bk(%k0eNN%1b*fzCSX=+7a6+*K@fy&s$|a{;6|3u*ce%D2kTj1wm-I?tacmg zzn7}!TNf*=TjAP8kJc@&?$+wC9(K@bE%5ClOG1VIo4K@bE%7%ct= X6)6xP%d%i~00000NkvXXu0mjfOTRPE literal 5301 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 literal 0 HcmV?d00001 diff --git a/graphics/ter-powerline-x12b.pil b/graphics/ter-powerline-x12b.pil new file mode 100644 index 0000000000000000000000000000000000000000..b4710c6fea429125ebd585124251dfe5eb5b1cf7 GIT binary patch literal 5143 zcmeI#@kifV9LMp`YLc(7B*|BjOft!IGs%{0$+RSyWRgiHnSAdglT0$nB$G@s$t06Z zGRY*9OftzNlT0$nB$G@s>E7q(UM}C~UvPie;p3e1_&DCjan28~`n$Dlf5y8aH~(pW zl-!I|-EO!Y2~q;uU#Ij*;fOw(VB!C$EQ)2wGO(B|hULm~v3yxRRwygPie<%EsjL($ zmz86cvP!I4R*luk>aYe`1J)#K!dhf4SevX3>yUL|ow81>Th@*B%6hSWSwA)?8^nfX z!`P^76dRX~W0SH;Y+5#r&B|u6dD%R+C|ksqWy{#AY!zFVtz(A4XjqS>Iv3=P- zb|^cOu{>EGRv;_DieyDtiL3-G zla*l=vI?w9R)y8bYOs1)J=Q2|#F}NzSgWiRYnQcSaakPel67G{vL38Y)`tzq2CyO7 z5H=zk!Nz1`*o15Xo03goGqM?MPBw=v$QH0A*%G!QTfx?3YuJWt1KW~qVLP%NY)`g_ z9mo!_BiRvlB0Is(WM|lg>>>z~E+-oEASoh?VCk}SEK8P!<;ZfdE3zxtRoPYSn(P{O zU3MM2A-jRylHJ1Y$nIdZvRdq(>>hSsb{~5ndw@NZJ;WZ#9$}AVkFh7RC)iWjQ|y`S z8TMTE9D5;qfxVQy#9ql>VXtMcu{W|e*jw3K?49f#_FncL`yl&(eUyE~KFK~|pJku1 zFS0M#SJ_wWo9r9*UG^ROA^U;-l>NkhVZYn&6ZpTKKuWlwfAa@-G)N8-?=JHoIYq{r zotz=dz+$o(mYZml2s2NN@4vk;4l5*DC>gS_W=s~=%$0>T^JV#1p{x)qmK9^A zvQn&ER*qH5DzR!=HC899!y04_Sd**?Ymv2JZL&73L)L+H$~v)bSvS@z>&5zI{n(&v z5F3^aW23TBY+N>uP0A**Y1uS3E1SjUW%JmgY!O?QEn};)Rcu|hj%~^|v2EElwkzAk z_GSCnq3jSlmK|fKvQz9_b{<5@ISFqj%t7RyL`%ieWNBEYEECI?Wn+1=Jgh)gfECG# zuo77bRwgUMDr6N{m8=S@k=0=JvU;ph)`&IBnz2?{E7mS+$KtX$)+Ou0dSpFVpR5lX zkPTo%vLS3lHiC`G#;^(51U4m`!e(SM*qm$*TaYbaOR^H+roBa zJJ_CV4?B<@U`Mhe>_m2goypFy3)w{wCFdl(qc8`NdlD^zrOVQ>ELj$o6U6=oQqHhx literal 0 HcmV?d00001 diff --git a/releases/ChangeLog.md b/releases/ChangeLog.md index 2d58aab1..a4c4a953 100644 --- a/releases/ChangeLog.md +++ b/releases/ChangeLog.md @@ -46,6 +46,7 @@ This lists the changes in the most recent firmware, for each hardware platform. - Bugfix: Allow `Send Password` (keystrokes) of capital letters of alphabet - Enhancement: Allow export of multisig XPUBs via BBQr - Enhancement: Import multisig via QR/BBQr - both legacy COLDCARD export and descriptors supported +- Enhancement: Status bar text sharper now. # Release History diff --git a/shared/lcd_display.py b/shared/lcd_display.py index c902bb95..d81d7e18 100644 --- a/shared/lcd_display.py +++ b/shared/lcd_display.py @@ -191,7 +191,7 @@ class Display: xfp = kws.get('xfp', None) # expects an integer if xfp != None: - x = 215 + x = 217 for ch in xfp2str(xfp).lower(): self.image(x, 0, 'ch_'+ch) x += 6 @@ -203,7 +203,7 @@ class Display: self.image(x+5, 0, 'devmode') x = 8 - for dx, meta in [(7, 'shift'), (37, 'symbol'), (58, 'caps')]: + for dx, meta in [(5, 'shift'), (39, 'symbol'), (61, 'caps')]: if meta in kws: self.image(x+dx, 0, '%s_%d' % (meta, kws[meta]))