71 karma · joined May 19, 2024
I (ab)use it in my image (pre)viewer to have image presentation area always fitting image during pan&zoom without window borders limiting it, while having underlying windows visible outside of it (transparent fullscreen overlay): https://github.com/shatsky/lightning-image-viewer
UPD seems that company claims they reside outside Russia and is silent about their previous residence and relocation, fork readme claims that devs still reside in Russia and company is trying to hide it. Ambiguous situation.
Tiny desktop (pre)viewer which displays image in transparent overlay without any UI, allowing to look into specific image detail with single hand move (zoom with scroll and pan with drag simultaneously like in map apps, with nothing but display borders limiting visible image surface) and toggle between file manager and image view almost instantly (close with left click anywhere/keyboard Enter).
Also finished initial rewrite in Rust just hours ago:) (originally did it in C and intentionally tried to make it initially close to preceding C codebase before going further, so many things are still managed manually)
PS. Actually I'll risk to share my (I'm new to Rust) thoughts about it: https://shatsky.github.io/notes/2025-12-22_runtime-code-shar...
No, this is just plain wrong. There are very specific problems which happen when there is not enough memory.
1. File-backed page reads causing more disk reads, eventually ending with "programs being executed from disk" (shared libraries are also mmaped) which feels like system lockup. This does not need any "egalitarian reclamation" abstraction and swap, and swap does not solve it. But it can be solved simply by reserving some minimal amount of memory for buf/cache, with which system is still responsive. 2. Eventually failure to allocate more memory for some process. Any solutions like "page reclamation" with pushing unused pages to some swap can only increase maximum amount of memory which can be used before it happens, from one finite value to bigger finite value. When there is no memory to free without losing data, some process must be killed. Swap does not solve this. The least bad solution would be to warn user in advance and let them choose processes to kill.
See also https://github.com/hakavlad/prelockd
In my understanding, integrity is exactly about software being in certain known correct state, including absence of anything which is not part of that state. Of course integrity of parts of software system like individual packages contents does not make it really reliable when the whole system does not have it. NixOS has it and also allows to "run the same thing"
NixOS makes that too, its whole "system output path closure" is as immutable as every single store unit within it. But NixOS "reuses" units which are unaffected by NixOS config changes when applying new config, making its "system rebuild" super fast and light on resources when something like a single config file is changed in NixOS config. And possible to be done "in place", unlike with "conventional immutable distro"
OpenXR is "Vulkan for VR" by the way, every major HMD vendors runtime supports it. Though only SteamVR supports Linux, and there's mess with support of advanced tech like asynchronous reprojection, I hope Monado which is "Mesa for VR" will succeed. And Firefox gets WebXR.