# Changelog

## [0.2.1](https://github.com/xabufr/memocadre/compare/v0.2.0...v0.2.1) (2025-11-22)


### Bug Fixes

* nix fmt ([4138df3](https://github.com/xabufr/memocadre/commit/4138df32099d7774ddec8d3b93b5e9ff462345d4))

## [0.2.0](https://github.com/xabufr/memocadre/compare/v0.1.0...v0.2.0) (2025-11-21)


### Features

* ability to draw shapes ([00618e2](https://github.com/xabufr/memocadre/commit/00618e20276565ba1aabbe3b79bc7fb7f9faa9dd))
* add animated transitions ([bd0a205](https://github.com/xabufr/memocadre/commit/bd0a2054230bf049288bdba90f47243f09493a06))
* add bind guard ([92a396b](https://github.com/xabufr/memocadre/commit/92a396bcc412695281b77f57c291964e16acd81f))
* add config support ([86b940e](https://github.com/xabufr/memocadre/commit/86b940e5d865774f4640283f1cb247918abcb3fd))
* Add default config.yaml file with explanations ([102fa6f](https://github.com/xabufr/memocadre/commit/102fa6f6384f45393c596c9dd1db31e6b8716204))
* add dynamic settings loading ([61926b1](https://github.com/xabufr/memocadre/commit/61926b1728417932e8e680ac99f7656f1826a946))
* add GPU blur ([3c1d27f](https://github.com/xabufr/memocadre/commit/3c1d27f1b39965e932720ff182aecc526411f8b5))
* add loading slide ([4d10af7](https://github.com/xabufr/memocadre/commit/4d10af7b5e1bfdd931606e4b9d3412dd4047073b))
* add logs ([700f919](https://github.com/xabufr/memocadre/commit/700f9199b6ccce4b439bb421f3c9a91dfed02103))
* add micro HTTP api to get settings ([2dc9d1c](https://github.com/xabufr/memocadre/commit/2dc9d1cac1274aba0033f5a9055d9a6d0c6f68a7))
* add mqtt config ([fd6dbd6](https://github.com/xabufr/memocadre/commit/fd6dbd6495e9e56dd55b204c54f36df070d0ba4c))
* add retry ([ad6de96](https://github.com/xabufr/memocadre/commit/ad6de96fe4e73167fcae9e1992871fab927a6f95))
* add safe wrapper around glow ([d429463](https://github.com/xabufr/memocadre/commit/d429463138ae9f21db2207294a8d455ac1df38c7))
* add scissors ([6f85384](https://github.com/xabufr/memocadre/commit/6f85384429769a984670013d165499d46aed7143))
* add transitions ([7a9cf26](https://github.com/xabufr/memocadre/commit/7a9cf268bdc586cadfe9c0afb4fdb5f30319cf67))
* animated text position ([57b3d5e](https://github.com/xabufr/memocadre/commit/57b3d5e36b856980c314e5327bc3db5a00fa831c))
* animations ([7ab5c6c](https://github.com/xabufr/memocadre/commit/7ab5c6cc0c9c4cd7a979ed406fbccfd69960c05a))
* background worker is low priority ([65cc33e](https://github.com/xabufr/memocadre/commit/65cc33e69b92c860a56ec2e63b72057f5461340c))
* batch search ([5effc6e](https://github.com/xabufr/memocadre/commit/5effc6e8e96c181888f5f8ced9da2673758ac939))
* better config format for rotation ([a517cd9](https://github.com/xabufr/memocadre/commit/a517cd97aa5b1dad5b0597f6b76bbe07bb03d1e5))
* better epaint integration ([48c87e5](https://github.com/xabufr/memocadre/commit/48c87e589caca440b65cf7ef02b7e6fe081eb692))
* better text background ([2a7dc64](https://github.com/xabufr/memocadre/commit/2a7dc64bf0126fe8fff881f18a959fb8dce66f5e))
* better texture wrapping ([5c076c7](https://github.com/xabufr/memocadre/commit/5c076c747d6950d3a0ddf9ef2f70fd1321bbf32f))
* blur background ([329f070](https://github.com/xabufr/memocadre/commit/329f0701ca05c9fb8fbd42b2c548f53f24af8129))
* can change orientation ([7b5657d](https://github.com/xabufr/memocadre/commit/7b5657dc4ee0c260289971c8ba8b5a6820eda819))
* can configure image downscaling filter ([9bd5cde](https://github.com/xabufr/memocadre/commit/9bd5cde875597932602ff11e94e518d46749d465))
* can trigger next photo from MQTT ([a4d9586](https://github.com/xabufr/memocadre/commit/a4d95861a82d1705b009bf1eea6cac054fca2fda))
* change images ([9b07a77](https://github.com/xabufr/memocadre/commit/9b07a777d9dc65c82d6672a0032a2ae557e7c1a9))
* configurable background ([e5b553d](https://github.com/xabufr/memocadre/commit/e5b553db20376aa2ca4e836b24c4021fec856380))
* configurable blur options ([1cc2984](https://github.com/xabufr/memocadre/commit/1cc298468c0bef15adaa64fb1dbe9c6d121946cc))
* configurable caption ([984dd52](https://github.com/xabufr/memocadre/commit/984dd52ff2cd5c3d98051a6777ef8833629bc6ca))
* configurable date format ([e172961](https://github.com/xabufr/memocadre/commit/e1729611116a7d7749f870028815908feaf9e2eb))
* configurable FPS counter ([2226740](https://github.com/xabufr/memocadre/commit/2226740bb016aec9535e6df95a5256fd5bde1456))
* configurable init slide ([8f4bbd6](https://github.com/xabufr/memocadre/commit/8f4bbd6bfca5d01374d56306c89f4798b370f26a))
* configurable interfaces ([a8c3efc](https://github.com/xabufr/memocadre/commit/a8c3efc5a4c97143b3857c3f180592e77b9b0e56))
* configurable rotation ([6b377c4](https://github.com/xabufr/memocadre/commit/6b377c40692d89691438364716da5547d316123f))
* configuration is hot-reloadable using tokio ([919489c](https://github.com/xabufr/memocadre/commit/919489ca5e55431c98166b247f3b5e7be6cf75d8))
* controllable display ([01025ce](https://github.com/xabufr/memocadre/commit/01025ceeb30d4aadfe2dfb445b13c8e0bd597b7a))
* display image details ([1b13203](https://github.com/xabufr/memocadre/commit/1b1320323a01cde887534083ac9a8c2eb132e0ba))
* display photo details ([23f7460](https://github.com/xabufr/memocadre/commit/23f746071ae9ac2951ff14c99143814beacfae40))
* enter sleep when nothing to draw ([afcddef](https://github.com/xabufr/memocadre/commit/afcddef537801224592378652a4d5cd8bd6fd458))
* epaint text rendering integration ([cf1b296](https://github.com/xabufr/memocadre/commit/cf1b296d2655280cf117635a6c02efb7e2ce1969))
* features for window manager/DRM ([cf6dbce](https://github.com/xabufr/memocadre/commit/cf6dbce8ffcefcdc49fc9ba358f1d5d01e357a32))
* filter by people ([2018ca3](https://github.com/xabufr/memocadre/commit/2018ca3a3813b1fb7942471c34dc4d8c35ad63e2))
* handle framebuffer errors ([2b024d2](https://github.com/xabufr/memocadre/commit/2b024d2f908453fbcfc5903f6d8897a7ee009be1))
* handle more errors ([c79719b](https://github.com/xabufr/memocadre/commit/c79719bece3368784209ed4f9870fc62d16d4627))
* handle more errors ([219b246](https://github.com/xabufr/memocadre/commit/219b2465a7e6e8659967767660573671df2eed3b))
* handle next slide command ([a6e2d3c](https://github.com/xabufr/memocadre/commit/a6e2d3c0e5cc69ed35b018ca3d61b4aabf4c4986))
* handle shaders errors ([eebb8d9](https://github.com/xabufr/memocadre/commit/eebb8d954773b875f986074bc222d6b061686752))
* handle texture errors ([1cc6064](https://github.com/xabufr/memocadre/commit/1cc60647324f851b5f42d99c3d1e6af8ddff81da))
* implement settings saving ([29d07fc](https://github.com/xabufr/memocadre/commit/29d07fc999420574b2c2bcee4fcc419166cd1a1b))
* improve Graphics struct ([765426e](https://github.com/xabufr/memocadre/commit/765426e5fa80332281d8c09d6ef63fa636da7828))
* independent properties animation ([4017cff](https://github.com/xabufr/memocadre/commit/4017cff5219eeea8006f9620a51c41af7a57f518))
* introduce a graphics struct ([fbf99b1](https://github.com/xabufr/memocadre/commit/fbf99b1801df39af0cda9ae7e66a2115934ecd16))
* introduce controls ([3fe8299](https://github.com/xabufr/memocadre/commit/3fe8299231d183a4e17a7bbe19203e10bb954491))
* log immich calls ([b0d7d32](https://github.com/xabufr/memocadre/commit/b0d7d3291a8e9c99e4ca19dcc2df71005e98d818))
* no unwrap in search ([20ecd58](https://github.com/xabufr/memocadre/commit/20ecd58fa0d0b061f57122f1637f031f0d78b8e8))
* partial buffer updates ([9ce4e47](https://github.com/xabufr/memocadre/commit/9ce4e47a165cacdf108f5784ef73b0c628217229))
* patchable config ([d8084de](https://github.com/xabufr/memocadre/commit/d8084de6bf0bfa103b1f0bb9c59e2da4aed2984d))
* print blur time ([b7d5250](https://github.com/xabufr/memocadre/commit/b7d52501e579d7cea9162fe2cd724357cbba74a5))
* re-enable blending + transitions ([7cf3075](https://github.com/xabufr/memocadre/commit/7cf307566365ed07d3d2d447126762b7020ae85b))
* resize sprite ([b1a05cb](https://github.com/xabufr/memocadre/commit/b1a05cb278f1da0b07e3eb310b2793e2482a5786))
* scissor ([fe7890c](https://github.com/xabufr/memocadre/commit/fe7890c430bcb39a778904973e5737737aeead39))
* smart search ([a12eb41](https://github.com/xabufr/memocadre/commit/a12eb4118362836db3df3a50dd8da97055c63b23))
* smooth slide transitions ([822de90](https://github.com/xabufr/memocadre/commit/822de908e8663ea2cdc4970bca987494d3959fd8))
* split image fetch into separate module ([b6fcb4b](https://github.com/xabufr/memocadre/commit/b6fcb4b38e8f8783f9ab7324e42139842114ddc2))
* split settings from sources configuration ([4e7f748](https://github.com/xabufr/memocadre/commit/4e7f748cb765d630ef9d31df748eccdb49496baa))
* start debian packaging ([aded2bc](https://github.com/xabufr/memocadre/commit/aded2bc18f2edd8af3b43db6e541ab0d60db651f))
* start error handling ([5b12f82](https://github.com/xabufr/memocadre/commit/5b12f82029f566a0a00ddecc43b2f9dedd057806))
* start implement safe wrappers arround glow ([48bb620](https://github.com/xabufr/memocadre/commit/48bb620fde5dc23cbf7efac343afc42e99ca4b4a))
* start implementing MQTT interface ([13a2dd6](https://github.com/xabufr/memocadre/commit/13a2dd649cccb9782caeb8c0fbe5b5582afe6831))
* start implementing sources right ([ff54838](https://github.com/xabufr/memocadre/commit/ff54838cd6564e2945697e56372259c041eb3c88))
* support both display modes ([218cea0](https://github.com/xabufr/memocadre/commit/218cea013c81250f6e21acc431e8a13375aef55a))
* support DRM/KMS/GBM rendering ([bb4f1d8](https://github.com/xabufr/memocadre/commit/bb4f1d89d2a576b806ab52964af95c2d887d96db))
* support multiple sources ([5279c87](https://github.com/xabufr/memocadre/commit/5279c87089970ca7ece3629a847038096617fc38))
* support private albums & memory lane ([dd354a0](https://github.com/xabufr/memocadre/commit/dd354a08086415423d13d5aa0e3a16ff119e1602))
* switch to glium ([57bf723](https://github.com/xabufr/memocadre/commit/57bf723df4cf661bd42d9dfa17a0dffcd54921ff))
* test shape drawing with epaint ([8b8bc7d](https://github.com/xabufr/memocadre/commit/8b8bc7ddef834b920ca8a2d4ca0a64b34b9e3edb))
* text placement ([c80868f](https://github.com/xabufr/memocadre/commit/c80868fae42caff6a53ebf49925b6389a77e4581))
* text rendering using glyph-brush ([fe861e4](https://github.com/xabufr/memocadre/commit/fe861e41ecf5accf2ee601c88997daf7efc5d39a))
* texture cleaning ([6ffbed9](https://github.com/xabufr/memocadre/commit/6ffbed997589bffd8d77c3c0de4c92e6d02cda67))
* try next source on error ([2f66d6b](https://github.com/xabufr/memocadre/commit/2f66d6bfc53f56080d7f6bfbc1c8e53926b8b4d2))
* updatable configuration ([181a110](https://github.com/xabufr/memocadre/commit/181a1106cd2808a24b3472a498c08e1433111f22))
* use machine id for MQTT registration ([db7d4f1](https://github.com/xabufr/memocadre/commit/db7d4f1ca45ec576a384047cc5c585fdaf12f578))
* VAO errors ([a8dd710](https://github.com/xabufr/memocadre/commit/a8dd710cfce173dcee7d2eda7dcaa288ac99a362))
* working application winit ([f740c08](https://github.com/xabufr/memocadre/commit/f740c0883cccd7f39f49d3017fa63c1963820326))
* working BG GL context / loading ([b6a4657](https://github.com/xabufr/memocadre/commit/b6a4657f88854d717c1136ea2779a4a4a6293e59))
* working epaint ([063efd0](https://github.com/xabufr/memocadre/commit/063efd07794faebcff7c6cdb1d1af7616e7bce6f))
* working Gl bg with GBM ([315c5d1](https://github.com/xabufr/memocadre/commit/315c5d154540dabfc9a70c765807c7cd1b69a028))
* working MQTT configurable display ([663e148](https://github.com/xabufr/memocadre/commit/663e148bb3fa06b20ee67ca975b7836859333c36))
* working MQTT display duration configuration ([2ca70e8](https://github.com/xabufr/memocadre/commit/2ca70e887f4e57dd6f3fb1a2d8b8978371779595))
* working schema generation ([8d92b10](https://github.com/xabufr/memocadre/commit/8d92b10ada2b8fee31cecb814f2b6e8bcb8e74a9))
* working schematic config ([ee4af4d](https://github.com/xabufr/memocadre/commit/ee4af4dca979da42a199b71ce85794b2e16daf5f))
* working screen pause ([a939f5e](https://github.com/xabufr/memocadre/commit/a939f5e6e5d3a990bd9756fe71299811f172f1d0))


### Bug Fixes

* abort if worker is closed ([5c8c4cf](https://github.com/xabufr/memocadre/commit/5c8c4cfe8cbb4b69743930afb49daba2d1b96652))
* add blur options ([d1f986e](https://github.com/xabufr/memocadre/commit/d1f986eab8c7d77e5ba6416594a1974b9f876a2b))
* add context ([f11491a](https://github.com/xabufr/memocadre/commit/f11491a8762d21050224e1d8c1d4b15121504752))
* add envrc ([df7038a](https://github.com/xabufr/memocadre/commit/df7038ab23e5fe01b564a242d9cd82fb48fcff73))
* add id in name ([e5268fd](https://github.com/xabufr/memocadre/commit/e5268fd78507e15ea94d1f3b1cb8f10c84b0da3c))
* add missing config file ([60ad7b0](https://github.com/xabufr/memocadre/commit/60ad7b0f5eda5def73303641a824dd72c12db9e4))
* add missing deps ([4521c2b](https://github.com/xabufr/memocadre/commit/4521c2b312e6421e8edf5845b38b325879044f9c))
* add missing tools ([fc9169e](https://github.com/xabufr/memocadre/commit/fc9169e4c6369e55912b3fc6e2f86282b4985a8d))
* add timeout in immich requests ([633d302](https://github.com/xabufr/memocadre/commit/633d302a73690e647fb62376711d94b9ecc8587e))
* AppConfig is cloneable ([b5f234d](https://github.com/xabufr/memocadre/commit/b5f234df55adce3ccd842a8b40a8db4409a6cdfd))
* bad ratio ([88ec594](https://github.com/xabufr/memocadre/commit/88ec5949712c9ea3e1ebe53cf96add7799a0c461))
* better error handling for Immich Client ([bb9205a](https://github.com/xabufr/memocadre/commit/bb9205a02e65bcb5f9d92d8a416bd04145eda2fb))
* better error log ([d38e9c7](https://github.com/xabufr/memocadre/commit/d38e9c7bfa60bdea3e631cdcc85bccec42264c1c))
* better image display ([c390e82](https://github.com/xabufr/memocadre/commit/c390e825b452d5f81e85b121b721295338c2cbba))
* better mqtt id ([65027b4](https://github.com/xabufr/memocadre/commit/65027b46649560cd55bcf051a53d9a93e8bbc99a))
* better transitions ([bbb650e](https://github.com/xabufr/memocadre/commit/bbb650ea25081d100db5cf4807a47bfe95531a67))
* change unwrap for expect ([ed20cb7](https://github.com/xabufr/memocadre/commit/ed20cb7789b3dea02361cb56263e2e5e313957b0))
* clean code ([637dcd5](https://github.com/xabufr/memocadre/commit/637dcd576d39e024713804a5362ae3480465b006))
* clean unused code ([aaf0035](https://github.com/xabufr/memocadre/commit/aaf0035d29afa7e76e3271686cac07031c515564))
* clear between frames ([7da5e07](https://github.com/xabufr/memocadre/commit/7da5e073e1898ed5acf6ece8a77a1d28b43ee17e))
* clippy lint ([7f8456e](https://github.com/xabufr/memocadre/commit/7f8456e5db1133c551d943df863e1bf95f4ddad3))
* clippy warnings ([4152cfe](https://github.com/xabufr/memocadre/commit/4152cfe016e426379f6cdef76b9ecbb5c6b3c88c))
* clippy warnings ([3ecb6c7](https://github.com/xabufr/memocadre/commit/3ecb6c74f089f04c3ff0e85bd4834ce5d6545029))
* code fmt ([ee14b5a](https://github.com/xabufr/memocadre/commit/ee14b5aa5bc918e6f9e7e07aa4a75c4321d456bf))
* comment DPMS code for now ([6817858](https://github.com/xabufr/memocadre/commit/681785844f844f15de10a7d986fa58c440ae4809))
* compile ([cc393be](https://github.com/xabufr/memocadre/commit/cc393be1e57f52269ecbc3acfb16b2de9bb4e006))
* config transition duration ([d8fabaf](https://github.com/xabufr/memocadre/commit/d8fabafa725a50ef342b23f4ebc41b3cfe5ee778))
* configurable config path ([8b2c200](https://github.com/xabufr/memocadre/commit/8b2c2005263d93d7a51ef8e7a941373f7cc9f130))
* configure retry max times/max delay ([92bd129](https://github.com/xabufr/memocadre/commit/92bd129d84c848ef060937cffb2207816f24f196))
* debian package ([55e31aa](https://github.com/xabufr/memocadre/commit/55e31aa21381c4e5bd8c08fdc7a69eb28cdf89da))
* debian rights ([00259f6](https://github.com/xabufr/memocadre/commit/00259f641c4f5072de69f9b1a581814440fc9d74))
* don't leak framebuffers ([769a569](https://github.com/xabufr/memocadre/commit/769a569163cad08db1c1585c812b1540c7e62426))
* don't overload GPU ([a6c56a6](https://github.com/xabufr/memocadre/commit/a6c56a6736a5ba17dd9c8d4a2aade768db8f8209))
* don't update texts if not necessary ([7bdcbc9](https://github.com/xabufr/memocadre/commit/7bdcbc918a9694942d9525ff50220e703f093190))
* duration humantime ([53a1e2b](https://github.com/xabufr/memocadre/commit/53a1e2baeb188a24d5a3a65b2b2c575c05d4ebcd))
* extract struct to display image ([70bfca8](https://github.com/xabufr/memocadre/commit/70bfca8e37c70a9ff9202547af86d1fecdf86dca))
* faster transitions ([1e182e6](https://github.com/xabufr/memocadre/commit/1e182e66ecaccb0cc9d392ce8cb855ba54553075))
* fmt ([fbb5cc0](https://github.com/xabufr/memocadre/commit/fbb5cc07cea769636c2b6d845df29363fc9df4df))
* framebuffer leak ([025780b](https://github.com/xabufr/memocadre/commit/025780ba5ab41c6e14132cbf81603d995399f652))
* fullscreen ([804bc1e](https://github.com/xabufr/memocadre/commit/804bc1ed718644c9b1e258acbb2013468e649bb5))
* handle bufferobject errors ([7a0618a](https://github.com/xabufr/memocadre/commit/7a0618ac6e131a9dcdca0f1b9627dab63b45a19f))
* handle error in worker ([be69ab1](https://github.com/xabufr/memocadre/commit/be69ab1f0a23716800c13f548bea92604fa4c813))
* handle missing folder + merge with existing overrides ([599a487](https://github.com/xabufr/memocadre/commit/599a487ca18a93ca0249c9d8e8fb95e3165d584f))
* handle unknown DPMS value from kernel ([37a6d90](https://github.com/xabufr/memocadre/commit/37a6d9094baa1e17d6ddeb12eec45bb1e3daba51))
* improve armv6 build ([9773d1b](https://github.com/xabufr/memocadre/commit/9773d1b3ba325f068ba50d2e2ddd93a3bd2de008))
* improve MQTT resiliency ([77027ff](https://github.com/xabufr/memocadre/commit/77027ff030814d796588b1d473d34b04f0eb04c9))
* increase scissor size ([7f8aa08](https://github.com/xabufr/memocadre/commit/7f8aa08aa170df3e43abad4f406a3f68d9067991))
* introduce a config loader ([4a84cd4](https://github.com/xabufr/memocadre/commit/4a84cd405511ab37eee0f96b8689bdb9e088ba05))
* introduce new type for worker messages ([0562653](https://github.com/xabufr/memocadre/commit/056265387536854003d6e739ea76301717459cd7))
* less instant::now call ([b80ef02](https://github.com/xabufr/memocadre/commit/b80ef02705f2688a360c44988fa8fafa56abd77b))
* lint ([a12543a](https://github.com/xabufr/memocadre/commit/a12543a59c8e4ed985205340d428e135979f1759))
* log settings path ([4c2bcb9](https://github.com/xabufr/memocadre/commit/4c2bcb9558a41feb8ae57d9662cb0bd1befba03b))
* move debug settings ([36a3cd1](https://github.com/xabufr/memocadre/commit/36a3cd1335a1a188b03b7dfef7910bef4bd33d1e))
* move swap calls ([3525718](https://github.com/xabufr/memocadre/commit/35257180e4dc1cec5d275715c259a8aa52c253e2))
* MQTT persitent session ([a2b1ff2](https://github.com/xabufr/memocadre/commit/a2b1ff203aa60199caa821fe3b722888af1f169c))
* mqtt topic names ([ad71d14](https://github.com/xabufr/memocadre/commit/ad71d140f74d545f01165b4dbb99047f0507cb10))
* **mqtt:** rework MQTT to init after successful connect ([#27](https://github.com/xabufr/memocadre/issues/27)) ([f86d6d5](https://github.com/xabufr/memocadre/commit/f86d6d52f29e7fc9be2c4b515bd03e43eb8655d2))
* no fallback context ([48b57e4](https://github.com/xabufr/memocadre/commit/48b57e4e762fc7a0cee1ec5958f8848d397f58f9))
* no unsafe in blur ([702bd44](https://github.com/xabufr/memocadre/commit/702bd44043cb85d7efe618ec832d45a249f919dd))
* only keep DPMS property if it is mutable ([51aa1ac](https://github.com/xabufr/memocadre/commit/51aa1ac09b2ac3e9a618a16df3dbfcf47699c370))
* organize imports ([d349d0f](https://github.com/xabufr/memocadre/commit/d349d0f084381c9365a1706490c42f1efb4cdc25))
* paginate smart searches ([8607721](https://github.com/xabufr/memocadre/commit/86077214ff036531f6d68f52690b82b494cc5ace))
* **perfs:** cache view matrix ([521af72](https://github.com/xabufr/memocadre/commit/521af7234f11cc8140d5c902ec6d505be417c8b9))
* **perfs:** reduce Gl calls, use specialized hashmap ([8aae8d3](https://github.com/xabufr/memocadre/commit/8aae8d37375e4b4e185510965201df3b7ae21499))
* **perfs:** remove replace_with ([dde45e4](https://github.com/xabufr/memocadre/commit/dde45e46c1d198129f2951a756f54c939e503348))
* propagate interfaces thread errors ([131cbb7](https://github.com/xabufr/memocadre/commit/131cbb71acf0e0395e348c81498161a7f79309c0))
* reduce Instant::now calls ([6171f5f](https://github.com/xabufr/memocadre/commit/6171f5f3f316dcf8168e76db770a47879bb900dd))
* refactor MQTT code ([6476a6f](https://github.com/xabufr/memocadre/commit/6476a6f04816a5be288a90f1d46ac01c880dd355))
* refactor slide module, start animations ([2311ef6](https://github.com/xabufr/memocadre/commit/2311ef6af2790461e2ad29e4f15fb9cab387dc6c))
* remove config ([291b812](https://github.com/xabufr/memocadre/commit/291b8125fb88b8bdda3c1c2f00d408c6e0a06d77))
* remove dead code ([5589594](https://github.com/xabufr/memocadre/commit/5589594a4e29ce30988e8b93c3273233b7dcf926))
* remove dead code ([c9cd156](https://github.com/xabufr/memocadre/commit/c9cd156272193146323b878a4cf622bcb80eacbb))
* remove deep loop break ([2cb03b2](https://github.com/xabufr/memocadre/commit/2cb03b2a9aeaddc78ca8ba4217821ab457a61da9))
* remove metal ([0767b42](https://github.com/xabufr/memocadre/commit/0767b42ae431ef69a45fc97580ca063219447fb3))
* remove pipeline & add derives ([f035ad3](https://github.com/xabufr/memocadre/commit/f035ad3e8c24586af0e2ccde552702c412277b82))
* remove printlns ([3a990cc](https://github.com/xabufr/memocadre/commit/3a990cc794b24760e3357ba00613585f819a8146))
* remove printlns ([a38c057](https://github.com/xabufr/memocadre/commit/a38c057f8d4b20a2e08c94e3d7e4b874cae1c4cd))
* remove reqwest from deps ([be98ad3](https://github.com/xabufr/memocadre/commit/be98ad34163d4e4ac564fde4dc46a23bb7bf10d9))
* remove some warnings ([0e0201b](https://github.com/xabufr/memocadre/commit/0e0201b78ae828ea3782fd632311a6be02f2d38e))
* remove unused dependencies ([8dcf80e](https://github.com/xabufr/memocadre/commit/8dcf80e75015480c78d36be2ba2c8f40515f0cbc))
* remove unused dependency ([2506bd2](https://github.com/xabufr/memocadre/commit/2506bd21b59e2d53015d1c9058eed220acd9d33d))
* remove unused scissors ([5aec8f1](https://github.com/xabufr/memocadre/commit/5aec8f1deb47d943ed4f3c8fe8ddcb9bcfda680e))
* remove unused use ([e3b2fd1](https://github.com/xabufr/memocadre/commit/e3b2fd1e01ed2fa5227225c3882dd67f6c71070b))
* remove unwrap ([7c9b140](https://github.com/xabufr/memocadre/commit/7c9b14080f0ce64e156c24b33c4b50b68fb8761f))
* remove useless comment ([b0aa4bd](https://github.com/xabufr/memocadre/commit/b0aa4bd8afba513f97526f2b9ddaefe137a632d0))
* remove useless dependency ([d6f8ffa](https://github.com/xabufr/memocadre/commit/d6f8ffaad73f684ab99725d1f239d6941bad52ce))
* remove useless impl Send ([4e932c6](https://github.com/xabufr/memocadre/commit/4e932c645d12a684c8f8e57eaf594b1d72a51915))
* rename config ([cf3e3b6](https://github.com/xabufr/memocadre/commit/cf3e3b68d6970fd693c9d1b152b49390433f4a3e))
* rename fields ([dcff2ff](https://github.com/xabufr/memocadre/commit/dcff2ffd1e6f8b5746d7049ae1efa7d2660641cc))
* rename old photokiosk references ([ce635e0](https://github.com/xabufr/memocadre/commit/ce635e0371f582eefc785c7de3be34c2f6dc3ceb))
* robust MQTT client ([5e9cb9f](https://github.com/xabufr/memocadre/commit/5e9cb9f0b0df58b28f83d53e2c407ec35372ff37))
* round pixels for slide position ([f7fd66c](https://github.com/xabufr/memocadre/commit/f7fd66ced67cc41ea54607760a19d4dd9bed270d))
* rust warnings ([d331469](https://github.com/xabufr/memocadre/commit/d331469741f2a5a3428dc3be200265cfc3eaaa1d))
* simplify sources ([96f9ffe](https://github.com/xabufr/memocadre/commit/96f9ffe02a3a07abbe4a7eec074bc9ef62b276da))
* start introduce helper around GL context bindings ([1659ec8](https://github.com/xabufr/memocadre/commit/1659ec83f10e793acaa7f18701024d2398f310fd))
* switch back to config-rs ([6fdaa8b](https://github.com/xabufr/memocadre/commit/6fdaa8be1f93a0e61af481fb4ca2591d6899e9b5))
* switch from reqwest to minreq ([e854906](https://github.com/xabufr/memocadre/commit/e8549062c1caa05a9d4cbf6e8f51822ccdad60f2))
* switch to config-rs ([58662cc](https://github.com/xabufr/memocadre/commit/58662cc5750bb1974096b908fedf21867ad1d6ba))
* switch to Vek ([6d1386e](https://github.com/xabufr/memocadre/commit/6d1386e255e34861e174790f9fd4d4b52f4ed491))
* testing by mocking OpenGL ([ae87696](https://github.com/xabufr/memocadre/commit/ae87696abc8033485246b1c5532ef8427b962592))
* update dependencies ([b19ee05](https://github.com/xabufr/memocadre/commit/b19ee055d47273055d76d4225898032e62837717))
* update worker ideal max size ([1424e30](https://github.com/xabufr/memocadre/commit/1424e304c11c30af798c050415f5f0619b61a43a))
* upgrade epaint to 0.31.0 ([2652eba](https://github.com/xabufr/memocadre/commit/2652eba3f084275736ab648e71dd725515e07722))
* upgrade glutin and use priority ([a406d5c](https://github.com/xabufr/memocadre/commit/a406d5c2c77172dcea89d993efb37128216a44dd))
* use array-init for fixed array init ([a5aa935](https://github.com/xabufr/memocadre/commit/a5aa935feca6cf039a22f93829aface7f054d82d))
* use blur option from config ([d243ec5](https://github.com/xabufr/memocadre/commit/d243ec51a50ad8d5ad840d1f2e0eddf3dc03e576))
* use GlContext ([835d196](https://github.com/xabufr/memocadre/commit/835d196c6c54804453617bb084d411d609ed3fa6))
* use stdlib where possible ([3f0c819](https://github.com/xabufr/memocadre/commit/3f0c819b2db80ba040c2523eeb1e4cb8f588b7ec))
* warnings ([d33aaa5](https://github.com/xabufr/memocadre/commit/d33aaa5f3e7f0b25699eb7a4a71656ac0df3fa7a))

## 0.1.0 (2025-11-21)


### Features

* ability to draw shapes ([00618e2](https://github.com/xabufr/memocadre/commit/00618e20276565ba1aabbe3b79bc7fb7f9faa9dd))
* add animated transitions ([bd0a205](https://github.com/xabufr/memocadre/commit/bd0a2054230bf049288bdba90f47243f09493a06))
* add bind guard ([92a396b](https://github.com/xabufr/memocadre/commit/92a396bcc412695281b77f57c291964e16acd81f))
* add config support ([86b940e](https://github.com/xabufr/memocadre/commit/86b940e5d865774f4640283f1cb247918abcb3fd))
* Add default config.yaml file with explanations ([102fa6f](https://github.com/xabufr/memocadre/commit/102fa6f6384f45393c596c9dd1db31e6b8716204))
* add dynamic settings loading ([61926b1](https://github.com/xabufr/memocadre/commit/61926b1728417932e8e680ac99f7656f1826a946))
* add GPU blur ([3c1d27f](https://github.com/xabufr/memocadre/commit/3c1d27f1b39965e932720ff182aecc526411f8b5))
* add loading slide ([4d10af7](https://github.com/xabufr/memocadre/commit/4d10af7b5e1bfdd931606e4b9d3412dd4047073b))
* add logs ([700f919](https://github.com/xabufr/memocadre/commit/700f9199b6ccce4b439bb421f3c9a91dfed02103))
* add micro HTTP api to get settings ([2dc9d1c](https://github.com/xabufr/memocadre/commit/2dc9d1cac1274aba0033f5a9055d9a6d0c6f68a7))
* add mqtt config ([fd6dbd6](https://github.com/xabufr/memocadre/commit/fd6dbd6495e9e56dd55b204c54f36df070d0ba4c))
* add retry ([ad6de96](https://github.com/xabufr/memocadre/commit/ad6de96fe4e73167fcae9e1992871fab927a6f95))
* add safe wrapper around glow ([d429463](https://github.com/xabufr/memocadre/commit/d429463138ae9f21db2207294a8d455ac1df38c7))
* add scissors ([6f85384](https://github.com/xabufr/memocadre/commit/6f85384429769a984670013d165499d46aed7143))
* add transitions ([7a9cf26](https://github.com/xabufr/memocadre/commit/7a9cf268bdc586cadfe9c0afb4fdb5f30319cf67))
* animated text position ([57b3d5e](https://github.com/xabufr/memocadre/commit/57b3d5e36b856980c314e5327bc3db5a00fa831c))
* animations ([7ab5c6c](https://github.com/xabufr/memocadre/commit/7ab5c6cc0c9c4cd7a979ed406fbccfd69960c05a))
* background worker is low priority ([65cc33e](https://github.com/xabufr/memocadre/commit/65cc33e69b92c860a56ec2e63b72057f5461340c))
* batch search ([5effc6e](https://github.com/xabufr/memocadre/commit/5effc6e8e96c181888f5f8ced9da2673758ac939))
* better config format for rotation ([a517cd9](https://github.com/xabufr/memocadre/commit/a517cd97aa5b1dad5b0597f6b76bbe07bb03d1e5))
* better epaint integration ([48c87e5](https://github.com/xabufr/memocadre/commit/48c87e589caca440b65cf7ef02b7e6fe081eb692))
* better text background ([2a7dc64](https://github.com/xabufr/memocadre/commit/2a7dc64bf0126fe8fff881f18a959fb8dce66f5e))
* better texture wrapping ([5c076c7](https://github.com/xabufr/memocadre/commit/5c076c747d6950d3a0ddf9ef2f70fd1321bbf32f))
* blur background ([329f070](https://github.com/xabufr/memocadre/commit/329f0701ca05c9fb8fbd42b2c548f53f24af8129))
* can change orientation ([7b5657d](https://github.com/xabufr/memocadre/commit/7b5657dc4ee0c260289971c8ba8b5a6820eda819))
* can configure image downscaling filter ([9bd5cde](https://github.com/xabufr/memocadre/commit/9bd5cde875597932602ff11e94e518d46749d465))
* can trigger next photo from MQTT ([a4d9586](https://github.com/xabufr/memocadre/commit/a4d95861a82d1705b009bf1eea6cac054fca2fda))
* change images ([9b07a77](https://github.com/xabufr/memocadre/commit/9b07a777d9dc65c82d6672a0032a2ae557e7c1a9))
* configurable background ([e5b553d](https://github.com/xabufr/memocadre/commit/e5b553db20376aa2ca4e836b24c4021fec856380))
* configurable blur options ([1cc2984](https://github.com/xabufr/memocadre/commit/1cc298468c0bef15adaa64fb1dbe9c6d121946cc))
* configurable caption ([984dd52](https://github.com/xabufr/memocadre/commit/984dd52ff2cd5c3d98051a6777ef8833629bc6ca))
* configurable date format ([e172961](https://github.com/xabufr/memocadre/commit/e1729611116a7d7749f870028815908feaf9e2eb))
* configurable FPS counter ([2226740](https://github.com/xabufr/memocadre/commit/2226740bb016aec9535e6df95a5256fd5bde1456))
* configurable init slide ([8f4bbd6](https://github.com/xabufr/memocadre/commit/8f4bbd6bfca5d01374d56306c89f4798b370f26a))
* configurable interfaces ([a8c3efc](https://github.com/xabufr/memocadre/commit/a8c3efc5a4c97143b3857c3f180592e77b9b0e56))
* configurable rotation ([6b377c4](https://github.com/xabufr/memocadre/commit/6b377c40692d89691438364716da5547d316123f))
* configuration is hot-reloadable using tokio ([919489c](https://github.com/xabufr/memocadre/commit/919489ca5e55431c98166b247f3b5e7be6cf75d8))
* controllable display ([01025ce](https://github.com/xabufr/memocadre/commit/01025ceeb30d4aadfe2dfb445b13c8e0bd597b7a))
* display image details ([1b13203](https://github.com/xabufr/memocadre/commit/1b1320323a01cde887534083ac9a8c2eb132e0ba))
* display photo details ([23f7460](https://github.com/xabufr/memocadre/commit/23f746071ae9ac2951ff14c99143814beacfae40))
* enter sleep when nothing to draw ([afcddef](https://github.com/xabufr/memocadre/commit/afcddef537801224592378652a4d5cd8bd6fd458))
* epaint text rendering integration ([cf1b296](https://github.com/xabufr/memocadre/commit/cf1b296d2655280cf117635a6c02efb7e2ce1969))
* features for window manager/DRM ([cf6dbce](https://github.com/xabufr/memocadre/commit/cf6dbce8ffcefcdc49fc9ba358f1d5d01e357a32))
* filter by people ([2018ca3](https://github.com/xabufr/memocadre/commit/2018ca3a3813b1fb7942471c34dc4d8c35ad63e2))
* handle framebuffer errors ([2b024d2](https://github.com/xabufr/memocadre/commit/2b024d2f908453fbcfc5903f6d8897a7ee009be1))
* handle more errors ([c79719b](https://github.com/xabufr/memocadre/commit/c79719bece3368784209ed4f9870fc62d16d4627))
* handle more errors ([219b246](https://github.com/xabufr/memocadre/commit/219b2465a7e6e8659967767660573671df2eed3b))
* handle next slide command ([a6e2d3c](https://github.com/xabufr/memocadre/commit/a6e2d3c0e5cc69ed35b018ca3d61b4aabf4c4986))
* handle shaders errors ([eebb8d9](https://github.com/xabufr/memocadre/commit/eebb8d954773b875f986074bc222d6b061686752))
* handle texture errors ([1cc6064](https://github.com/xabufr/memocadre/commit/1cc60647324f851b5f42d99c3d1e6af8ddff81da))
* implement settings saving ([29d07fc](https://github.com/xabufr/memocadre/commit/29d07fc999420574b2c2bcee4fcc419166cd1a1b))
* improve Graphics struct ([765426e](https://github.com/xabufr/memocadre/commit/765426e5fa80332281d8c09d6ef63fa636da7828))
* independent properties animation ([4017cff](https://github.com/xabufr/memocadre/commit/4017cff5219eeea8006f9620a51c41af7a57f518))
* introduce a graphics struct ([fbf99b1](https://github.com/xabufr/memocadre/commit/fbf99b1801df39af0cda9ae7e66a2115934ecd16))
* introduce controls ([3fe8299](https://github.com/xabufr/memocadre/commit/3fe8299231d183a4e17a7bbe19203e10bb954491))
* log immich calls ([b0d7d32](https://github.com/xabufr/memocadre/commit/b0d7d3291a8e9c99e4ca19dcc2df71005e98d818))
* no unwrap in search ([20ecd58](https://github.com/xabufr/memocadre/commit/20ecd58fa0d0b061f57122f1637f031f0d78b8e8))
* partial buffer updates ([9ce4e47](https://github.com/xabufr/memocadre/commit/9ce4e47a165cacdf108f5784ef73b0c628217229))
* patchable config ([d8084de](https://github.com/xabufr/memocadre/commit/d8084de6bf0bfa103b1f0bb9c59e2da4aed2984d))
* print blur time ([b7d5250](https://github.com/xabufr/memocadre/commit/b7d52501e579d7cea9162fe2cd724357cbba74a5))
* re-enable blending + transitions ([7cf3075](https://github.com/xabufr/memocadre/commit/7cf307566365ed07d3d2d447126762b7020ae85b))
* resize sprite ([b1a05cb](https://github.com/xabufr/memocadre/commit/b1a05cb278f1da0b07e3eb310b2793e2482a5786))
* scissor ([fe7890c](https://github.com/xabufr/memocadre/commit/fe7890c430bcb39a778904973e5737737aeead39))
* smart search ([a12eb41](https://github.com/xabufr/memocadre/commit/a12eb4118362836db3df3a50dd8da97055c63b23))
* smooth slide transitions ([822de90](https://github.com/xabufr/memocadre/commit/822de908e8663ea2cdc4970bca987494d3959fd8))
* split image fetch into separate module ([b6fcb4b](https://github.com/xabufr/memocadre/commit/b6fcb4b38e8f8783f9ab7324e42139842114ddc2))
* split settings from sources configuration ([4e7f748](https://github.com/xabufr/memocadre/commit/4e7f748cb765d630ef9d31df748eccdb49496baa))
* start debian packaging ([aded2bc](https://github.com/xabufr/memocadre/commit/aded2bc18f2edd8af3b43db6e541ab0d60db651f))
* start error handling ([5b12f82](https://github.com/xabufr/memocadre/commit/5b12f82029f566a0a00ddecc43b2f9dedd057806))
* start implement safe wrappers arround glow ([48bb620](https://github.com/xabufr/memocadre/commit/48bb620fde5dc23cbf7efac343afc42e99ca4b4a))
* start implementing MQTT interface ([13a2dd6](https://github.com/xabufr/memocadre/commit/13a2dd649cccb9782caeb8c0fbe5b5582afe6831))
* start implementing sources right ([ff54838](https://github.com/xabufr/memocadre/commit/ff54838cd6564e2945697e56372259c041eb3c88))
* support both display modes ([218cea0](https://github.com/xabufr/memocadre/commit/218cea013c81250f6e21acc431e8a13375aef55a))
* support DRM/KMS/GBM rendering ([bb4f1d8](https://github.com/xabufr/memocadre/commit/bb4f1d89d2a576b806ab52964af95c2d887d96db))
* support multiple sources ([5279c87](https://github.com/xabufr/memocadre/commit/5279c87089970ca7ece3629a847038096617fc38))
* support private albums & memory lane ([dd354a0](https://github.com/xabufr/memocadre/commit/dd354a08086415423d13d5aa0e3a16ff119e1602))
* switch to glium ([57bf723](https://github.com/xabufr/memocadre/commit/57bf723df4cf661bd42d9dfa17a0dffcd54921ff))
* test shape drawing with epaint ([8b8bc7d](https://github.com/xabufr/memocadre/commit/8b8bc7ddef834b920ca8a2d4ca0a64b34b9e3edb))
* text placement ([c80868f](https://github.com/xabufr/memocadre/commit/c80868fae42caff6a53ebf49925b6389a77e4581))
* text rendering using glyph-brush ([fe861e4](https://github.com/xabufr/memocadre/commit/fe861e41ecf5accf2ee601c88997daf7efc5d39a))
* texture cleaning ([6ffbed9](https://github.com/xabufr/memocadre/commit/6ffbed997589bffd8d77c3c0de4c92e6d02cda67))
* try next source on error ([2f66d6b](https://github.com/xabufr/memocadre/commit/2f66d6bfc53f56080d7f6bfbc1c8e53926b8b4d2))
* updatable configuration ([181a110](https://github.com/xabufr/memocadre/commit/181a1106cd2808a24b3472a498c08e1433111f22))
* use machine id for MQTT registration ([db7d4f1](https://github.com/xabufr/memocadre/commit/db7d4f1ca45ec576a384047cc5c585fdaf12f578))
* VAO errors ([a8dd710](https://github.com/xabufr/memocadre/commit/a8dd710cfce173dcee7d2eda7dcaa288ac99a362))
* working application winit ([f740c08](https://github.com/xabufr/memocadre/commit/f740c0883cccd7f39f49d3017fa63c1963820326))
* working BG GL context / loading ([b6a4657](https://github.com/xabufr/memocadre/commit/b6a4657f88854d717c1136ea2779a4a4a6293e59))
* working epaint ([063efd0](https://github.com/xabufr/memocadre/commit/063efd07794faebcff7c6cdb1d1af7616e7bce6f))
* working Gl bg with GBM ([315c5d1](https://github.com/xabufr/memocadre/commit/315c5d154540dabfc9a70c765807c7cd1b69a028))
* working MQTT configurable display ([663e148](https://github.com/xabufr/memocadre/commit/663e148bb3fa06b20ee67ca975b7836859333c36))
* working MQTT display duration configuration ([2ca70e8](https://github.com/xabufr/memocadre/commit/2ca70e887f4e57dd6f3fb1a2d8b8978371779595))
* working schema generation ([8d92b10](https://github.com/xabufr/memocadre/commit/8d92b10ada2b8fee31cecb814f2b6e8bcb8e74a9))
* working schematic config ([ee4af4d](https://github.com/xabufr/memocadre/commit/ee4af4dca979da42a199b71ce85794b2e16daf5f))
* working screen pause ([a939f5e](https://github.com/xabufr/memocadre/commit/a939f5e6e5d3a990bd9756fe71299811f172f1d0))


### Bug Fixes

* abort if worker is closed ([5c8c4cf](https://github.com/xabufr/memocadre/commit/5c8c4cfe8cbb4b69743930afb49daba2d1b96652))
* add blur options ([d1f986e](https://github.com/xabufr/memocadre/commit/d1f986eab8c7d77e5ba6416594a1974b9f876a2b))
* add context ([f11491a](https://github.com/xabufr/memocadre/commit/f11491a8762d21050224e1d8c1d4b15121504752))
* add envrc ([df7038a](https://github.com/xabufr/memocadre/commit/df7038ab23e5fe01b564a242d9cd82fb48fcff73))
* add id in name ([e5268fd](https://github.com/xabufr/memocadre/commit/e5268fd78507e15ea94d1f3b1cb8f10c84b0da3c))
* add missing config file ([60ad7b0](https://github.com/xabufr/memocadre/commit/60ad7b0f5eda5def73303641a824dd72c12db9e4))
* add missing deps ([4521c2b](https://github.com/xabufr/memocadre/commit/4521c2b312e6421e8edf5845b38b325879044f9c))
* add missing tools ([fc9169e](https://github.com/xabufr/memocadre/commit/fc9169e4c6369e55912b3fc6e2f86282b4985a8d))
* add timeout in immich requests ([633d302](https://github.com/xabufr/memocadre/commit/633d302a73690e647fb62376711d94b9ecc8587e))
* AppConfig is cloneable ([b5f234d](https://github.com/xabufr/memocadre/commit/b5f234df55adce3ccd842a8b40a8db4409a6cdfd))
* bad ratio ([88ec594](https://github.com/xabufr/memocadre/commit/88ec5949712c9ea3e1ebe53cf96add7799a0c461))
* better error handling for Immich Client ([bb9205a](https://github.com/xabufr/memocadre/commit/bb9205a02e65bcb5f9d92d8a416bd04145eda2fb))
* better error log ([d38e9c7](https://github.com/xabufr/memocadre/commit/d38e9c7bfa60bdea3e631cdcc85bccec42264c1c))
* better image display ([c390e82](https://github.com/xabufr/memocadre/commit/c390e825b452d5f81e85b121b721295338c2cbba))
* better mqtt id ([65027b4](https://github.com/xabufr/memocadre/commit/65027b46649560cd55bcf051a53d9a93e8bbc99a))
* better transitions ([bbb650e](https://github.com/xabufr/memocadre/commit/bbb650ea25081d100db5cf4807a47bfe95531a67))
* change unwrap for expect ([ed20cb7](https://github.com/xabufr/memocadre/commit/ed20cb7789b3dea02361cb56263e2e5e313957b0))
* clean code ([637dcd5](https://github.com/xabufr/memocadre/commit/637dcd576d39e024713804a5362ae3480465b006))
* clean unused code ([aaf0035](https://github.com/xabufr/memocadre/commit/aaf0035d29afa7e76e3271686cac07031c515564))
* clear between frames ([7da5e07](https://github.com/xabufr/memocadre/commit/7da5e073e1898ed5acf6ece8a77a1d28b43ee17e))
* clippy lint ([7f8456e](https://github.com/xabufr/memocadre/commit/7f8456e5db1133c551d943df863e1bf95f4ddad3))
* clippy warnings ([4152cfe](https://github.com/xabufr/memocadre/commit/4152cfe016e426379f6cdef76b9ecbb5c6b3c88c))
* clippy warnings ([3ecb6c7](https://github.com/xabufr/memocadre/commit/3ecb6c74f089f04c3ff0e85bd4834ce5d6545029))
* code fmt ([ee14b5a](https://github.com/xabufr/memocadre/commit/ee14b5aa5bc918e6f9e7e07aa4a75c4321d456bf))
* comment DPMS code for now ([6817858](https://github.com/xabufr/memocadre/commit/681785844f844f15de10a7d986fa58c440ae4809))
* compile ([cc393be](https://github.com/xabufr/memocadre/commit/cc393be1e57f52269ecbc3acfb16b2de9bb4e006))
* config transition duration ([d8fabaf](https://github.com/xabufr/memocadre/commit/d8fabafa725a50ef342b23f4ebc41b3cfe5ee778))
* configurable config path ([8b2c200](https://github.com/xabufr/memocadre/commit/8b2c2005263d93d7a51ef8e7a941373f7cc9f130))
* configure retry max times/max delay ([92bd129](https://github.com/xabufr/memocadre/commit/92bd129d84c848ef060937cffb2207816f24f196))
* debian package ([55e31aa](https://github.com/xabufr/memocadre/commit/55e31aa21381c4e5bd8c08fdc7a69eb28cdf89da))
* debian rights ([00259f6](https://github.com/xabufr/memocadre/commit/00259f641c4f5072de69f9b1a581814440fc9d74))
* don't leak framebuffers ([769a569](https://github.com/xabufr/memocadre/commit/769a569163cad08db1c1585c812b1540c7e62426))
* don't overload GPU ([a6c56a6](https://github.com/xabufr/memocadre/commit/a6c56a6736a5ba17dd9c8d4a2aade768db8f8209))
* don't update texts if not necessary ([7bdcbc9](https://github.com/xabufr/memocadre/commit/7bdcbc918a9694942d9525ff50220e703f093190))
* duration humantime ([53a1e2b](https://github.com/xabufr/memocadre/commit/53a1e2baeb188a24d5a3a65b2b2c575c05d4ebcd))
* extract struct to display image ([70bfca8](https://github.com/xabufr/memocadre/commit/70bfca8e37c70a9ff9202547af86d1fecdf86dca))
* faster transitions ([1e182e6](https://github.com/xabufr/memocadre/commit/1e182e66ecaccb0cc9d392ce8cb855ba54553075))
* fmt ([fbb5cc0](https://github.com/xabufr/memocadre/commit/fbb5cc07cea769636c2b6d845df29363fc9df4df))
* framebuffer leak ([025780b](https://github.com/xabufr/memocadre/commit/025780ba5ab41c6e14132cbf81603d995399f652))
* fullscreen ([804bc1e](https://github.com/xabufr/memocadre/commit/804bc1ed718644c9b1e258acbb2013468e649bb5))
* handle bufferobject errors ([7a0618a](https://github.com/xabufr/memocadre/commit/7a0618ac6e131a9dcdca0f1b9627dab63b45a19f))
* handle error in worker ([be69ab1](https://github.com/xabufr/memocadre/commit/be69ab1f0a23716800c13f548bea92604fa4c813))
* handle missing folder + merge with existing overrides ([599a487](https://github.com/xabufr/memocadre/commit/599a487ca18a93ca0249c9d8e8fb95e3165d584f))
* handle unknown DPMS value from kernel ([37a6d90](https://github.com/xabufr/memocadre/commit/37a6d9094baa1e17d6ddeb12eec45bb1e3daba51))
* improve armv6 build ([9773d1b](https://github.com/xabufr/memocadre/commit/9773d1b3ba325f068ba50d2e2ddd93a3bd2de008))
* improve MQTT resiliency ([77027ff](https://github.com/xabufr/memocadre/commit/77027ff030814d796588b1d473d34b04f0eb04c9))
* increase scissor size ([7f8aa08](https://github.com/xabufr/memocadre/commit/7f8aa08aa170df3e43abad4f406a3f68d9067991))
* introduce a config loader ([4a84cd4](https://github.com/xabufr/memocadre/commit/4a84cd405511ab37eee0f96b8689bdb9e088ba05))
* introduce new type for worker messages ([0562653](https://github.com/xabufr/memocadre/commit/056265387536854003d6e739ea76301717459cd7))
* less instant::now call ([b80ef02](https://github.com/xabufr/memocadre/commit/b80ef02705f2688a360c44988fa8fafa56abd77b))
* lint ([a12543a](https://github.com/xabufr/memocadre/commit/a12543a59c8e4ed985205340d428e135979f1759))
* log settings path ([4c2bcb9](https://github.com/xabufr/memocadre/commit/4c2bcb9558a41feb8ae57d9662cb0bd1befba03b))
* move debug settings ([36a3cd1](https://github.com/xabufr/memocadre/commit/36a3cd1335a1a188b03b7dfef7910bef4bd33d1e))
* move swap calls ([3525718](https://github.com/xabufr/memocadre/commit/35257180e4dc1cec5d275715c259a8aa52c253e2))
* MQTT persitent session ([a2b1ff2](https://github.com/xabufr/memocadre/commit/a2b1ff203aa60199caa821fe3b722888af1f169c))
* mqtt topic names ([ad71d14](https://github.com/xabufr/memocadre/commit/ad71d140f74d545f01165b4dbb99047f0507cb10))
* **mqtt:** rework MQTT to init after successful connect ([#27](https://github.com/xabufr/memocadre/issues/27)) ([f86d6d5](https://github.com/xabufr/memocadre/commit/f86d6d52f29e7fc9be2c4b515bd03e43eb8655d2))
* no fallback context ([48b57e4](https://github.com/xabufr/memocadre/commit/48b57e4e762fc7a0cee1ec5958f8848d397f58f9))
* no unsafe in blur ([702bd44](https://github.com/xabufr/memocadre/commit/702bd44043cb85d7efe618ec832d45a249f919dd))
* only keep DPMS property if it is mutable ([51aa1ac](https://github.com/xabufr/memocadre/commit/51aa1ac09b2ac3e9a618a16df3dbfcf47699c370))
* organize imports ([d349d0f](https://github.com/xabufr/memocadre/commit/d349d0f084381c9365a1706490c42f1efb4cdc25))
* paginate smart searches ([8607721](https://github.com/xabufr/memocadre/commit/86077214ff036531f6d68f52690b82b494cc5ace))
* **perfs:** cache view matrix ([521af72](https://github.com/xabufr/memocadre/commit/521af7234f11cc8140d5c902ec6d505be417c8b9))
* **perfs:** reduce Gl calls, use specialized hashmap ([8aae8d3](https://github.com/xabufr/memocadre/commit/8aae8d37375e4b4e185510965201df3b7ae21499))
* **perfs:** remove replace_with ([dde45e4](https://github.com/xabufr/memocadre/commit/dde45e46c1d198129f2951a756f54c939e503348))
* propagate interfaces thread errors ([131cbb7](https://github.com/xabufr/memocadre/commit/131cbb71acf0e0395e348c81498161a7f79309c0))
* reduce Instant::now calls ([6171f5f](https://github.com/xabufr/memocadre/commit/6171f5f3f316dcf8168e76db770a47879bb900dd))
* refactor MQTT code ([6476a6f](https://github.com/xabufr/memocadre/commit/6476a6f04816a5be288a90f1d46ac01c880dd355))
* refactor slide module, start animations ([2311ef6](https://github.com/xabufr/memocadre/commit/2311ef6af2790461e2ad29e4f15fb9cab387dc6c))
* remove config ([291b812](https://github.com/xabufr/memocadre/commit/291b8125fb88b8bdda3c1c2f00d408c6e0a06d77))
* remove dead code ([5589594](https://github.com/xabufr/memocadre/commit/5589594a4e29ce30988e8b93c3273233b7dcf926))
* remove dead code ([c9cd156](https://github.com/xabufr/memocadre/commit/c9cd156272193146323b878a4cf622bcb80eacbb))
* remove deep loop break ([2cb03b2](https://github.com/xabufr/memocadre/commit/2cb03b2a9aeaddc78ca8ba4217821ab457a61da9))
* remove metal ([0767b42](https://github.com/xabufr/memocadre/commit/0767b42ae431ef69a45fc97580ca063219447fb3))
* remove pipeline & add derives ([f035ad3](https://github.com/xabufr/memocadre/commit/f035ad3e8c24586af0e2ccde552702c412277b82))
* remove printlns ([3a990cc](https://github.com/xabufr/memocadre/commit/3a990cc794b24760e3357ba00613585f819a8146))
* remove printlns ([a38c057](https://github.com/xabufr/memocadre/commit/a38c057f8d4b20a2e08c94e3d7e4b874cae1c4cd))
* remove reqwest from deps ([be98ad3](https://github.com/xabufr/memocadre/commit/be98ad34163d4e4ac564fde4dc46a23bb7bf10d9))
* remove some warnings ([0e0201b](https://github.com/xabufr/memocadre/commit/0e0201b78ae828ea3782fd632311a6be02f2d38e))
* remove unused dependencies ([8dcf80e](https://github.com/xabufr/memocadre/commit/8dcf80e75015480c78d36be2ba2c8f40515f0cbc))
* remove unused dependency ([2506bd2](https://github.com/xabufr/memocadre/commit/2506bd21b59e2d53015d1c9058eed220acd9d33d))
* remove unused scissors ([5aec8f1](https://github.com/xabufr/memocadre/commit/5aec8f1deb47d943ed4f3c8fe8ddcb9bcfda680e))
* remove unused use ([e3b2fd1](https://github.com/xabufr/memocadre/commit/e3b2fd1e01ed2fa5227225c3882dd67f6c71070b))
* remove unwrap ([7c9b140](https://github.com/xabufr/memocadre/commit/7c9b14080f0ce64e156c24b33c4b50b68fb8761f))
* remove useless comment ([b0aa4bd](https://github.com/xabufr/memocadre/commit/b0aa4bd8afba513f97526f2b9ddaefe137a632d0))
* remove useless dependency ([d6f8ffa](https://github.com/xabufr/memocadre/commit/d6f8ffaad73f684ab99725d1f239d6941bad52ce))
* remove useless impl Send ([4e932c6](https://github.com/xabufr/memocadre/commit/4e932c645d12a684c8f8e57eaf594b1d72a51915))
* rename config ([cf3e3b6](https://github.com/xabufr/memocadre/commit/cf3e3b68d6970fd693c9d1b152b49390433f4a3e))
* rename fields ([dcff2ff](https://github.com/xabufr/memocadre/commit/dcff2ffd1e6f8b5746d7049ae1efa7d2660641cc))
* rename old photokiosk references ([ce635e0](https://github.com/xabufr/memocadre/commit/ce635e0371f582eefc785c7de3be34c2f6dc3ceb))
* robust MQTT client ([5e9cb9f](https://github.com/xabufr/memocadre/commit/5e9cb9f0b0df58b28f83d53e2c407ec35372ff37))
* round pixels for slide position ([f7fd66c](https://github.com/xabufr/memocadre/commit/f7fd66ced67cc41ea54607760a19d4dd9bed270d))
* rust warnings ([d331469](https://github.com/xabufr/memocadre/commit/d331469741f2a5a3428dc3be200265cfc3eaaa1d))
* simplify sources ([96f9ffe](https://github.com/xabufr/memocadre/commit/96f9ffe02a3a07abbe4a7eec074bc9ef62b276da))
* start introduce helper around GL context bindings ([1659ec8](https://github.com/xabufr/memocadre/commit/1659ec83f10e793acaa7f18701024d2398f310fd))
* switch back to config-rs ([6fdaa8b](https://github.com/xabufr/memocadre/commit/6fdaa8be1f93a0e61af481fb4ca2591d6899e9b5))
* switch from reqwest to minreq ([e854906](https://github.com/xabufr/memocadre/commit/e8549062c1caa05a9d4cbf6e8f51822ccdad60f2))
* switch to config-rs ([58662cc](https://github.com/xabufr/memocadre/commit/58662cc5750bb1974096b908fedf21867ad1d6ba))
* switch to Vek ([6d1386e](https://github.com/xabufr/memocadre/commit/6d1386e255e34861e174790f9fd4d4b52f4ed491))
* testing by mocking OpenGL ([ae87696](https://github.com/xabufr/memocadre/commit/ae87696abc8033485246b1c5532ef8427b962592))
* update dependencies ([b19ee05](https://github.com/xabufr/memocadre/commit/b19ee055d47273055d76d4225898032e62837717))
* update worker ideal max size ([1424e30](https://github.com/xabufr/memocadre/commit/1424e304c11c30af798c050415f5f0619b61a43a))
* upgrade epaint to 0.31.0 ([2652eba](https://github.com/xabufr/memocadre/commit/2652eba3f084275736ab648e71dd725515e07722))
* upgrade glutin and use priority ([a406d5c](https://github.com/xabufr/memocadre/commit/a406d5c2c77172dcea89d993efb37128216a44dd))
* use array-init for fixed array init ([a5aa935](https://github.com/xabufr/memocadre/commit/a5aa935feca6cf039a22f93829aface7f054d82d))
* use blur option from config ([d243ec5](https://github.com/xabufr/memocadre/commit/d243ec51a50ad8d5ad840d1f2e0eddf3dc03e576))
* use GlContext ([835d196](https://github.com/xabufr/memocadre/commit/835d196c6c54804453617bb084d411d609ed3fa6))
* use stdlib where possible ([3f0c819](https://github.com/xabufr/memocadre/commit/3f0c819b2db80ba040c2523eeb1e4cb8f588b7ec))
* warnings ([d33aaa5](https://github.com/xabufr/memocadre/commit/d33aaa5f3e7f0b25699eb7a4a71656ac0df3fa7a))
