diff --git a/feeds/feed.xml b/feeds/feed.xml
new file mode 100644
index 0000000..7f02aa7
--- /dev/null
+++ b/feeds/feed.xml
@@ -0,0 +1,1537 @@
+
+
+ LINux on MOBile
+ LINMOB.net is a blog about LINux on MOBile devices. With the PinePhone (Pro) and Librem 5 shipping it is back to report on GNU+Linux on mobile devices.
+
+
+ Zola
+ 2025-04-21T17:25:42+00:00
+ https://linmob.net/feed.xml
+
+ Weekly GNU-like Mobile Linux Update (16/2025): Counting Easter Eggs
+ 2025-04-21T17:25:42+00:00
+ 2025-04-21T17:25:42+00:00
+
+ https://linmob.net/weekly-update-16-2025/
+ <p>FuriOS update 13.0.9 adds Pipewire camera support (and other things), GNOME Clocks gains boottime alarms that work while suspended, Nemo Mobile demonstrates device locking on video, Sailfish OS Community News and a Ubuntu Touch Q&A, and way, way more. Enjoy!</p>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>Community News: <a href="https://forum.sailfishos.org/t/sailfish-community-news-17th-april-2025-easter/22772">Sailfish Community News, 17th April 2025 - Easter</a></li>
+<li>FuriLabs: <a href="https://furilabs.com/update-13-0-9/">Update 13.0.9</a>
+<ul>
+<li>goatwildernesscollective: <a href="https://social.librem.one/@goatwildernesscollective/114370713448750235">"Solid furios 13.0.9 upgrade!…"</a></li>
+</ul>
+</li>
+<li>Purism: <a href="https://puri.sm/posts/pureos-crimson-development-report-march-2025/">PureOS Crimson Development Report: March 2025</a>
+<ul>
+<li>Sunshine: <a href="https://lemmy.ca/post/42357405">PureOS Crimson Development Report: March 2025 https://lemmy.ca/post/42357405</a></li>
+</ul>
+</li>
+<li>PINE64: <a href="https://pine64.org/2025/04/13/april_2025/">April Update: Risc It For A Biscuit</a> <em>No phone news, but still a good read.</em>
+<ul>
+<li>PINE64official (Reddit): <a href="https://www.reddit.com/r/PINE64official/comments/1jyn90f/april_2025_community_update/">April 2025 Community Update</a></li>
+</ul>
+</li>
+<li>Ergaster: <a href="https://ergaster.org/posts/2025/04/15-social-media-affect-me/">Social media affect me more than I thought</a></li>
+<li>Drew DeVaults blog: <a href="https://drewdevault.com/2025/04/20/2025-04-20-Tech-sector-restistance.html">Resistance from the tech sector</a></li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>UBports: <a href="https://www.youtube.com/watch?v=4ksTW_ypmwM">Ubuntu Touch Q&A 163</a>. <em>Home folder encryption, new Apps and other good stuff!</em></li>
+<li>neochapay: <a href="https://www.youtube.com/watch?v=1OFwqrlXKrw">Device locking on nemomobile</a></li>
+<li>Continuum Gaming: <a href="https://www.youtube.com/watch?v=v5fz87RLriA">Continuum Gaming E465: SFOS – Update 5.0.0.67 for all supported devices</a></li>
+<li>Living In Harmony: <a href="https://www.youtube.com/watch?v=vQlj0YSe6BU">2026 global ready to go! OpenHarmony + Oniro rewrite operating system landscape of smart devices?</a></li>
+<li>Sohag H4ckZ: <a href="https://www.youtube.com/watch?v=5d0nRZK7Exs">DanctNIX Arch Linux ARM First Boot on PinePhone Pro | Pure Linux on Mobile!</a></li>
+<li>NekoCWD: <a href="https://mastodon.social/@NekoCWD/114332912391554295">Cat printing time lapse 🐱Shot on <em>close to</em> mainline linux @postmarketOS Using OnePlus 6 camera and notebook GPU for video encoding Non-compresed 1.4hrs video: https://youtu.be/AFlWGR7XvR8 #ShotOnMainline #ShotOnOnePlus #mobilelinux #linuxonmobile</a></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>Adrian: <a href="https://chaos.social/@adrianyyy/114375469156356660">"sooo our sm7150-mainline kernel (and therefore also U-Boot) currently supports…"</a></li>
+<li>peja: <a href="https://mastodon.social/@peja/114366994149108367">"Just discovered a cool feature on my GNOME mobile phone—if you tap the clock/date in the top bar, it opens quick access to the calendar, weather, and world clocks (just like the desktop version!). Really handy! 👍#postmarketos #gnomeonmobile #mobilelinux"</a></li>
+<li>VolkerKrause: <a href="https://floss.social/@VolkerKrause/114357467549511441">A bunch of updates coming to #KDE's #UnifiedPush push notification infrastructure: https://volkerkrause.eu/2025/04/18/kde-kunifiedpush-webpush.html</a></li>
+<li>dcz: <a href="https://fosstodon.org/@dcz/114351414964246501">"Back to #Wayland and input methods.What's your favorite input method?Cause for me it was the one on old #Nokia phones. I could type with my hands in my pockets! Handy in winter.https://codeberg.org/dcz/stiwriTested with #cosmic and #GTK .This is just the beginning. Actually useful stuff is coming in the future. #Mobile keyboards, #Chinese input is what it's for:https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/396#dumbphone #mobilelinux #linuxmobile #CJK"</a></li>
+<li>collabora: <a href="https://floss.social/@collabora/114337074050680368">"PanVK has reached a new milestone, and is now officially conformant with the #Vulkan 1.1 specification on the Arm Mali-G610 GPU! 🎉 https://www.collabora.com/news-and-blog/news-and-events/panvk-is-officially-vulkan-11-conformant.html #Panfrost #OpenSource"</a></li>
+<li>dos: <a href="https://social.librem.one/@dos/114337679694036374">"The Librem 5 (and mobile GNU/Linux in general) has matured a lot over the years, but there are still some areas where the software stack is behind the hardware capabilities. Some of them are often talked about, such as camera quality or GPU (GLES3/Vulkan/OpenCL), but there are also lesser known ones in need of some plumbing and middleware infrastructure. Maybe you'll find something interesting to hack on there?1/N 🧵#mobilelinux #linuxmobile #librem5 #linuxsmartphones"</a>. <em>Interesting thread, not just for Librem 5 users/owners!</em></li>
+<li>austriancoder: <a href="https://fosstodon.org/@austriancoder/114361219388391970">dEQP-GLES3.functional.shaders.texture_functions.texelfetch.*Passed: 24/24 (100.0%)#etnaviv #mesa</a></li>
+<li>Liberux: <a href="https://mastodon.social/@Liberux/114336884917535300">📸❓ What's hiding under the cover?Next week we’ll share some big news about the development of Liberux NEXX.Want to be the first to know via email? Subscribe on our website 👉 https://liberux.net/#LiberuxNEXX #linuxphones #opensource #TechUpdate</a></li>
+<li>Lemmy.ca - linuxphones: <a href="https://lemmy.ca/post/42449278">X11 running on the PinephonePro under FreeBSD</a></li>
+</ul>
+<h4 id="events">Events</h4>
+<ul>
+<li>KDE Akademy: <a href="https://akademy.kde.org/news/2025-04_akademy-2025-registration/">Akademy 2025: Registration Now Open</a></li>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114365655733111852">"A Mobile track at FOSSY was just added to the schedule! 🎉If you have a talk about free and open source software on mobile devices that you've always wanted to give, now is your chance 😁The submission thing is open until April 28:https://2025.fossy.us/call-for-proposals/#linuxmobile #fossy2025 #pdx"</a></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/04/twig-196/">#196 Dot Release</a></li>
+<li>Carlos Garcia Campos: <a href="https://blogs.igalia.com/carlosgc/2025/04/21/graphics-improvements-in-webkitgtk-and-wpewebkit-after-the-switch-to-skia/">Graphics improvements in WebKitGTK and WPEWebKit after the switch to Skia</a></li>
+<li>ar.xjuan: <a href="https://blogs.gnome.org/xjuan/2025/04/20/cambalache-0-96-released/">Cambalache 0.96 Released!</a></li>
+<li>Mat: <a href="https://blogs.gnome.org/mathias/2025/04/15/one-year-of-mahjong-solitaire/">One Year of Mahjong Solitaire</a></li>
+<li>Allan Day: <a href="https://blogs.gnome.org/aday/2025/04/14/gnome-foundation-update-april-2025/">GNOME Foundation Update, April 2025</a></li>
+<li>Revisto: <a href="https://blogs.gnome.org/alirezash/2025/04/13/journey-to-gnome-circle-community-app-ideas-and-getting-started/">Journey to GNOME Circle: Community, App Ideas, and Getting Started</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>agx: <a href="https://ruhr.social/@agx/114365296635619924">Not much news on other mobile platforms but I needed a reliable clock that wakes me up even when the 📱 is suspended so I added some boottime clock support to #gnomeClocks. This together with #feedbackd support can be found in https://gitlab.gnome.org/guidog/gnome-clocks and #phosh's nightly packages.</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/04/19/this-week-in-plasma-many-many-things/">This Week in Plasma: many many things</a>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-Plasma-Mid-April-2025">KDE Preps More Wayland Improvements, Addresses Another Possible KWin Crash</a></li>
+</ul>
+</li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/04/13/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/gear/25.04.0/">KDE ⚙️ Gear 25.04</a></li>
+<li>Volker Krause: <a href="https://www.volkerkrause.eu/2025/04/18/kde-kunifiedpush-webpush.html">KUnifiedPush Web Push Update</a></li>
+<li>KDE Akademy: <a href="https://akademy.kde.org/news/2025-04_akademy-2025-registration/">Akademy 2025: Registration Now Open</a></li>
+<li>Qt blog: <a href="https://www.qt.io/blog/qml-debugging-in-visual-studio-code">QML Debugging in Visual Studio Code</a></li>
+<li>Qt blog: <a href="https://www.qt.io/blog/qt-extension-1.4.0-for-vs-code-released">Qt Extension 1.4.0 for VS Code released</a></li>
+<li>notmart: <a href="https://notmart.org/blog/2025/04/towards-a-transition-from-kwallet-to-secret-service/">Towards a transition from KWallet to Secret Service</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>Community News - Sailfish OS Forum: <a href="https://forum.sailfishos.org/t/sailfish-community-news-17th-april-2025-easter/22772">Sailfish Community News, 17th April 2025 - Easter</a></li>
+<li>Lemmy.ca - linuxphones: <a href="https://lemmy.ca/post/42456736">OSM Scout for Sailfish</a></li>
+<li>Lemmy.ca - linuxphones: <a href="https://lemmy.ca/post/42361911">SuperTuxKart (Beta) for Sailfish OS</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1271&list=newpipe">Day 42</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1270&list=newpipe">Day 41</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1269&list=newpipe">Day 40</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1268&list=newpipe">Day 39</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1267&list=newpipe">Day 38</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1266&list=newpipe">Day 37</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1265&list=newpipe">Day 36</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1264&list=newpipe">Day 35</a></li>
+<li>#sailfishOS: <a href="https://toot.matereal.eu/@schmittlauch/114369058543630716">Additionally, buying these devices leaves a profit at that US corporation, not at sustainable other vendors like @Fairphone or @shiftphones.So my decision is not clear so far. But #SailfishOS is also not really hardened, only a bit obscure.</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10916/ubuntu-touch-q-a-163-call-for-questions">Ubuntu Touch Q&A 163 Call For Questions</a></li>
+<li>fredldotme: <a href="https://mastodon.social/@fredldotme/114347386682725173">phablet@ubuntu-phablet:~$ pwd/home/phablet-encrypted Finally solving this.</a></li>
+<li>os_sci: <a href="https://mastodon.social/@os_sci/114347177782209126">"Open Source #Lomiri is developing so fast, in a couple of years it can become the #desktop environment running on your PC, Phone, Tablet and Smartwatch. May the #foss be with you.https://os-sci.com/blog/our-blog-posts-1/the-evolution-of-linux-desktop-managers-a-journey-from-x-window-system-to-lomiri-56"</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>FuriLabs: <a href="https://furilabs.com/update-13-0-9/">Update 13.0.9</a></li>
+<li>Mobian mobian-recipes Merge Requests: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/141">README.md: Running image with virt-manager</a></li>
+<li>postmarketOS (Mastodon): <a href="https://fosstodon.org/@postmarketOS/114331427178177078">Heads up: "On certain devices (Adreno-based GPUs, e.g. OnePlus 6) Flatpaks apps using GTK4 might fail to start with a currently unknown reason.As a temporary workaround, you can start flatpak apps with GSK_RENDERER=ngl as environment variable."pmaports issue:https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/3655edge blog post (same text):https://postmarketos.org/edge/2025/04/13/gtk4-flatpak-apps-fail-to-start/</a>
+<ul>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114361115401533000">"@postmarketOS turns out it miiight be a new Mesa 25.0 bug, which means it will affect any #GTK4 (and other?) apps using #vulkan rendering on Adreno 6xx GPUs...https://gitlab.freedesktop.org/mesa/mesa/-/issues/13012"</a></li>
+</ul>
+</li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>linuxphoneapps: <a href="https://floss.social/@linuxphoneapps/114357565033026953">"If you have a #PinePhone or another #LinuxMobile device where Firefox feels a bit sluggish, Kumo may be worth a look: https://linuxphoneapps.org/apps/org.catacombing.kumo/These days installing has become a lot easier, as Kumo is now available on Flathub: https://flathub.org/apps/org.catacombing.kumo"</a></li>
+<li>camiloh: <a href="https://fosstodon.org/@camiloh/114354870196346644">Pix is coming with a new image editor for the upcoming release. #mauikit and more@mauiproject</a></li>
+<li>afranke: <a href="https://mamot.fr/@afranke/114353368041994958">"Really Cool? Reasonably Complete? Rose Colored? Release Candidate, of course!#Fractal 11.rc is out.https://discourse.gnome.org/t/fractal-11-rc-released/28427"</a></li>
+<li>Pascal Graber: <a href="https://floss.social/@jumplink/114374368073965078">"Tried out Highscore (formerly GNOME Games) on my OnePlus 6T via the Flatpak developer builds under GNOME Mobile — and wow, it runs beautifully on a touch-based mobile form factor! 💜🎮…"</a></li>
+<li>profdiggity: <a href="https://privacysafe.social/@profdiggity/114344026504416562">Hell Yeah we've got @privacysafe apps running on the #PinePhone #smartphone Thanks @mikalai for the photos. We'll get more website-ready ones up soon but I had to share with our #social community!!!!!!111 🥳 Stay Tuned https://privacysafe.app</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/one.jwr.interstellar/">Interstellar</a>. <em>One for the Lemmy, Mbin etc. enthusiasts.</em></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.johannesboehler2.bmicalculator/">BMI Calculator</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/eu.jumplink.learn6502/">Learn 6502 Assembly</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.diegoivan.gatictactoe/">GaticTacToe</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.seadve.delineate/">Delineate</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.krafting.hexcolordle/">Hex Colordle</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.krafting.pedantik/">PedantiK</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.krafting.reddy/">Reddy</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.krafting.semantik/">SemantiK</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.gnome.crosswords/">Crosswords</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.gnome.mahjongg/">Mahjongg</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/page.codeberg.libre_menu_editor.libremenueditor/">Main Menu</a></li>
+<li>Planet KDE: <a href="https://haruna.kde.org/blog/2025-04-16-haruna-1.4/">Haruna 1.4</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250420-msm8953-interconnect-v2-0-828715dcb674@lucaweiss.eu/">[PATCH v2 0/2] Add interconnect nodes and paths for MSM8953 SoC</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250419-hlte-touchkey-v1-1-9d93c3e2b31f@lucaweiss.eu/">[PATCH] ARM: dts: qcom: msm8974-samsung-hlte: Add touchkey support</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250419-msm8974-mmc-alias-v1-0-82aa131224b6@lucaweiss.eu/">[PATCH 0/3] Add devicetree aliases for mmc on multiple MSM8974 devices</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250419-togari-v1-0-45840c677364@lucaweiss.eu/">[PATCH 0/4] Add support for Sony Xperia Z Ultra (togari)</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250418-wm8998-v1-1-21c4bead9cd8@apitzsch.eu/">[PATCH] ASoC: wm8998: Add Kconfig prompt</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/D99SSJAOJE3V.ENIEJ9IWFZLF@fairphone.com/">Re: [PATCH v2 0/3] Fairphone 5 DisplayPort over USB-C support</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Sway-1.11-rc1-Released">Sway 1.11-rc1 Released With Many New Features & New Wayland Protocols</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.13-Ends">Linux 6.13 Series Ends With The Linux 6.13.12 Release</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GCC-15.1-RC-Released">GCC 15.1 Compiler Release Candidate For Testing, GCC 15.1.0 Potentially Next Week</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GCC-15-Branched">GCC 15 Compiler Branched Ahead Of GCC 15.1 Stable Release</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/04/18/this-week-in-matrix-2025-04-18/">This Week in Matrix 2025-04-18</a></li>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/04/introducing-policy-servers/">Introducing Policy Servers</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit#">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+<p><em>If you can imagine to put this collection together (it's mostly deleting irrelevant stuff, after scripts have collected it), please get in touch via email (see below)! It would really help to have someone else taking on the responsibility for this collection every once in a while!</em></p>
+
+
+
+ Weekly GNU-like Mobile Linux Update (15/2025): Boot your phone from USB
+ 2025-04-13T21:31:28+00:00
+ 2025-04-13T21:31:28+00:00
+
+ https://linmob.net/weekly-update-15-2025/
+ <p>This past week:</p>
+<ul>
+<li>USB boot capability demonstrated for multiple Linux phones,</li>
+<li>a loaded postmarketOS monthly update,</li>
+<li>Furilabs FLX1 gains PipeWire camera support ... and way, way more!</li>
+</ul>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>tbernard: <a href="https://blogs.gnome.org/tbernard/2025/04/11/gnome-stf-2024/">GNOME STF 2024 Project Report</a></li>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/04/09/pmOS-update-2025-03/">postmarketOS in 2025-03: OP6 & MSM89x7 Camera, Generic SM7150, COSMIC, Musl Collation + I18n</a>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/28333008">postmarketOS in 2025-03: OP6 & MSM89x7 Camera, Generic SM7150, COSMIC, Musl Collation + I18n</a></li>
+</ul>
+</li>
+<li>Liliputing: <a href="https://liliputing.com/phosh-0-46-0-brings-customization-ui-improvements-to-the-mobile-linux-user-interface/">Phosh 0.46.0 brings customization, UI improvements to the mobile Linux user interface</a></li>
+<li>LinuxPhoneApps.org: <a href="https://linuxphoneapps.org/blog/additions-of-q1-2025/">Q1/2025 Progress: Over 20 apps added and many improvements</a>
+<ul>
+<li>Lemmy.ca - linuxphones: <a href="https://lemmy.ca/post/42036578">Q1/2025 Progress: Over 20 apps added and many improvements</a></li>
+</ul>
+</li>
+<li>Purism: <a href="https://puri.sm/posts/made-in-america-purisms-liberty-phone-and-the-vision-of-security-privacy-and-independence/">Made in America: Purism’s Liberty Phone and the Vision of Security, Privacy, and Independence</a></li>
+<li>404 Media: <a href="https://www.404media.co/how-a-2-000-made-in-the-usa-liberty-phone-phone-is-manufactured/">How a $2,000 'Made in the USA' Phone Is Manufactured</a>
+<ul>
+<li><a href="https://news.ycombinator.com/item?id=43646920">How a $2k 'Made in the USA' Phone Is Manufactured | Hacker News</a></li>
+</ul>
+</li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>Continuum Gaming: <a href="https://www.youtube.com/watch?v=s_oUJITSwwk">Continuum Gaming E464: SFOS – App <code>Fahrplan</code>: Not only for German train rides</a></li>
+<li>neochapay: <a href="https://www.youtube.com/watch?v=SAlY0U5XIj4">NemoMobile first start on OrangePI 3b v2.1</a></li>
+<li>Pai (The Dev): <a href="https://www.youtube.com/watch?v=aW6oQIGk5cg">I speed run port PostmarketOS to galaxy J7 2016 (Kinda?)(19:01Min)</a></li>
+<li>Sad panic: <a href="https://www.youtube.com/watch?v=GdAD5K7pM6w">Droidian (Mobian / Debian for Android) - Samsung Galaxy M21 (2025-04-08)</a></li>
+<li>Jitube: <a href="https://www.youtube.com/watch?v=gSp5Z3_mviM">Tester PostMarketOs sur Nokia N900</a></li>
+<li>Linux Nation: <a href="https://www.youtube.com/watch?v=35PeW3_H7yg">FuriPhone FLX1 Linux Smartphone nach 6 Monaten (Langzeit-Review)</a>. <em>German; unfortunately the automatically generated (and then translated) subtitles are quite inaccurate. Definitely worth watching though if you can understand German.</em></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>adrianyyy: <a href="https://chaos.social/@adrianyyy/114325229541450445">"blood, sweat and tears but it works! Finally I can boot my phone from a USB stick"</a></li>
+<li>matthewcroughan: <a href="https://social.defenestrate.it/objects/098e94ca-5062-4067-a66a-83bdb9c9e904">Generic aarch64 NixOS installer via USB Boot on U-Boot -> Grub on a qcm6490 thanks to the genius of @cas and more#weeknotes #nixos </a></li>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114312382046725269">"is it too late to join the #pipewire party? i hope not, or else my #flx1 will be sadall applications that use pipewire can finally utilize the camera (adding to our list of v4l, qtmultimedia and android apps)one issue we are facing is that aperture is not very happy with the back cameras, so applications like #GNOME snapshot or authenticator will have the preview flipped. captured frames are surprisingly not flipped tho:https://gitlab.gnome.org/GNOME/snapshot/-/issues/261#furios #furilabs #LinuxMobile #mobilelinux"</a> <a href="https://social.likeadragonmaid.dev/@fakeshell/114321111331616349">@rmader thanks a lot Robert! that was indeed the solutionit now detects and works fine</a></li>
+<li>riscv64: <a href="https://procursus.social/@riscv64/114302996389659063">"linux-apple has been moved to its own GitHub org. Also, to avoid trademark issues, it has been renamed. Considering fork networks, new repositories are made instead of simply transferring the old ones.hopefully documentation will be improved soon https://github.com/HoolockLinux"</a></li>
+<li>Lemmy.ca - linuxphones: <a href="https://lemmy.ca/post/42127283">My take on the "State of Mobile Linux"</a></li>
+<li>vkc: <a href="https://linuxmom.net/@vkc/114297324684796662">"There's a <em>huge</em> difference between "I would like [software] better if they did [idea]" vs "[software] is bad unless the devs do [idea]". Unless you're the dev, you should take some time and think about how you word that sentence!"</a></li>
+</ul>
+<h4 id="events">Events</h4>
+<ul>
+<li>FrOSCon: <a href="https://bonn.social/@FrOSCon/114308137864950919">"The #FrOSCon20 CfP is now open with the focus on: Clouds over Europe - Digital sovereignty and broken promises When the car pilot fails - risks and side effects of AI Does it Matter? - Smart Home in 2025 Retro computing - VAXination becoming cool again Reproducible publications - Open source in science Limited usability - European Accessibility Act If you would like to take part, go to https://froscon.org/cfp/cfpapers/and send us your submissions."</a></li>
+<li>tbernard: <a href="https://mastodon.social/@tbernard/114331175191839150">"📆 Save the Date 📆We're having another edition of #BoilingTheOcean on May 24th and 25th!Join us for two days of hacking on low-level emancipatory tech in Berlin. Agenda, location, etc. TBA :)#gnome #gtk #linuxmobile #p2p #p2panda #berlin"</a></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/04/twig-195/">#195 Typed Weather</a></li>
+<li>tbernard: <a href="https://blogs.gnome.org/tbernard/2025/04/11/gnome-stf-2024/">GNOME STF 2024 Project Report</a></li>
+<li>Planet GNOME: <a href="https://blogs.gnome.org/chergert/2025/04/07/foundry-documentationmanager/">Foundry.DocumentationManager</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GNOME-2nd-Core-App-TypeScript">GNOME Now Has A Second Core App Written In TypeScript</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>phosh: <a href="https://fosstodon.org/@phosh/114297849271193974">"As part of or work on #Cellbroadcast we've documented our current test setup: https://codeberg.org/Phosh/gsm-cell-testing using #osmocom for the mobile network parts and #ansible for deploying #ModemManager on the devices, performing the tests and checking the results. Thanks to @NGIZero for supporting our work on this.#phosh #LinuxMobile"</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114308694295903088">Switching #libqmi from gtk-doc to #gidocgen makes doc generation almost 5 times faster and it's less manual work when adding new #qmi services or messages. Hopefully we can land this. https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/merge_requests/409#phosh #ModemManager.</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/04/12/this-week-in-plasma-the-beginnings-of-wayland-session-restore/">This Week in Plasma: The beginnings of Wayland session restore</a></li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/04/13/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/frameworks/6/6.13.0/">KDE Ships Frameworks 6.13.0</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-Wayland-Session-Restore">KDE Plasma 6.4 Lands Initial Support For The Wayland Session Restore Protocol</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>#sailfishOS: <a href="https://mastodon.africa/@hnygd/114319078365520728">How does using the #Jolla #JollaC2 (@jolla) with #SailfishOS for about a week as a daily driver now (with my old #iPhone at home as a backup)?</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1264&list=newpipe">Day 35</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1263&list=newpipe">Day 34</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1262&list=newpipe">Day 33</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1261&list=newpipe">Day 32</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1260&list=newpipe">Day 31</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1259&list=newpipe">Day 30</a></li>
+<li>flypig's NewPipe log: <a href="https://www.flypig.co.uk/list?list_id=1258&list=newpipe">Day 29</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>jmlich: <a href="https://fosstodon.org/@jmlich/114324242736725274">I am playing with #UbuntuTouch user metrics and #Amazfish ...I hope I don't burn my lunch ;-D https://github.com/piggz/harbour-amazfish/pull/488</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/core/lomiri-content-hub/-/issues/23">Fix test failure on armhf + Qt 6</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/core/lomiri-wallpapers/-/issues/10">New Wallpapers (New Kaleidoscope and Ubuntu Ocean)</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/04/09/pmOS-update-2025-03/">postmarketOS in 2025-03: OP6 & MSM89x7 Camera, Generic SM7150, COSMIC, Musl Collation + I18n</a>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/28333008">postmarketOS in 2025-03: OP6 & MSM89x7 Camera, Generic SM7150, COSMIC, Musl Collation + I18n</a></li>
+<li>Lemmy.ml - linuxphones: <a href="https://lemmy.ml/post/28333167">postmarketOS: OP6 & MSM89x7 Camera, Generic SM7150, COSMIC, Musl Collation + I18n</a></li>
+</ul>
+</li>
+<li>Breaking updates in pmOS edge: <a href="https://postmarketos.org/edge/2025/04/13/gtk4-flatpak-apps-fail-to-start/">GTK4 apps from Flatpak/Flathub fail to start with the new GTK4 rendering backend</a> <em>It's not just edge, my lenovo-21bx on 24.12 is affected, too.</em>
+<ul>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114331596375614130">"@postmarketOS I found that disabling dmabuf gets gtk4 working again with the default vulkan renderer (using turnip, the adreno vk driver)This is not an issue in the older Mesa 24.3.x in Alpine Linux when gtk4 apps run outside flatpak. Flatpaks are using Mesa 25.0.x.I'm not sure if this is a regression in Mesa, in flatpak, and/or in gtk4. Vulkan tools seem to indicate that vk with dmabuf is functional in flatpaks...Help debugging this further is appreciated!#gtk #flatpak #mesa3d #vulkan"</a>.</li>
+</ul>
+</li>
+<li>pabloyoyoista: <a href="https://social.treehouse.systems/@pabloyoyoista/114299054341684147">"After many months, we finally have an upstreamable path for merging /usr in postmarketOS and hence Alpine! Still lots of work to be done, I just ruined one of my test installations LOL. But it's so cool to see it become real: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6389 #postmarketos #alpinelinux #linuxmobile"</a></li>
+<li>Mobian mobian-recipes Merge Requests: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/139">Fix APT configuration for new sources format</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Fedora-42-Releases-April-15">Fedora 42 Will Be Released Next Tuesday</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>LinuxPhoneApps.org: <a href="https://linuxphoneapps.org/blog/additions-of-q1-2025/">Q1/2025 Progress: Over 20 apps added and many improvements</a></li>
+<li>Dino: <a href="https://dino.im/blog/2025/04/dino-0.5-release/">Dino 0.5 Release</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.dzheremi2.lexi/">Lexi</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.fsobolev.timeswitch/">Time Switch</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.realmazharhussain.gdmsettings/">GDM Settings</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.revisto.drum-machine/">Drum Machine</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/page.codeberg.petsoi.words/">Words!</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Pinta-3.0-Released">Pinta 3.0 Image Editing Program Released With Port To GTK4</a></li>
+<li>daniel: <a href="https://gultsch.social/@daniel/114308227429665995">Looks like Dino is enabling #OMEMO by default for the next release¹. I think that was the last of the major #XMPP clients to do so. Hopefully we can now put the "But XMPP is not encrypted by default" debate to rest.¹: https://github.com/dino/dino/commit/fc6447c56e7fdaf6f6d843a2215d870caee4aba0</a></li>
+<li>z3ntu: <a href="https://fosstodon.org/@z3ntu/114308692080394812">"Version 0.2 of my eSIM Manager app is out!We've got significant UI improvements alongside many other additions such as an app icon, providing environment variables for lpac via the command line, error handling, eUICC 'notification' handling, viewing of eUICC chip info and appstream metainfo data!https://codeberg.org/lucaweiss/lpa-gtk/releases/tag/0.2#eSIM #eUICC #LinuxMobile #MobileLinux #postmarketOS"</a></li>
+<li>mlundblad: <a href="https://fosstodon.org/@mlundblad/114298481698165863">Experimenting with showing custom icons for stations. Inspired a bit from our highway shield rendered (derived from OpenStreetMap Americana)https://gitlab.gnome.org/GNOME/gnome-maps/-/tree/wip/mlundblad/station-iconsIt's making use of the "network:wikidata" OSM tag.Currently rendering these icons in map view itself is not tested (this needs an extra addition to our planetiler generator for the vector tiles to be run in the next import).#gnomemaps #gnome #Transit #tunnelbana #mapstodon #openstreetmap</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250411-cleanup-mm-routes-v1-1-ba98f653aa69@fairphone.com/">[PATCH] arm64: dts: qcom: Remove unnecessary MM_[UD]L audio routes</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250410-synaptics-rmi4-v5-0-b41bb90f78b9@ixit.cz/">[PATCH v5 0/7] Input: synaptics-rmi4 - add quirks for third party touchscreen controllers</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250407-pxa1908-lkml-v15-0-e83ef101f944@skole.hr/">[PATCH v15 0/4] Initial Marvell PXA1908 support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-Virtual-Swap-Space">A Fresh Take On Virtual Swap Space Being Pursued For The Linux Kernel</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.16-QCOM-USB-Audio-OLOAD">Qualcomm USB Audio Offloading Poised For Linux 6.16 After Going Through 38 Revisions</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-x86-Fixes-RSB">Linux 6.15 Lands Patches To Further Clean Up Its Spectre RSB Mitigations</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.16-DRM-Misc-Next-1">Graphics/Display Driver Changes Begin Queuing For Linux 6.16 This Summer</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/SDL-Merges-Wayland-Multi-Seat">SDL Merges Wayland Multi-Seat Support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Gallium-Nine-Deprecated">Gallium Nine Has Been Deprecated, Planned For Removal In Mesa 25.2</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/04/11/this-week-in-matrix-2025-04-11/">This Week in Matrix 2025-04-11</a></li>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/04/morg-now-running-mas/">Matrix.org is now running MAS!</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+<p><em>If you can imagine to put this collection together (it's mostly deleting irrelevant stuff, after scripts have collected it), please get in touch via email (see below)! It would really help to have someone else taking on the responsibility for this collection every once in a while!</em></p>
+
+
+
+ Weekly GNU-like Mobile Linux Update (14/2025): Wallpapered Lockscreens
+ 2025-04-06T21:35:02+00:00
+ 2025-04-06T21:35:02+00:00
+
+ https://linmob.net/weekly-update-14-2025/
+ <p>Highlights of the past week:</p>
+<ul>
+<li>mobile-config-firefox gets user-agent spoofing in version 4.6.0 to enhance site compatibility,</li>
+<li>Ubuntu Touch makes progress on eSIM and VoLTE support + Snap integration in 24.04,</li>
+<li>Another collection of Sailfish OS Community News,</li>
+<li>Hardware: Liberux Nexx PCBs arrive and OnePlus 6 gets unexpected JTAG access</li>
+<li>Phosh 0.46.0 released with lockscreen wallpapers and a lot more!</li>
+</ul>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>Phosh.mobi: <a href="https://phosh.mobi/releases/rel-0.46.0/">Phosh 0.46.0</a></li>
+<li>Community News - Sailfish OS Forum: <a href="https://forum.sailfishos.org/t/sailfish-community-news-3rd-april-2025-harbour/22658">Sailfish Community News, 3rd April 2025 - Harbour</a></li>
+<li>LINux on MOBile: <a href="https://linmob.net/mcf18-dodging-a-bullet/">MCF18: Dodging a bullet</a></li>
+<li>Purism: <a href="https://puri.sm/posts/the-signal-noise-a-wake-up-call-for-secure-communications/">The Signal Noise: A Wake-Up Call for Secure Communications</a></li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>UBports: <a href="https://www.youtube.com/watch?v=j-yVs7rtBFo">Ubuntu Touch Q& 162</a>. <em>New apps, VoLTE, eSIM, Qt6 Morph browser progress, ...</em></li>
+<li>Cuspitech: <a href="https://www.youtube.com/watch?v=YxNKrefHgMA">I installed Ubuntu Touch on my phone! Does it work as an alternative to Android?</a></li>
+<li>M: <a href="https://www.youtube.com/watch?v=tan8oxgPVQk">"Size comparison: F(x)tec Pro1 (Droidian) vs Linglong Lunar 2-in-1 keyboard (Ryzen 8840U, 32GB, 1TB)"</a></li>
+<li>Linux Galaxy!: <a href="https://www.youtube.com/watch?v=skmRWIVRXV0">"Portland Linux/Unix Group General Monthly Meeting: PostmarketOS with Clayton Craft April 3, 2025"</a></li>
+<li>foss-backstage: <a href="https://www.youtube.com/watch?v=-aJm05Cj7hs">Tobias Bernard – GNOME Design: A Report From the Trenches #FOSSDesign</a></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>carl: <a href="https://kde.social/@carl/114269667422829133">Qt 6.9 is an excellent release. I'm looking forward to make use of the new features in some of the applications I make :)https://www.qt.io/blog/qt-6.9-released #qt #kde</a></li>
+<li>pojntfx: <a href="https://mastodon.social/@pojntfx/114255022721480862">"While RCS is a good way to get Apple users to communicate with Android users, it's also still a terrible communications standard and we really shouldn't be pretending it's E2E encrypted in any meaningful way atm"</a></li>
+<li>Purism community: <a href="https://forums.puri.sm/t/lib-rem5-camera-to-use-everywhere/28090">Lib[rem5|camera] to use everywhere</a> <em>libcamera powered GNOME Camera on Librem 5 - even on old(stable) PureOS!</em></li>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114277472722446338">"for this months updates, we are reworking our fingerprint setup entirely. the daemon (Biomd) is now written from scratch and no longer links against QT or libhybris.while at it, i ended up writing a PAM module and a provider for #Fprintd which means all existing applications that use Fprintd will now work with our service.one thing i wanted to experiment with was parallel PAM instances for stuff like sudo, so here is how far i got in about an hour#furilabs #flx1 #LinuxMobile #furiphoneflx1"</a></li>
+<li>Liberux: <a href="https://mastodon.social/@Liberux/114258780173391422">"🔍 First Look at the Bare Liberux Nexx PCBs 🔍Our redesigned prototypes have arrived completely bare! These are the raw PCBs, fresh from manufacturing, before any components are assembled.It’s been a long wait, but they’re finally in the hands of our assembler! Now, we’re excited for the next step: having them fully assembled in our hands. 🛠️✨Stay tuned for more updates as we bring Liberux Nexx to life! 🚀#LiberuxNEXX #OpenHardware #PCB #TechUpdate"</a></li>
+<li>cas: <a href="https://social.treehouse.systems/@cas/114263584126338412">"turns out Qualcomm dropped the sources for talking to their Embedded USB Debug (EUD) peripheral, and it works on the OnePlus 6!This means we get JTAG access directly via the USB port, yes seriously!"</a></li>
+<li>kkofler: <a href="https://github.com/kkofler/gtk/commit/641268b5114139a8a1770b1ea6cca82ad2df93c0#commitcomment-154908933">Revert "node-editor: Use NGL for exporting images" · kkofler/gtk@641268b</a>. <em>This is GTK 4.18, but with the old renderer to keep supporting OpenGL ES 2.0.</em></li>
+</ul>
+<h5 id="events">Events</h5>
+<ul>
+<li>akademy: <a href="https://floss.social/@akademy/114267360650438090">"#Akademy2025 is happening in Berlin, Germany, and online from Saturday the 6th to Thursday the 11th of September.Mark your calendars!More details: https://akademy.kde.org/2025/#KDE #FOSS #techevent #fossevent #linux @akademy@lemmy.kde.social"</a></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="mobile-config-firefox">mobile-config-firefox</h4>
+<ul>
+<li>postmarketOS mobile-config-firefox tags: <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/tags/4.6.0">4.6.0</a>
+<ul>
+<li>ollieparanoid: <a href="https://fosstodon.org/@ollieparanoid/114276718750369658">":firefox: less than 10 days after the last release --- happy to announce that mobile-config-firefox 4.6.0 is out:* Adjustments for the latest FF 137 (thanks @linmob!)* Per-site user-agent spoofing (makes e.g. youtube use its proper mobile site, thanks @dannycolin and people working on furios-firefox-tweaks! also: sad that this is needed 😵💫)* Using defaultPref() instead of pref() where possible, allowing users to override them via about:config (thanks @dannycolin!)https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/tags/4.6.0"</a></li>
+<li>LINux on MOBile: <a href="https://linmob.net/mcf18-dodging-a-bullet/">MCF18: Dodging a bullet</a></li>
+</ul>
+</li>
+</ul>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/04/twig-194/">#194 Nineteen Years Old</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Resources-1.8-Released">Resources 1.8 Released As A Great System Resource Monitor For GNOME</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>Phosh.mobi: <a href="https://phosh.mobi/releases/rel-0.46.0/">Phosh 0.46.0</a></li>
+<li>phosh: <a href="https://fosstodon.org/@phosh/114257536363686971">"phosh 0.46.0 is out 🚀📱 :There's 🐛 fixes and improvements, check out the full release notes at https://phosh.mobi/releases/rel-0.46.0/ for details or see 👇 for a short 🧵🙏 to everyone who contributed to this release.#phosh #librem5 #pinephone #gtk #wlroots #gnome #linux #mobile #LinuxMobile1/N"</a>. <em>Nice screenshots in this thread!</em></li>
+<li>agx: <a href="https://ruhr.social/@agx/114261668525210817">April 1st joke free personal #FreeSoftware Activities for March 2025: https://honk.sigxcpu.org/con/Free_Software_Activities_March_2025.html#phosh #LinuxMobile #Debian #ModemManager</a>. <em>Impressive!</em></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/04/05/this-week-in-plasma-polish-and-stability/">This Week in Plasma: polish and stability</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/plasma/6/6.3.4/">KDE Plasma 6.3.4, Bugfix Release for April</a></li>
+<li>Volker Krause: <a href="https://www.volkerkrause.eu/2025/04/05/osm-fossgis-conference-2025.html">FOSSGIS Conference 2025</a></li>
+<li>Volker Krause: <a href="https://www.volkerkrause.eu/2025/03/30/kde-itinerary-february-march-2025.html">February/March in KDE Itinerary</a></li>
+<li>KDE Akademy: <a href="https://akademy.kde.org/news/2025-04-03_akademy-2025-call-for-proposals/">Akademy 2025 Call for Proposals is Now Open</a></li>
+<li>KDE Akademy: <a href="https://akademy.kde.org/news/2025-03_akademy2025locationannouncement/">Akademy 2025 will be held in Berlin</a></li>
+<li>KDE Eco: <a href="https://eco.kde.org/blog/2025-03-24-roopa-sok25-kecolab/">Preparing KEcoLab Technical Documentation in Season of KDE ‘25</a></li>
+<li>KDE Eco: <a href="https://eco.kde.org/blog/2025-03-25-utkarsh-sok25-kecolab/">SoK25 Highlights: My Season of KDE Journey With KEcoLab</a></li>
+<li>#plasmamobile: <a href="https://mastodon.uno/@manuel/114252026531104538">Secondo voi visto l'andazzo delle ROM alternative causa #bigG ci sarà "un'impennata" nel settore mobile per gli OS open #linux come #plasmamobile #ubports #postmarketos #gnomemobile ecc? Porterà qualche dev in piú che svilupperà app specifiche? Magari un impennata cosi grande da portare grandi realtà a sviluppare app come io 🤣🤣🤣 da meta post sto vaneggiando 🤣🤣🤣🤣🤣</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-Refines-DrKonqi">KDE Plasma Lands More Crash Fixes This Week, Refines Its Crash Reporting Wizard</a></li>
+<li>carl: <a href="https://kde.social/@carl/114269667422829133">Qt 6.9 is an excellent release. I'm looking forward to make use of the new features in some of the applications I make :)https://www.qt.io/blog/qt-6.9-released #qt #kde</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>Community News - Sailfish OS Forum: <a href="https://forum.sailfishos.org/t/sailfish-community-news-3rd-april-2025-harbour/22658">Sailfish Community News, 3rd April 2025 - Harbour</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114286813344532101">#NewPipe #SailfishOS dev diary day 27. @thigg's PR makes progress and spend some time examining HTTP client headers.https://www.flypig.co.uk/newpipe?&list_id=1256&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114282239365118175">#NewPipe #SailfishOS dev diary day 26. Debug NewPipe using Android Studio to figure out why Bandcamp is broken.https://www.flypig.co.uk/newpipe?&list_id=1255&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114276716325018680">#NewPipe #SailfishOS dev diary day 25. Adding search filters to search.https://www.flypig.co.uk/newpipe?&list_id=1254&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114270330498345567">#NewPipe #SailfishOS dev diary day 24. Adding a menu to switch between the services: Bandcamp, MediaCCC, PeerTube, SoundCloud and YouTube.https://www.flypig.co.uk/newpipe?&list_id=1253&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114264910904161661">#NewPipe #SailfishOS dev diary day 23. Plenty to cover today! Discussing the benefits of native builds; an upstream PR from @thigg; and the genesis of an app built around NewPipe search.Exciting stuff!https://www.flypig.co.uk/newpipe?&list_id=1252&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114259196227412308">#NewPipe #SailfishOS dev diary Day 22. Working on the correct file today, getting thumbnails 🖼️ of videos 📹 returned correctly.https://www.flypig.co.uk/newpipe?&list_id=1251&list=newpipe</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10888/ubuntu-touch-q-a-162-call-for-questions">Ubuntu Touch Q&A 162 call for questions</a></li>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-q-a-161-3956">Ubuntu Touch Q&A 161</a></li>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-q-a-160-3955">Ubuntu Touch Q&A 160</a></li>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-q-a-159-3954">Ubuntu Touch Q&A 159</a></li>
+<li>fredldotme: <a href="https://mastodon.social/@fredldotme/114268251659250397">"With Snap support on Ubuntu Touch based on 24.04, you're able to just:$ sudo snap install lxd$ sudo lxd initAnd run many of the offered aarch64 containers, like openSUSE or Fedora here."</a></li>
+<li>#UbuntuTouch: <a href="https://mastodon.social/@official_aptivi/114278547965394277">Ubuntu Touch gets many improvements other than initial VoLTE support!#Ubuntu #Linux #UbuntuLinux #UbuntuTouch #UBports #Fairphone #Volla #Fairphone5 #Volla22 #TechNews #TechUpdateshttps://officialaptivi.wordpress.com/2025/04/04/more-improvements-in-ubuntu-touch/</a></li>
+<li>#UbuntuTouch: <a href="https://social.tchncs.de/@CriticalSilence/114278437493950548">It felt really cool to finally have a mobile (#Pixel3a) in my hands, where I could unlock bootloader! It was flawless to install #UbuntuTouch and the OS looks super awesome - its #Linux in my hands!But it took only some hours until I reached my personal end. This is way too much tinkering and compromises. Since several vendors implement their authentication only for Android, you have to keep your old phone with Android to authenticate here and there. Or you install Waydroid, and emulate it.</a></li>
+<li>#UbuntuTouch: <a href="https://officialaptivi.wordpress.com/2025/04/03/ubuntu-on-phones-now-receive-initial-volte-support/">Ubuntu on phones now receive initial VoLTE support</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/04/01/in-search-for-a-better-keyboard/">In search for a better keyboard</a>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/27962713">In search for a better keyboard</a></li>
+</ul>
+</li>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/03/31/matrix-bridge-migration/">Matrix/IRC bridge is now self-hosted</a>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/27945229">Matrix/IRC bridge is now self-hosted</a></li>
+</ul>
+</li>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/28213375">RISC-V Support</a></li>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/28031732">Setting spanish keyboard layout on PostmarketOS with Sway</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>jmlich: <a href="https://fosstodon.org/@jmlich/114278778891161322">"Amazfish 2.6.0 has been released! #UbuntuTouch #Flatpak (and hopefully soon in the #SailfishOS Chum repo)Among other updates, there is a documentation page that tries to answer the question of what actually works—please help fill in the gaps!https://amazfish.github.io/Changes in 2.6.0:- Kospet DK08, improved Bangle.js- Auto-profile switching- Reworked pairing/unpairing/reconnect timer- UI Performance- build with cmake- many translations"</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/com.mattjakeman.extensionmanager/">Extension Manager</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.gnome.extensions/">Extensions</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/de.hummdudel.libellus/">Libellus</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.line72.campcounselor/">Camp Counselor</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.gnome.fileroller/">File Roller</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250406-msm8953-uart_5-v1-1-7e4841674137@lucaweiss.eu/">[PATCH] arm64: dts: qcom: msm8953: Add uart_5</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250406-aw8898-v1-0-58a2d554693f@lucaweiss.eu/">[PATCH 0/3] Add support for AW8898 Amplifier</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250404-sc7280-va-dmic01-v1-1-2862ddd20c48@fairphone.com/">[PATCH] arm64: dts: qcom: sc7280: Stop setting dmic01 pinctrl for va-macro</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250402-synaptics-rmi4-v4-0-1bb95959e564@ixit.cz/">[PATCH v4 0/7] Input: synaptics-rmi4 - add quirks for third party touchscreen controllers</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/D8V75HO8O4CO.33RMUJLKQ7UG5@fairphone.com/">Re: [PATCH v2 0/3] Fairphone 5 DisplayPort over USB-C support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-MM">Linux 6.15's New "hugetlb_alloc_threads" Option Can Help Speed-Up Boot Times</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>libcamera: <a href="https://github.com/libcamera-org/libcamera/releases/tag/v0.5.0">libcamera v0.5.0</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/FEX-2504-Released">FEX 2504 Ships More Optimizations For Running x86_64 Linux Binaries On ARM64</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Debian-APT-3.0-Released">Debian APT 3.0 Stable Released With New Package Solver & Refined Text UI</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Rust-Vision-Survey-2025">Rust Is Looking For Your Feedback To Help Guide Its Future</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Coreboot-25.03-Released">Coreboot 25.03 Released With Support For 22 More Motherboards</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Wine-10.5-Released">Wine 10.5 Brings Vulkan H.264 Video Decoding, Mono 10.0 & Bluetooth Pairing</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Vulkan-1.4.312-Released">Vulkan 1.4.312 Brings Two New Extensions From NVIDIA & Qualcomm</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/04/04/this-week-in-matrix-2025-04-04/">This Week in Matrix 2025-04-04</a></li>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/04/matrix-auth-service/">Matrix.org will migrate to MAS on Apr 7th 2025</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+
+
+
+ MCF18: Dodging a bullet
+ 2025-04-06T13:36:14+00:00
+ 2025-04-06T13:36:14+00:00
+
+ https://linmob.net/mcf18-dodging-a-bullet/
+ <p>Since the <a href="https://linmob.net/mcf17-getting-back-into-userchrome/">previous post</a> in this series, <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox">mobile-config-firefox</a> has seen not one, but two releases:</p>
+<ul>
+<li><a href="https://fosstodon.org/@ollieparanoid/114230361698215868">Oliver Smith: "mobile-config-firefox 4.5.0 is out…"</a></li>
+<li><a href="https://fosstodon.org/@ollieparanoid/114276718750369658">Oliver Smith: "less than 10 days after the last release --- happy to announce that mobile-config-firefox 4.6.0 is out:…"</a></li>
+</ul>
+<p>In part, this due to me not noticing prior to the first release that the breakage I had observed with Firefox Nightly would come and hit with the Firefox 137 release.</p>
+<span id="continue-reading"></span><h3 id="avoiding-a-broken-experience-with-firefox-137">Avoiding a broken experience with Firefox 137</h3>
+<p>Here's what I wrote:</p>
+<blockquote>
+<p>Unfortunately, since playing with Firefox Nightly (using <a href="https://blog.nightly.mozilla.org/2023/10/30/introducing-mozillas-firefox-nightly-deb-packages-for-debian-based-linux-distributions/">the Debian package</a> in a distrobox), I know that this fix won't last until 140 (the [next ESR](- https://whattrainisitnow.com/release/?version=esr)), so a follow-up MR will have to happen.</p>
+</blockquote>
+<p>At that point I had not realized, that having a Debian distrobox with Mozilla's repo also made installing the beta possible, and I think I had also not realized, that trying the beta is way more interesting than Nightly, as what's in beta, will make it to the very next release.</p>
+<p>I was a bit shocked when I realized that after running <code>make && make FIREFOX_DIR=/usr/lib/firefox-beta install</code> in my Debian distrobox, beta looked just as broken as nightly had in my brief stint with nightly.</p>
+<p>The entire userChrome was at the top of the window, tab-width was very where small, applying "mcf.addressbarontop" and similar had no effect - what had happened?</p>
+<p>Well, two things:</p>
+<p>The first was easy to figure out, some random web search landed me on <a href="https://old.reddit.com/r/FirefoxCSS/comments/1j7f35z/firefox_v137_will_break_once_again_your_fresh/mgxl6zs/">this reddit thread</a>. I just had to go through the busywork and adjust all media queries with <code>-moz-bool-pref</code> and add the new way with <code>-moz-pref</code> right below, and these would work again.</p>
+<p>That worked nicely. After this first change, <code>tab-width</code> was still broken. I connected my Laptops Firefox Nightly (Nightly, as I had that installed on the laptop) with the one on the phone, picked a tab as element to inspect and looked what was going on. I was prepared that this could be annoying and take a bit, but fortunately I quickly noticed that there was a (new to me) variable called <code>--tab-min-width-pref</code>. I added a <code>--tab-min-width-pref</code> line after every <code>--tab-min-width</code> line, deployed the hastlily changed configuration, and, luckily: Problem solved.</p>
+<p>Minutes later, <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/78">the MR was filed</a>. Fortunately, <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/69">two</a> <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/77">more</a> merge requests could be landed with 4.6.0, so it was not just a "Peter <del>missed</del> <ins>ignored</ins> this important upcoming breakage" release.</p>
+<h3 id="a-follow-up-to-the-url-bar-fix">A follow-up to the URL bar fix</h3>
+<blockquote>
+<p>This is not the fix I want, but it's the one I could deliver now. See the linked MR above for why I am not super happy with this.</p>
+</blockquote>
+<p>Previous to submitting <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/75">Fixing urlbar popout on current Firefox (!75)</a> I had played with a solution I liked better on current, but that could not be submitted at the time, as it broke ESR - the URL bar would move to the right when activated.</p>
+<p>Just today I found a way to fix this: Gating the customizations so they won't be applied on ESR 128 (and, actually, until 132 - but we fortunately don't need to care about no longer supported interim releases). It still needs more testing - help welcome!</p>
+<details><summary>How to help test this?</summary>
+<p>You need to have <code>git</code> and `make installed.</p>
+<p>First clone my fork and checkout the <a href="https://gitlab.postmarketos.org/1peter10/mobile-config-firefox/-/tree/feature/wider-url-bar">branch feature/wider-url-bar</a>:</p>
+<pre><code>git clone https://gitlab.postmarketos.org/1peter10/mobile-config-firefox.git
+git checkout feature/wider-url-bar
+</code></pre>
+<p>Then build it:</p>
+<pre><code>make
+</code></pre>
+<p>And install it:</p>
+<pre><code>sudo make install
+</code></pre>
+<p>for current Firefox.</p>
+<p>To test with ESR, Beta, Nightly or Librewolf respectively run:</p>
+<pre><code>sudo make FIREFOX_DIR=/usr/lib/firefox-esr install
+sudo make FIREFOX_DIR=/usr/lib/firefox-beta install
+sudo make FIREFOX_DIR=/usr/lib/firefox-nightly install
+sudo make FIREFOX_DIR=/usr/lib/librewolf install
+</code></pre>
+<p>Note that all these install methods only work for native distribution packages, not flatpak/snap etc.</p>
+</details>
+<p>The commit is also merged into my 'next' branch, so if you like breakage, try that one out ;-)</p>
+<h3 id="other-things-to-tackle">Other things to tackle</h3>
+<p>Here's a brief list of things that I want to look into before Firefox 140 is out:</p>
+<ul>
+<li>check for (and remove) leftovers from the pre ESR 128 days,</li>
+<li>land <a href="https://gitlab.postmarketos.org/1peter10/mobile-config-firefox/-/tree/feature/better-popups-from-furios?ref_type=heads">non-glitchy popups</a> (needs a fix for installing extensions and potentially other broken popups I have not come across yet),</li>
+<li>hide "Browser Layout - Show sidebar" option (or make the sidebar work somewhat on mobile,</li>
+<li>make extension popups scrollable again (e.g. for uBlock Origin),</li>
+<li>change media queries (meaning, upstream Emma's media query tweaks) so that landscape usage feels more similar (meaning: URL bar stays on the bottom unless <code>mcf.addressbarontop</code> is set to true) - <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/issues/37">see #37</a>).</li>
+<li>adding an option to hide container indicators (<a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/66">see !66</a></li>
+<li>improve the README: better display of mcf.* options, link related projects/forks, help installing the config.</li>
+</ul>
+<h3 id="want-to-get-involved">Want to get involved?</h3>
+<p>If you are interested in making Firefox work better on #LinuxMobile devices, make sure to take a look at the <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/issues">open issues</a>!</p>
+<p>If you need help getting in touch, feel free to reach out - via the issue tracker, so that we can improve the README, or just to me via email. It may take me a bit to get back to you, but I will definitely try to do so ASAP.</p>
+<p>Thank you for reading this!</p>
+
+
+
+ Weekly GNU-like Mobile Linux Update (13/2025): Crossing Platforms, Breaking Barriers
+ 2025-03-30T22:00:35+00:00
+ 2025-03-31T06:30:00+00:00
+
+ https://linmob.net/weekly-update-13-2025/
+ <p>This past week in #LinuxMobile:</p>
+<ul>
+<li>FuriOS now runs Ubuntu Touch apps,</li>
+<li>Phosh 0.46 release candidates tagged (final release expected March 31st),</li>
+<li>Megapixels 2.0 progress,</li>
+<li>postmarketOS announces 2025 priorities: reliability, audio, cameras,</li>
+</ul>
+<p>... and more, including a mobile-config-firefox release!</p>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>postmarketOS blog: <a href="https://postmarketos.org/blog/2025/03/30/pmOS-year-priorities/">postmarketOS // 2025 Priorities: Reliability, Audio, Cameras and More</a></li>
+<li>Martijn Braam: <a href="https://blog.brixit.nl/megapixels-2-0-progress/">Megapixels 2.0: Small fixes and GTK breakage</a></li>
+<li>CNX-Software: <a href="https://www.cnx-software.com/2025/03/25/linux-6-14-release-main-changes-arm-risc-v-and-mips-architecture/">Linux 6.14 release - Main changes, Arm, RISC-V, and MIPS architecture</a></li>
+<li>Android Authority: <a href="https://www.androidauthority.com/google-android-development-aosp-3538503/">Exclusive: Google will develop the Android OS fully in private, and here's why</a>. _Gut feeling: "Insert name of web application used to manage the localisation of GNOME here". ;-) _</li>
+</ul>
+<h3 id="worth-listening">Worth Listening</h3>
+<ul>
+<li><a href="https://linuxafterdark.net/linux-after-dark-episode-92/">Linux After Dark – Episode 92</a>. <em>Nice episode!</em>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/27811713">Linux After Dark - Episode 92 looks at postmarketos</a></li>
+</ul>
+</li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>Nicco Loves Linux: <a href="https://www.youtube.com/watch?v=nF51ibgtu4I">Is Android your next Linux Desktop?</a>, (<a href="https://tube.kockatoo.org/w/tuZEnzLoiY5TUfXC7gy1wj">PeerTube</a>)</li>
+<li>Continuum Gaming: <a href="https://www.youtube.com/watch?v=E73UNLPb2YI">Continuum Gaming E462: SFOS – Battery health, Charging helper apps</a></li>
+<li>Cards By The Hill: <a href="https://www.youtube.com/watch?v=FU2cC0PfhkI">KALI NETHUNTER PRO FULLY LOADED ON PINE PHONE 64!</a></li>
+<li>Microlabs: <a href="https://www.youtube.com/watch?v=9ED1hxQePRQ">Run Alpine Linux in Nokia N900</a></li>
+<li>Никита Армагеддонов: <a href="https://www.youtube.com/watch?v=77L7GZ-ONQc">nexus 5 Ubuntu touch #nexus #ubuntu #ubuntutouch</a></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>osmocom: <a href="https://fosstodon.org/@osmocom/114223433953999859">"Make VoWiFi calls from an open source client using asterisk: https://osmocom.org/news/297 - osmocom main contributor @sysmocom has recently released a forked version of asterisk that can be used to make VoWiFi calls using nothing but FOSS, a smart card reader and a SIM card. #foss #opensource #telecom #3gpp"</a></li>
+<li>ariadne: <a href="https://social.treehouse.systems/@ariadne/114241369034296200">help @alpinelinux build a war chest to ensure it remains for the foreseeable future: https://opencollective.com/alpinelinux</a></li>
+</ul>
+<h4 id="events">Events</h4>
+<ul>
+<li>LAS: <a href="https://floss.social/@LAS/114218722590709924">"The #LAS2025 schedule is here!Get ready for the Linux App Summit in Tirana, Albania, and explore all the exciting talks and panels: https://conf.linuxappsummit.org/event/7/timetable/#all"</a></li>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114246595983855328">"I'll be talking about #postmarketOS at the next Portland Linux/Unix Group (PLUG) meeting on Thursday April 3rd, come on down if you're in the area 😁https://lists.pdxlinux.org/pipermail/plug-announce/2025q1/001232.html#pdx"</a></li>
+</ul>
+<h4 id="furios-running-ubuntu-touch-apps">FuriOS running Ubuntu Touch apps</h4>
+<ul>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114226704623272146">"in an attempt to achieve the highest app compatibility known to man, i ended up writing a daemon that allows to install, configure and run #UbuntuTouch applications on our beloved #flx1 and it actually turned out pretty nice.this is yet another service/client setup where now the store server is refactored to work alongside android-store (used to install android apps) to lower memory usage and the client is a #GNOME software plugin #ubports #furilabs #LinuxOnMobile #LinuxMobile #furiphoneflx1"</a>. <em>I've been hoping for something like this for years, (<a href="https://archive.fosdem.org/2024/schedule/event/fosdem-2024-3303-the-linux-phone-app-ecosystem/">see here for evidence</a>). Awesome work!</em></li>
+</ul>
+<h4 id="hardware">Hardware</h4>
+<ul>
+<li>Liberux: <a href="https://mastodon.social/@Liberux/114223284620496187">"🔧 Update on Liberux Nexx Prototypes 🔧After a major delay due to the Chinese New Year and an issue in production, we had to look for a new manufacturer for our prototypes. Fortunately, we found a company in Spain that will take over the production. 🚀In the meantime, we took the opportunity to make some redesigns to the board. The new prototypes will arrive in the coming days, and we’re excited to share more updates soon.Cheers! ❤️#Liberux #OpenHardware #Privacy #Linux"</a></li>
+<li>mntmn: <a href="https://mastodon.social/@mntmn/114240608083876033">"lets say someone made an OSHW touch device running linux that's intended to fit in your pant/dress/jacket/handbag pocket. what would be the maximum display size (diagonal, inches) you would tolerate? bonus if you like rabbitholes like this: maximum thickness and weight?"</a> <a href="https://mastodon.social/@mntmn/114241921879862683">extremely low-fi and thicc protoype to test some dimensions and weight (crafted with cardboard and tape by @theawesomerandomness around pocket reform electronics)</a> <a href="https://mastodon.social/@mntmn/114241928631568071">@theawesomerandomness short video clip</a></li>
+<li>linuxgizmos: <a href="https://linuxgizmos.com/t-display-k230-combines-risc-v-processing-with-lora-wi-fi-and-amoled-display/">T-Display K230 Combines RISC-V Processing with LoRa, Wi-Fi, and AMOLED Display</a> <em>Added by an anonymous contributor.</em></li>
+<li>tizen.org: <a href="https://www.tizen.org/blogs/safirzawad/2024/risc-v-support-update/">RISC-V Support Update</a> <em>Added by an anonymous contributor.</em></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/03/twig-193/">#193 Image Loading</a></li>
+<li>GNOME Foundation: <a href="https://foundation.gnome.org/2025/03/27/guadec-2025-registration-is-open/">GUADEC 2025 Registrations are Open!</a></li>
+<li>Curiosity-driven development: <a href="https://curiositydrivendevelopment.blogspot.com/2025/03/gnome-calculator-updates.html">GNOME Calculator updates</a></li>
+<li>GTK: <a href="https://floss.social/@GTK/114246025001816434">"GTK 4.18.3 is now available; this is a bug fix release of the stable branch of GTK, including fixes for Vulkan, accessibility, introspection annotations, HiDPI GL rendering on Windows, and macOS event handling.You can read all the changes here: https://gitlab.gnome.org/GNOME/gtk/-/commit/a4033016969298dfedb5b96ae6fde41c332e3675The main branch is now open for the next development cycle.#gtk #gtk4"</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>phosh: <a href="https://fosstodon.org/@phosh/114212340415833776">Dear distro maintainers and "i build my own stuff" people: In case you want to check out 0.46 relesae upfront: we've tagged the first releases candidates (0.46~rc1) of #phosh and related components today. 🎉 Release is planned 2025-03-31 (https://gitlab.gnome.org/World/Phosh/phosh/-/wikis/Releases)The bulk of the changes landed already so hopefully it's only bugfixes from here on.#LinuxMobile</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114239004150960312">Nice, just a small fix and #phosh's compositor #phoc runs with #wlroots #vulkan renderer on the OnePlus6T. This needs some more work regarding e.g. alpha blending but it's already usable.#LinuxMobile</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114227609737471576">@fsfe are you in touch with the EU regarding the digital wallet (https://www.europarl.europa.eu/news/en/press-room/20240223IPR18095/meps-back-plans-for-an-eu-wide-digital-wallet) already? This will/can e.g. be used for the driver license in the future? I skimmed through the documents and didn't read anything on OpenSource/ #FreeSoftware there. Would be great if we could ensure first class support for #LinuxMobile. Is that on your list? Otherwise I could at least write to the contact address given there.</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/03/29/this-week-in-plasma-zero-vhi-bugs-and-much-more/">This Week in Plasma: zero VHI bugs and much more</a></li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/03/24/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>KDE Mentorship: <a href="https://mentorship.kde.org/blog/2025-03-29-ospp/">The Open Source Promotion Program</a></li>
+<li>Volker Krause: <a href="https://www.volkerkrause.eu/2025/03/30/kde-itinerary-february-march-2025.html">February/March in KDE Itinerary</a></li>
+<li>Nate Graham: <a href="https://pointieststick.com/2025/03/25/2025-15-minute-bug-initiative-update/">2025 15-Minute Bug Initiative update</a></li>
+<li>KDE Eco: <a href="https://eco.kde.org/blog/2025-03-14_sok25-kguitest/">KdeGuiTest (KdeEcoTest) in SoK25: Debugging, Building an Interactive User Interface, and More</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>#sailfishOS: <a href="https://hub.netzgemeinde.eu/item/59c00e2b-55b5-4e90-a9cb-fcc712a455ac">There is an update for Sailfish OS to version 5.0.0.62. my xperia 10III showed me the update option so i think updating is ok. the update went smoothly, no problems right afterwards. let's hope this lack of problems persists ...#^https://forum.sailfishos.org/t/release-notes-tampella-5-0-0-62/22378#smartphone #handy #SailfishOS #android #FreeOfGoogle #jolla</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1249&list=newpipe">Day 20</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1248&list=newpipe">Day 19</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1247&list=newpipe">Day 18</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1246&list=newpipe">Day 17</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1245&list=newpipe">Day 16</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1244&list=newpipe">Day 15</a></li>
+<li>flypig's NewPipe Diary: <a href="https://www.flypig.co.uk/list?&list_id=1243&list=newpipe">Day 14</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>#UbuntuTouch: <a href="https://mastodon.prorocketeers.com/@adamhavelka/114236263465292546">Xiaomi Note 9 Pro (miatoll) is another linux phone with working VoLTE, that was a really missing feature for me, now I can finally call while using internet, either on mobile itself or using hotspot :)#ubuntutouch #linuxmobile</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Debian-13-Freeze-Begins">Debian 13 "Trixie" Freeze Process Begins</a>. <em>This is definitely going to affect Mobian, Droidian and co.</em></li>
+<li>postmarketOS blog: <a href="https://postmarketos.org/blog/2025/03/30/pmOS-year-priorities/">postmarketOS // 2025 Priorities: Reliability, Audio, Cameras and More</a></li>
+<li>Breaking updates in pmOS edge: <a href="https://postmarketos.org/edge/2025/03/27/icu-upgrades/">Alpine repositories are broken due to the ICU upgrade</a>. <em>Be aware. You have never heard of icu, but ... so much depends on it!</em></li>
+<li>postmarketOS pmaports Merge Requests: <a href="https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6361">GNOME Mobile 48</a></li>
+<li>postmarketOS pmaports Merge Requests: <a href="https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6360">device-apple-tonga: GPU fixed by adding proper mesa and gallium packages (mesa-asahi)</a></li>
+<li>postmarketOS: <a href="https://fosstodon.org/@postmarketOS/114251585218947030">"Update regarding the Matrix / OFTC IRC bridge for postmarketOS channels (+ related like Sxmo): We will keep a bridge around. We have set up a selfhosted bridge and are waiting on OFTC to increase our connection limit before we can start using it, which will probably happen any day now."</a></li>
+</ul>
+<h5 id="chimera-mobile">Chimera Mobile</h5>
+<ul>
+<li>adrianyyy: <a href="https://chaos.social/@adrianyyy/114214152411862759">it's coming together</a></li>
+<li>adrianyyy: <a href="https://chaos.social/@adrianyyy/114237989375761227">"on that note, here's some more Chimera Mobile progress"</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>CalcProgrammer1: <a href="https://mastodon.social/@CalcProgrammer1/114242727534201067">"I submitted a merge request to #AlpineLinux aports to get #TouchpadEmulator added."</a></li>
+<li>YaLTeR: <a href="https://mastodon.online/@YaLTeR/114251838436436356">"Published Video Trimmer and Identity v25.03.…"</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/de.bschu.cashbox/">Cashbox</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.flattool.ignition/">Ignition</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.vikdevelop.savedesktop/">SaveDesktop</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.swordpuffin.hunt/">Hunt</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.freedesktop.bustle/">Bustle</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.gnome.dspy/">D-Spy</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.casimirlab.frigoligo/">Frigoligo</a></li>
+<li>postmarketOS: Apps by Category: <a href="https://wiki.postmarketos.org/index.php?title=Applications_by_category&diff=72465&oldid=prev">Fossdd: /* IRC */ goguma aport</a></li>
+<li>Martijn Braam: <a href="https://blog.brixit.nl/megapixels-2-0-progress/">Megapixels 2.0: Small fixes and GTK breakage</a></li>
+</ul>
+<h4 id="mobile-config-firefox">mobile-config-firefox</h4>
+<ul>
+<li>postmarketOS mobile-config-firefox tags: <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/tags/4.5.0">4.5.0</a>
+<ul>
+<li>ollieparanoid: <a href="https://fosstodon.org/@ollieparanoid/114230361698215868">":firefoxnew: mobile-config-firefox 4.5.0 is out. This release mostly contains fixes and adjustments for FF >= 133.Thanks to everybody who contributed, especially @linmob and @dannycolin!https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/tags/4.5.0See also https://linmob.net/mcf17-getting-back-into-userchrome/ with some development background from @linmob."</a></li>
+<li>linmob: <a href="https://fosstodon.org/@linmob/114230952197468751">"@pocketvj It's not really different. It's mostly fixes to make stuff work with current Firefox 136. Before this release, you would get "Failed to read the configuration file. Please contact your system administrator." with Firefox 136. Aside from that, it's minor cosmetic things, see screenshots. @ollieparanoid @dannycolin"</a></li>
+</ul>
+</li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>CNX-Software: <a href="https://www.cnx-software.com/2025/03/25/linux-6-14-release-main-changes-arm-risc-v-and-mips-architecture/">Linux 6.14 release - Main changes, Arm, RISC-V, and MIPS architecture</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250326-apcs-mboxes-v3-1-e20f39e125f2@lucaweiss.eu/">[PATCH v3] rpmsg: qcom_smd: Improve error handling for qcom_smd_parse_edge</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250324-sm6350-videocc-v2-0-cc22386433f4@fairphone.com/">[PATCH v2 0/4] Add video clock controller for SM6350</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-Backlight-Apple">Linux 6.15 Landing Backlight Driver For Various Apple iPhones & iPads</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-SoC-DT-Updates">Linux 6.15 SoC/DT Additions: Arm Morello, Versal NET, Apple T2, MNT Reform 2 & More</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-EXT4">EXT4 Better Hardened Against Maliciously-Fuzzed File-Systems</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Chrome-XDG-Session-Management">Chromium Web Browser Lands Support For Wayland XDG-Session-Management</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Mesa-Q1-2025-Highlights">Mesa's Exciting Q1 With More Ray-Tracing, NVK Progress & Performance Optimizations</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Theora-1.2-Released">Xiph.Org's Theora libtheora 1.2 Officially Released: 16 Years After v1.0</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/03/28/this-week-in-matrix-2025-03-28/">This Week in Matrix 2025-03-28</a></li>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/03/27/matrix-v1.14-release/">Matrix v1.14 release</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+<p><em>If you can imagine to put this collection together (it's mostly deleting irrelevant stuff, after scripts have collected it), please get in touch via email (see below)! It would really help to have someone else taking on the responsibility for this collection every once in a while!</em></p>
+
+
+
+ Weekly GNU-like Mobile Linux Update (12/2025): GNOME 48 and other goodies
+ 2025-03-23T17:32:08+00:00
+ 2025-03-24T08:00:00+00:00
+
+ https://linmob.net/weekly-update-12-2025/
+ <p>Another week, another roundup: <a href="https://linmob.net/weekly-update-12-2025/#gnome-ecosystem">GNOME goes 48</a>, more on the Mecha Comet improvements/delay, some Firefox things, a Ubuntu Touch Q&A, <a href="https://linmob.net/weekly-update-12-2025/#sailfish-os">SailfishOS Community News</a>, UT and SFOS <a href="https://linmob.net/weekly-update-12-2025/#worth-noting">coming to the FuriLabs FLX1</a>, an <a href="https://linmob.net/weekly-update-12-2025/#distributions">update on postmarketOS finances</a> and more!</p>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>Gabriel Simmer: <a href="https://gabrielsimmer.com/blog/kubernetes-plus-oneplus">Recyling a OnePlus 6T into a Kubernetes Node</a></li>
+<li>Liliputing: <a href="https://liliputing.com/mecha-comet-modular-linux-handheld-gets-pre-launch-upgrade-coming-to-kickstarter-in-q3-2025/">Mecha Comet modular Linux handheld gets pre-launch upgrade, coming to Kickstarter in Q4, 2025</a>. <em>Later, but better!</em></li>
+<li>Android Authority: <a href="https://www.androidauthority.com/android-linux-terminal-purpose-3535765/">Google says its new Linux Terminal feature isn't a replacement for Android's desktop mode</a></li>
+<li>OMG! Ubuntu: <a href="https://www.omgubuntu.co.uk/2025/03/firefox-nightly-supports-web-apps-taskbar-tabs">Firefox is Finally (Re)Adding Support for Web Apps</a></li>
+<li>LINux on MOBile: <a href="https://linmob.net/mcf17-getting-back-into-userchrome/">MCF17: Getting back into userChrome</a></li>
+<li>Marius Welt: <a href="https://marius.bloggt-in-braunschweig.de/2025/03/16/pinephone-megapixels-starten-auf-fedora-42/">Pinephone: Megapixels starten auf Fedora 42</a>. <em>German post. An alternate solution (with hardware acceleration) would be using <a href="https://flatpak.brixit.nl/megapixels2.flatpakref">this flatpak</a>, which just uses older GTK (GNOME 46 runtime, sadly (soon?) EOL).</em></li>
+<li>nlnet: <a href="https://nlnet.nl/news/2025/20250321-call-announcement-core.html">56 Projects Receive Grants for Improving Core Technological Building Blocks</a></li>
+<li>Drew DeVaults blog: <a href="https://drewdevault.com/2025/03/17/2025-03-17-Stop-externalizing-your-costs-on-me.html">Please stop externalizing your costs directly into my face</a></li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>UBports: <a href="https://www.youtube.com/watch?v=irXEtukxpJQ">Ubuntu Touch Q&A 161</a></li>
+<li>Anino Ni Kugi: <a href="https://www.youtube.com/watch?v=jK-vvAEGGlo">Work and Play in Ubuntu Touch | Lomiri Plus (Air Mouse)</a></li>
+<li>Ram Ram Android: <a href="https://www.youtube.com/watch?v=RAxRud06CUE">Ubuntu Touch</a></li>
+<li>Efstathios Iosifidis: <a href="https://www.youtube.com/watch?v=Xxh7TIYCbv4">Ubuntu Touch for Xiaomi Redmi Note 4 | Ubuntu Touch Review (GR)</a></li>
+<li>CapBoyan RUS [Boyan Mobile]: <a href="https://www.youtube.com/watch?v=twXg1vDdGzw">NFS Undercover на Nokia N900. webOS-версия</a></li>
+<li>veggero: <a href="https://tube.kockatoo.org/w/7Jhvef31wEDeQN8x2rETB8">The Next-Gen Browsers: Comparing Performance, Budget, and Development Pace</a></li>
+<li>veggero: <a href="https://tube.kockatoo.org/w/woce36hTzF6JdnBiBEaRZJ">Open Source Infrastructure has an AI problem</a></li>
+<li>David Heidelberg at InstallFest: <a href="https://www.youtube.com/watch?v=Mmp10BWsEPU">Linux na telefonu v roce 2025</a>. <em>Czech, with automatically generated english subtitles. The title translates to "Linux on Mobile in 2025" (<a href="https://fosstodon.org/@jmlich/114210660776874582">Source</a>).</em></li>
+<li>Jozef Mlich at InstallFest: <a href="https://www.youtube.com/watch?v=TFiIdNXougc">Poslední míle mezi uživateli a linuxovými telefony</a>. <em>Czech, with automatically generated english subtitles. The title translates to "Last Mile Between Users and Mobile Linux" (<a href="https://fosstodon.org/@jmlich/114210660776874582">Source</a>).</em></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>joelselvaraj: <a href="https://fosstodon.org/@joelselvaraj/114197618143234405">"Got the focus lens actuator (bu64748) of Poco F1 rear main camera (imx363) working in mainline linux! 🙂 Yet to be released. Thanks to @NekoCWD's camerctrl (https://gitlab.com/NekoCWD/cameractrl), we got a nice overlay to manually adjust the focus! I m using a custom gnome snapshot build that supports 1440p resolution from here: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/79523"</a></li>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114191989568927890">"welp thats two for two. hopefully we can have #sailfishos with VoLTE on release too very soon… ah yes i should add, if anyone is interested in bringing their distro feel free to contact us through our contact form (https://furilabs.com/contact/), and we will be happy to consider all requests if they help grow the ecosystem with more <em>mobile linux</em> options #ubports #ubuntutouch #flx1 #furilabs #LinuxOnMobile #LinuxMobile #furiphoneflx1"</a> <em>Nice!</em></li>
+<li>PINE64: <a href="https://fosstodon.org/@PINE64/114168822721057752">Updated PineTab-V devices have just made their way to the PineStore as of yesterday! There have been some notable hardware improvements to the device since the last batch.* An accelerometer was added to the device* Resolved slow charging while the device is turned off* An LED status indicator light has been added to the device (similar to the PinePhone) * Added a proper ID for the PineTab-V in the EEPROMDefault OS was developed by @starfivetech (thanks!) and is based on Debian.</a> <a href="https://fosstodon.org/@PINE64/114168848200421918"> Some additional PineTab-V OS information because I ran out of characters. Both cameras and hardware acceleration work out of the box with this default OS*. *HEVC and MJPEG hardware decoding does not currently work in Firefox.</a></li>
+<li>Luigi311: <a href="https://mastodon.social/@Luigi311/114207714143035220">didn't realize that @Liberux posted the modem they are going to use. Is anyone on #linuxmobile familiar with the Snapdragon X62 and how well its supported on mainline? Looking at the specs its really new and modern so performance and efficiency should hopefully be amazing. That of course does depend on if power saving modes can even be activated. What are everyone's thoughts/experience on it? Also wonder if its hooked up via usb similar to #librem5 #mobilelinux #linuxonmobile #liberux #linux</a></li>
+<li>carbonatedcaffeine: <a href="https://fosstodon.org/@carbonatedcaffeine/114208672145631483">"https://files.hrdl.eu/pn_2025-03-20_sway_hints.mp4 Reposting this video here from community member Hrdl. This video demos the improved display controller driver for the #pine64 #PineNote, which means goodbye to artifacting and welcome to automatic redrawing on a per pixel basis. As seen in the video, the display runs at a higher (and stable) 84Hz refresh rate than the stock 80Hz thanks to some tuning.You can find the work Hrdl has been doing here: https://git.sr.ht/~hrdl/linux"</a></li>
+</ul>
+<h4 id="events">Events</h4>
+<ul>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114136409617870005">Are there any folks out there who want to help organize a Mobile track with me at #FOSSY this year? 😁#fossy2025 #linuxmobile</a></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/03/twig-192/">#192 Forty-eight!</a>
+<ul>
+<li><a href="https://release.gnome.org/48/">GNOME Release Notes</a></li>
+<li><a href="https://release.gnome.org/48/developers/index.html">GNOME Developer Release Notes</a></li>
+</ul>
+</li>
+<li>Michael Catanzaro: <a href="https://blogs.gnome.org/mcatanzaro/2025/03/21/gnome-48-core-apps-update/">GNOME 48 Core Apps Update</a></li>
+<li>GNOME Foundation: <a href="https://foundation.gnome.org/2025/03/19/introducing-gnome-48/">Introducing GNOME 48</a></li>
+<li>monster: <a href="https://blogs.gnome.org/monster/cleaner-code-with-gobject/">Cleaner Code With GObject</a></li>
+<li>feborg.es: <a href="https://feborg.es/flock-to-fedora-is-coming-to-prague/">Flock to Fedora is coming to Prague!</a></li>
+<li>GNOME Foundation: <a href="https://foundation.gnome.org/2025/03/17/las-registrations-are-now-open/">Linux App Summit 2025 – Registrations are now open!</a></li>
+<li>monster: <a href="https://blogs.gnome.org/monster/introducing-adwaita-fonts/">Introducing Adwaita Fonts</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>Phosh (Mastodon): <a href="https://fosstodon.org/@phosh/114212340415833776">Dear distro maintainers and "i build my own stuff" people: In case you want to check out 0.46 relesae upfront: we've tagged the first releases candidates (0.46~rc1) of #phosh and related components today. 🎉 Release is planned 2025-03-31</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114173721353934844">"A limitation of using #phosh in docked mode (having an external 🖥️ , 🖱️ ⌨️ attached to your 📱 ) was that #phoc wouldn't support multiple workspaces. There's an MR that adds initial workspace support now (which might even land for 0.46) 🧵 :"</a></li>
+<li>Phosh (Mastodon): <a href="https://fosstodon.org/@phosh/114206254008692148">In preparation for the upcoming phosh release we've released new versions of #gmobile 0.2.0 and #feedbackd 0.8.0. Feedbackd is now more flexible regarding haptic feedback for events so if e.g. feedback is too intrusive (or too weak) you can consider submitting adjustment for your device to https://source.puri.sm/Librem5/feedbackd-device-themes/#phosh #LinuxMobile</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/03/22/this-week-in-plasma-6.4-improvements/">This Week in Plasma: 6.4 Improvements</a></li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/03/17/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>Bhushan Shah: <a href="https://blog.bshah.in/2025/03/22/professional-update-plasma-mobile-ngi0-core-grant/">Professional update and Plasma Mobile NGI0 Core grant</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-Plasma-6.4-KMenuEdit">KDE Continues Prepping More Features For Plasma 6.4</a></li>
+</ul>
+<h4 id="sxmo">Sxmo</h4>
+<ul>
+<li>#sxmo: <a href="https://honk.any-key.press/u/continue/h/q94JX6hy6xlSZHCMK9">We now have a short "getting started" page featuring nice gesture videos made by magdesign. These demo gestures to newcomers so they can quickly and visually grasp how Sxmo works and get going with it. It came to our attention at FOSDEM that this was something that people struggled with when they start out:https://sxmo.org/docs/gettingstarted/</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>Community News - Sailfish OS Forum: <a href="https://forum.sailfishos.org/t/sailfish-community-news-20th-march-2025-upgrade-jenga/22546">Sailfish Community News, 20th March 2025 - Upgrade jenga</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114207647433050426">#NewPipe #SailfishOS dev diary day 13. Refining the build automation, organising the repo, preparing for the juicy API work.https://www.flypig.co.uk/newpipe?&list_id=1242&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114202140707919051">#NewPipe #SailfishOS dev diary Day 12. It's Spring! 🌷 So some spring cleaning 🧹 admin 📜 and building on a faster Xperia 10 V 📱beckon!https://www.flypig.co.uk/newpipe?&list_id=1241&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114196729366532549">#NewPipe #SailfishOS dev diary Day 11. Building on phone 📱 and building using a Docker image 🐳https://www.flypig.co.uk/newpipe?&list_id=1240&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114191210555856124">#NewPipe #SailfishOS dev diary Day 10. Measuring the memory usage of the build on my phone (with suitably impressive graphs courtesy of psrecord! 📈 ).https://www.flypig.co.uk/newpipe?&list_id=1239&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114186021102611517">#NewPipe #SailfishOS dev diary Day 9. Moving the build from my laptop to a Sailfish OS phone 💻 → 📱 https://www.flypig.co.uk/newpipe?&list_id=1238&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114180473442460260">#NewPipe #SailfishOS dev diary Day 8. Disentangling Rhinoceroses 🦏https://www.flypig.co.uk/newpipe?&list_id=1237&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114174369597229564">#NewPipe #SailfishOS dev diary Day 7. Getting a native build of NewPipe Extractor using GraalVM.https://www.flypig.co.uk/newpipe?&list_id=1236&list=newpipe</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10871/today-is-q-a-day">Today is Q&A Day</a></li>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10868/ubuntu-touch-q-a-161-saturday-22nd-march-19-00-utc">Ubuntu Touch Q&A 161 Saturday 22nd March 19:00 UTC</a></li>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10866/ubuntu-touch-q-a-161-call-for-questions">Ubuntu Touch Q&A 161 Call for Questions</a></li>
+<li>fredldotme: <a href="https://mastodon.social/@fredldotme/114207497620937242">Daily reminder that, if you offer your "services" for testing someone's software in the phase of actual prototyping or development, then you aren't helping.</a></li>
+<li>#UbuntuTouch: <a href="https://social.tchncs.de/@deltatouch/114208618423418978">DeltaTouch 1.14.0 is out, bringing the message editing, deleting and bookmarking features that were recently released for the official #DeltaChat apps 🎉 #DeltaTouch #UbuntuTouch</a></li>
+<li>#UbuntuTouch: <a href="https://squatch.online/@ernmander/114189300601614447">Messing around on my #ubuntutouch device today #UBports @ubports #ubuntu #linux</a></li>
+<li>#UbuntuTouch: <a href="https://mastodon.social/@fla/114184011345415953">I just deployed a new version of https://disco2very.org which includes updated data from #ademe as well as the "Practical use cases" category.It's also packaged for #ubuntutouch by @ubports if you want: https://open-store.io/app/disco2very.flaburganI still have an issue with the drag&drop of cards which is not as smooth as it should, but once fixed we should not be too far from a 1.0 version 🙂 #climat #co2 #carbonFootprint #smartGames</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>q66: <a href="https://gts.q66.moe/@q66/statuses/01JQ0EWNTQ7DS0E897E9WZ3XYW">we got a gui going with @adrianyyy in chimera somehow on xiaomi mi 9t / sm7150somehow using gdm makes the screen die so this is manually launched from a tty session :) need to debug thatand half the firmware loading is broken :)we got phosh and gnome shell :3chimera mobile soon~</a></li>
+<li>@linmob@fosstodon.org: <a href="https://fosstodon.org/@linmob/114187677759102418">Look at that: If you dislike systemd and like debian packages, but want Phosh instead of hildon (on Maemo Leste), Movuan has you covered: https://gitlab.com/l2385/movuan/movuan-recipes Basically, that's a #devuan for your #PinePhone</a></li>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/03/17/pmOS-budget-and-financial-update/">Financial update: first year and first budget</a>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/27327574">Financial update: first year and first budget</a></li>
+</ul>
+</li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Huawei_Y3_II_4G_(huawei-lua-l21)">Huawei Y3 II 4G (huawei-lua-l21)</a></li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Newmobi_Technology">Newmobi Technology</a></li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Fbkeyboard">Fbkeyboard</a></li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Working_with_Downstream_DTBs">Working with Downstream DTBs</a></li>
+<li>Mobian mobian-recipes Issues: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/issues/46">phrog not coming up on the screen</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>alice: <a href="https://mk.nyaa.place/notes/a5fys3uyfupk0231">"Ok, so DeSmuME has added ARM Neon support so it runs noticeably faster on mobile now. So far, in fact, that some games like the one shown run at full speed for me. Others don't - the performance reminds me of my old laptop."</a></li>
+<li>NekoCWD: <a href="https://mastodon.social/@NekoCWD/114175313905613651">I just made some changes to @libcamera to export focus/brightness controls and created a PoC app to work with it via @pipewire (wireplumber gobject api) in @vala_lang because why not?</a> <a href="https://mastodon.social/@NekoCWD/114180247234047035">🎉 Published PipeTap with libcamera fork :patcat: Now it's time to beta test! PipeTap is an application that control @libcamera driven camera through @pipewire. Test device on video: OnePlus 6 with @postmarketOS PipeTap: https://gitlab.com/NekoCWD/pipetap Libcamera fork: https://gitlab.com/NekoCWD/libcamera#photography #linuxonmobile #mobilelinux #ShotOnOnePlus #ShotOnMainline</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/net.casimirlab.frigoligo/">Frigoligo</a></li>
+<li>Marius Welt: <a href="https://marius.bloggt-in-braunschweig.de/2025/03/17/pinephone-telefonieren-mit-twinkle/">Pinephone: Telefonieren mit Twinkle</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250322161718.253093-1-absicsz@gmail.com/">[PATCH v2] power: supply: bq27xxx: do not report incorrect zero values</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250321-sm6350-videocc-v1-0-c5ce1f1483ee@fairphone.com/">[PATCH 0/3] Add video clock controller for SM6350</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250321-sm6350-apr-v1-1-7805ce7b4dcf@fairphone.com/">[PATCH] arm64: dts: qcom: sm6350: add APR and some audio-related services</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250318205043.1043148-1-caleb.connolly@linaro.org/">[PATCH] ath10k: snoc: fix unbalanced IRQ enable in crash recovery</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-Drop-Useless-CRC-32">Linux 6.15 Plans To Drop Support For A Useless CRC-32 Checksum In The Kernel Image</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Google-Live-Update-Orchestrator">Google Developing "Live Update Orchestrator" As New Means Of Live Linux Kernel Updates</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-BS-Greater-Than-PS">Code Submitted Ahead Of Linux 6.15 For Enabling Block Sizes Greater Than Page Size</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.14-Sched-2-Year-Regress">Linux 6.14 Sees Last Minute Fix For A Two Year Old Regression Causing A 30% Performance Drop</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Arm-Mali-Newer-Hardware-Panthor">Arm Bringing Up Support For Newer Mali GPUs With The Open-Source Panthor Driver</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.15-Media-Subsystem">Qualcomm Iris Video Decode Driver & DesignWare HDMI Input Support Ready For Linux 6.15</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/FreeDesktop-GitLab-On-Hetzner">FreeDesktop.org GitLab Transitions To New Server Infrastructure</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Vulkan-1.4.311-Released">Vulkan 1.4.311 Released With New Extension For BFloat16</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/03/21/this-week-in-matrix-2025-03-21/">This Week in Matrix 2025-03-21</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+<p><em>If you can imagine to put this collection together (it's mostly deleting irrelevant stuff, after scripts have collected it), please get in touch! I (Peter) am struggling with stress-related health issues currently, and it would really put me at ease to have someone to just do this from time to time!</em></p>
+
+
+
+ MCF17: Getting back into userChrome
+ 2025-03-23T14:27:17+00:00
+ 2025-03-24T09:15:00+00:00
+
+ https://linmob.net/mcf17-getting-back-into-userchrome/
+ <p>Before I started contributing to <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/">mobile-config-firefox</a>, I always believed that, aside from bigger, code-named UI redesigns, Firefox's UI code would not change much at all.</p>
+<p>These days I know better. Due to these changes, mobile-config-firefox does currently not work all that well with (current) Firefox 136, and I am reviving this little series, to keep me motivated, to hopefully attract contributors and to document the process.<sup class="footnote-reference"><a href="#1">1</a></sup></p>
+<span id="continue-reading"></span><h3 id="a-late-discovery">A late discovery</h3>
+<p>But let's start with something completely different. When playing with a FuriLabs FLX1 at FOSDEM, I noticed that they ship a very nicely customized Firefox. The code can be found at</p>
+<ul>
+<li><a href="https://github.com/FuriLabs/furios-firefox-tweaks/">FuriLabs/furios-firefox-tweaks</a></li>
+</ul>
+<p>They have done a really great job. Aside from incorporating the <a href="https://github.com/rafaelmardojai/firefox-gnome-theme">Firefox GNOME Theme</a>, they have (through lots of hard work) managed to made popups not glitchy.</p>
+<p>I recommend you giving it a try. It's currently optimized for Firefox 135 and generally targeting current. This means, working with Firefox 136, you will have to apply the fix suggested in <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/issues/100">ESMification of mobile-config-firefox (#100)</a> to <code>src/mobile-config-autoconfig.js</code>. Also, if you are on postmarketOS/Alpine, you will need to install <code>coreutils</code> in order to install the configuration successfully.</p>
+<p>But 136 is not all gloom and doom - popups can now be scrolled without using the scrollbar. So if you have tons of tabs open (or tons of extensions installed), your experience with 136 is substantially better - thanks Mozilla!</p>
+<h3 id="what-i-am-trying-to-tackle">What I am trying to tackle</h3>
+<p>In the past weeks, I have been working on the following things:</p>
+<h4 id="fixing-tab-width-on-ff-133">Fixing tab-width on FF 133+</h4>
+<p>With this pending Merge Request <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/74">tabmenu.css: rework tab width for FF 133+ (!74)</a>. The element with the id #tabmenu was removed with Firefox 133, hence this change was necessary. At first I went for a different solution which can be found in my <a href="https://gitlab.postmarketos.org/1peter10/mobile-config-firefox/-/tree/experiment/tab-width-and-firefox-view?ref_type=heads">experiment/tab-width-and-firefox-view</a> branch.</p>
+<p>Unfortunately, since playing with Firefox Nightly (using <a href="https://blog.nightly.mozilla.org/2023/10/30/introducing-mozillas-firefox-nightly-deb-packages-for-debian-based-linux-distributions/">the Debian package</a> in a distrobox), I know that this fix won't last until 140 (the <a href="https://whattrainisitnow.com/release/?version=esr">next ESR</a>), so a follow-up MR will have to happen.</p>
+<p>Also support for different values of <code>browser.uidensity</code> <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/69#note_473680"><del>should be</del><ins>has been</ins> added <ins>on March 24</ins></a><del>, but is not part of the current MR yet</del>.</p>
+<h4 id="the-disappearing-url-bar-issue">The disappearing URL bar issue</h4>
+<p>Another gift Mozilla gave us is a disappearing URL bar. I have managed to come up with a pending Merge Request: <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/merge_requests/75">Fixing urlbar popout on current Firefox (!75)</a></p>
+<p>This is not the fix I want, but it's the one I could deliver now. See the linked MR above for why I am not super happy with this.</p>
+<h4 id="better-non-glitchy-popup-handling">Better, non-glitchy popup handling</h4>
+<p>Of course, I aim to cherry-pick commits to bring the better popup handling from <a href="https://github.com/FuriLabs/furios-firefox-tweaks/">furios-firefox-tweaks</a> to mobile-config-firefox. This is a major change, that will touch many userChrome customizations.
+You can see my progress on this in my <a href="https://gitlab.postmarketos.org/1peter10/mobile-config-firefox/-/tree/feature/better-popups-from-furios?ref_type=heads">feature/better-popups-from-furios</a> branch, which is still a work-in-progress.</p>
+<p>The main issue (among others), is the current state significantly worsens the behavior of some "popupnotifcations". It basically, as is makes installing extensions impossible. FuriLabs are fixing these with JavaScript, I am still hopeful to find a CSS-based solution.</p>
+<p>That said, as is, it already fixes a few issues, which may seem unrelated:</p>
+<ul>
+<li><a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/issues/77">Support For Sync (#77)</a></li>
+<li><a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/issues/45">Add History to trop-down menu (#45)</a></li>
+</ul>
+<h3 id="the-stuff-i-ve-decided-not-to-introduce">The stuff I've decided not to introduce</h3>
+<ul>
+<li><a href="https://gitlab.postmarketos.org/1peter10/mobile-config-firefox/-/tree/experiment/findbar?ref_type=heads">experiment/findbar</a>: It keeps the feature set, but makes the find bar (you know, <kbd>Ctrl</kbd> + <kbd>f</kbd>) eat less precious screen space. Unfortunately, it also impacts translations and may be harder to understand, which is why I have decided to not look into this further.</li>
+<li><a href="https://gitlab.postmarketos.org/1peter10/mobile-config-firefox/-/tree/experiment/tab-width-and-firefox-view?ref_type=heads">experiment/tab-width-and-firefox-view</a>: This is an alternate fix for the tab-width issue, that does things differently. It colors the tab-bar to indicate private mode (via two different variables), adds an option to use Firefox View and introduces a userContent modification to make <code>about:firefoxview</code> work. Here, I just don't want to introduce the maintenance burden.</li>
+</ul>
+<p>(I was going to put a "to do list/stuff I am thinking about"-section into this post, but it is already too long. Maybe the next post will have room for this.)</p>
+<h3 id="want-to-get-involved">Want to get involved?</h3>
+<p>If you are interested in making Firefox work better on #LinuxMobile devices, make sure to take a look at the <a href="https://gitlab.postmarketos.org/postmarketOS/mobile-config-firefox/-/issues">open issues</a>!</p>
+<p>If you need help getting in touch, feel free to reach out - via the issue tracker, so that we can improve the README, or just to me via email. It may take me a bit to get back to you, but I will definitely try to do so ASAP.</p>
+<p>Thank you for reading this!</p>
+<div class="footnote-definition" id="1"><sup class="footnote-definition-label">1</sup>
+<p>I have also decided to stop contributing once Firefox ESR 140 is out (and works well with m-c-f – it's better to stop before it's not fun anymore, and I feel that I may be reaching that point sooner than I was hoping for.</p>
+</div>
+
+
+
+ Weekly GNU-like Mobile Linux Update (11/2025): libadwaita 1.7 and news from Sxmo
+ 2025-03-16T22:50:22+00:00
+ 2025-03-16T22:50:22+00:00
+
+ https://linmob.net/weekly-update-11-2025/
+ <p>This past week in #LinuxMobile:</p>
+<ul>
+<li>Purism share Librem 5 Crimson progress,</li>
+<li>libadwaita 1.7 brings new widget and makes creating convergent GNOME apps possible without having a device at hand,</li>
+<li>Sxmo introduce an intuitive getting-started guide with gesture videos,</li>
+<li>Sailfish OS community ports now available for 10 different devices (and a NewPipe port),</li>
+<li>Lomiri on Mir 2.20 getting closer,</li>
+<li>postmarketOS adds the COSMIC desktop environment to edge repositories.</li>
+</ul>
+<p>Plus: numerous app updates, kernel developments, and community contributions across the ecosystem! Enjoy!</p>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics; and please check the last paragraph of this post.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>FuriLabs: <a href="https://furilabs.com/spy-free-furios/">Spy-Free FuriOS</a></li>
+<li>Purism: <a href="https://puri.sm/posts/pureos-crimson-development-report-february-2025/">PureOS Crimson Development Report: February 2025</a></li>
+<li>Ars Technica: <a href="https://arstechnica.com/gadgets/2025/03/rcs-texting-updates-will-bring-end-to-end-encryption-to-green-bubble-chats/">RCS texting updates will bring end-to-end encryption to green bubble chats</a>. <em>With this, RCS will be a feature that people may actually miss when they don't have it. ... Now, how do we get proper RCS support for #LinuxMobile, be it ModemManager or Ofono based?</em></li>
+</ul>
+<h4 id="german-pinephone-corner">German PinePhone Corner</h4>
+<ul>
+<li>Marius Welt: <a href="https://marius.bloggt-in-braunschweig.de/2025/03/13/pinephone-ootb-full-hd-videoplayback/">Pinephone: OOTB Full-HD Videoplayback</a></li>
+<li>Marius Welt: <a href="https://marius.bloggt-in-braunschweig.de/2025/03/11/pinephone-4-jahre-spaeter/">Pinephone – 4 Jahre später</a>. <em>Things are so good these days (even on Fedora). It's really sad that current GTK4 no longer offers GPU acceleration on GLES 2 hardware.</em></li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>Sunshine: <a href="https://lemmy.ca/post/40708674">Testing PostMarketOS On MS Surface GO 2</a></li>
+<li>Continuum Gaming: <a href="https://www.youtube.com/watch?v=abCkTVdJcQ4">Continuum Gaming E460: Kilometer & AppSupport for 10 IV / V</a></li>
+<li>Anino Ni Kugi: <a href="https://www.youtube.com/watch?v=zcdfAMFTcLc">Ubuntu Touch Exclusive Games (?)</a></li>
+<li>Random Informative Videos: <a href="https://www.youtube.com/watch?v=qplrr8sASno">Unlocking Ubuntu Touch & A explanation !</a></li>
+<li>Ivo Xavier: <a href="https://www.youtube.com/watch?v=ri-IPcH6qJA">Updating Fairphone4 with UbuntuTouch OTA-8 from UBports</a></li>
+<li>Bits & Bytes with Eliza: <a href="https://www.youtube.com/watch?v=IP9r7r7Nlfo">The Rise and Fall of Maemo: A Story of Innovation and Incompetence</a></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>Sturmflut: <a href="https://mastodon.social/@Sturmflut/114155301788715695">""If it doesn't support #WhatsApp natively, it's going to be a failure" was one of the common criticisms during #UbuntuPhone times ten years ago."Does it support #Signal?" is a common question about #linuxphones.Good reminder that we still haven't figured out messaging at all and #lockin can easily happen even with solutions that look more free and open at first glance. There are still no good alternatives to Signal's iOS/Android apps.#linuxmobile #fossphones #mobilelinux"</a></li>
+<li>rmader: <a href="https://mastodon.social/@rmader/114155153935375217">First try to create #libcamera swISP tuning files for the OnePlus6 with #ideasonboard folks at #embeddedworld. Unfortunately we hit an issue that we couldn't fix on-side - got a few todos to make sure things work out next time!#postmarketos #linuxmobile</a></li>
+<li>Liberux: <a href="https://mastodon.social/@Liberux/114149836351775338">"✨ New on our website: FAQ section!We’ve answered some of your most common questions about Liberux. Check it out https://liberux.net/#faqSoon, as devboard testing allows to define the prototype, details about: RAM, storage, battery, CPU, communications... and kill-switches, of course.What other FAQs would you like to see? 🤔💡#Liberux #FAQ #LinuxPhone"</a></li>
+<li>Purism community: <a href="https://forums.puri.sm/t/librem-5-arch-linux/27985">Librem 5 + Arch Linux</a></li>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114170014261021516">"after many days of work, here is another functional demo of #GNOME shell running on the secondary display connected to the #flx1. it took many hours to build the app and make everything act nice and not crash and integrate cleanly. still a long way to go but i think it is a good time to showcase the progress in the past 7 days.i hope to get this ready and done by 13.0.9 which is the next release but obviously no promises.#debian #furios #furilabs #FuriPhoneFLX1 #LinuxOnMobile"</a></li>
+</ul>
+<h4 id="event-corner">Event corner</h4>
+<ul>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114136409617870005">Are there any folks out there who want to help organize a Mobile track with me at #FOSSY this year? 😁#fossy2025 #linuxmobile</a></li>
+<li>gnome: <a href="https://floss.social/@gnome/114139136276457017">"📝 Linux App Summit 2025 registration is open! 🎉 Join us in Tirana, Albania, on April 25th-26th for two days of talks, and community gatherings. We welcome both in-person and online attendees—don’t forget to register! 👉 https://conf.linuxappsummit.org/event/7/registrations/"</a></li>
+<li>z3ntu: <a href="https://fosstodon.org/@z3ntu/114150306257933096">"My talk "Making Android phones Last" for #LinaroConnect 2025 has been accepted!Thursday, 15 May 12:30 - 12:55 (WEST/UTC+1), on location in Lisbon, Portugal (but at least the recording should be available afterwards, not sure if a live stream will be available for free)https://www.kitefor.events/events/linaro-connect-2025/submissions/323@LinaroLtd #LIS25"</a></li>
+<li>gnome: <a href="https://floss.social/@gnome/114150894242933289">"🚀 Only 4 days left to submit your talk for GUADEC 2025! Don’t miss your chance to be part of our amazing event in Brescia, Italy, from July 24-29! ✨📅 Deadline: March 16📝 Submit here: https://events.gnome.org/event/259/abstracts/#submit-abstracts"</a> <em>Too late to submit something, but maybe Save The Date!</em></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/03/twig-191/">#191 Third Saturday Edition</a></li>
+<li>Alice: <a href="https://nyaa.place/blog/libadwaita-1-7">Libadwaita 1.7</a></li>
+<li>GNOME Foundation: <a href="https://foundation.gnome.org/2025/03/14/gnome-internship-get-ready-for-gsoc-and-outreachy/">GNOME Internship: Get Ready for GSoC and Outreachy!</a></li>
+<li>Marcus Lundblad: <a href="https://ml4711.blogspot.com/2025/03/maps-and-gnome-48.html">Maps and GNOME 48</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GNOME-This-Week-Breezy">Paid XR Desktop For GNOME "Breezy Desktop" In Open Beta With Multi-Display Support</a></li>
+<li>GTK: <a href="https://floss.social/@GTK/114167180443482324">"GTK 4.18.1 is out! This is the first stable release of the 4.18 cycle, and includes a few last minute additions:- fractional scaling support on macOS works again- the Android backend uses GL rendering for top level surfacesPlus, as usual, lots of bug fixes, performance improvements, and documentation updates.You can download the release archive from the usual place: https://download.gnome.org/sources/gtk/4.18/Or you can wait until your distribution of choice is updated to ship GNOME 48.#gtk #gtk4 #gnome"</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>agx: <a href="https://ruhr.social/@agx/114154332289555927">I didn't get the memo that there is "Landesweiter #Warntag" in RLP today and was surprised by the sirens. The #pinephone I use for testing catched the #cellbroadcast message 😅 :[/org/freedesktop/ModemManager1/CBM/4] new cbm: received 4383: TEST ALERT for Rheinland-Pfalz Thu 2025/03/13 - 10:00 am - Test alert - for Rheinland-Pfalz - There is no danger. - Further information: https://warnung.bund.de/m/VzsFymNy9PEW - Published by: Lagezentrum Bevölkerungsschutz Rheinland-Pfalz#phosh #LinuxMobile</a></li>
+<li>dos: <a href="https://social.librem.one/@dos/114139719286988964">whooosh#phosh #phoc #mobilelinux #linuxmobile</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/03/15/this-week-in-plasma-file-transfer-progress-graphs/">This Week in Plasma: File Transfer Progress Graphs</a>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-P010-KWin-Pixel-Perfect">KDE Plasma 6.4 Adding Support For P010 Formatted Videos, KWin Improving Pixel Perfection</a></li>
+</ul>
+</li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/03/09/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/frameworks/6/6.12.0/">KDE Ships Frameworks 6.12.0</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/plasma/6/6.3.3/">KDE Plasma 6.3.3, Bugfix Release for March</a></li>
+<li>Planet KDE: <a href="https://blog.vladzahorodnii.com/2025/03/13/kwin_x11-and-kwin_wayland-split/">kwin_x11 and kwin_wayland split</a></li>
+<li>Nate Graham: <a href="https://pointieststick.com/2025/03/10/personal-and-professional-updates-announcing-techpaladin-software/">Personal and professional updates — announcing Techpaladin Software</a></li>
+<li>anditosan: <a href="https://anditosan.wordpress.com/2025/03/09/plasma-design-system-march-2025-update/">Plasma Design System – March 2025 Update</a></li>
+</ul>
+<h4 id="sxmo">Sxmo</h4>
+<ul>
+<li><a href="https://lists.sr.ht/~mil/sxmo-announce/%3CD8H7AHQJYE2G.42GWB2DFOJWL@anaproy.nl%3E">Sxmo.org website and community update — sourcehut lists</a></li>
+<li>ollieparanoid: <a href="https://fosstodon.org/@ollieparanoid/114172082440459241">"If you always wanted to run a tiling window manager on your smartphone, give Sxmo a try. They just added a nice getting started guide to nicely illustrate how gestures are used to open the menu, bring up and close the keyboard, switch between workspaces and more:https://sxmo.org/docs/gettingstarted/Great work @pocketvj and Sxmo team!#postmarketos #sxmo #tiling #linux"</a></li>
+<li>#sxmo: <a href="https://honk.any-key.press/u/continue/h/q94JX6hy6xlSZHCMK9">We now have a short "getting started" page featuring nice gesture videos made by magdesign. These demo gestures to newcomers so they can quickly and visually grasp how Sxmo works and get going with it. It came to our attention at FOSDEM that this was something that people struggled with when they start out:https://sxmo.org/docs/gettingstarted/</a></li>
+<li>@pocketvj@fosstodon.org: <a href="https://fosstodon.org/@pocketvj/114133525634374826">maybe we should consider some sort of algo to enhance image quality on #linuxmobile #pmos phones:https://people.ee.ethz.ch/~ihnatova/https://github.com/HuiZeng/Image-Adaptive-3DLUTI am aware that there is a lot to gain with first fixing the camera drivers to take a correct photo. also working from the other direction as well makes sense to combine both techniques at some point ...experimenting with stable-diffusion.cpp on my #pocof1 (i miss pytorch support on alpine..), its soo slow 😂</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>adampigg: <a href="https://fosstodon.org/@piggz/114167894993137207">Have updated the following #sailfishOS hardware ports to 5.0,@volla Phone, PhoneX, Phone22, 23X and Quintus, @PINE64 Pinephone, Tab, Pro, Pinetab2, and Fxtec Pro1x. Thats 10 in total, and 2 more on my todo list!</a></li>
+<li>adampigg: <a href="https://fosstodon.org/@piggz/114161201651158644">The amazing #sailfishos and #linux community have funded me a new watch which will mean ZeppOS support in amazfish is coming. I decided on the amazfit balance and it is on the way :) thankyou everyone. This is probably a form of nerd sniping, buy dev unsupported device to get it supported :)</a></li>
+<li>adampigg: <a href="https://fosstodon.org/@piggz/114153846803626749">Ive compiled a single page with the info you need to run @jolla #SailfishOS on @volla devices. https://forum.sailfishos.org/t/the-single-volla-thread/22553</a></li>
+<li>#sailfishOS: <a href="https://mstdn.science/@dryak/114168768339167391">@elliotjmackness #SailfishOS is pretty good actually as a Mobile Linux on phone, is even comercially supported for a few models (from Sony and Reeder) and is based in Europe.(and even has solutions for apps that one absolute need, but only exists on Android)And this toot sent from a Pinephone Pro running a community build of SFOS.</a></li>
+<li>Turre: <a href="https://mementomori.social/@Turre/114168043768193222">Life with Sailfish OS, day 1, hour 6-12</a></li>
+<li>Turre: <a href="https://mementomori.social/@Turre/114166098268447296">Life with Sailfish OS, day 1, hour 2-4</a></li>
+<li>Turre: <a href="https://mementomori.social/@Turre/114165478253516850">Life with Sailfish OS, day 1, hour 1</a></li>
+</ul>
+<h5 id="flypigs-newpipe-corner">flypigs' NewPipe corner</h5>
+<ul>
+<li>flypig: <a href="https://mastodon.social/@flypig/114135143566749013">"Time to start a new project and a new daily dev diary 📔Following an inspiring discussion with Schabi from the #NewPipe team at #FOSDEM, I'm planning to build a YouTube client based on NewPipe for #SailfishOS. I plan to write about my progress every day ☀️ 🌔 Once again, mostly for my own benefit, but anyone interested to follow along is very welcome!https://www.flypig.co.uk/newpipe?&list_id=1227&list=newpipe"</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114140262825784750">Day 2 of my #SailfishOS #NewPipe dev diary.Taking a look at the NewPipe user interface on Android to see what will transfer over to a #SailfishOS app.https://www.flypig.co.uk/newpipe?&list_id=1229&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114145956705360247">"Day 2 (actually Day 2 this time!) of my #SailfishOS #NewPipe dev diary.Still at the initial stages, taking things slowly and getting NewPipe Extractor built for Linux.https://www.flypig.co.uk/newpipe?&list_id=1230&list=newpipe"</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114151145807490089">#NewPipe #SailfishOS dev diary Day 3. Using the Extractor to download videos! This feels like an early milestone 😃 https://www.flypig.co.uk/newpipe?&list_id=1231&list=newpipe</a></li>
+<li>#sailfishOS: <a href="https://mastodon.social/@flypig/114157633650248836">#NewPipe #SailfishOS dev diary Day 4. Native Java with GraalVM and microTube.https://www.flypig.co.uk/newpipe?&list_id=1232&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114163151871870021">#NewPipe #SailfishOS dev diary Day 5. Dissecting @thigg's sailing-the-flood-to-java code 🌊 ☕ https://www.flypig.co.uk/newpipe?&list_id=1234&list=newpipe</a></li>
+<li>flypig: <a href="https://mastodon.social/@flypig/114169231977206876">#NewPipe #SailfishOS dev diary Day 6. Attempting to get GraalVM working with scratchbox2 and the Sailfish SDK.https://www.flypig.co.uk/newpipe?&list_id=1235&list=newpipe</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>fredldotme: <a href="https://mastodon.social/@fredldotme/114167727299278693">"After a bit of fixing in Mir, QtMir & Lomiri I am happy to report better stability of the desktop with Mir 2.20.It's far from finished but needless to say it's nice that using Firefox doesn't crash the desktop anymore.Also some screenshots of the workspace management."</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/core/lomiri/-/issues/124">Expose more features through Wayland or other Linux-standard ways</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/issues/214">screenshot from readme in mobile</a></li>
+<li>#UbuntuTouch: <a href="https://mastodon.prorocketeers.com/@adamhavelka/114138869436552865">@sesivany I am currently for a year running on 40€ used Xiaomi Note 9 Pro from bazos.cz, flashed with #ubuntutouch :D</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/27112588">Why postmarketOS and not Android forks?</a></li>
+<li>Breaking updates in pmOS edge: <a href="https://postmarketos.org/edge/2025/03/10/openssh-client-uninstalled-when-system-upgraded/">SSH client uninstalled when system upgraded</a></li>
+<li>Breaking updates in pmOS edge: <a href="https://postmarketos.org/edge/2025/03/09/sm7150-generic-migration/">Existing SM7150 device packages removed in favour of generic package</a></li>
+<li>postmarketOS: <a href="https://fosstodon.org/@postmarketOS/114150469664582885">To users of the postmarketOS Matrix and IRC channels: Looks like Matrix is shutting down the IRC bridge to OFTC that we are currently using soon. We are considering whether to selfhost / possibly use an alternative public bridge instance / maaaybe it is not worth keeping a bridge around at all (meaning that we would move to matrix only) :blobthinkingeyes: Is it important to you that we keep a Matrix <> IRC bridge around?#postmarketos</a></li>
+<li>postmarketOS: <a href="https://fosstodon.org/@postmarketOS/114150817525813810">"Documentation is very important - one of the reasons that we are happy to announce that @undefined is our newest Trusted Contributor!They currently do the following in postmarketOS:* Working on the postmarketOS wiki; making sure the docs are up-to-date, useful and easy to understand* Mainlining Broadcom Kona series chipsets (in pmOS soon!)* Co-maintaining the Exynos 4 close to mainline kernel fork* Occasionally tracking down bugs and regressions📜 TC page:https://postmarketos.org/trusted-contributors/#knuxify"</a></li>
+<li>craftyguy: <a href="https://freeradical.zone/@craftyguy/114156667347337258">#COSMIC is now available in #postmarketOS edge! I hope to have prebuilt images on our download site soon (patch just waiting for review)🤞Super big thank you to everyone who helped with review and testing 👍 (@sertonix @justsoup @newbyte @fossdd @whynothugo @ptrc )I also wrote some words about my thoughts on COSMIC so far: https://blog.craftyguy.net/cosmic/</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>servo: <a href="https://floss.social/@servo/114142161025194663">"This month in Servo…🔍🌡️ <details>, <meter>, <progress>📐🕳️ full layout support for <slot>🕸️🪟 new delegate and rendering API🌐⌨️ pre-edit text for IME📂📄 directory listingshttps://servo.org/blog/2025/03/10/this-month-in-servo/"</a></li>
+<li>Lemmy - linuxphones: <a href="https://lemmy.ml/post/26945047">What are people usong as thei music player app nowadays?</a></li>
+<li>Purism forums: List of Apps that fit and function well: <a href="https://forums.puri.sm/t/list-of-apps-that-fit-and-function-well-post-them-here/11361/399">Demo of streamtuner2.</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/me.ogarcia.lptk/">LPTK</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/page.codeberg.tpikonen.geobug/">Geobug</a></li>
+<li>postmarketOS: Apps by Category: <a href="https://wiki.postmarketos.org/index.php?title=Applications_by_category&diff=71401&oldid=prev">Eloitor: /* Images */ Add curtail</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250314-sm6350-ufs-things-v1-0-3600362cc52c@fairphone.com/">[PATCH 0/3] Fixes/improvements for SM6350 UFS</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250314-sc7280-wpss-minidump-v1-1-d869d53fd432@fairphone.com/">[PATCH] remoteproc: qcom: pas: add minidump_id to SC7280 WPSS</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250314-sm8650-cpu2-sleep-v1-1-31d5c7c87a5d@fairphone.com/">[PATCH] arm64: dts: qcom: sm8650: Fix domain-idle-state for CPU2</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250313202017.19621-2-adrian@mainlining.org/">[PATCH 1/2] dt-bindings: input: touchscreen: edt-ft5x06: Document FT8716 support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-Rust-HID-Drivers-Patches">Linux Kernel's Rust Support Being Expanded To HID Drivers</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Arm-Linux-CVE-2024-7881-KPTI">Arm Changing Linux Default To Costly "KPTI" Mitigation For Some Newer CPUs</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Huawei-Matebook-E-Go-EC-Linux">Huawei Matebook E Go Laptops To Be Better Supported With Linux 6.15</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Mediatek-MT8365-DRM-Linux-6.15">Mediatek DRM Driver Adding MT8365 "Genio 350" Support In Linux 6.15</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Arm-Fast-PGO-BOLT-LLVM-Clang">Arm Shows Off Great Performance Results For PGO & BOLT With LLVM/Clang</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/glibc-Faster-Hyperbolic-FMA">Glibc's Hyperbolic Functions Score Nice Speed-Ups With FMA Optimizations</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250315-msm8937-v4-0-1f132e870a49@mainlining.org/">[PATCH v4 0/6] Initial support of MSM8937 and Xiaomi Redmi 3S</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Mesa-Deprecates-OpenCL-Clover">Rusticl Wins: Mesa Officially Deprecates Clover OpenCL</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Debian-12.10-Released">Debian 12.10 Released With More Bugs Fixed & Security Updates</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/digiKam-8.6">digiKam 8.6 Released With Working To Better Its AI Integration</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Git-2.49-Released">Git 2.49 Released With Faster Packing, Rust Foreign Language Interface</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Free95-0.2-Alpha">Free95 0.2 Alpha Released As Open-Source Windows Compatible OS</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/IGT-GPU-Tools-2.0">IGT GPU Tools 2.0 Released For Helping To Develop DRM Drivers</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Shotcut-25.03-Beta-Released">Shotcut 25.03 Beta Released For Advancing This Free Software Video Editor</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/03/14/this-week-in-matrix-2025-03-14/">This Week in Matrix 2025-03-14</a></li>
+<li>FuriLabs: <a href="https://furilabs.com/docker-on-your-flx1/">Docker on your FLX1</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+<p><em>If you can imagine to put this collection together (it's mostly deleting irrelevant stuff, after scripts have collected it), please get in touch! I (Peter) am struggling with stress-related health issues currently, and it would really put me at ease to have someone to just do this from time to time!</em></p>
+
+
+
+ Weekly GNU-like Mobile Linux Update (09, 10/2025): Too much to put in a title
+ 2025-03-09T23:11:08+00:00
+ 2025-03-09T23:11:08+00:00
+
+ https://linmob.net/weekly-update-09-10-2025/
+ <p>Two weeks full of exciting progress in the mobile Linux ecosystem!</p>
+<ul>
+<li>The FLX1 phone gets display-out capability with full GNOME shell support, promising a superior desktop experience when connected to external displays,</li>
+<li>more examples of Camera support on the OnePlus 6(T),</li>
+<li>Ubuntu Touch celebrates its OTA-8 Focal release with much-needed WPA3 support,</li>
+<li>Sailfish OS 5.0 Tampella officially launches alongside the Jolla C2 MWC debut (+ more Community News),</li>
+<li>postmarketOS share the progress they've made in February,</li>
+<li>the Mecha Comet goes +1 (and thus better, but later),</li>
+<li>and way, way more! Enjoy!</li>
+</ul>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em> <a href="https://linmob.net/weekly-update-09-10-2025/#week-9">Find Week 9 below.</a></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>Sam Thursfield: <a href="https://samthursfield.wordpress.com/2025/03/07/media-playback-tablet-running-gnome-and-postmarketos/">Media playback tablet running GNOME and postmarketOS</a></li>
+<li>Ploum: <a href="https://ploum.net/2025-03-08-linux_desktop3.html">20 years of Linux on the Desktop (part 3)</a></li>
+<li>fossphones.com: <a href="https://fossphones.com/03-04-2025.html">Linux Phone News - March 4, 2025</a></li>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-ota-8-focal-release-3953">Ubuntu Touch OTA-8 Focal Release</a>. <em>WPA3 alone makes this one important!</em>
+<ul>
+<li>0to5Linux: <a href="https://9to5linux.com/ubuntu-touch-ota-8-released-with-volte-support-for-volla-phone-users">Ubuntu Touch OTA-8 Released with VoLTE Support for Volla Phone Users</a></li>
+</ul>
+</li>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/03/04/pmOS-update-2025-02/">postmarketOS in 2025-02: MSM89x7 Audio, Modern Xiaomis in Community, New Name Foreshadowing</a>. <em>My highlight are the devices moved to Community and the pmbootstrap improvmeents!</em>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/26708607">postmarketOS in 2025-02: MSM89x7 Audio, Modern Xiaomis in Community, New Name Foreshadowing</a></li>
+</ul>
+</li>
+<li>FuriLabs: <a href="https://furilabs.com/docker-on-your-flx1/">Docker on your FLX1</a></li>
+<li>FuriLabs: <a href="https://furilabs.com/batch-2-update/">Batch #2 Update</a></li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>UBports: <a href="https://www.youtube.com/watch?v=KkoE0QZ0ts0">Ubuntu Touch Q&A 160</a></li>
+<li>FuriLabs: <a href="https://www.youtube.com/watch?v=aKG98wAEHRY">FuriPhone FLX1 Docker Tutorial</a></li>
+<li>Mecha: <a href="https://www.youtube.com/live/QssMPn3K_HE">Mecha Comet Announcements - Mar 8, 2025</a>
+<ul>
+<li>David Hamner: <a href="https://www.youtube.com/watch?v=VD94Al_Q0Hs">Linux Phone Upgrade | Comet +1</a></li>
+</ul>
+</li>
+<li>David Hamner: <a href="https://www.youtube.com/watch?v=YKAsUK3a8M0">Maemo Leste SystemV Hackjob #music</a> <em>Just some AI generated song-thing.</em></li>
+<li>PC-FREEDOM@なんちゃってエンジニアリング: <a href="https://www.youtube.com/watch?v=gN6K_0HJDsU">今日は Ubuntu Touch と カスタム ROM の話をしよう。</a></li>
+<li>Lup Yuen Lee: <a href="https://www.youtube.com/watch?v=lYiIEip0zII">#SDWire MicroSD Multiplexer + #PinePhone ... On #Pine64 Avaota-A1 SBC and Apache #NuttX RTOS</a></li>
+<li>Jozef Mlich: <a href="https://www.youtube.com/watch?v=BVibtM1QcHE">nemomobile - glacier-settings + lipstick</a></li>
+<li>MN Entertainment: <a href="https://www.youtube.com/watch?v=AKXK1BJjljw">Furilabs Review | Is Furilabs.com a Scam or Legit Website?</a></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>spacekookie: <a href="https://octodon.social/@spacekookie/114120601249133376">"The problem isn’t that the fediverse isn’t viable. The problem isn’t that it’s “too complicated.” The problem is that the giants of Silicon Valley have spent 20 years convincing us that anything outside their control isn’t worth our time. I have been saying this for at least a decade and I shall scream it into the void for at least a decade to come but:the over-simplification of technical jargon, interfaces, and capabilities of end-user software and hardware have been a disaster for tech literacy of the 'general population' and have aided the creation of walled gardens more than the lack of open alternatives.(quote from https://www.joanwestenberg.com/the-fediverse-isnt-the-future-its-the-present-weve-been-denied/)"</a></li>
+<li>KekunPlazas: <a href="https://mamot.fr/@KekunPlazas/114116374454303002">"What I'm trying to say is: we can't accept that accessibility is just for the disabled to develop. Commons have to be developed and maintained collectively by everybody, and we should particularly develop things we don't personally need to use the commons so others can be part of them too.Yeah I once again tried text-to-speech on GNOME and my hears got quickly shredded by espeak."</a></li>
+<li>thibaultamartin: <a href="https://mamot.fr/@thibaultamartin/114104505903733268">"I wrote this post about welcoming feedback a little while ago. Most of it still stands, but I have come to a realization.Friction is a friend, not an enemy.I do welcome feedback about my posts. I even actively look for it before publishing.But not all feedback is equal. A snarky comment on reddit can be cheap and demoralizing. A thoughtful email can bring me a new perspective.Friction to comment is actually a good thing.https://ergaster.org/posts/2024/03/06-welcoming-feedback/"</a></li>
+<li>@dos@librem.one: <a href="https://social.librem.one/@dos/114122563996009808">For those interested, I’ve pushed the firmware that implements the necessary alt-mode dance to get UART out of the #Librem5's USB-C port to #Debubo’s repository.It wasn’t pushed before because it was very crude and I wanted to clean it up before pushing. It still is, but I decided to actually get it out regardless rather than risk having it sit and wait for even more months 😛</a></li>
+<li>r/linux: <a href="https://old.reddit.com/r/linux/comments/1j6iqek/debian_running_on_android_march_2025_update/">Debian running on Android (March 2025 update)</a></li>
+</ul>
+<h4 id="flx1-corner">FLX1 corner</h4>
+<ul>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114119229091382850">"#FuriOS update 13.0.8 for #FLX1 has been delayed by about 10 days, but you why was this?I decided to find the reason for the battery drain here is what we foundfirstly, packagekit is a battery hog, so we wrote a #GNOME software plugin for aptkit for system updates, second was related to modems mainloop being blocked (sometimes and inconsistently) and not going to sleep and last (the hardest to find) was with the WiFi driver not going to sleep correctly.All fixed up and landing this month!"</a></li>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114133545824890655">another update on this the battery has now dropped by 30% in 85 hours.at this rate it the estimated 100 to 0 is roughly around 12.5 days. of course there is still room for optimizations so we can easily get it to 14 days of idle time, but i think this will do for this month.#flx1 #furios #furilabs #FuriPhoneFLX1 #LinuxOnMobile #LinuxMobile</a></li>
+<li>r/linux: <a href="https://old.reddit.com/r/linux/comments/1j46f2w/flx1_linux_phone_display_out/">FLX1 Linux Phone Display Out!</a></li>
+<li>fakeshell: <a href="https://social.likeadragonmaid.dev/@fakeshell/114131230494110121">"so yes the rumors are correct (this was leaked on reddit a few days ago, oh well)the #FLX1 will be getting support for hooking up to external displays. the difference here compared to other approaches is that it will be running full #GNOME shell instead of #Phosh desktop mode (with some integration). as much as we love Phosh, GNOME shell simply provides a superior experience on a large display (and our community members voted for this too)#furilabs #FuriPhoneFLX1 #LinuxOnMobile #LinuxMobile"</a></li>
+<li>Sturmflut: <a href="https://mastodon.social/@Sturmflut/114131638867908015">Apparently the #Furilabs #FLX1 actually did have the hardware to drive an external display over USB-C and it's now being made usable. That changes the value proposition of the device a lot!#linuxmobile #linuxphone #linuxphones</a></li>
+</ul>
+<h4 id="camera-corner">Camera corner</h4>
+<ul>
+<li>adrianyyy: <a href="https://chaos.social/@adrianyyy/114099891122699699">Welcome to Mobile Linux in 2025! Generic device packages and U-Boot :)</a>, <a href="https://mastodon.social/@adriannyc/114127304428803620">"Shot on OnePlus 6T running SXMO, now with camera support . #postmarketos #linuxphone #oneplus #linux"</a>. <em>This is so impressive. Also, manual focus control sounds worse than it is; the slider implementation is really good. All you need is enough light, and you will have nice photos. So many thanks to everyone involved!</em></li>
+<li>CalcProgrammer1: <a href="https://mastodon.social/@CalcProgrammer1/114122374224922084">Got the camera actuator on my #OnePlus 6T to focus with the help of @NekoCWD and poking i2c registers with i2cset. It looks like the actuator on my camera needs an enable register set.This is at focus 1700:#postmarketOS</a></li>
+<li>pocketvj: <a href="https://fosstodon.org/@pocketvj/114128238947306115">@CalcProgrammer1 you can create fast #gmic pipeline to do this corrections for you....i am experimenting with stable-diffusion.cpp to enhance the image quality, but after 30min waiting (#pocof1), the quality stays the same while the content changes 😂#linuxmobile</a></li>
+</ul>
+<h4 id="events">Events</h4>
+<ul>
+<li>cccac: <a href="https://chaos.social/@cccac/114129852742779470">Our Mainlining-Workshop last month was very well received - so well that we decided to host a monthly Mainlining-Evening on the first Tuesday of every month for seeking assistance and hacking together.More info: https://ccc.ac/post/2025-03-09-mainlining-evenings</a></li>
+</ul>
+<h4 id="watch-stuff">Watch stuff</h4>
+<ul>
+<li>bailuk: <a href="https://mastodon.social/@bailuk/114097525555763044">I've released 'script-shell'. It's an app for @AsteroidOS that lets you select and run custom scripts from the display of your watch. https://github.com/bailuk/script-shell</a></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/03/twig-190/">#190 Cross Platform</a></li>
+<li>ADETOYE ANOINTING: <a href="https://blogs.gnome.org/yorubad-dev/2025/03/08/more-than-code-outreachy-gnome-experience/">More Than Code: Outreachy Gnome Experience</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GNOME-GTK-Android-macOS">GTK On Android & macOS Seeing Improvements</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GNOME-48-Release-Candidate">GNOME 48 Release Candidate Brings Late Mutter Features & Other Changes</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>agx: <a href="https://ruhr.social/@agx/114127676924920713">The initial draft MR to put a wallpaper on #phosh's lockscreen is now >1.5y old but it's not draft any longer 🎉 (I'll spare you the details why this took so long).#LinuxMobile</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114093423445657399">Ever since adding the <code>Haptic</code> API to #feedbackd for games I wanted to make the <code>VibraPattern</code> available to feedback themes as well as this allows for more nuanced feedback. This allows us to e.g. use more subtle feedback for OSK button presses than for 📢 of incoming SMS. Opened MRs to make that possible andwhile at that I made the maximum strength for all events confiurable too. It's a bit hard to 👂 in the 📽️ but it's there. Hopefully this makes it into #phosh 0.46:#LinuxMobile</a></li>
+<li>#phosh: <a href="https://ruhr.social/@agx/114127556238046974">@thejackimonster Oh, and regarding the calendar's notification not doing any buzzing: just assign any feedback to the <code>notification-new-generic</code> , event in the feedback theme.We don't do that atm when a notification doesn't set a category to not make people go crazy. Now with more nuanced haptic we might emit s.th. by default though, so I've opened https://source.puri.sm/Librem5/feedbackd/-/merge_requests/160 but this is already configurable in current releases, just need to add an event to the theme.#phosh #feedbackd</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114116499374008562">"@benedikt reported some issues with #xwaylandvideobridge and #phosh and it turned out it uses _NET_WM_WINDOW_OPACITY which was proposed > 2️⃣ 0️⃣ years ago to be added to the wm-spec (https://lists.freedesktop.org/archives/xdg/2003-December/001413.html) but never landed although Qt, GTK and others use (or used) it.That just changed (https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/97) and we also already have #wlroots support now too so phosh can happily use it too. But maybe I'm the only person that finds this kind of archeology exciting 🙃 ."</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/03/08/this-week-in-plasma-a-very-fixy-week/">This Week in Plasma: A Very Fixy Week</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/gear/24.12.3/">KDE Gear 24.12.3</a></li>
+<li>Volker Krause: <a href="https://www.volkerkrause.eu/2025/03/08/kde-android-news-march-2025.html">KDE Android News (March 2025)</a></li>
+<li>Planet KDE: <a href="https://tsdgeos.blogspot.com/2025/03/kde-gear-2504-branches-created.html">KDE Gear 25.04 branches created</a></li>
+<li>Planet KDE: <a href="https://wolthera.info/2025/03/controls-for-opentype/">Controls for OpenType</a></li>
+<li>Planet KDE: <a href="https://blog.vladzahorodnii.com/2025/03/05/cursor-shape-v1-support-landed-in-gtk3/">cursor-shape-v1 support landed in GTK3</a></li>
+<li>Planet KDE: <a href="https://www.basyskom.de/3d-rendering-solutions-in-qt-an-overview/">3D Rendering Solutions in Qt – an Overview</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-Fixes-Large-Num-Bugs">KDE This Week Took Care Of "A Very Large Number Of Bugs"</a></li>
+</ul>
+<h4 id="sxmo">Sxmo</h4>
+<ul>
+<li>#sxmo: <a href="https://fosstodon.org/@pocketvj/114100087277430203">@nima because you never tried #sxmo 😉</a></li>
+<li>@pocketvj@fosstodon.org: <a href="https://fosstodon.org/@pocketvj/114133525634374826">maybe we should consider some sort of algo to enhance image quality on #linuxmobile #pmos phones:https://people.ee.ethz.ch/~ihnatova/https://github.com/HuiZeng/Image-Adaptive-3DLUTI am aware that there is a lot to gain with first fixing the camera drivers to take a correct photo. also working from the other direction as well makes sense to combine both techniques at some point ...experimenting with stable-diffusion.cpp on my #pocof1 (i miss pytorch support on alpine..), its soo slow 😂</a></li>
+</ul>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>Community News - Sailfish OS Forum: <a href="https://forum.sailfishos.org/t/sailfish-community-news-6th-march-2025-mwc-2025/22470">Sailfish Community News, 6th March 2025 - MWC 2025</a></li>
+<li>#sailfishOS: <a href="https://social.anoxinon.de/@lejapproach/114126992715292344">@Some_Emo_Chick I would love to see #SailfishOS as an alternative to Android and iOS.Its entry threshold is higher than the ones of Android-based offers like #GrapheneOS or #LineageOS but on the plus side it's as Google-free as it gets because it's not based on Google's Android and can run Android apps nevertheless. https://en.wikipedia.org/wiki/Sailfish_OS #Jolla #unplugTrump</a></li>
+<li>#sailfishOS: <a href="https://mastodon.gamedev.place/@poetaster/114111814739942672">#SFOS users, we have a Tidal client in #Chum now. I am told it works well. #SailfishOs #Tidal</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-ota-8-focal-release-3953">Ubuntu Touch OTA-8 Focal Release</a></li>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10824/ubuntu-touch-q-a-160-call-for-questions">Ubuntu Touch Q&A 160 Call for Questions</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/core/lomiri/-/issues/124">Expose more features through Wayland or other Linux-standard ways</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/project-management/-/issues/14">Tracking issue for minor release: 20.04 OTA-8</a></li>
+<li>#UbuntuTouch: <a href="https://social.tchncs.de/@deltatouch/114129170108397227">DeltaTouch 1.12.0 is out, highlights:🔹 Sync deletion of messages and chats across devices🔸 Page sized text editor for longer messages🔹 Webxdc: Notifications (and more)🔸 Improved integration into UT (ContentHub import/share)Also included: Preparation for the long-awaited feature teased by @delta 😇 https://chaos.social/@delta/114126529706721026 Full changelog: https://codeberg.org/lk108/deltatouch/src/branch/xenial/CHANGELOG Webxdc support in DeltaTouch is generously funded by @nlnet / @NGIZero, thanks!#DeltaTouch #DeltaChat #Webxdc #UbuntuTouch</a></li>
+<li>#UbuntuTouch: <a href="https://mastodon.social/@fla/114111102716695538">I rebooted my Pixel 3a running #ubuntuTouch to package my web app #disco2very for it:https://open-store.io/app/disco2very.flaburganI have to say that I still find the OS lovely. If Signal was working there and if more services were available as websites instead of apps, I would definitely switch back to it as my primary phone OS.</a></li>
+<li>#UbuntuTouch: <a href="https://mastodon.social/@newsfeedindia/114109818048678025">Ubuntu Touch in 2025: Is It a Viable Mobile OS Alternative? https://techrefreshing.com/ubuntu-touch-in-2025/ #UbuntuTouch #LinuxMobile #PrivacyFirst #OpenSource #UBports #UbuntuTouch2025 #MobileOS #TechNews #Waydroid #FOSS #AndroidAlternative</a></li>
+<li>#UbuntuTouch: <a href="https://mastodon.social/@os_sci/114108762014080487">It's well known we fully support #UBports and #UbuntuTouch. Following is a nice, actual article about the developments. May the #foss be with you. #floss #opensource https://www.howtogeek.com/ubuntu-touch-ota-8-update/</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<h5 id="mobian">Mobian</h5>
+<ul>
+<li>Mobian mobian-recipes Merge Requests: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/117">rockchip: add dkms and gcc for installing PineTab2 Wi-Fi driver</a></li>
+<li>Mobian mobian-recipes Issues: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/issues/46">phrog not coming up on the screen</a></li>
+</ul>
+<h5 id="postmarketos">postmarketOS</h5>
+<ul>
+<li>postmarketOS Blog: <a href="https://postmarketos.org/blog/2025/03/04/pmOS-update-2025-02/">postmarketOS in 2025-02: MSM89x7 Audio, Modern Xiaomis in Community, New Name Foreshadowing</a>
+<ul>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/26708607">postmarketOS in 2025-02: MSM89x7 Audio, Modern Xiaomis in Community, New Name Foreshadowing</a></li>
+</ul>
+</li>
+<li>postmarketOS pmaports Merge Requests: <a href="https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6286">Add a generic qcom-sm7150 device package</a></li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Generic_SM7150_(qcom-sm7150)">Generic SM7150 (qcom-sm7150)</a></li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Mediaberry">Mediaberry</a></li>
+<li>mistersixt: <a href="https://kanoa.de/@mistersixt/114103790843404452">"In case you are running #postmarketos with #phosh : with the latest packages (pmo 24.12.) the GUI was no longer starting up on my librem5, ending up with the login prompt on the console. The reason is that "phoc" does not know the parameter -v , and removing that entry in /usr/bin/phosh-session brings back the GUI upon a reboot:exec $SYSTEMD_CAT "${COMPOSITOR}" -v -S -C "${PHOC_INI}" -E "bash -lc 'exec ${GNOME_SESSION} --disable-acceleration-check --session=phosh'""</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/de.leopoldluley.clapgrep/">Clapgrep</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/dev.heppen.webapps/">Quick Web Apps</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/io.github.lainsce.countdown/">Countdown</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/vn.hoabinh.quan.cobang/">CoBang</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/ca.vlacroix.tally/">Tally</a>
+<ul>
+<li>vtrlx: <a href="https://mastodon.social/@vtrlx/114027133053164075">Tally has been updated to allow the app to properly display on mobile devices. Big thanks to @1peter10 for contributing the code for this change—I just made a few extra tweaks from there.Get it on Linux from Flathub at https://flathub.org/apps/ca.vlacroix.Tally/</a></li>
+</ul>
+</li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/com.github.krtirtho.spotube/">Spotube</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/org.nickvision.tagger/">Tagger</a></li>
+<li>LinuxPhoneApps.org: Apps: <a href="https://linuxphoneapps.org/apps/page.kramo.sly/">Sly</a>
+<ul>
+<li>pocketvj: <a href="https://fosstodon.org/@pocketvj/114107620887339195">"@NekoCWD i just found a promising, quick and easy #linuxmobile friendly photo editor:flatpak install https://dl.flathub.org/build-repo/167819/page.kramo.Sly.flatpakref"</a></li>
+</ul>
+</li>
+<li>camiloh: <a href="https://fosstodon.org/@camiloh/114110696224848743">Pix upcoming version is coming with image text identification to copy the text contained in images quickly.@mauiproject @Nitrux_NX#mauikit</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>NekoCWD: <a href="https://mastodon.social/@NekoCWD/114105294775112937">"I sent my OnePlus 6 focus driver upstream 🐱 📬.https://patchwork.kernel.org/project/linux-media/cover/20250304-media-i2c-lc898217xc-initial-driver-v1-0-e2ffd2b2fd5e@mainlining.org/And some random cat came to pay his respects, I guess. Photo taken on a OnePlus 6 running @postmarketOS#linuxonmobile #mobilelinux #CatsOfMastodon #photography"</a></li>
+<li>mntmn: <a href="https://mastodon.social/@mntmn/114115987256402881">"awesome, the device tree for the RK3588 version of classic MNT Reform is upstreamed to Linux thanks to @bluerise https://lore.kernel.org/linux-rockchip/174126874161.670332.12638948694058332407.b4-ty@sntech.de/T/#t"</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250309062315.35720-1-adrian@mainlining.org/">[PATCH v4 0/2] Add Goodix Berlin-A series support</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250308-imx214_clk_freq-v1-0-467a4c083c35@apitzsch.eu/">[PATCH RESEND 0/4] media: i2c: imx214: Add support for 23.88MHz clock</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250308-synaptics-rmi4-v3-0-215d3e7289a2@ixit.cz/">[PATCH v3 0/7] Subject: [PATCH v3 0/7] Input: synaptics-rmi4: add quirks for third party touchscreen controllers</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/174113463200.345304.7962244845761048963.git-patchwork-notify@kernel.org/">Re: [PATCH 0/3] Fixes for IPA v4.7</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Apple-Silicon-DT-3-Linux-6.15">More Apple Silicon Updates For Linux 6.15 Help M1/M2 Plus iPad / iPod / iPhone</a></li>
+</ul>
+<h4 id="non-linux">Non-Linux</h4>
+<ul>
+<li>lupyuen: <a href="https://qoto.org/@lupyuen/114114758843352108">#PinePhone connected to #SDWire MicroSD Multiplexer ... Moment of truth 😬Article: https://lupyuen.org/articles/testbot2.html#real-hardware-arm-and-esp32</a> <em>Maybe interesting for others looking into automated testing, too!</em></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/PipeWire-1.4-Released">PipeWire 1.4 Released With MIDI 2.0 Support & Other New Features</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Mesa-25.1-Venus-Vulkan-RT">Mesa's Venus Driver Adds Vulkan Ray-Tracing Support For VMs</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Mesa-Shader-Stats-Framework">Mesa Lands A Shader Statistics Framework For More Unification Across Drivers</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Vulkan-Video-2025-Plans">Vulkan Video Continues Making Inroads, VP9 Decode Planned For This Year</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Blender-Vulkan-Exciting-2025">Blender's Vulkan Renderer Is Making Great Progress To Production Readiness This Year</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/FEX-Emu-2503-Released">FEX 2503 Brings Fixes & Multi-Block By Default For x86_64 Linux Binaries On ARM64</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/03/07/this-week-in-matrix-2025-03-07/">This Week in Matrix 2025-03-07</a></li>
+</ul>
+<h2 id="week-9">Week 9</h2>
+<p>Late due to</p>
+<ul>
+<li>@linmob@fosstodon.org: <a href="https://fosstodon.org/@linmob/114086853946677622">Due to personal health issues (nothing too critical, don't worry), Peter won't be able to publish a "Weekly #MobileLinux Update" post this weekend. The current plan is to have a combined post about two weeks on the 8th of March.Sorry about that! If you're impatient you can always use the pipeline (by re-running this https://framagit.org/linmob/linmob.frama.io/-/jobs/2738005 job tomorrow 🙂</a> <a href="https://fosstodon.org/@linmob/114086860245838403">If someone wants to step up, merging a MR or applying a patch/uploading a file is something I feel able to 🙂</a> <em>I can't rule out that this will not happen again. If you're up to be a "Weekly Update Stand-In", please get in touch - best by email!</em></li>
+</ul>
+<h3 id="worth-reading-1">Worth Reading</h3>
+<ul>
+<li>FuriLabs: <a href="https://furilabs.com/fastflx1/">Community Contributions – FastFLX1</a></li>
+<li>FuriLabs: <a href="https://furilabs.com/iphone-gives-up-your-data/">iPhone Gives Up Your Data</a></li>
+<li>Velvet Reindeer: <a href="https://blanketfort.blog/velvetreindeer/papr">Papr</a></li>
+</ul>
+<h3 id="worth-watching-1">Worth Watching</h3>
+<ul>
+<li>Continuum Gaming: <a href="https://www.youtube.com/watch?v=WL14wrME2K4">Continuum Gaming E458: SFOS-Update 5.0.0.61/62 for all supported smartphones (stable release)</a></li>
+<li>レトロモバイルチャンネル2: <a href="https://www.youtube.com/watch?v=dNEqcc2jZV0">【CyberDeck】Let's make a small computer</a></li>
+<li>OS-SCi: <a href="https://www.youtube.com/watch?v=2KZznwjp0ng">ubports and Ubuntu Touch</a></li>
+<li>DHOCNET Store: <a href="https://www.youtube.com/watch?v=kf54AGMtXeU">Cara Install VSCode Pada HaPlay GO Zero 1 | PostmarketOS v24.06 Linux | Visual Studio Code</a></li>
+<li>David Hamner: <a href="https://www.youtube.com/watch?v=GLl4-82vZ7A">Are Linux Phones Ready in 2025?</a></li>
+<li>Bird Zhang: <a href="https://www.youtube.com/watch?v=8xs-f64eG5I">Running Openpilot on SailfishOS #sailfish #openpilot</a></li>
+<li>Don White: <a href="https://www.youtube.com/watch?v=EHEfrYSCN4s">Robert Braxman - Ubports</a></li>
+<li>mic li: <a href="https://www.youtube.com/watch?v=CY61rVyj_dk">postmarketos ttyescape show</a></li>
+<li>Öcülü kuş kebabı: <a href="https://www.youtube.com/watch?v=9uFqTgyWN0M">Weird postmarketOS issue</a></li>
+<li>𝙰𝙻𝙲𝙷𝙴𝙼𝙸𝚂𝚃: <a href="https://www.youtube.com/watch?v=3SVwSCnhWT4">Cyberdeck Game Devlog 1 - Getting started</a></li>
+<li>OS-SCi: <a href="https://www.youtube.com/watch?v=veujsVA-vtU">Crowd Bounty The launch of a honest bug bounty system.</a></li>
+<li>Radio and Electronics Engineering: <a href="https://www.youtube.com/watch?v=aBkuY1kxj6A">3D Printed Cyberdeck Laptop using @benmakeseverythingbuild and @FrameworkComputer parts</a></li>
+<li>Benny Malik: <a href="https://www.youtube.com/watch?v=rdc-CtfgFUU">Tema Ubuntu Touch full Transparan For Xiaomi Redmi Ubah Tampilan Xiaomi Jadi Ubuntu</a></li>
+<li>Приключения Электроника: <a href="https://www.youtube.com/watch?v=5l4SmIKgugE">Экспресс распаковка: Jolla C2 на Sailfish OS - долгожданная альтернатива!</a></li>
+<li>Jozef Mlich: <a href="https://www.youtube.com/watch?v=BVibtM1QcHE">nemomobile - glacier-settings + lipstick</a></li>
+</ul>
+<h3 id="worth-noting-1">Worth Noting</h3>
+<ul>
+<li>pocketvj: <a href="https://fosstodon.org/@pocketvj/114059387251907843">new to #sxmo #postmarketos #linuxmobile? thanks to #friction2d i made gifs on how to use gestures 🤩 (let me know if you are motivated to create a greeter...)</a></li>
+<li>r/MobileLinux: <a href="https://www.reddit.com/r/mobilelinux/comments/1j0ix1r/are_linux_phones_ready_in_2025/">Are Linux Phones Ready in 2025?</a></li>
+<li>Purism community: <a href="https://forums.puri.sm/t/charging-with-iphone-charger/27867">Charging with iPhone charger</a></li>
+<li>r/linux: <a href="https://old.reddit.com/r/linux/comments/1j0rtv4/would_you_recommend_the_finnish_jolla_linux_phone/">Would you recommend the Finnish Jolla Linux phone?</a></li>
+</ul>
+<h3 id="more-software-news-1">More Software News</h3>
+<h4 id="gnome-ecosystem-1">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/02/twig-189/">#189 Global Shortcuts</a></li>
+<li>Aryan Kaushik: <a href="https://www.aryank.in/posts/2025-02-25-gnome-gsoc-2025/">GNOME in GSoC 2025</a></li>
+<li>hansdegoede: <a href="https://hansdegoede.dreamwidth.org/29477.html">ThinkPad X1 Carbon Gen 12 camera support and other IPU6 camera work</a></li>
+<li>who-t: <a href="http://who-t.blogspot.com/2025/02/libinput-and-3-finger-dragging.html">libinput and 3-finger dragging</a></li>
+<li>who-t: <a href="http://who-t.blogspot.com/2025/02/gnome-48-and-changed-tap-and-drag-drag.html">GNOME 48 and a changed tap-and-drag drag lock behaviour</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GNOME-Mutter-Cursor-Shape">GNOME's Mutter Now Supports The Wayland Cursor Shape Protocol</a></li>
+</ul>
+<h4 id="phosh-1">Phosh</h4>
+<ul>
+<li>agx: <a href="https://ruhr.social/@agx/114093423445657399">Ever since adding the <code>Haptic</code> API to #feedbackd for games I wanted to make the <code>VibraPattern</code> available to feedback themes as well as this allows for more nuanced feedback. This allows us to e.g. use more subtle feedback for OSK button presses than for 📢 of incoming SMS. Opened MRs to make that possible andwhile at that I made the maximum strength for all events confiurable too. It's a bit hard to 👂 in the 📽️ but it's there. Hopefully this makes it into #phosh 0.46:#LinuxMobile</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114087442476287545">Status Update for February 25: https://honk.sigxcpu.org/con/Free_Software_Activities_February_2025.html 🐛, 📱 and mostly maintenance#phosh #LinuxMobile #Debian</a></li>
+<li>agx: <a href="https://ruhr.social/@agx/114081727236437022">Successfully tested receiving #cellbroadcast messages on the #PinePhone as well:# _build/test/mmcbmmonitor[/org/freedesktop/ModemManager1/CBM/0] new cbm: received 4371: Hallo, this is a CBS test messageSo hopefully all devices supporting <code>+CSCB</code> on an AT port should now be able to show these messages in @phosh (if the MR makes it into the next #ModemManager release).The #osmocom stack is such a great help for testing these things.Thanks to @NGIZero for supporting this.#LinuxMobile</a></li>
+</ul>
+<h4 id="plasma-ecosystem-1">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/03/01/this-week-in-plasma-great-stuff-for-6.4/">This Week in Plasma: Great Stuff for 6.4</a>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/KDE-Plasma-6.4-Past-6.3">KDE Developers Begin More Feature Work On Plasma 6.4</a></li>
+</ul>
+</li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/02/25/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/plasma/6/6.3.2/">KDE Plasma 6.3.2, Bugfix Release for February</a></li>
+<li>KDE e.V. News: <a href="https://ev.kde.org/2025/02/24/2025-02-24-kde-kde-job-plasma-software-engineer/">KDE e.V. is looking for a Plasma software engineer</a></li>
+<li>Qt blog: <a href="https://www.qt.io/blog/qt-creator-16-rc-released">Qt Creator 16 RC released</a></li>
+</ul>
+<h4 id="sxmo-1">Sxmo</h4>
+<ul>
+<li>#sxmo: <a href="https://floss.social/@dimitrisk/114094496966466665">Exploring ways to improve my #sxmo use cases https://floss.social/@dimitrisk/112864085895621222 I tried the #textualize demo on my #LinuxMobile device. It seems quite interesting.Is there any RSS reader, Podcasts or Web radio textualize application?#askFedi</a></li>
+<li>#sxmo: <a href="https://fosstodon.org/@pocketvj/114061951533394622">@proycon @maia perfect, thanks.... so here are two more:#sxmo #postmarketos</a></li>
+<li>@pocketvj@fosstodon.org: <a href="https://fosstodon.org/@pocketvj/114089260574025987">@NekoCWD I have no idea in which coding language (and how) one would build such a thing....hacked something ugly looking but somehow working in python....I know its missing a degree display, the whole #Kalman filter stuff, and the reset after ssccli crashes, but hei, its something... #linuxmobile</a></li>
+</ul>
+<h4 id="sailfish-os-1">Sailfish OS</h4>
+<ul>
+<li>Jolla Blog: <a href="https://blog.jolla.com/sailfish-os-5-0-tampella-is-here/">Sailfish OS 5.0 Tampella is here!</a></li>
+<li>#sailfishOS: <a href="https://sk.zehnvorne.social/notes/a4ufcwhrdroo01mq">Has someone running #SFOS / #SailfishOS on a #PPP / #PinephonePro without issues? I've installed it on Friday and can't get mobile data working while phone calls are working great. Would be nice to know where to start troubleshooting.#mobileLinux</a></li>
+<li>#sailfishOS: <a href="https://mastodon.theyosh.nl/@theyosh/114082524701575823">@flypig How cool is that your name is in the release 5.X release message?!I red you blog about the gecko engine updates. Damm, nice work!! And thanks for doing it!#sailfishos #mobile #Sailfish</a></li>
+<li>#sailfishOS: <a href="https://techhub.social/@jolladevices/114081720078913258">Sailfish OS 5.0 is out and the true Jolla C2 launch!#sailfishos #jolla#jc2https://jolla-devices.com/news/early-2025-sailfish-os-5-0-is-out-and-the-jc2-true-launch/</a></li>
+</ul>
+<h4 id="ubuntu-touch-1">Ubuntu Touch</h4>
+<ul>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10818/ota8-release-delay">OTA8 Release Delay</a></li>
+<li>UBports - Development - Issues: <a href="https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/issues/214">screenshot from readme in mobile</a></li>
+</ul>
+<h4 id="nemo-mobile">Nemo Mobile</h4>
+<ul>
+<li>Jozef Mlich on Fosstodon: <a href="https://fosstodon.org/@jmlich/114068871029335345">I have applied to #installfest with the talk "Last Mile from Mobile Linux to the User." The talk will be in Czech, and I’m available only on Sunday. Give me a vote if you’d like to see it! I plan to complement @okias's talk on Mobile Linux.https://pretalx.installfest.cz/installfest-2025/p/voting/signup/</a></li>
+</ul>
+<h4 id="distributions-1">Distributions</h4>
+<ul>
+<li>Mobian mobian-recipes Merge Requests: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/117">rockchip: add dkms and gcc for installing PineTab2 Wi-Fi driver</a></li>
+<li>postmarketOS pmaports Merge Requests: <a href="https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6255">main/postmarketos-ui-plasma-mobile: switch to Dolphin from Index</a></li>
+<li>postmarketOS Wiki New Pages: <a href="https://wiki.postmarketos.org/wiki/Office_hours">Office hours</a></li>
+<li>Lemmy - postmarketOS: <a href="https://lemmy.ml/post/26595553">How are mimetypes defined?</a></li>
+<li>postmarketOS pmbootstrap tags: <a href="https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/tags/3.3.1">3.3.1</a></li>
+<li>postmarketOS pmbootstrap tags: <a href="https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/tags/3.3.0">3.3.0</a></li>
+</ul>
+<h4 id="apps-1">Apps</h4>
+<ul>
+<li>@pocketvj@fosstodon.org: <a href="https://fosstodon.org/@pocketvj/114067718545972772">@linmob finally we have a beautiful modern #gemini browser with certs support on #linuxmobile 🎉#alhena https://metaloupe.com/alhena/alhena.html launching it is still a bit a pain since we have to run it with agem java and alpine is missing jpackage to create a bin 🤷but its way nicer to use than ncgopher (the others are missing certs support)...</a></li>
+</ul>
+<h4 id="kernel-1">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250227-ipa-v4-7-fixes-v1-0-a88dd8249d8a@fairphone.com/">[PATCH 0/3] Fixes for IPA v4.7</a></li>
+<li>phone-devel: <a href="https://lore.kernel.org/phone-devel/20250226-fp5-pmic-glink-dp-v1-0-e6661d38652c@fairphone.com/">[PATCH 0/3] Fairphone 5 DisplayPort over USB-C support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/ARM-Linux-Generic-Entry">ARM Linux Kernel May Shift To Generic Entry Code: Less Assembly But Lower Performance</a></li>
+</ul>
+<h4 id="stack-1">Stack</h4>
+<ul>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.14-rc5-Released">Linux 6.14-rc5 Released: "Nothing Strange Stands Out"</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/TurnkeyML-6.0-Released">TurnkeyML 6.0 Released With OpenAI-Compatible Server, Other Changes</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/SDL-3.2.6-Released">SDL 3.2.6 Released With HiDPI Icons & Color Management On Wayland</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/GCC-15.1-Coming-Soon">GCC 15.1 Compiler Nears Release As Bugs Whittled Away</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Extending-Linux-GPU-Wedge-Event">Linux's New Way Of Informing User-Space Over Hung GPUs May Become More Useful</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/FreeDesktop.org-Hosting-2025">FreeDesktop.org Devises New Hosting Plan For GitLab Infrastructure</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/NetworkManager-1.52-Released">NetworkManager 1.52 Brings IPVLAN Interface Support, Ethtool FEC Mode</a></li>
+</ul>
+<h4 id="matrix-1">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/02/28/this-week-in-matrix-2025-02-28/">This Week in Matrix 2025-02-28</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+
+
+
+ Weekly GNU-like Mobile Linux Update (08/2025): Cameras and Project Updates
+ 2025-02-23T22:08:51+00:00
+ 2025-02-23T22:08:51+00:00
+
+ https://linmob.net/weekly-update-08-2025/
+ <p>Mobian gives an update on present and future changes, an interesting Ubuntu Touch Q&A, another collection of Sailfish Community News, some Flathub news and more! Enjoy!</p>
+<span id="continue-reading"></span>
+<p><em>Commentary in italics.</em></p>
+<h3 id="worth-reading">Worth Reading</h3>
+<ul>
+<li>Mobian Blog: <a href="https://blog.mobian.org/posts/2025/02/early-2025-news/">2025: off to a flying start!</a>
+<ul>
+<li>Lemmy - linuxphones: <a href="https://lemmy.ml/post/26241008">2025: off to a flying start! // Mobian's Blog</a></li>
+</ul>
+</li>
+<li>Nico's blog: <a href="https://www.ncartron.org/blocking-phone-numbers-from-cli-in-sailfish-os.html">Blocking phone numbers from CLI in Sailfish OS</a></li>
+<li>Flathub blog: <a href="https://docs.flathub.org/blog/app-safety-layered-approach-source-to-user">Flathub Safety: A Layered Approach from Source to User</a></li>
+<li>alatiera: <a href="https://blogs.gnome.org/alatiera/2025/02/19/the-fedora-project-leader-is-willfully-ignorant-about-flathub/">The Fedora Project Leader is willfully ignorant about Flathub</a></li>
+</ul>
+<h3 id="worth-watching">Worth Watching</h3>
+<ul>
+<li>veggero: <a href="https://tube.kockatoo.org/videos/watch/e253cf2a-1cf6-47ac-9d56-ee0e9c7937c3">Solving Burnout via Flathub Paid Apps</a></li>
+<li>UBports: <a href="https://www.youtube.com/watch?v=h5WoMfkB8pA">Ubuntu Touch Q&A 159</a> <em>Qt6, VoLTE, hardware ... a lot of cool new stuff in this, make sure to watch!</em></li>
+<li>1337 Sheets: <a href="https://www.youtube.com/watch?v=B-irFXKkGXs">Unboxing The PinePhone Pro First Look</a>. <em>Woah, that pre-installed software is ancient!</em></li>
+<li>Nicholas LaBonte: <a href="https://www.youtube.com/watch?v=u8kYHgKKhjY">Cyberdeck Handheld</a>. <em>Nice build!</em></li>
+<li>The Unboxing Gadget: <a href="https://www.youtube.com/watch?v=eRZf-xMyo5s">uConsole by Clockwork: I Waited 1 Year for This … Was It Worth It?</a></li>
+<li>Romactu: <a href="https://www.youtube.com/watch?v=M7LFX47I_js">How to use Touchscreen on Ubuntu 24.10</a>, <a href="https://www.youtube.com/watch?v=c6bFeWlJYPg">How to use #touchscreen on Ubuntu 24.10</a></li>
+<li>Taylor Hay: <a href="https://www.youtube.com/watch?v=ogmrAbKipak">Blackberry Pi - Portable Handheld Kali Linux Hacking Computer / Cyberdeck</a></li>
+</ul>
+<h3 id="worth-noting">Worth Noting</h3>
+<ul>
+<li>dcz: <a href="https://fosstodon.org/@dcz/114049041856734119">"Woohoo, #libobscura returned an image from the #librem5 !<code>Buffer size: 823296, seq: 0, timestamp: 18178.362439 [s]Writing to frame.GRBG</code>Now I'm scared to look at the data. It's probably garbage.But the proof of concept is there: you can treat the Media Controller API as a database and query it for valid image pipeline configurations.I wonder if the debayering #shader still works.But first, clean up and publish.#images #camera #linuxmobile #linux #rust"</a></li>
+<li>NekoCWD: <a href="https://mastodon.social/@NekoCWD/114035940649230807">:patcat: 🎉 Now there are driver for camera focus https://gitlab.com/NekoCWD/845-linux/-/commits/nekocwd/enchilada/6.13 #LinuxOnMobile #mobilelinux #photography</a></li>
+<li>Luigi311: <a href="https://mastodon.social/@Luigi311/114043161368390323">In case anyone is wondering those eSIM adapters really do work. It lets you add eSIM to any phone including #mobilelinux devices. I tried out the jmp.chat one on my #flx1 and it now has service through a jmp.chat eSIM. Programming them isn't as easy as it is on android though where you just download an app and install the eSIM. You instead need to get some details from the provider such as a QR code and what equates to a one time password.</a></li>
+</ul>
+<h4 id="mainline-vs-halium-debate">Mainline vs. Halium debate</h4>
+<ul>
+<li>cas: <a href="https://social.treehouse.systems/@cas/114030958540060680">"on Halium/droidian/linux mobilereally need to write a blog post about this but summarising my thoughts for now:* Droidian and other Halium based projects are not "Linux mobile", they do not embody the tenets implied by that category since they use a proprietary userspace.* They shouldn't be carelessly compared with #postmarketOS/Mobian, they are much closer to Android in terms of tech stack/complexity/longevity* Basically the WSL of #LinuxMobileBut, still good, still valuable for making your device more-free, and for the growing app ecosystem. but i am slowly losing my mind every time i see someone describe a mediatek phone running a proprietary BSP as "real linux mobile" you are warping what little "brand recognition" this community has and it will reflect poorly on all of us when more light is shed on the underlying software stacks and long-term unmaintainable downstream hacks"</a></li>
+<li>fredldotme: <a href="https://mastodon.social/@fredldotme/114037223285276597">"@cas I had to let this one sink for a day. I'm going to explain my PoV with an analogy.Suppose you're building a house, you'll have multiple options of materials for the outer walls, inner walls, etc.Mainline is a house made of regular plain old bricks, hand crafted, with more effort put in.Halium is similar to a house made of pre-done pieces, just stuck together.Both are houses, really. Both are "Linux". One is just more regular and used to than the other."</a> <em>My <a href="https://fosstodon.org/@linmob/114007889968178822">stance</a> remains (not on this thread, but a similar one).</em></li>
+</ul>
+<h4 id="hardware-support">Hardware support</h4>
+<ul>
+<li>9lore: <a href="https://donotsta.re/objects/40d62d18-4fdc-4b63-9097-d7e3ec7674a3">"Finally found time to work on a @postmarketOS port. I have refactored the oneplus-kebab (8T) #postmarketos port to use the sm8250 mainline kernel. It booted fine, but apparently i was missing firmware blobs for, among other things, WiFi and touchscreen. I’ve already got the firmware and will package it in the next few days."</a></li>
+<li>tyalie: <a href="https://chaos.social/@tyalie/114017487246774264">IT'S ALIIIVEEEEE. OMG JOOOO. <48h till mainline device init with graphic acceleration :D</a></li>
+</ul>
+<h3 id="more-software-news">More Software News</h3>
+<h4 id="gnome-ecosystem">Gnome Ecosystem</h4>
+<ul>
+<li>This Week in GNOME: <a href="https://thisweek.gnome.org/posts/2025/02/twig-188/">#188 Software Fixes</a></li>
+<li>Sam Thursfield: <a href="https://samthursfield.wordpress.com/2025/02/19/status-update-19-02-2025/">Status update, 19/02/2025</a></li>
+</ul>
+<h4 id="phosh">Phosh</h4>
+<ul>
+<li>agx: <a href="https://ruhr.social/@agx/114054228517776080">While #phosh handles centered notches and rounded corners out of the box (as long as there's device info in gmobile) we didn't handle notches on the right or left display corners at all yet.. A merge request from Eugene Lepshy to add support for the #nothingphone 1 made that very obvious so I cooked some inital MR to fix this (screen shot is from a nested phosh session as I don't have such a device):</a></li>
+<li>phosh: <a href="https://fosstodon.org/@phosh/114026426425496074">"As there's often the question how to move the cursor when using phosh-osk-stub as OSK: Here's a short demo. If you <em>really</em> want additional cursor <em>keys</em> one can add them as keys to the terminal layout's shortcut bar via gsettings set sm.puri.phosh.osk.Terminal shortcuts "[<yourothershortcuts>, 'Up', 'Down', 'Left', 'Right']"too.#Phosh #LinuxMobile"</a></li>
+</ul>
+<h4 id="plasma-ecosystem">Plasma Ecosystem</h4>
+<ul>
+<li>Nate Graham: <a href="https://blogs.kde.org/2025/02/22/this-week-in-plasma-refinements-all-around/">This Week in Plasma: Refinements All Around</a></li>
+<li>Carl Schwan et al.: <a href="https://blogs.kde.org/2025/02/17/this-week-in-kde-apps/">This Week in KDE Apps</a></li>
+<li>KDE Announcements: <a href="https://kde.org/announcements/plasma/6/6.3.1/">KDE Plasma 6.3.1, Bugfix Release for February</a></li>
+<li>Volker Krause: <a href="https://www.volkerkrause.eu/2025/02/22/osm-hack-weekend-karlsruhe-february-2025.html">OSM Hack Weekend February 2025</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Plasma-6.4-Less-KWin-Frame-Drop">KDE Plasma 6.4 Preps Improvement To Help KWin Reduce Frame Drops</a></li>
+</ul>
+<h4 id="sxmo">Sxmo</h4>
+<h4 id="sailfish-os">Sailfish OS</h4>
+<ul>
+<li>Community News - Sailfish OS Forum: <a href="https://forum.sailfishos.org/t/sailfish-community-news-20th-february-2025-sailfish-5-0-for-all/22221">Sailfish Community News, 20th February 2025 - Sailfish 5.0 for all</a></li>
+<li>Jolla Devices: <a href="https://jolla-devices.com/news/the-early-2025-j-d-bulletin/">The Early 2025 J-D bulletin: on the project itself</a></li>
+<li>#sailfishOS: <a href="https://scalie.zone/@w8l/114040015726277457">Just going to say it, Sailfish OS needs to be on more devices. Personally, I wish it were available in Southeast Asia. Even on a PinePhone, missing port functionality and meager hardware, it is evidently a very good OS. It is (mostly) open-source, stewarded by a company based in Europe, has a rather slick UI, and has comparable security with the major mobile OSes.#sailfishos #sailfish</a></li>
+<li>#sailfishOS: <a href="https://techhub.social/@jolladevices/114036483437504448">A new post is out after a while!"The Early 2025 J-D bulletin: on the project itself"#bulletin #tech #SailfishOS #VollaOS https://jolla-devices.com/news/the-early-2025-j-d-bulletin/</a></li>
+<li>piggz: <a href="https://fosstodon.org/@piggz/114026653665781729">"For the last few weeks ive been working on the viefinder code for my @libcamera based #linux camera app to use opengl, and it was totally worth it when running on something like the @PINE64 #pinephone"</a></li>
+<li>piggz: <a href="https://fosstodon.org/@piggz/114032919440259028">Working on the @PINE64 #PinephonePro camera using @libcamera. Progress is slow but steady!</a></li>
+</ul>
+<h4 id="ubuntu-touch">Ubuntu Touch</h4>
+<ul>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-q-a-158-3951">Ubuntu Touch Q&A 158</a></li>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-q-a-157-3950">Ubuntu Touch Q&A 157</a></li>
+<li>UBports News: <a href="http://ubports.com/blog/ubports-news-1/post/ubuntu-touch-ota-8-call-for-testing-3952">Ubuntu Touch OTA-8 Call for Testing</a></li>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10800/ota-8-call-for-testing">OTA-8 Call for Testing</a></li>
+<li>Ubuntu Touch Forums News: <a href="https://forums.ubports.com/topic/10790/ubuntu-touch-q-a-159-call-for-questions">Ubuntu Touch Q&A 159 call for questions</a></li>
+<li>#UbuntuTouch: <a href="https://linuxnews.de/das-volla-tablet-mit-ubuntu-touch-im-test/">Das Volla Tablet mit Ubuntu Touch im Test</a></li>
+<li>#UbuntuTouch: <a href="https://linuxnews.de/ubuntu-touch-alpha-fuer-24-04-noble/">Ubuntu Touch Alpha für 24.04 Noble</a></li>
+</ul>
+<h4 id="nemo-mobile">Nemo Mobile</h4>
+<ul>
+<li>Nemo Mobile UX team: <a href="https://nemomobile.net/pages/nemomobile-in-february-2025/">Nemomobile in February 2025</a></li>
+</ul>
+<h4 id="distributions">Distributions</h4>
+<ul>
+<li>Mobian Blog: <a href="https://blog.mobian.org/posts/2025/02/early-2025-news/">2025: off to a flying start!</a></li>
+<li>Mobian mobian-recipes Merge Requests: <a href="https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/136">include: use <code>phrog</code> as our default greeter</a></li>
+<li>rmader: <a href="https://mastodon.social/@rmader/114044237855672363">For those running #postmarketos with #systemd: you may want to run <code>systemctl preset-all</code> from time atm. until the MR below lands. Right now most updates adding more service files don't apply presets and thus don't enable the services by default - they only get enabled in new image builds. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6120#mobilelinux</a></li>
+<li>DanctNIX (Mastodon): <a href="https://fosstodon.org/@danctnix/114019192842928299">Perhaps we should give F2FS a try again on the new images.</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Gentoo-Linux-QCOW2-VMs">Gentoo Linux Announces Official QCOW2 Images For Cloud VMs</a></li>
+<li>kiwix: <a href="https://mastodon.social/@kiwix/114036009474395348">After a 3 years-long hiatus #ArchLinux wiki and documentation is again available offline ✌️ https://library.kiwix.org/#lang=&q=arch+linux</a></li>
+</ul>
+<h4 id="apps">Apps</h4>
+<ul>
+<li>sonny: <a href="https://floss.social/@sonny/114032367722177259">Eloquent proofreading assistant 1.1 is out with improved language detection and support for running LanguageTool server in the background 👻This allows 3rd parties such as LibreOffice and Firefox to connect to a local and offline instance of the LanguageTool server. :libreoffice: :firefox: :thunderbird: :vim: https://flathub.org/apps/re.sonny.Eloquent#GNOME #grammar #Flatpak #Flathub #privacy #offline #Linux</a></li>
+<li>fredldotme: <a href="https://mastodon.social/@fredldotme/114020712568055007">"- DeltaTouch- Lomiri- On a Laptop What's different though? Both are Snaps, including the desktop!"</a></li>
+<li>David Heidelberg: <a href="https://floss.social/@okias/114008973688193292">Luanti (formerly Minetest) 5.11.0 is out and brings some improvements regarding to mobile/tablet gameplay!</a></li>
+</ul>
+<h4 id="kernel">Kernel</h4>
+<ul>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250222-fp3-display-v1-0-ccd812e16952@lucaweiss.eu/">[PATCH 0/4] Add display support for Fairphone 3 smartphone</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250222-fp3-remoteprocs-firmware-v1-0-237ed21c334a@lucaweiss.eu/">[PATCH 0/4] Some cleanups for Fairphone 3, set firmware-name, enable modem</a></li>
+<li>phone-devel: <a href="http://lore.kernel.org/phone-devel/20250217-msm8226-modem-v5-1-2bc74b80e0ae@lucaweiss.eu/">[PATCH v5 01/13] dt-bindings: remoteproc: qcom,msm8916-mss-pil: Support platforms with one power domain</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers">Linus Torvalds Clearly Lays Out Linux Maintainer Roles - Or Not - Around Rust Code</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Linux-6.14-Wedged-GPUs-User">Linux Finally Introducing A Standardized Way Of Informing User-Space Over Hung GPUs</a></li>
+</ul>
+<h4 id="stack">Stack</h4>
+<ul>
+<li>LWN: <a href="https://lwn.net/Articles/1010898/">Mesa 25.0.0 released</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Mesa-Venus-Vulkan-1.4">Mesa's Venus Now Exposes Vulkan 1.4 Support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Zink-cl_khr_gl_sharing">Mesa's Zink Driver Enables cl_khr_gl_sharing, Working On DaVinci Resolve Support</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/SVT-AV1-3.0-Released">SVT-AV1 3.0 Released With Faster CPU-Based AV1 Encoding</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Niri-25.02-Labwc-0.8.3">Niri 25.02 & Labwc 0.8.3 Wayland Compositors Released</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/COSMIC-Alpha-6-Released">System76 Releases COSMIC Alpha 6 Desktop Environment</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Chromium-Ozone-Wayland-2025">Chromium Ozone Support For Wayland Continues Progressing In 2025</a></li>
+<li>Phoronix: <a href="https://www.phoronix.com/news/Firefox-137-VA-API-HEVC">Firefox 137 To Support HEVC/H.265 Video Playback On Linux With VA-API</a></li>
+<li>servo: <a href="https://floss.social/@servo/114029709024126412">This month in Servo…🕸️🪟 new webview API🕵️🌲 :host and <slot>🌈🎨 relative CSS colors🖌️🗜️ canvas to JPEG/WebP/blob🛜💨 more efficient networkinghttps://servo.org/blog/2025/02/19/this-month-in-servo/</a></li>
+</ul>
+<h4 id="matrix">Matrix</h4>
+<ul>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/02/21/this-week-in-matrix-2025-02-21/">This Week in Matrix 2025-02-21</a></li>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/02/crossroads/">We're at a crossroads</a></li>
+<li>Matrix.org: <a href="https://matrix.org/blog/2025/02/curated-room-directories/">Switching to Curated Room Directories</a></li>
+</ul>
+<h3 id="thanks">Thanks</h3>
+<p>Huge thanks to Plata for <a href="https://framagit.org/linmob/linmob.frama.io/-/merge_requests/5">the nifty set of Python scripts</a> that speed up collecting links from feeds by a lot.</p>
+<h3 id="something-missing-want-to-contribute">Something missing? Want to contribute?</h3>
+<p>If your project's cool story (or your awesome video or nifty blog post or ...) is missing and you don't want that to happen again, please just put it into <a href="https://pad.hacc.space/7yCLy5a9QyOLWusIFiTt9A?edit">the hedgedoc pad</a> for the next one! Since I am collecting many things there, this get's you early access if you will ;-) <strong>If you just stumble on a thing, please put it in there too - all help is appreciated!</strong></p>
+
+
+
\ No newline at end of file
diff --git a/feeds/linmob.xml b/feeds/linmob.xml
new file mode 100644
index 0000000..0f56bf8
--- /dev/null
+++ b/feeds/linmob.xml
@@ -0,0 +1,43 @@
+
+
+
+ Liftoff News
+ http://liftoff.msfc.nasa.gov/
+ Liftoff to Space Exploration.
+ en-us
+ Tue, 10 Jun 2003 04:00:00 GMT
+ Tue, 10 Jun 2003 09:41:01 GMT
+ http://blogs.law.harvard.edu/tech/rss
+ Weblog Editor 2.0
+ editor@example.com
+ webmaster@example.com
+
+ Star City
+ http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp
+ How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.
+ Tue, 03 Jun 2003 09:39:21 GMT
+ http://liftoff.msfc.nasa.gov/2003/06/03.html#item573
+
+
+ Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.
+ Fri, 30 May 2003 11:06:42 GMT
+ http://liftoff.msfc.nasa.gov/2003/05/30.html#item572
+
+
+ The Engine That Does More
+ http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp
+ Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.
+ Tue, 27 May 2003 08:37:32 GMT
+ http://liftoff.msfc.nasa.gov/2003/05/27.html#item571
+
+
+ Astronauts' Dirty Laundry
+ http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp
+ Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.
+ Tue, 20 May 2003 08:56:02 GMT
+ http://liftoff.msfc.nasa.gov/2003/05/20.html#item570
+
+
+
+
+
diff --git a/feeds/servo.xml b/feeds/servo.xml
new file mode 100644
index 0000000..2edcf97
--- /dev/null
+++ b/feeds/servo.xml
@@ -0,0 +1,1264 @@
+
+
+ Servo Blog
+ All the entries in the Servo blog.
+
+
+ 2025-03-10T00:00:00Z
+ https://servo.org
+
+ Servo Team
+ info@servo.org
+
+
+ This month in Servo: new elements, IME support, delegate API, and more!
+
+ 2025-03-10T00:00:00Z
+ https://servo.org/blog/2025/03/10/this-month-in-servo/
+ <p>Servo now supports more HTML and CSS features:</p>
+<ul>
+<li>the <strong><details></strong> element (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35261">#35261</a>)</li>
+<li>the <strong><meter></strong> element (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35524">#35524</a>)</li>
+<li>the <strong><progress></strong> element (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35531">#35531</a>)</li>
+<li>the <strong>‘quotes’</strong> property (<a href="https://github.com/xiaochengh">@xiaochengh</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34770">#34770</a>, <a href="https://github.com/servo/servo/pull/35420">#35420</a>)</li>
+<li>the <strong>‘isolation’</strong> property (<a href="https://github.com/kkoyung">@kkoyung</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35552">#35552</a>)</li>
+<li><strong>‘overflow: clip’</strong> (<a href="https://github.com/longvatrong111">@longvatrong111</a>, <a href="https://github.com/servo/servo/pull/35103">#35103</a>)</li>
+<li><strong>‘overflow’</strong> property with two values (<a href="https://github.com/yezhizhen">@yezhizhen</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35414">#35414</a>)</li>
+<li>the <strong>‘::slotted’</strong> selector (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35352">#35352</a>)</li>
+</ul>
+<figure>
+<p><a href="https://servo.org/img/blog/february-2025.png"><img src="https://servo.org/img/blog/february-2025.png" alt="servoshell showing new support for <details>, <meter>, and <progress> elements, plus layout support for <slot> elements" /></a></p>
+</figure>
+<p>Plus several new web API features:</p>
+<ul>
+<li><strong>contextmenu</strong> events (<a href="https://github.com/pewsheen">@pewsheen</a>, <a href="https://github.com/servo/servo/pull/35364">#35364</a>)</li>
+<li><strong>WritableStream</strong> (<a href="https://github.com/gterzian">@gterzian</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34844">#34844</a>)</li>
+<li><strong>ReadableStreamBYOBRequest</strong> (<a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/35074">#35074</a>)</li>
+<li>initial support for <strong>FontFace</strong> and its <strong>load()</strong> method (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35262">#35262</a>)</li>
+<li><strong>toBlob()</strong> and <strong>toDataURL()</strong> on <strong>WebGPU canvases</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/35237">#35237</a>)</li>
+<li><strong>bytes()</strong> on <strong>Request</strong>, <strong>Response</strong>, and <strong>Blob</strong> (<a href="https://github.com/shanehandley">@shanehandley</a>, <a href="https://github.com/yoseio">@yoseio</a>, <a href="https://github.com/gterzian">@gterzian</a>, <a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/35250">#35250</a>, <a href="https://github.com/servo/servo/pull/35151">#35151</a>)</li>
+<li><strong>href</strong>, <strong>origin</strong>, <strong>protocol</strong>, <strong>username</strong>, <strong>password</strong>, <strong>host</strong>, <strong>hostname</strong>, <strong>port</strong>, <strong>pathname</strong>, <strong>search</strong>, and <strong>hash</strong> properties on <strong>HTMLAreaElement</strong> (<a href="https://github.com/shanehandley">@shanehandley</a>, <a href="https://github.com/servo/servo/pull/35482">#35482</a>)</li>
+<li><strong>insertRule() with no argument</strong> on <strong>CSSGroupingRule</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35295">#35295</a>)</li>
+</ul>
+<p><strong><slot> elements</strong> are now fully supported including layout (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35220">#35220</a>, <a href="https://github.com/servo/servo/pull/35519">#35519</a>), and we’ve also landed support for the <strong>‘::slotted’</strong> selector (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35352">#35352</a>).
+<strong>Shadow roots</strong> are now <strong>supported in devtools</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35294">#35294</a>), and we’ve fixed some bugs related to shadow DOM trees (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35276">#35276</a>, <a href="https://github.com/servo/servo/pull/35338">#35338</a>), event handling (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35380">#35380</a>), and custom elements (<a href="https://github.com/maxtidev">@maxtidev</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/35382">#35382</a>).</p>
+<p>We’ve landed layout improvements around <strong>‘border-collapse’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35219">#35219</a>), <strong>‘align-content: normal’</strong> (<a href="https://github.com/rayguo17">@rayguo17</a>, <a href="https://github.com/servo/servo/pull/35178">#35178</a>), <strong>‘place-self’</strong> with <strong>‘position: absolute’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35208">#35208</a>), the <strong>intrinsic sizing keywords</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35413">#35413</a>, <a href="https://github.com/servo/servo/pull/35469">#35469</a>, <a href="https://github.com/servo/servo/pull/35471">#35471</a>, <a href="https://github.com/servo/servo/pull/35630">#35630</a>, <a href="https://github.com/servo/servo/pull/35642">#35642</a>, <a href="https://github.com/servo/servo/pull/35663">#35663</a>, <a href="https://github.com/servo/servo/pull/35652">#35652</a>, <a href="https://github.com/servo/servo/pull/35688">#35688</a>), and <strong>‘position: absolute’</strong> now works correctly in a <strong>‘position: relative’ grid item</strong> (<a href="https://github.com/stevennovaryo">@stevennovaryo</a>, <a href="https://github.com/servo/servo/pull/35014">#35014</a>).</p>
+<p>Input has also been improved, with <strong>better IME support</strong> (<a href="https://github.com/dklassic">@dklassic</a>, <a href="https://github.com/servo/servo/pull/35535">#35535</a>, <a href="https://github.com/servo/servo/pull/35623">#35623</a>) and several fixes to touch input (<a href="https://github.com/kongbai1996">@kongbai1996</a>, <a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/shubhamg13">@shubhamg13</a>, <a href="https://github.com/servo/servo/pull/35450">#35450</a>, <a href="https://github.com/servo/servo/pull/35031">#35031</a>, <a href="https://github.com/servo/servo/pull/35550">#35550</a>, <a href="https://github.com/servo/servo/pull/35537">#35537</a>, <a href="https://github.com/servo/servo/pull/35692">#35692</a>).</p>
+<h2 id="servo-the-browser-(servoshell)" tabindex="-1">Servo-the-browser (servoshell) <a class="header-anchor" href="https://servo.org/blog/2025/03/10/this-month-in-servo/#servo-the-browser-(servoshell)">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p><strong>Directory listings</strong> are now enabled for local files (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35317">#35317</a>).</p>
+<figure>
+<p><a href="https://servo.org/img/blog/2025-02-directory-listing.png"><img src="https://servo.org/img/blog/2025-02-directory-listing.png" alt="servoshell showing a local directory listing" /></a></p>
+</figure>
+<p>servoshell’s <strong>dialogs now use egui</strong> (<a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/servo/servo/pull/34823">#34823</a>, <a href="https://github.com/servo/servo/pull/35399">#35399</a>, <a href="https://github.com/servo/servo/pull/35464">#35464</a>, <a href="https://github.com/servo/servo/pull/35507">#35507</a>, <a href="https://github.com/servo/servo/pull/35564">#35564</a>, <a href="https://github.com/servo/servo/pull/35577">#35577</a>, <a href="https://github.com/servo/servo/pull/35657">#35657</a>, <a href="https://github.com/servo/servo/pull/35671">#35671</a>), rather than shelling out to a program like <code>zenity</code> (<a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/servo/servo/pull/35674">#35674</a>), making them more secure and no longer falling back to terminal input.</p>
+<figure>
+<p><a href="https://servo.org/img/blog/2025-02-egui-dialogs.png"><img src="https://servo.org/img/blog/2025-02-egui-dialogs.png" alt="egui-based dialogs for alert(), confirm(), prompt(), and HTTP authentication" /></a></p>
+</figure>
+<p>We’ve also fixed a bug when closing a tab other than the current one (<a href="https://github.com/pewsheen">@pewsheen</a>, <a href="https://github.com/servo/servo/pull/35569">#35569</a>).</p>
+<h2 id="servo-the-engine-(embedding)" tabindex="-1">Servo-the-engine (embedding) <a class="header-anchor" href="https://servo.org/blog/2025/03/10/this-month-in-servo/#servo-the-engine-(embedding)">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>We’ve simplified our embedding API by <strong>merging all input event delivery</strong> into <a href="https://doc.servo.org/servo/struct.WebView.html#method.notify_input_event"><code>WebView::notify_input_event</code></a> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35430">#35430</a>), making <strong>bluetooth optional</strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35479">#35479</a>, <a href="https://github.com/servo/servo/pull/35590">#35590</a>), making the <strong>“background hang monitor” optional</strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/35256">#35256</a>), and <strong>eliminating the need to depend on <code>webxr</code></strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35229">#35229</a>).
+We’ve also moved some servoshell-only options out of <a href="https://doc.servo.org/servo_config/opts/struct.Opts.html"><code>Opts</code></a> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35377">#35377</a>, <a href="https://github.com/servo/servo/pull/35407">#35407</a>), since they have no effect on Servo’s behaviour.</p>
+<p>We’ve landed our initial <strong>delegate-based API</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35196">#35196</a>, <a href="https://github.com/servo/servo/pull/35260">#35260</a>, <a href="https://github.com/servo/servo/pull/35297">#35297</a>, <a href="https://github.com/servo/servo/pull/35396">#35396</a>, <a href="https://github.com/servo/servo/pull/35400">#35400</a>, <a href="https://github.com/servo/servo/pull/35544">#35544</a>, <a href="https://github.com/servo/servo/pull/35579">#35579</a>, <a href="https://github.com/servo/servo/pull/35662">#35662</a>, <a href="https://github.com/servo/servo/pull/35672">#35672</a>), which replaces our old message-based API for integrating Servo with your app (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35284">#35284</a>, <a href="https://github.com/servo/servo/pull/35315">#35315</a>, <a href="https://github.com/servo/servo/pull/35366">#35366</a>).
+By implementing <a href="https://doc.servo.org/servo/trait.WebViewDelegate.html"><code>WebViewDelegate</code></a> and <a href="https://doc.servo.org/servo/trait.ServoDelegate.html"><code>ServoDelegate</code></a> and <a href="https://doc.servo.org/servo/struct.WebView.html#method.set_delegate">installing</a> <a href="https://doc.servo.org/servo/struct.Servo.html#method.set_delegate">them</a>, you can have Servo call back into your app’s logic with ease.</p>
+<p>We’ve simplified the <a href="https://doc.servo.org/servo/trait.RenderingContext.html"><code>RenderingContext</code></a> trait (<a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35251">#35251</a>, <a href="https://github.com/servo/servo/pull/35553">#35553</a>) and <strong>added three built-in <code>RenderingContext</code> impls</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35465">#35465</a>, <a href="https://github.com/servo/servo/pull/35501">#35501</a>), making it easier to set up a context Servo can render to:</p>
+<ul>
+<li><a href="https://doc.servo.org/servo/struct.WindowRenderingContext.html"><code>WindowRenderingContext</code></a> renders to a <strong>whole window</strong></li>
+<li><a href="https://doc.servo.org/servo/struct.OffscreenRenderingContext.html"><code>OffscreenRenderingContext</code></a> renders to <strong>part of a window</strong></li>
+<li><a href="https://doc.servo.org/servo/struct.SoftwareRenderingContext.html"><code>SoftwareRenderingContext</code></a> renders to an image, <strong>without hardware acceleration</strong></li>
+</ul>
+<p>We’ve heavily reworked and documented our <strong>webview rendering model</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35522">#35522</a>, <a href="https://github.com/servo/servo/pull/35621">#35621</a>), <strong>moved image output</strong> and <strong>shutdown logic</strong> out of the compositor (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/servo/servo/pull/35538">#35538</a>), and removed some complicated logic around synchronous repaints when a window is resized (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35283">#35283</a>, <a href="https://github.com/servo/servo/pull/35277">#35277</a>).
+These changes should make it a lot clearer how to get Servo’s webviews onto your display.</p>
+<p>One part of this model that we’re starting to move away from is the support for multiple webviews in one rendering context (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/servo/servo/pull/35536">#35536</a>).
+First landed in <a href="https://github.com/servo/servo/pull/31417">#31417</a>, this was an expedient way to add support for multiple webviews, but it imposed some serious limitations on how webviews could be interleaved with other app content, and the performance and security was inadequate.</p>
+<p>We’ve <strong>updated our <a href="https://github.com/servo/servo/blob/139774e6b55c297bc94f7fcb8c9bf5bb8c6a7474/components/servo/examples/winit_minimal.rs">winit_minimal example</a></strong> to take advantage of these changes (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35350">#35350</a>, <a href="https://github.com/servo/servo/pull/35686">#35686</a>), simplify it further (<a href="https://github.com/robertohuertasm">@robertohuertasm</a>, <a href="https://github.com/servo/servo/pull/35253">#35253</a>), and fix window resizing (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35691">#35691</a>).</p>
+<h2 id="perf-and-stability" tabindex="-1">Perf and stability <a class="header-anchor" href="https://servo.org/blog/2025/03/10/this-month-in-servo/#perf-and-stability">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>The compositor now <strong>notifies the embedder of new frames immediately</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35369">#35369</a>), not via the constellation thread.</p>
+<p>Servo’s typical <strong>memory usage has been reduced by over 1%</strong> thanks to Node object optimisations (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35592">#35592</a>, <a href="https://github.com/servo/servo/pull/35554">#35554</a>), and we’ve also improved our <a href="https://book.servo.org/hacking/profiling.html#memory-profiling">memory profiler</a> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35618">#35618</a>, <a href="https://github.com/servo/servo/pull/35607">#35607</a>).</p>
+<p>We’ve fixed a bug causing very high CPU usage on sites like <a href="http://wikipedia.org/">wikipedia.org</a> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35245">#35245</a>), as well as bugs affecting requestAnimationFrame (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35387">#35387</a>, <a href="https://github.com/servo/servo/pull/35435">#35435</a>).</p>
+<p>You can now configure our tracing-based profiler (<code>--features tracing</code>) with <code>servo --tracing-filter</code> instead of <code>SERVO_TRACING</code> (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/35370">#35370</a>).</p>
+<p>We’ve continued <strong>reducing our use of <code>unsafe</code> in script</strong> (<a href="https://github.com/nscaife">@nscaife</a>, <a href="https://github.com/stephenmuss">@stephenmuss</a>, <a href="https://github.com/servo/servo/pull/35351">#35351</a>, <a href="https://github.com/servo/servo/pull/35360">#35360</a>, <a href="https://github.com/servo/servo/pull/35367">#35367</a>, <a href="https://github.com/servo/servo/pull/35411">#35411</a>), and <strong>moving parts of <code>script</code> to <code>script_bindings</code></strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/35279">#35279</a>, <a href="https://github.com/servo/servo/pull/35280">#35280</a>, <a href="https://github.com/servo/servo/pull/35292">#35292</a>, <a href="https://github.com/servo/servo/pull/35457">#35457</a>, <a href="https://github.com/servo/servo/pull/35459">#35459</a>, <a href="https://github.com/servo/servo/pull/35578">#35578</a>, <a href="https://github.com/servo/servo/pull/35620">#35620</a>).
+Breaking up our massive <code>script</code> crate is absolutely critical for reducing Servo’s build times.</p>
+<p>We’ve fixed crashes that happen when moving windows past the edge of your monitor (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35235">#35235</a>), when unpaired UTF-16 surrogates are sent to the DOM (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35381">#35381</a>), when focusing elements inside shadow roots (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35606">#35606</a>), and when calling getAsString() on a DataTransferItem (<a href="https://github.com/Gae24">@Gae24</a>, <a href="https://github.com/servo/servo/pull/35699">#35699</a>).
+We’ve also continued working on static analysis that will help catch crashes due to <a href="https://github.com/servo/servo/issues/33140">GC borrow hazards</a> (<a href="https://github.com/augustebaum">@augustebaum</a>, <a href="https://github.com/yerke">@yerke</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/Gae24">@Gae24</a>, <a href="https://github.com/servo/servo/pull/35541">#35541</a>, <a href="https://github.com/servo/servo/pull/35593">#35593</a>, <a href="https://github.com/servo/servo/pull/35565">#35565</a>, <a href="https://github.com/servo/servo/pull/35610">#35610</a>, <a href="https://github.com/servo/servo/pull/35591">#35591</a>, <a href="https://github.com/servo/servo/pull/35609">#35609</a>, <a href="https://github.com/servo/servo/pull/35601">#35601</a>, <a href="https://github.com/servo/servo/pull/35596">#35596</a>, <a href="https://github.com/servo/servo/pull/35595">#35595</a>, <a href="https://github.com/servo/servo/pull/35594">#35594</a>, <a href="https://github.com/servo/servo/pull/35597">#35597</a>, <a href="https://github.com/servo/servo/pull/35622">#35622</a>, <a href="https://github.com/servo/servo/pull/35604">#35604</a>, <a href="https://github.com/servo/servo/pull/35616">#35616</a>, <a href="https://github.com/servo/servo/pull/35605">#35605</a>, <a href="https://github.com/servo/servo/pull/35640">#35640</a>, <a href="https://github.com/servo/servo/pull/35647">#35647</a>, <a href="https://github.com/servo/servo/pull/35646">#35646</a>).</p>
+<h2 id="donations" tabindex="-1">Donations <a class="header-anchor" href="https://servo.org/blog/2025/03/10/this-month-in-servo/#donations">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Thanks again for your generous support!
+We are now receiving <strong>4363 USD/month</strong> (+13.7% over January) in recurring donations.
+This helps cover the cost of our <a href="https://ci0.servo.org/">self-hosted</a> <a href="https://ci1.servo.org/">CI</a> <a href="https://ci2.servo.org/">runners</a> and <a href="https://www.outreachy.org/">Outreachy</a> internships.</p>
+<p>Servo is also on <a href="https://thanks.dev/">thanks.dev</a>, and already <strong>21 GitHub users</strong> (+5 over January) that depend on Servo are sponsoring us there.
+If you use Servo libraries like <a href="https://crates.io/crates/url/reverse_dependencies">url</a>, <a href="https://crates.io/crates/html5ever/reverse_dependencies">html5ever</a>, <a href="https://crates.io/crates/selectors/reverse_dependencies">selectors</a>, or <a href="https://crates.io/crates/cssparser/reverse_dependencies">cssparser</a>, signing up for <a href="https://thanks.dev/">thanks.dev</a> could be a good way for you (or your employer) to give back to the community.</p>
+<figure class="_fig" style="width: 100%; margin: 1em 0;"><div class="_flex" style="height: calc(1lh + 3em); flex-flow: column nowrap; text-align: left;">
+ <div style="position: relative; text-align: right;">
+ <div style="position: absolute; margin-left: calc(100% * 4363 / 10000); padding-left: 0.5em;"><strong>4363</strong> USD/month</div>
+ <div style="position: absolute; margin-left: calc(100% * 4363 / 10000); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="position: absolute; margin-left: calc(100% - 0.5em); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="padding-right: 1em;"><strong>10000</strong><!-- USD/month --></div>
+ </div>
+ <progress value="4363" max="10000" style="transform: scale(3); transform-origin: top left; width: calc(100% / 3);"></progress>
+</div></figure>
+<p>As always, use of these funds will be decided transparently in the Technical Steering Committee.
+For more details, head to our <a href="https://servo.org/sponsorship/">Sponsorship page</a>.</p>
+<style>
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
+ Servo Security Report: findings and solutions
+
+ 2025-02-26T00:00:00Z
+ https://servo.org/blog/2025/02/26/servo-security-report/
+ <p>The Servo project has received several grants from <a href="https://nlnet.nl/"><strong>NLnet Foundation</strong></a>, and as part of these grants, NLnet offers different <a href="https://nlnet.nl/NGI0/services/">support services</a>. These services include security audits from <a href="https://radicallyopensecurity.com/"><strong>Radically Open Security</strong></a>.</p>
+<p>In one of our projects with NLnet, we were working on <a href="https://nlnet.nl/project/Servo/">adding support for <strong>CSS floats</strong> and <strong>tables</strong></a> in Servo. Once the project was completed, we reached out to Radically Open Security to run a security audit. The focus of the audit was in the code related to that project, so the main components investigated were the CSS code paths in the layout engine and Stylo. As part of this audit, four vulnerabilities were identified:</p>
+<table>
+<thead>
+<tr>
+<th>ID</th>
+<th>Type</th>
+<th>Description</th>
+<th><a href="http://www.pentest-standard.org/index.php/Reporting">Threat level</a></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>CLN-009</code></td>
+<td>Third-Party Library Vulnerability</td>
+<td>Servo uses an outdated version of the time crate that is vulnerable to a known issue.</td>
+<td>Moderate</td>
+</tr>
+<tr>
+<td><code>CLN-004</code></td>
+<td>Arithmetic underflow</td>
+<td>By calling methods on a TableBuilder object in a specific order, an integer underflow can be triggered, followed by an attempted out-of-bounds access, which is caught by Rust, resulting in a panic.</td>
+<td>Low</td>
+</tr>
+<tr>
+<td><code>CLN-002</code></td>
+<td>Arithmetic underflow</td>
+<td>An arithmetic underflow condition is currently impossible to trigger, but may become accessible as its surrounding logic evolves.</td>
+<td>N/A</td>
+</tr>
+<tr>
+<td><code>CLN-007</code></td>
+<td>Unguarded casting</td>
+<td>Casting from an unsigned platform pointer-width integer into a fixed-width signed integer may result in erroneous layouts.</td>
+<td>N/A</td>
+</tr>
+</tbody>
+</table>
+<p>If you want to know more details you can read the <a href="https://servo.org/files/ngie-servo-penetration-test-report-2024-1.0.pdf"><strong>full report</strong></a>.</p>
+<p>The first issue (<code>CLN-009</code>) was related to a known vulnerability in version 0.1 of the <code>time</code> crate that Servo depended on (<a href="https://rustsec.org/advisories/RUSTSEC-2020-0071"><code>RUSTSEC-2020-0071</code></a>). We had <a href="https://github.com/servo/servo/pulls?q=is%3Apr+merged%3A%3E%3D2023-10-26+in%3Atitle++%28+%22time%400.1%22+OR+%22legacy+time%22+OR+%22time+crate%22+OR+%22stop+using+time%22+OR+%22std%3A%3Atime%22+%29+">removed this in most of Servo</a>, but there was one remaining dependency in WebRender. We have since addressed this vulnerability by removing it from the version of WebRender used in Servo (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35325">#35325</a>), and we will also try to upstream our changes so that Firefox is unaffected.</p>
+<p>We have also fixed the second (<code>CLN-004</code>) and third (<code>CLN-002</code>) issues by making the affected code more robust (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34247">#34247</a>, <a href="https://github.com/servo/servo/pull/35437">#35437</a>), in the event web content can trigger them.</p>
+<p>The fourth issue (<code>CLN-007</code>) is not urgent, since the values are constrained elsewhere and it would otherwise only affect layout correctness and not security, but it’s worth fixing at some point too.</p>
+<p>Servo has long been highlighted for being <strong>a memory-safe and concurrency-safe web rendering engine</strong>, thanks to the guarantees provided by the Rust programming language, including its ownership system, borrow checker, and built-in data structures that enable safe concurrent programming. These features help prevent memory and concurrency vulnerabilities, such as use-after-free bugs and data races.</p>
+<p>We find it promising that this security audit, although smaller and of limited scope, <strong>identified no severe vulnerabilities</strong>, especially none of that nature, and that we were able to address any vulnerabilities identified. This was a positive experience for Servo and the web, and we’re keen to explore more security auditing for Servo in the future.</p>
+<p>Thanks to the folks at <a href="https://radicallyopensecurity.com/">Radically Open Security</a> for their work on this audit, and <a href="https://nlnet.nl/">NLnet Foundation</a> for continuously supporting the Servo project.</p>
+
+
+
+ This month in Servo: new webview API, relative colors, canvas buffs, and more!
+
+ 2025-02-19T00:00:00Z
+ https://servo.org/blog/2025/02/19/this-month-in-servo/
+ <p>Servo now supports several new web API features:</p>
+<ul>
+<li><strong>:host selector</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34870">#34870</a>)</li>
+<li><strong><slot> elements</strong> in the DOM (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35013">#35013</a>, <a href="https://github.com/servo/servo/pull/35177">#35177</a>, <a href="https://github.com/servo/servo/pull/35191">#35191</a>, <a href="https://github.com/servo/servo/pull/35221">#35221</a>, <a href="https://github.com/servo/servo/pull/35137">#35137</a>, <a href="https://github.com/servo/servo/pull/35222">#35222</a>), with layout support landing next month</li>
+<li><strong>Relative CSS colors</strong>, like <strong>color(from …)</strong> and <strong>rgb(from …)</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34897">#34897</a>)</li>
+<li><strong>ClipboardEvent</strong> (<a href="https://github.com/Gae24">@Gae24</a>, <a href="https://github.com/servo/servo/pull/33576">#33576</a>, <a href="https://github.com/servo/servo/pull/35146">#35146</a>), with <code>--pref dom_clipboardevent_enabled</code></li>
+<li>Detecting WGSL extensions via <strong>WGSLLanguageFeatures</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/34928">#34928</a>)</li>
+<li><strong>pointer_composite_access</strong> WGSL extension (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/35161">#35161</a>)</li>
+<li><strong>blitFramebuffer()</strong> on <strong>WebGL2RenderingContext</strong> (<a href="https://github.com/jdm">@jdm</a>, Istvan, <a href="https://github.com/servo/servo/pull/26389">#26389</a>)</li>
+<li><strong>media</strong> property on <strong>HTMLStyleElement</strong> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/35148">#35148</a>)</li>
+</ul>
+<p>We’ve landed a bunch of <strong>HTMLCanvasElement</strong> improvements:</p>
+<ul>
+<li><strong>toDataURL()</strong> now supports <strong>image/jpeg</strong> and <strong>image/webp</strong> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/34861">#34861</a>)</li>
+<li><strong>toBlob()</strong> is now supported (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/34938">#34938</a>)</li>
+<li><strong>transferControlToOffscreen()</strong> is now supported (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/34959">#34959</a>)</li>
+</ul>
+<figure style="display: flex; justify-content: center;">
+ <a href="https://servo.org/img/blog/january-2025.png"><img src="https://servo.org/img/blog/january-2025.png" alt="servoshell nightly showing relative oklch() colors, canvas toDataURL() with image/jpeg and image/webp, canvas toBlob(), the WGSLLanguageFeatures API, and the DOM tree of a custom element with a <slot>" /></a>
+</figure>
+<p><strong>Streams</strong> are a lot more useful now, with <strong>ReadableStreamBYOBReader</strong> now supporting <strong>read()</strong> (<a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/35040">#35040</a>), <strong>cancel()</strong>, <strong>close()</strong>, and <strong>releaseLock()</strong> (<a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/34958">#34958</a>).</p>
+<p>Servo now <strong>passes <a href="https://wpt.servo.org/">40.6%</a></strong> (+7.5pp) of enabled <strong>Shadow DOM</strong> tests, thanks to our landing support for the <strong>:host selector</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34870">#34870</a>) and the <strong><slot> element</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/35013">#35013</a>, <a href="https://github.com/servo/servo/pull/35177">#35177</a>, <a href="https://github.com/servo/servo/pull/35191">#35191</a>, <a href="https://github.com/servo/servo/pull/35221">#35221</a>, <a href="https://github.com/servo/servo/pull/35137">#35137</a>, <a href="https://github.com/servo/servo/pull/35222">#35222</a>), plus improvements to event handling (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34788">#34788</a>, <a href="https://github.com/servo/servo/pull/34884">#34884</a>), script (<a href="https://github.com/willypuzzle">@willypuzzle</a>, <a href="https://github.com/servo/servo/pull/34787">#34787</a>), style (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/35198">#35198</a>, <a href="https://github.com/servo/servo/pull/35132">#35132</a>), and the DOM tree (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/34803">#34803</a>, <a href="https://github.com/servo/servo/pull/34834">#34834</a>, <a href="https://github.com/servo/servo/pull/34863">#34863</a>, <a href="https://github.com/servo/servo/pull/34909">#34909</a>, <a href="https://github.com/servo/servo/pull/35076">#35076</a>).</p>
+<p><strong>Table layout</strong> is significantly better now, particularly in ‘table-layout: fixed’ (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35170">#35170</a>), table sizing (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34889">#34889</a>, <a href="https://github.com/servo/servo/pull/34947">#34947</a>, <a href="https://github.com/servo/servo/pull/35167">#35167</a>), rowspan sizing (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35095">#35095</a>), interaction with floats (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/35207">#35207</a>), and ‘border-collapse’ layout (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34932">#34932</a>, <a href="https://github.com/servo/servo/pull/34908">#34908</a>, <a href="https://github.com/servo/servo/pull/35097">#35097</a>, <a href="https://github.com/servo/servo/pull/35122">#35122</a>, <a href="https://github.com/servo/servo/pull/35165">#35165</a>) and painting (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34933">#34933</a>, <a href="https://github.com/servo/servo/pull/35003">#35003</a>, <a href="https://github.com/servo/servo/pull/35100">#35100</a>, <a href="https://github.com/servo/servo/pull/35075">#35075</a>, <a href="https://github.com/servo/servo/pull/35129">#35129</a>, <a href="https://github.com/servo/servo/pull/35163">#35163</a>).</p>
+<p>As a result, Servo now <strong>passes <a href="https://wpt.servo.org/">90.2%</a></strong> (+11.5pp) of enabled <strong>CSS tables</strong> tests, and of the tests that are in CSS 2, we now <a href="https://wpt.fyi/results/css/CSS2/tables?sha=d46d9abdea&max-count=1&to=2025-02-01T00%3A00%3A00.000Z&product=servo&product=chrome&product=safari&product=firefox"><strong>pass more than Blink and WebKit!</strong></a>
+We literally stood on the shoulders of giants here, because this would not have been possible without <a href="https://github.com/servo/servo/blob/3122de08f3571a4026e825dd3ef6412cb37abfae/components/layout_2020/table/mod.rs#L8-L11">Blink’s</a> <a href="https://github.com/servo/servo/blob/3122de08f3571a4026e825dd3ef6412cb37abfae/components/layout_2020/table/layout.rs#L650-L654">robust</a> <a href="https://github.com/servo/servo/blob/3122de08f3571a4026e825dd3ef6412cb37abfae/components/layout_2020/table/layout.rs#L1246-L1248">table</a> <a href="https://github.com/servo/servo/blob/3122de08f3571a4026e825dd3ef6412cb37abfae/components/layout_2020/table/layout.rs#L1332-L1333">impl</a>.
+Despite their age, <a href="https://github.com/w3c/csswg-drafts/issues/9781">tables</a> <a href="https://github.com/w3c/csswg-drafts/issues/9916">are</a> <a href="https://github.com/w3c/csswg-drafts/issues/10132">surprisingly</a> <a href="https://github.com/w3c/csswg-drafts/issues/10133">underspecified</a>, <a href="https://github.com/w3c/csswg-drafts/issues/10881">so</a> <a href="https://github.com/w3c/csswg-drafts/issues/10885">we</a> <a href="https://github.com/w3c/csswg-drafts/issues/10937">also</a> <a href="https://github.com/w3c/csswg-drafts/issues/11171">needed</a> <a href="https://github.com/w3c/csswg-drafts/issues/11404">to</a> <a href="https://github.com/w3c/csswg-drafts/issues/11408">report</a> <a href="https://github.com/w3c/csswg-drafts/issues/11419">several</a> <a href="https://github.com/w3c/csswg-drafts/issues/11489">spec</a> <a href="https://github.com/w3c/csswg-drafts/issues/11504">issues</a> <a href="https://github.com/w3c/csswg-drafts/issues/11515">along</a> <a href="https://github.com/w3c/csswg-drafts/issues/11568">the</a> <a href="https://github.com/w3c/csswg-drafts/issues/11570">way</a> (<a href="https://github.com/Loirooriol">@Loirooriol</a>).</p>
+<h2 id="embedding" tabindex="-1">Embedding <a class="header-anchor" href="https://servo.org/blog/2025/02/19/this-month-in-servo/#embedding">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Servo aims to be an embeddable web engine, but so far it’s been a lot harder to embed Servo than it should be.</p>
+<p>For one, configuring and starting Servo is complicated.
+We found that getting Servo running at all, even without wiring up input or handling resizes correctly, took <strong>over 200 lines</strong> of Rust code (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35118">#35118</a>).
+Embedders (apps) could only control Servo by sending and receiving a variety of “messages” and “events”, and simple questions like “what’s the current URL?” were impossible to answer without keeping track of extra state in the app.</p>
+<p>Contrast this with <a href="https://webkitgtk.org/">WebKitGTK</a>, where you can write a minimal kiosk app with a fully-functional webview in <strong>under 50 lines</strong> of C.
+To close that gap, we’ve started <strong>reworking our embedding API</strong> towards something more idiomatic and ergonomic, starting with the concept embedders care about most: the <em>webview</em>.</p>
+<p>Our new webview API is controlled by calling methods on a <strong><a href="https://doc.servo.org/servo/struct.WebView.html">WebView</a> handle</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35119">#35119</a>, <a href="https://github.com/servo/servo/pull/35183">#35183</a>, <a href="https://github.com/servo/servo/pull/35192">#35192</a>), including navigation and user input.
+Handles will eventually represent the lifecycle of the webview itself; if you have one, the webview is valid, and if you drop them, the webview is destroyed.</p>
+<p>Servo needs to call into the embedder too, and here we’ve started replacing the old EmbedderMsg API with a <strong>webview delegate</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35211">#35211</a>), much like the delegates in <a href="https://developer.apple.com/documentation/webkit/wkuidelegate?language=objc">Apple’s WebKit API</a>.
+In Rust, a delegate is a <code>trait</code> that the embedder can install its own <code>impl</code> for.
+Stay tuned for more on this next month!</p>
+<p>Embedders can now <strong>intercept any request</strong>, not just navigation (<a href="https://github.com/zhuhaichao518">@zhuhaichao518</a>, <a href="https://github.com/servo/servo/pull/34961">#34961</a>), and you can now identify the webview that caused an <strong>HTTP credentials prompt</strong> (<a href="https://github.com/pewsheen">@pewsheen</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34808">#34808</a>).</p>
+<p>Other embedding improvements include:</p>
+<ul>
+<li>Adding a trait to allow for alternative rendering contexts that are better suited to certain applications (<a href="https://github.com/dklassic">@dklassic</a>, <a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/servo/servo/pull/35052">#35052</a>, <a href="https://github.com/servo/servo/pull/34813">#34813</a>, <a href="https://github.com/servo/servo/pull/34780">#34780</a>)</li>
+<li>Simplifying types used by consumers of libservo (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35156">#35156</a>)</li>
+<li>Making it easier to build Servo without crown (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/35055">#35055</a>)</li>
+</ul>
+<h2 id="other-changes" tabindex="-1">Other changes <a class="header-anchor" href="https://servo.org/blog/2025/02/19/this-month-in-servo/#other-changes">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>We’ve reworked Servo’s <strong>preferences system</strong>, making all prefs optional with reasonable defaults (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34966">#34966</a>, <a href="https://github.com/servo/servo/pull/34999">#34999</a>, <a href="https://github.com/servo/servo/pull/34994">#34994</a>).
+As a result:</p>
+<ul>
+<li><strong>The names of all preferences have changed</strong>; see the <a href="https://doc.servo.org/servo_config/prefs/struct.Preferences.html">Prefs docs</a> for a list</li>
+<li><strong>Embedders no longer need a <code>prefs.json</code></strong> resource to get Servo running</li>
+<li>Some debug options were converted to preferences (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34998">#34998</a>)</li>
+</ul>
+<p>Devtools now <strong>highlights console.log() arguments</strong> according to their types (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34810">#34810</a>).</p>
+<p>Servo’s networking is more efficient now, with the ability to <strong>cancel fetches for navigation</strong> that contain redirects (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34919">#34919</a>) and <strong>cancel fetches for <video> and <media></strong> when the document is unloaded (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34883">#34883</a>).
+Those changes also <strong>eliminate per-request IPC channels</strong> for navigation and cancellation respectively, and in the same vein, we’ve eliminated them for image loading too (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/35041">#35041</a>).</p>
+<p>We’ve continued <strong>splitting up our massive script crate</strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34359">#34359</a>, <a href="https://github.com/servo/servo/pull/35157">#35157</a>, <a href="https://github.com/servo/servo/pull/35169">#35169</a>, <a href="https://github.com/servo/servo/pull/35172">#35172</a>), which will eventually make Servo much faster to build.</p>
+<p>A few crashes have been fixed, including when exiting Servo (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/34917">#34917</a>), when using the <a href="https://book.servo.org/hacking/profiling.html#memory-profiling">internal memory profiler</a> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/35058">#35058</a>), and when running ResizeObserver callbacks (<a href="https://github.com/willypuzzle">@willypuzzle</a>, <a href="https://github.com/servo/servo/pull/35168">#35168</a>).</p>
+<h2 id="for-developers" tabindex="-1">For developers <a class="header-anchor" href="https://servo.org/blog/2025/02/19/this-month-in-servo/#for-developers">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>We now run <strong>CI smoketests on OpenHarmony</strong> using a real device (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/35006">#35006</a>), increasing confidence in your changes beyond compile-time errors.</p>
+<p>We’ve also tripled our <strong>self-hosted CI runner capacity</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34983">#34983</a>, <a href="https://github.com/servo/servo/pull/35002">#35002</a>), making concurrent Windows and macOS builds possible without falling back to the much slower GitHub-hosted runners.</p>
+<p>Servo can’t yet run WebDriver-based tests on <a href="https://wpt.fyi/">wpt.fyi</a>, <a href="https://wpt.servo.org/">wpt.servo.org</a>, or CI, because the <code>servo</code> executor for the <a href="https://web-platform-tests.org/">Web Platform Tests</a> does not support testdriver.js.
+<code>servodriver</code> does, though, so we’ve started fixing test regressions with that executor with the goal of eventually switching to it (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34957">#34957</a>, <a href="https://github.com/servo/servo/pull/34997">#34997</a>).</p>
+<h2 id="donations" tabindex="-1">Donations <a class="header-anchor" href="https://servo.org/blog/2025/02/19/this-month-in-servo/#donations">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Thanks again for your generous support!
+We are now receiving <strong>3835 USD/month</strong> (−11.4% over December) in recurring donations.
+With this money, we’ve been able to expand our capacity for <a href="https://ci0.servo.org/">self-hosted</a> <a href="https://ci1.servo.org/">CI</a> <a href="https://ci2.servo.org/">runners</a> on Windows, Linux, and macOS builds, <strong>halving <code>mach try</code> build times</strong> from over an hour to under 30 minutes!</p>
+<p>Servo is also on <a href="https://thanks.dev/">thanks.dev</a>, and already <strong>21 GitHub users</strong> (+5 over December) that depend on Servo are sponsoring us there.
+If you use Servo libraries like <a href="https://crates.io/crates/url/reverse_dependencies">url</a>, <a href="https://crates.io/crates/html5ever/reverse_dependencies">html5ever</a>, <a href="https://crates.io/crates/selectors/reverse_dependencies">selectors</a>, or <a href="https://crates.io/crates/cssparser/reverse_dependencies">cssparser</a>, signing up for <a href="https://thanks.dev/">thanks.dev</a> could be a good way for you (or your employer) to give back to the community.</p>
+<figure class="_fig" style="width: 100%; margin: 1em 0;"><div class="_flex" style="height: calc(1lh + 3em); flex-flow: column nowrap; text-align: left;">
+ <div style="position: relative; text-align: right;">
+ <div style="position: absolute; margin-left: calc(100% * 3835 / 10000); padding-left: 0.5em;"><strong>3835</strong> USD/month</div>
+ <div style="position: absolute; margin-left: calc(100% * 3835 / 10000); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="position: absolute; margin-left: calc(100% - 0.5em); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="padding-right: 1em;"><strong>10000</strong><!-- USD/month --></div>
+ </div>
+ <progress value="3835" max="10000" style="transform: scale(3); transform-origin: top left; width: calc(100% / 3);"></progress>
+</div></figure>
+<p>As always, use of these funds will be decided transparently in the Technical Steering Committee.
+For more details, head to our <a href="https://servo.org/sponsorship/">Sponsorship page</a>.</p>
+<h2 id="conference-talks" tabindex="-1">Conference talks <a class="header-anchor" href="https://servo.org/blog/2025/02/19/this-month-in-servo/#conference-talks">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<ul>
+<li><a href="https://www.youtube.com/watch?v=s0MIHKv45C0"><strong>Why Build a New Browser Engine in Rust?</strong></a> (<a href="https://servo.org/slides/2025-01-21-barcelona-free-software/">slides</a>) — <a href="https://abandonedwig.info/">Martin Robinson</a> spoke about Servo’s unique benefits as a Rust-based browser and web engine, and how browser diversity can create a new renaissance for the web platform</li>
+</ul>
+<style>
+ .content {
+ container-type: inline-size;
+ }
+ ._paired_figure {
+ margin: 1em 0;
+ }
+ @container (min-width: 55em) {
+ ._paired_figure {
+ display: grid;
+ grid-template-columns: auto 33em;
+ column-gap: 2em;
+ row-gap: 1em;
+ }
+ ._paired_figure > ._text_before,
+ ._paired_figure > ._text_after {
+ flex: 1 1 20em;
+ grid-column: 1 / 2;
+ }
+ ._paired_figure > figure:not(#specificity) {
+ flex: 0 1 33em;
+ grid-row: 1 / 3;
+ grid-column: 2 / 3;
+ margin: 0;
+ }
+ }
+
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
+ Servo in 2024: stats, features and donations
+
+ 2025-01-31T00:00:00Z
+ https://servo.org/blog/2025/01/31/servo-in-2024/
+ <!--
+ TIP: `eleventyConfig.setServerOptions({domDiff: false})` for this post!
+ Otherwise the charts will break when reloading your changes.
+-->
+<p>Two years after the <a href="https://servo.org/blog/2023/01/16/servo-2023/">renewed activity</a> on the project we can confirm that Servo is fully back.</p>
+<p>If we ignore the bots, in 2024 we’ve had <strong>129 unique contributors</strong> (+143% over 54 last year), <strong>landing 1,771 pull requests</strong> (+163% over 673), and that’s just in <a href="https://github.com/servo/servo">our main repo</a>!</p>
+<p>Including bots, the total number of PRs merged goes up to <strong>2,674</strong> (+144% over 1094). From all this work, 26% of the PRs were made by Igalia, 40% by other contributors and the rest by the bots (34%). This shows how the Servo community has been growing and becoming more diverse with new actors participating actively in the project.</p>
+<p><canvas id="servoStats" style="min-height: 400px;"></canvas></p>
+<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
+<script>
+ const ctx = document.getElementById("servoStats");
+
+
+ new Chart(ctx, {
+ type: "bar",
+ data: {
+ labels: ["2018", "2019", "2020", "2021", "2022", "2023", "2024"],
+ datasets: [{
+ label: "Merged PRs",
+ data: [1188, 986, 669, 118, 65, 776, 1771],
+ borderWidth: 2
+ }, {
+ label: "Unique contributors",
+ data: [142, 141, 87, 37, 20, 54, 129],
+ borderWidth: 2,
+ type: "line",
+ yAxisID: "y1"
+ }, {
+ label: "Average unique contributors per month",
+ data: [27.33, 27.17, 14.75, 4.92, 2.83, 11.33, 26.33],
+ borderWidth: 2,
+ type: "line",
+ yAxisID: "y1"
+ }]
+ },
+ options: {
+ responsive: true,
+ maintainAspectRatio: false,
+ scales: {
+ y: {
+ beginAtZero: true
+ },
+ y1: {
+ position: "right",
+ grid: {
+ drawOnChartArea: false
+ },
+ }
+ },
+ plugins: {
+ title: {
+ display: true,
+ text: "Servo Stats 2018 - 2024",
+ font: {
+ size: "20pt",
+ }
+ },
+ subtitle: {
+ display: true,
+ text: "PRs left axis - Contributors right axis",
+ },
+ legend: {
+ position: "bottom",
+ }
+ }
+ }
+ });
+</script>
+<figure class="_stats_table">
+<table style="margin-inline: auto;">
+<thead>
+ <tr>
+ <th></th>
+ <th style="text-align:right">2018</th>
+ <th style="text-align:right">2019</th>
+ <th style="text-align:right">2020</th>
+ <th style="text-align:right">2021</th>
+ <th style="text-align:right">2022</th>
+ <th style="text-align:right">2023</th>
+ <th style="text-align:right">2024</th>
+ </tr>
+</thead>
+<tbody>
+ <tr>
+ <td><strong>Merged PRs</strong></td>
+ <td style="text-align:right">1,188</td>
+ <td style="text-align:right">986</td>
+ <td style="text-align:right">669</td>
+ <td style="text-align:right">118</td>
+ <td style="text-align:right">65</td>
+ <td style="text-align:right">776</td>
+ <td style="text-align:right">1,771</td>
+ </tr>
+ <tr>
+ <td><strong>Unique contributors</strong></td>
+ <td style="text-align:right">142</td>
+ <td style="text-align:right">141</td>
+ <td style="text-align:right">87</td>
+ <td style="text-align:right">37</td>
+ <td style="text-align:right">20</td>
+ <td style="text-align:right">54</td>
+ <td style="text-align:right">129</td>
+ </tr>
+ <tr>
+ <td><strong>Average unique contributors per month</strong></td>
+ <td style="text-align:right">27.33</td>
+ <td style="text-align:right">27.17</td>
+ <td style="text-align:right">14.75</td>
+ <td style="text-align:right">4.92</td>
+ <td style="text-align:right">2.83</td>
+ <td style="text-align:right">11.33</td>
+ <td style="text-align:right">26.33</td>
+</tr>
+</tbody>
+</table>
+</figure>
+<style>
+ ._stats_table {
+ overflow-x: auto;
+ margin-block: 1em;
+ }
+ ._stats_table tr > *:nth-child(1) {
+ /* Freeze the first cell of each row. */
+ position: sticky;
+ left: 0;
+ /* Hide other cells that overlap when scrolling. */
+ background:lch(91 8.22 196.44);
+ z-index: 1;
+ }
+</style>
+<p>Now let’s take a look to the data and chart above, which show the evolution since 2018 in number of merged PRs, unique contributors per year and average contributors per month (excluding bots). We can see <strong>the project is back to numbers of 2018 and 2019 when it was been developed in full speed</strong>!</p>
+<p>It’s worth noting that Servo popularity keeps growing, with many folks realizing there has been new activity on the project last year, and we have more and more people interested in the project.</p>
+<figure><a href="https://star-history.com/#servo/servo"><img src="https://servo.org/img/blog/2025-01-servo-github-stars.png" style="width: 60ch;" alt="Servo GitHub start history chart showing Servo not stopping going up since 2013, up to more than 25,000 today" /></a>
+ <figcaption>Servo GitHub stars haven't stopped growing, surpassing now 25K threshold.</figcaption>
+</figure>
+<p>During 2024 Servo has been present in <strong>8 events with 9 talks</strong>: <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2321-embedding-servo-in-rust-projects/">FOSDEM</a>, <a href="https://youtu.be/RdtlD_7JAs8">Open Source Summit North America</a>, <a href="https://servo.org/slides/2024-04-16-seattle-rust-user-group/">Seattle Rust user meetup</a>, <a href="https://www.youtube.com/watch?v=EA_1jxzR85M">GOSIM Europe</a>, <a href="https://www.youtube.com/watch?v=SamA5Oz-G5w">Global Software Technology Summit</a>, <a href="https://www.youtube.com/watch?v=NHa4LPpWRh8&t=1351s">Linux Foundation Europe Member Summit</a>, <a href="https://www.youtube.com/watch?v=gpz088cxDcI">GOSIM</a> <a href="https://www.youtube.com/watch?v=1c9sHaEXQak">China</a>, <a href="https://www.youtube.com/watch?v=fp5n7CSvALA">Ubuntu Summit</a>.</p>
+<p>If we focus on development there has been many things moving forward during the year. Servo main dependencies (SpiderMonkey, Stylo and WebRender) have been upgraded, the new layout engine has kept evolving adding support for floats, tables, flexbox, fonts, etc. By the end of 2024 <a href="https://staging.wpt.fyi/results/?sha=58c1148991&label=master&max-count=1&product=servo"><strong>Servo passes 1,515,229 WPT subtests (79%)</strong></a>. Many other new features have been under active development: WebGPU, Shadow DOM, ReadableStream, WebXR, … Servo now supports two new platforms: Android and OpenHarmony. And we have got the first experiments of applications using Servo as a web engine (like <a href="https://servo.org/blog/2024/01/19/embedding-update/">Tauri</a>, <a href="https://github.com/DioxusLabs/blitz">Blitz</a>, <a href="https://github.com/KDABLabs/cxx-qt-servo-webview">QtWebView</a>, <a href="https://github.com/mcclure/cuervo/tree/unstable_traversal_experiment">Cuervo</a>, <a href="https://github.com/versotile-org/verso/">Verso</a> and <a href="https://github.com/moto-browser/moto">Moto</a>).</p>
+<p>In 2024 we have <strong>raised 33,632.64 USD</strong> with <a href="https://servo.org/sponsorship/">donations via Open Collective and GitHub Sponsors</a> from <strong>500 different people and organizations</strong>. Thank you all for supporting us!</p>
+<p>With this money we have now 3 servers that provides self-hosted runners for Linux, macOS, and Windows reducing our build times <strong>from over an hour to under 30 minutes</strong>.</p>
+<p>Talking about the future, the Servo TSC has been discussing the <a href="https://github.com/servo/servo/wiki/Roadmap"><strong>roadmap for 2025</strong></a> which has been updated on the Servo’s wiki. We have many plans to keep Servo thriving with new features and improvements. Let’s hope for a great 2025!</p>
+
+
+
+ This month in Servo: dark mode, keyword sizes, XPath, and more!
+
+ 2025-01-10T00:00:00Z
+ https://servo.org/blog/2025/01/10/this-month-in-servo/
+ <p>Servo now supports <strong>dark mode</strong> (<a href="https://github.com/arthmis">@arthmis</a>, <a href="https://github.com/lazypassion">@lazypassion</a>, <a href="https://github.com/servo/servo/pull/34532">#34532</a>), respecting the platform dark mode in servoshell and <strong>‘prefers-color-scheme’</strong> (<a href="https://github.com/nicoburns">@nicoburns</a>, <a href="https://github.com/servo/servo/pull/34423">#34423</a>, <a href="https://github.com/servo/stylo/pull/93">stylo#93</a>) on Windows and macOS.</p>
+<figure>
+ <div style="display: flex;">
+ <a href="https://servo.org/img/blog/dark-mode-december-2024.png"><img src="https://servo.org/img/blog/dark-mode-december-2024.png" alt="servoshell in dark mode, rendering the MDN article for ‘prefers-color-scheme’ in dark mode, when Windows is set to dark mode" /></a>
+ <a href="https://servo.org/img/blog/light-mode-december-2024.png"><img src="https://servo.org/img/blog/light-mode-december-2024.png" alt="servoshell in light mode, rendering the MDN article for ‘prefers-color-scheme’ in light mode, when Windows is set to light mode" /></a>
+ </div>
+ <figcaption><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme">MDN article for ‘prefers-color-scheme’</a> in dark mode (left) and light mode (right), with <code>--pref dom.resize_observer.enabled</code>.</figcaption>
+</figure>
+<p><strong>CSS transitions</strong> can now be triggered properly by script (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34486">#34486</a>), and we now support <strong>‘min-height’</strong> and <strong>‘max-height’</strong> on column flex containers (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34450">#34450</a>), <strong>‘min-content’</strong>, <strong>‘max-content’</strong>, <strong>‘fit-content’</strong>, and <strong>‘stretch’</strong> in block layout (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34641">#34641</a>, <a href="https://github.com/servo/servo/pull/34568">#34568</a>, <a href="https://github.com/servo/servo/pull/34695">#34695</a>), <strong>‘stretch’</strong> on replaced positioned elements (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34430">#34430</a>), as well as <strong>‘align-self: self-start’</strong>, <strong>‘self-end’</strong>, <strong>‘left’</strong>, and <strong>‘right’</strong> on positioned elements (<a href="https://github.com/taniishkaaa">@taniishkaaa</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34365">#34365</a>).</p>
+<p>Servo can now run <a href="https://discord.com/"><strong>Discord</strong></a> well enough to <a href="https://discord.com/login"><strong>log in</strong></a> and <strong>read messages</strong>, though you can’t send messages yet.
+To get this working, we landed some bare-bones AbortController support (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/syvb">@syvb</a>, <a href="https://github.com/servo/servo/pull/34519">#34519</a>) and a WebSocket fix (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34634">#34634</a>).
+Try it yourself with <code>--pref dom.svg.enabled --pref dom.intersection_observer.enabled --pref dom.abort_controller.enabled</code>!</p>
+<figure>
+ <div style="display: flex;">
+ <a href="https://servo.org/img/blog/discord-login-1-december-2024.png"><img src="https://servo.org/img/blog/discord-login-1-december-2024.png" alt="Discord login screen in Servo, showing form input and a QR code that never finishes loading" /></a>
+ <a href="https://servo.org/img/blog/discord-login-2-december-2024.png"><img src="https://servo.org/img/blog/discord-login-2-december-2024.png" alt="Discord loading screen in Servo, after logging in" /></a>
+ </div>
+ <a href="https://servo.org/img/blog/discord-small-december-2024.png"><img src="https://servo.org/img/blog/discord-small-december-2024.png" alt="Discord channel screen in Servo, showing a few of Diffie’s messages and attachments" /></a>
+</figure>
+<p>We now support <strong>console.trace()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34629">#34629</a>), <strong>PointerEvent</strong> (<a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/servo/servo/pull/34437">#34437</a>), and the <strong>clonable</strong> property on <strong>ShadowRoot</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34514">#34514</a>).
+Shadow DOM support continues to improve (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34503">#34503</a>), including very basic <strong>Shadow DOM layout</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34701">#34701</a>) when enabled via <code>--pref dom.shadowdom.enabled</code>.</p>
+<p><code>script</code> underwent (and continues to undergo) major rework towards being <strong>more reliable</strong> and <strong>faster to build</strong>.
+We’ve landed better <strong>synchronisation for DOM tree mutations</strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34505">#34505</a>) and continued work on <strong>splitting up the <code>script</code> crate</strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34366">#34366</a>).
+We’ve moved our <strong>ReadableStream</strong> support into Servo, eliminating the maintenance burden of a downstream SpiderMonkey patch (<a href="https://github.com/gterzian">@gterzian</a>, <a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/34064">#34064</a>, <a href="https://github.com/servo/servo/pull/34675">#34675</a>).</p>
+<p>The web platform guarantees that same-origin frames and their parents can <strong>synchronously observe resizes</strong> and their effects.
+Many tests rely on this, and not doing this correctly made Servo’s test results much flakier than they could otherwise be.
+We’ve made very good progress towards fixing this (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34643">#34643</a>, <a href="https://github.com/servo/servo/pull/34656">#34656</a>, <a href="https://github.com/servo/servo/pull/34702">#34702</a>, <a href="https://github.com/servo/servo/pull/34609">#34609</a>), with correct resizing in all cases except when a same-origin frame is in another script thread, which is rare.</p>
+<p>We now support enough of <strong>XPath</strong> to get <a href="https://htmx.org/">htmx</a> working (<a href="https://github.com/vlindhol">@vlindhol</a>, <a href="https://github.com/servo/servo/pull/34463">#34463</a>), when enabled via <code>--pref dom.xpath.enabled</code>.</p>
+<figure>
+ <a href="https://servo.org/img/blog/htmx-december-2024.png"><img src="https://servo.org/img/blog/htmx-december-2024.png" alt="htmx home page in Servo, with the hero banner thing now working (it relies on XPath)" /></a>
+</figure>
+<p>Servo’s performance continues to improve, with <strong>layout caching for flex columns</strong> delivering up to 12x speedup (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34461">#34461</a>), many <strong>unnecessary reflows now eliminated</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34558">#34558</a>, <a href="https://github.com/servo/servo/pull/34599">#34599</a>, <a href="https://github.com/servo/servo/pull/34576">#34576</a>, <a href="https://github.com/servo/servo/pull/34645">#34645</a>), <strong>reduced memory usage</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34563">#34563</a>, <a href="https://github.com/servo/servo/pull/34666">#34666</a>), faster rendering for pages with animations (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34489">#34489</a>), and timers now operating without IPC (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34581">#34581</a>).</p>
+<p><strong>servoshell nightlies are up to 20% smaller</strong> (<a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/servo/servo/pull/34340">#34340</a>), <strong>WebGPU is now optional</strong> at build time (<a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/servo/servo/pull/34444">#34444</a>), and <code>--features tracing</code> no longer enables <code>--features layout-2013</code> (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34515">#34515</a>) for further binary size savings.
+You can also <strong>limit the size of</strong> several of Servo’s <strong>thread pools</strong> with <code>--pref threadpools.fallback_worker_num</code> and others (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34478">#34478</a>), which is especially useful on machines with many CPU cores.</p>
+<p>We’ve started laying the groundwork for full <strong>incremental layout</strong> in our new layout engine, starting with a general layout caching mechanism (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34507">#34507</a>, <a href="https://github.com/servo/servo/pull/34513">#34513</a>, <a href="https://github.com/servo/servo/pull/34530">#34530</a>, <a href="https://github.com/servo/servo/pull/34586">#34586</a>).
+This was lost in the switch to our new layout engine, and without it, every time a page changes, we have to rerun layout from scratch.
+As you can imagine, this is very, very expensive, and incremental layout is critical for performance on today’s highly dynamic web.</p>
+<aside class="_note">
+<p>We’ve mentioned layout caching a few times, including in past monthly updates, but most of the caching we’ve landed so far has been to save time <em>within</em> a single reflow.
+Incremental layout requires layout caching that <em>persists</em> across reflows, and algorithms to determine when to invalidate those cached results.</p>
+</aside>
+<h2 id="donations" tabindex="-1">Donations <a class="header-anchor" href="https://servo.org/blog/2025/01/10/this-month-in-servo/#donations">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Thanks again for your generous support!
+We are now receiving <strong>4329 USD/month</strong> (+0.8% over November) in recurring donations.
+With this money, we’ve been able to cover our web hosting and <a href="https://ci0.servo.org/">self-hosted CI runners</a> for Windows, Linux, and now macOS builds (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34868">#34868</a>), <strong>halving <code>mach try</code> build times</strong> from over an hour to under 30 minutes!
+Next month, we’ll be <a href="https://github.com/servo/project/issues/123">expanding our CI capacity further</a>, all made possible thanks to your help.</p>
+<p>Servo is also on <a href="https://thanks.dev/">thanks.dev</a>, and already <strong>sixteen GitHub users</strong> that depend on Servo are sponsoring us there.
+If you use Servo libraries like <a href="https://crates.io/crates/url/reverse_dependencies">url</a>, <a href="https://crates.io/crates/html5ever/reverse_dependencies">html5ever</a>, <a href="https://crates.io/crates/selectors/reverse_dependencies">selectors</a>, or <a href="https://crates.io/crates/cssparser/reverse_dependencies">cssparser</a>, signing up for <a href="https://thanks.dev/">thanks.dev</a> could be a good way for you (or your employer) to give back to the community.</p>
+<figure class="_fig" style="width: 100%; margin: 1em 0;"><div class="_flex" style="height: calc(1lh + 3em); flex-flow: column nowrap; text-align: left;">
+ <div style="position: relative; text-align: right;">
+ <div style="position: absolute; margin-left: calc(100% * 4329 / 10000); padding-left: 0.5em;"><strong>4329</strong> USD/month</div>
+ <div style="position: absolute; margin-left: calc(100% * 4329 / 10000); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="position: absolute; margin-left: calc(100% - 0.5em); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="padding-right: 1em;"><strong>10000</strong><!-- USD/month --></div>
+ </div>
+ <progress value="4329" max="10000" style="transform: scale(3); transform-origin: top left; width: calc(100% / 3);"></progress>
+</div></figure>
+<p>As always, use of these funds will be decided transparently in the Technical Steering Committee.
+For more details, head to our <a href="https://servo.org/sponsorship/">Sponsorship page</a>.</p>
+<style>
+ /* guaranteed minimum width for first paragraph after a float */
+ ._floatmin {
+ display: block;
+ width: 13em;
+ overflow: hidden;
+ }
+ ._clear {
+ clear: both;
+ }
+ ._clearl {
+ clear: left;
+ }
+ ._clearr {
+ clear: right;
+ }
+ ._none {
+ display: none;
+ }
+ ._fig:not(#specificity) {
+ width: 33em;
+ max-width: 100%;
+ margin: 1em auto;
+ }
+ ._fig > ._flex,
+ ._figl > ._flex,
+ ._figr > ._flex {
+ display: flex;
+ }
+ ._fig table {
+ text-align: initial;
+ }
+ ._fig figcaption._notes {
+ text-align: left;
+ width: max-content;
+ max-width: 100%;
+ }
+ ._figl:not(#specificity),
+ ._figr:not(#specificity) {
+ margin: 0 1em 1em;
+ }
+ ._figl {
+ float: left;
+ max-width: 100%;
+ }
+ ._figr {
+ float: right;
+ max-width: 100%;
+ }
+ ._figl > figcaption,
+ ._figr > figcaption,
+ ._figl > iframe,
+ ._figr > iframe,
+ ._figl > video,
+ ._figr > video,
+ ._figl > a > img,
+ ._figr > a > img,
+ ._figl > ._flex,
+ ._figr > ._flex {
+ width: 21em;
+ max-width: 100%;
+ }
+
+ .content {
+ container-type: inline-size;
+ }
+ ._paired_figure {
+ margin: 1em 0;
+ }
+ @container (min-width: 55em) {
+ ._paired_figure {
+ display: grid;
+ grid-template-columns: auto 33em;
+ column-gap: 2em;
+ row-gap: 1em;
+ }
+ ._paired_figure > ._text_before,
+ ._paired_figure > ._text_after {
+ flex: 1 1 20em;
+ grid-column: 1 / 2;
+ }
+ ._paired_figure > figure:not(#specificity) {
+ flex: 0 1 33em;
+ grid-row: 1 / 3;
+ grid-column: 2 / 3;
+ margin: 0;
+ }
+
+ ._text_after {
+ grid-column: 1 / 3;
+ }
+ }
+
+ ._runin {
+ margin-bottom: 1em;
+ }
+ ._runin > p,
+ ._runin > h2 {
+ display: inline;
+ }
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
+ This month in Servo: :is(), :where(), grid layout, parallel flexbox, and more!
+
+ 2024-12-09T00:00:00Z
+ https://servo.org/blog/2024/12/09/this-month-in-servo/
+ <figure><a href="https://servo.org/img/blog/november-2024.png"><img src="https://servo.org/img/blog/november-2024.png" alt="Servo nightly showing new support for CSS grid layout, when enabled via `layout.grid.enabled`" /></a></figure>
+<p>Servo now supports <strong>:is() and :where() selectors</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34066">#34066</a>), <strong>parallel layout for flexbox</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34132">#34132</a>), and experimentally, <strong>CSS grid layout</strong> (<a href="https://github.com/nicoburns">@nicoburns</a>, <a href="https://github.com/taniishkaa">@taniishkaa</a>, <a href="https://github.com/servo/servo/pull/32619">#32619</a>, <a href="https://github.com/servo/servo/pull/34352">#34352</a>, <a href="https://github.com/servo/servo/pull/34421">#34421</a>)!
+To try our new grid layout support, <a href="https://book.servo.org/running-servoshell.html">run Servo</a> with <code>--pref layout.grid.enabled</code>.</p>
+<p>We’ve added support for two key Shadow DOM interfaces, the <strong>shadowRoot property</strong> on Element (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34306">#34306</a>) and the <strong>innerHTML property on ShadowRoot</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34335">#34335</a>).</p>
+<p>We’ve also landed <strong>‘justify-self’</strong> on positioned elements (<a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/servo/servo/pull/34235">#34235</a>), form submission with <strong><input type=image></strong> (<a href="https://github.com/shanehandley">@shanehandley</a>, <a href="https://github.com/servo/servo/pull/34203">#34203</a>), <strong>DataTransfer</strong> (<a href="https://github.com/Gae24">@Gae24</a>, <a href="https://github.com/servo/servo/pull/34205">#34205</a>), the <strong>close()</strong> method on ImageBitmap (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34124">#34124</a>), plus several new <strong><a href="https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto">SubtleCrypto</a> API</strong> features:</p>
+<ul>
+<li>crypto.subtle.<strong>deriveKey()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34185">#34185</a>)</li>
+<li><strong>wrapKey()</strong> and <strong>unwrapKey()</strong> (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/34262">#34262</a>)</li>
+<li><strong>“HMAC”</strong> algorithm in <strong>generateKey()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34278">#34278</a>), <strong>sign()</strong>, <strong>verify()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34223">#34223</a>), and <strong>deriveKey(<code>"get key length"</code>)</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34230">#34230</a>)</li>
+<li><strong>“AES-GCM”</strong> algorithm in <strong>encrypt()</strong>, <strong>decrypt()</strong>, <strong>generateKey()</strong>, and <strong>importKey()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34269">#34269</a>)</li>
+<li><strong>“AES-KW”</strong> algorithm in <strong>generateKey()</strong>, <strong>importKey()</strong>, <strong>wrapKey()</strong>, and <strong>unwrapKey()</strong> (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/34262">#34262</a>)</li>
+<li><strong>“PBKDF2”</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34164">#34164</a>) and <strong>“HKDF”</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34200">#34200</a>) algorithms in <strong>deriveBits()</strong></li>
+</ul>
+<p>On OpenHarmony, we’ve landed <strong>keyboard input</strong> and the IME (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/34188">#34188</a>), <strong>touch fling gestures</strong> (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33219">#33219</a>), and additional <strong>CJK fallback fonts</strong> (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34410">#34410</a>).
+You can now build for OpenHarmony on a Windows machine (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34113">#34113</a>), and build errors have been improved (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34267">#34267</a>).</p>
+<h2 id="more-engine-changes" tabindex="-1">More engine changes <a class="header-anchor" href="https://servo.org/blog/2024/12/09/this-month-in-servo/#more-engine-changes">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>You can now <strong>scroll the viewport</strong> and scrollable elements <strong>with your pointer anywhere in the area</strong>, not just when hovering over actual content (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/34347">#34347</a>).
+<code>--unminify-js</code>, a very useful feature for <a href="https://book.servo.org/hacking/web-compat-bugs.html#diagnosing-js-errors">diagnosing Servo bugs in real websites</a>, now supports module scripts (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/34206">#34206</a>).</p>
+<p>We’ve fixed the behaviour of <strong>offsetLeft</strong> and <strong>offsetTop</strong> relative to <body> with ‘position: static’ (<a href="https://github.com/nicoburns">@nicoburns</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/32761">#32761</a>), which also required spec changes (<a href="https://github.com/nicoburns">@nicoburns</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/w3c/csswg-drafts/pull/10549">w3c/csswg-drafts#10549</a>).
+We’ve also fixed several layout bugs around:</p>
+<ul>
+<li><strong>‘object-fit’</strong> when ‘aspect-ratio’ is set (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34413">#34413</a>)</li>
+<li><strong>clientWidth</strong> and friends on floats and replaced inlines (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34083">#34083</a>)</li>
+<li><strong>‘align-items’</strong> and <strong>‘align-self: stretch’</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34162">#34162</a>)</li>
+<li><strong>main axis free space</strong> in flexbox (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34150">#34150</a>)</li>
+<li><strong>min-</strong> and <strong>max-content block sizes</strong> of replaced elements (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34284">#34284</a>)</li>
+<li>sizing of non-replaced positioned elements with <strong>‘place-self’</strong> (<a href="https://github.com/taniishkaa">@taniishkaa</a>, <a href="https://github.com/servo/servo/pull/34264">#34264</a>)</li>
+</ul>
+<p>The <strong>getClientRects()</strong> method on Element now correctly returns a DOMRectList (<a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/servo/servo/pull/34025">#34025</a>).</p>
+<p><strong>Stylo</strong> has been updated to 2024-11-01 (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34322">#34322</a>), and we’ve landed some changes to prepare our fork of Stylo for publishing releases on <a href="http://crates.io/">crates.io</a> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/nicoburns">@nicoburns</a>, <a href="https://github.com/servo/servo/pull/34332">#34332</a>, <a href="https://github.com/servo/servo/pull/34353">#34353</a>).
+We’ve also made more progress towards <strong>splitting up our massive <code>script</code> crate</strong> (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/34357">#34357</a>, <a href="https://github.com/servo/servo/pull/34356">#34356</a>, <a href="https://github.com/servo/servo/pull/34163">#34163</a>), which will eventually allow Servo to be built (and rebuilt) much faster.</p>
+<h2 id="performance-improvements" tabindex="-1">Performance improvements <a class="header-anchor" href="https://servo.org/blog/2024/12/09/this-month-in-servo/#performance-improvements">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>In addition to parallel layout for flexbox (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34132">#34132</a>), we’ve landed several other performance improvements:</p>
+<ul>
+<li>faster layout for <strong>‘column’ flex containers</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34346">#34346</a>)</li>
+<li>faster caching of intrinsic sizes (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34384">#34384</a>)</li>
+<li>caching of font template matches (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34325">#34325</a>)</li>
+<li>fixed warnings and memory leak when WebRender is running late (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/34305">#34305</a>)</li>
+</ul>
+<p>We’ve also landed some changes to reduce Servo’s binary size:</p>
+<ul>
+<li>legacy layout is no longer built by default (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34290">#34290</a>)</li>
+<li>Servo no longer depends on <code>sparkle</code>, only <code>glow</code> and <code>gleam</code> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33918">#33918</a>, <a href="https://github.com/servo/servo/pull/34292">#34292</a>)</li>
+<li>Servo can now be built without WebXR support (<a href="https://github.com/wusyong">@wusyong</a>, <a href="https://github.com/augustkline">@augustkline</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/34241">#34241</a>, <a href="https://github.com/servo/servo/pull/34348">#34348</a>)</li>
+<li>servoshell can now be built without WebXR on OpenHarmony and Android (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34242">#34242</a>), with more platforms to come</li>
+<li>plus some progress towards a build-time feature flag for WebGPU (<a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/servo/servo/pull/34415">#34415</a>)</li>
+</ul>
+<p>Servo’s <strong><a href="https://docs.rs/tracing/0.1.40/tracing/">tracing</a>-based profiling support</strong> (<code>--features tracing-perfetto</code> or <code>tracing-hitrace</code>) now supports <strong>filtering events</strong> via an environment variable (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34236">#34236</a>, <a href="https://github.com/servo/servo/pull/34256">#34256</a>), and no longer includes events from non-Servo crates by default (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34209">#34209</a>).
+Note that when the filter matches some span or event, it will also match all of its descendants for now, but this is a limitation we intend to fix.</p>
+<p>Most of the events supported by the old interval profiler have been <strong>ported to tracing</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34238">#34238</a>, <a href="https://github.com/servo/servo/pull/34337">#34337</a>).
+<strong>ScriptParseHTML</strong> and <strong>ScriptParseXML</strong> events no longer count the time spent doing layout and script while parsing, reducing them to more realistic times (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34273">#34273</a>), while <strong>ScriptEvaluate</strong> events now count the time spent running scripts in timers, DOM event listeners, and many other situations (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34286">#34286</a>), increasing them to more realistic times.</p>
+<p>We’ve added new tracing events for <strong>display list building</strong> (<a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/servo/servo/pull/34392">#34392</a>), <strong>flex layout</strong>, <strong>inline layout</strong>, and <strong>font loading</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/34392">#34392</a>).
+This will help us diagnose performance issues around things like caching and relayout for ‘stretch’ in flex layout, shaping text runs, and font template creation.</p>
+<h2 id="for-developers" tabindex="-1">For developers <a class="header-anchor" href="https://servo.org/blog/2024/12/09/this-month-in-servo/#for-developers">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Hacking on Servo is now easier, with our <strong>new <code>--profile medium</code> build mode</strong> in Cargo (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/34035">#34035</a>).
+<code>medium</code> is more optimised than <code>debug</code>, but unlike <code>release</code>, it supports debuggers, line numbers in backtraces, and incremental builds.</p>
+<p>Servo <strong>now uses <a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners">CODEOWNERS</a></strong> to list reviewers that are experts in <a href="https://github.com/servo/servo/blob/3515b83a95cb65da30c1e3988f7a47f79fd7b9bd/.github/CODEOWNERS">parts of our main repo</a>.
+This should make it much easier to find reviewers that know how to review your code, and helps us maximise the quality of our code reviews by allowing reviewers to specialise.</p>
+<h2 id="donations" tabindex="-1">Donations <a class="header-anchor" href="https://servo.org/blog/2024/12/09/this-month-in-servo/#donations">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Thanks again for your generous support!
+We are now receiving <strong>4291 USD/month</strong> (+2.1% over October) in recurring donations.
+<strong>We are no longer accepting donations on LFX</strong> — if you were donating there, please move your recurring donations to <a href="https://github.com/sponsors/servo">GitHub</a> or <a href="https://opencollective.com/servo">Open Collective</a>.</p>
+<p>Servo is also on <a href="https://thanks.dev/">thanks.dev</a>, and already <strong>fifteen GitHub users</strong> that depend on Servo are sponsoring us there.
+If you use Servo libraries like <a href="https://crates.io/crates/url/reverse_dependencies">url</a>, <a href="https://crates.io/crates/html5ever/reverse_dependencies">html5ever</a>, <a href="https://crates.io/crates/selectors/reverse_dependencies">selectors</a>, or <a href="https://crates.io/crates/cssparser/reverse_dependencies">cssparser</a>, signing up for <a href="https://thanks.dev/">thanks.dev</a> could be a good way for you (or your employer) to give back to the community.</p>
+<figure class="_fig" style="width: 100%; margin: 1em 0;"><div class="_flex" style="height: calc(1lh + 3em); flex-flow: column nowrap; text-align: left;">
+ <div style="position: relative; text-align: right;">
+ <div style="position: absolute; margin-left: calc(100% * 4291 / 10000); padding-left: 0.5em;"><strong>4291</strong> USD/month</div>
+ <div style="position: absolute; margin-left: calc(100% * 4291 / 10000); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="position: absolute; margin-left: calc(100% - 0.5em); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="padding-right: 1em;"><strong>10000</strong><!-- USD/month --></div>
+ </div>
+ <progress value="4291" max="10000" style="transform: scale(3); transform-origin: top left; width: calc(100% / 3);"></progress>
+</div></figure>
+<p>With this money, we’ve been able to cover our web hosting and self-hosted CI runners for Windows and Linux builds.
+When the time comes, we’ll also be able to afford macOS runners and perf bots, as well as additional Outreachy interns next year!
+As always, use of these funds will be decided transparently in the Technical Steering Committee.
+For more details, head to our <a href="https://servo.org/sponsorship/">Sponsorship page</a>.</p>
+<h2 id="conferences-and-blogs" tabindex="-1">Conferences and blogs <a class="header-anchor" href="https://servo.org/blog/2024/12/09/this-month-in-servo/#conferences-and-blogs">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<ul>
+<li><a href="https://blogs.igalia.com/mrego/servo-revival-2023-2024/"><strong>Servo Revival: 2023-2024</strong></a> — Manuel Rego wrote about Igalia’s role in getting Servo back to life, and now thriving, over the past two years</li>
+<li><a href="https://www.youtube.com/watch?v=gpz088cxDcI"><strong>Porting Servo to OpenHarmony</strong></a> — Jonathan Schwender spoke at <a href="https://lfeumembersummit24.sched.com/event/1hUAF">GOSIM China 2024</a> about the work we’ve done towards supporting OpenHarmony in Servo</li>
+<li><a href="https://www.youtube.com/watch?v=1c9sHaEXQak"><strong>Taming concurrency with (in)-formal methods in Servo</strong></a> — Gregory Terzian spoke at <a href="https://lfeumembersummit24.sched.com/event/1hUAF">GOSIM China 2024</a> about using <a href="https://en.wikipedia.org/wiki/TLA%2B">TLA+</a> to help us correctly implement concurrent algorithms like the HTML event loop in Servo</li>
+</ul>
+<style>
+ /* guaranteed minimum width for first paragraph after a float */
+ ._floatmin {
+ display: block;
+ width: 13em;
+ overflow: hidden;
+ }
+ ._none {
+ display: none;
+ }
+ ._fig:not(#specificity) {
+ width: 33em;
+ max-width: 100%;
+ margin: 1em auto;
+ }
+ ._fig > ._flex {
+ display: flex;
+ }
+ ._fig table {
+ text-align: initial;
+ }
+ ._fig figcaption._notes {
+ text-align: left;
+ width: max-content;
+ max-width: 100%;
+ }
+ ._figl:not(#specificity),
+ ._figr:not(#specificity) {
+ margin: 0 1em 1em;
+ }
+ ._figl {
+ float: left;
+ max-width: 100%;
+ }
+ ._figr {
+ float: right;
+ max-width: 100%;
+ }
+ ._figl > figcaption,
+ ._figr > figcaption,
+ ._figl > iframe,
+ ._figr > iframe,
+ ._figl > video,
+ ._figr > video,
+ ._figl > a > img,
+ ._figr > a > img {
+ width: 21em;
+ max-width: 100%;
+ }
+ ._runin {
+ margin-bottom: 1em;
+ }
+ ._runin > p,
+ ._runin > h2 {
+ display: inline;
+ }
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
+ Behind the code: an interview with msub2
+
+ 2024-11-12T00:00:00Z
+ https://servo.org/blog/2024/11/12/behind-the-code-msub2/
+ <p>Behind the Code is a new series of interviews with the contributors who help propel Servo forward. Ever wondered why people
+choose to work on web browsers, or how they get started? We invite you to look beyond the project’s pull requests and issue
+reports, and get to know the humans who make it happen.</p>
+<hr />
+<h2 id="msub2" tabindex="-1"><img src="https://avatars.githubusercontent.com/u/70986246?v=4" width="60" /> <a href="https://github.com/msub2">msub2</a> <a class="header-anchor" href="https://servo.org/blog/2024/11/12/behind-the-code-msub2/#msub2">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Some representative contributions:</p>
+<ul>
+<li><a href="https://github.com/servo/webxr/pull/243">OpenXR: Separate graphics handling from main OpenXR code</a></li>
+<li><a href="https://github.com/servo/webxr/pull/229">Surface supported interaction profiles from OpenXR runtime</a></li>
+<li><a href="https://github.com/servo/webxr/pull/224">Support OpenXR runtimes that do not support fovMutable</a></li>
+<li><a href="https://github.com/servo/servo/pull/33628">crypto: Begin SubtleCrypto implementation</a></li>
+<li><a href="https://github.com/servo/servo/pull/33508">bindings: Allow Guard to take multiple conditions, check for SecureContext in ConstructorEnabled</a></li>
+<li><a href="https://github.com/servo/servo/pull/31200">Implement non-XR Gamepad discovery and input</a></li>
+</ul>
+<h3 id="tell-us-about-yourself!" tabindex="-1">Tell us about yourself! <a class="header-anchor" href="https://servo.org/blog/2024/11/12/behind-the-code-msub2/#tell-us-about-yourself!">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h3>
+<p>My name is Daniel, though I more commonly go by my online handle “msub2”. I’m something of a generalist, but my primary interests
+are developing for the web, XR, and games. I created and run the <a href="https://discord.gg/webxr">WebXR Discord</a>, which has members from both the Immersive Web Working
+Group and the Meta Browser team, among others. In my free time (when I’m not working, doing Servo things, or tending to my other
+programming projects) I’m typically watching videos from YouTube/Dropout/Nebula/etc and playing video games.</p>
+<h3 id="why-did-you-start-contributing-to-servo%3F" tabindex="-1">Why did you start contributing to Servo? <a class="header-anchor" href="https://servo.org/blog/2024/11/12/behind-the-code-msub2/#why-did-you-start-contributing-to-servo%3F">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h3>
+<p>A confluence of interests, to put it simply. I was just starting to really get into Rust, having built a CHIP-8 emulator and an
+NES emulator to get my hands dirty, but I also had prior experience contributing to other browser projects like Chromium and Gecko.
+I was also eyeing Servo’s WebXR implementation (which I had submitted a couple small fixes for last year) as I could see there was
+still plenty of work that could be done there. To get started though, I looked for an adjacent area that I could work on to get
+familiar with the main Servo codebase, which led to my first contribution being support for non-XR gamepads!</p>
+<h3 id="what-was-challenging-about-your-first-contribution%3F" tabindex="-1">What was challenging about your first contribution? <a class="header-anchor" href="https://servo.org/blog/2024/11/12/behind-the-code-msub2/#what-was-challenging-about-your-first-contribution%3F">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h3>
+<p>I’d say the most challenging part of my first contribution was twofold: the first was just getting oriented with how data flows
+in and out of Servo via the embedding API and the second was understanding how DOM structs, methods, and codegen all worked together
+in the script crate. Servo is a big project, but luckily I got lots of good help and feedback as I was working through it, which
+definitely made things easier. Looking at existing examples in the codebase of the things I was trying to do got me the rest of the
+way there I’d say.</p>
+<h3 id="what-do-you-like-about-contributing-to-the-project%3F-what-do-you-get-out-of-it%3F" tabindex="-1">What do you like about contributing to the project? What do you get out of it? <a class="header-anchor" href="https://servo.org/blog/2024/11/12/behind-the-code-msub2/#what-do-you-like-about-contributing-to-the-project%3F-what-do-you-get-out-of-it%3F">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h3>
+<p>The thing I like most about Servo (and perhaps the web platform as an extension) is the amount of interesting problems that there
+are to solve when it comes to implementing/supporting all of its different features. While most of my contributions so far have been
+focused around Gamepad and WebXR, recently I’ve been working to help implement SubtleCrypto alongside another community member, which
+has been really interesting! In addition to the satisfaction I get just from being able to solve interesting problems, I also rather
+enjoy the feeling of contributing to a large, communal, open-source project.</p>
+<h3 id="any-final-thoughts-you%E2%80%99d-like-to-share%3F" tabindex="-1">Any final thoughts you’d like to share? <a class="header-anchor" href="https://servo.org/blog/2024/11/12/behind-the-code-msub2/#any-final-thoughts-you%E2%80%99d-like-to-share%3F">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h3>
+<p>I’d encourage anyone who’s intrigued by the idea of contributing to Servo to give it a shot! The recent waves of attention for projects
+like Verso and Ladybird have shown that there is an appetite for new browsers and browser engines, and with Servo’s history it just
+feels right that it should finally be able to rise to a more prominent status in the ecosystem.</p>
+
+
+
+ This month in Servo: faster fonts, fetches, and flexbox!
+
+ 2024-11-08T00:00:00Z
+ https://servo.org/blog/2024/11/08/this-month-in-servo/
+ <p>Servo now supports <strong>‘mix-blend-mode: plus-lighter’</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34057">#34057</a>) and <strong>‘transition-behavior: allow-discrete’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33991">#33991</a>), including in the ‘transition’ shorthand (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34005">#34005</a>), along with the <a href="https://w3c.github.io/webappsec-fetch-metadata/">fetch metadata request headers</a> <strong>‘Sec-Fetch-Site’</strong>, <strong>‘Sec-Fetch-Mode’</strong>, <strong>‘Sec-Fetch-User’</strong>, and <strong>‘Sec-Fetch-Dest’</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33830">#33830</a>).</p>
+<figure><a href="https://servo.org/img/blog/october-2024-narrow.png"><img src="https://servo.org/img/blog/october-2024-narrow.png" alt="Servo nightly showing new support for non-ASCII characters in <img srcset>, ‘transition-behavior: allow-discrete’, ‘mix-blend-mode: plus-lighter’, and ‘width: stretch’" /></a></figure>
+<p>We now have partial support for the CSS size keywords <strong>‘min-content’</strong>, <strong>‘max-content’</strong>, <strong>‘fit-content’</strong>, and <strong>‘stretch’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33558">#33558</a>, <a href="https://github.com/servo/servo/pull/33659">#33659</a>, <a href="https://github.com/servo/servo/pull/33854">#33854</a>, <a href="https://github.com/servo/servo/pull/33951">#33951</a>), including in floats (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33666">#33666</a>), atomic inlines (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33737">#33737</a>), and elements with ‘position: absolute’ or ‘fixed’ (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33950">#33950</a>).</p>
+<p>We’re implementing the <strong><a href="https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto">SubtleCrypto</a> API</strong>, starting with full support for <strong>crypto.subtle.digest()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/34034">#34034</a>), partial support for <strong>generateKey()</strong> with AES-CBC and AES-CTR (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/33628">#33628</a>, <a href="https://github.com/servo/servo/pull/33963">#33963</a>), and partial support for <strong>encrypt()</strong>, and <strong>decrypt()</strong> with AES-CBC (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/33795">#33795</a>).</p>
+<h2 id="more-engine-changes" tabindex="-1">More engine changes <a class="header-anchor" href="https://servo.org/blog/2024/11/08/this-month-in-servo/#more-engine-changes">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Servo’s architecture is improving, with a new cross-process compositor API that <strong>reduces memory copy overhead for video</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/crbrz">@crbrz</a>, <a href="https://github.com/servo/servo/pull/33619">#33619</a>, <a href="https://github.com/servo/servo/pull/33660">#33660</a>, <a href="https://github.com/servo/servo/pull/33817">#33817</a>).
+We’ve also started phasing out our old OpenGL bindings (<a href="https://github.com/servo/gleam">gleam</a> and <a href="https://github.com/servo/sparkle">sparkle</a>) in favour of <a href="https://crates.io/crates/glow">glow</a>, which should reduce Servo’s complexity and binary size (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/surfman/pull/318">surfman#318</a>, <a href="https://github.com/servo/webxr/pull/248">webxr#248</a>, <a href="https://github.com/servo/servo/pull/33538">#33538</a>, <a href="https://github.com/servo/servo/pull/33910">#33910</a>, <a href="https://github.com/servo/servo/pull/33911">#33911</a>).</p>
+<p>We’ve updated to <strong>Stylo 2024-10-04</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33767">#33767</a>) and <a href="https://github.com/gfx-rs/wgpu/releases/tag/v23.0.0"><strong>wgpu 23</strong></a> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/34073">#34073</a>, <a href="https://github.com/servo/servo/pull/33819">#33819</a>, <a href="https://github.com/servo/servo/pull/33635">#33635</a>).
+The new version of wgpu includes several patches from <a href="https://github.com/sagudev">@sagudev</a>, adding <strong>support for <code>const_assert</code></strong>, as well as <strong>accessing <code>const</code> arrays with runtime index values</strong>.
+We’ve also reworked WebGPU canvas presentation to ensure that we never use old buffers by mistake (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33613">#33613</a>).</p>
+<p>We’ve also landed a bunch of improvements to our DOM geometry APIs, with DOMMatrix now <strong>supporting toString()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33792">#33792</a>) and <strong>updating <code>is2D</code> on mutation</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33796">#33796</a>), support for <strong>DOMRect.fromRect()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33798">#33798</a>), and getBounds() on DOMQuad now <strong>handling NaN correctly</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33794">#33794</a>).</p>
+<p>We now correctly handle <strong>non-ASCII characters in <img srcset></strong> (<a href="https://github.com/evuez">@evuez</a>, <a href="https://github.com/servo/servo/pull/33873">#33873</a>), correctly handle <strong>data: URLs</strong> in more situations (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/33500">#33500</a>), and no longer throw an uncaught exception when pages try to use IntersectionObserver (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33989">#33989</a>).</p>
+<p>Outreachy contributors are doing great work in Servo again, helping us land many of this month’s improvements to GC static analysis (<a href="https://github.com/taniishkaa">@taniishkaa</a>, <a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/jahielkomu">@jahielkomu</a>, <a href="https://github.com/wulanseruniati">@wulanseruniati</a>, <a href="https://github.com/lauwwulan">@lauwwulan</a>, <a href="https://github.com/servo/servo/pull/33692">#33692</a>, <a href="https://github.com/servo/servo/pull/33706">#33706</a>, <a href="https://github.com/servo/servo/pull/33800">#33800</a>, <a href="https://github.com/servo/servo/pull/33774">#33774</a>, <a href="https://github.com/servo/servo/pull/33816">#33816</a>, <a href="https://github.com/servo/servo/pull/33808">#33808</a>, <a href="https://github.com/servo/servo/pull/33827">#33827</a>, <a href="https://github.com/servo/servo/pull/33822">#33822</a>, <a href="https://github.com/servo/servo/pull/33820">#33820</a>, <a href="https://github.com/servo/servo/pull/33828">#33828</a>, <a href="https://github.com/servo/servo/pull/33852">#33852</a>, <a href="https://github.com/servo/servo/pull/33843">#33843</a>, <a href="https://github.com/servo/servo/pull/33836">#33836</a>, <a href="https://github.com/servo/servo/pull/33865">#33865</a>, <a href="https://github.com/servo/servo/pull/33862">#33862</a>, <a href="https://github.com/servo/servo/pull/33891">#33891</a>, <a href="https://github.com/servo/servo/pull/33888">#33888</a>, <a href="https://github.com/servo/servo/pull/33880">#33880</a>, <a href="https://github.com/servo/servo/pull/33902">#33902</a>, <a href="https://github.com/servo/servo/pull/33892">#33892</a>, <a href="https://github.com/servo/servo/pull/33893">#33893</a>, <a href="https://github.com/servo/servo/pull/33895">#33895</a>, <a href="https://github.com/servo/servo/pull/33931">#33931</a>, <a href="https://github.com/servo/servo/pull/33924">#33924</a>, <a href="https://github.com/servo/servo/pull/33917">#33917</a>, <a href="https://github.com/servo/servo/pull/33921">#33921</a>, <a href="https://github.com/servo/servo/pull/33958">#33958</a>, <a href="https://github.com/servo/servo/pull/33920">#33920</a>, <a href="https://github.com/servo/servo/pull/33973">#33973</a>, <a href="https://github.com/servo/servo/pull/33960">#33960</a>, <a href="https://github.com/servo/servo/pull/33928">#33928</a>, <a href="https://github.com/servo/servo/pull/33985">#33985</a>, <a href="https://github.com/servo/servo/pull/33984">#33984</a>, <a href="https://github.com/servo/servo/pull/33978">#33978</a>, <a href="https://github.com/servo/servo/pull/33975">#33975</a>, <a href="https://github.com/servo/servo/pull/34003">#34003</a>, <a href="https://github.com/servo/servo/pull/34002">#34002</a>) and code health (<a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/DileepReddyP">@DileepReddyP</a>, <a href="https://github.com/taniishkaa">@taniishkaa</a>, <a href="https://github.com/mercybassey">@mercybassey</a>, <a href="https://github.com/jahielkomu">@jahielkomu</a>, <a href="https://github.com/cashall-0">@cashall-0</a>, <a href="https://github.com/tony-nyagah">@tony-nyagah</a>, <a href="https://github.com/lwz23">@lwz23</a>, <a href="https://github.com/Noble14477">@Noble14477</a>, <a href="https://github.com/servo/servo/pull/33959">#33959</a>, <a href="https://github.com/servo/servo/pull/33713">#33713</a>, <a href="https://github.com/servo/servo/pull/33804">#33804</a>, <a href="https://github.com/servo/servo/pull/33618">#33618</a>, <a href="https://github.com/servo/servo/pull/33625">#33625</a>, <a href="https://github.com/servo/servo/pull/33631">#33631</a>, <a href="https://github.com/servo/servo/pull/33632">#33632</a>, <a href="https://github.com/servo/servo/pull/33633">#33633</a>, <a href="https://github.com/servo/servo/pull/33643">#33643</a>, <a href="https://github.com/servo/servo/pull/33643">#33643</a>, <a href="https://github.com/servo/servo/pull/33646">#33646</a>, <a href="https://github.com/servo/servo/pull/33648">#33648</a>, <a href="https://github.com/servo/servo/pull/33653">#33653</a>, <a href="https://github.com/servo/servo/pull/33664">#33664</a>, <a href="https://github.com/servo/servo/pull/33685">#33685</a>, <a href="https://github.com/servo/servo/pull/33686">#33686</a>, <a href="https://github.com/servo/servo/pull/33689">#33689</a>, <a href="https://github.com/servo/servo/pull/33686">#33686</a>, <a href="https://github.com/servo/servo/pull/33690">#33690</a>, <a href="https://github.com/servo/servo/pull/33705">#33705</a>, <a href="https://github.com/servo/servo/pull/33707">#33707</a>, <a href="https://github.com/servo/servo/pull/33724">#33724</a>, <a href="https://github.com/servo/servo/pull/33727">#33727</a>, <a href="https://github.com/servo/servo/pull/33728">#33728</a>, <a href="https://github.com/servo/servo/pull/33729">#33729</a>, <a href="https://github.com/servo/servo/pull/33730">#33730</a>, <a href="https://github.com/servo/servo/pull/33740">#33740</a>, <a href="https://github.com/servo/servo/pull/33744">#33744</a>, <a href="https://github.com/servo/servo/pull/33757">#33757</a>, <a href="https://github.com/servo/servo/pull/33771">#33771</a>, <a href="https://github.com/servo/servo/pull/33757">#33757</a>, <a href="https://github.com/servo/servo/pull/33782">#33782</a>, <a href="https://github.com/servo/servo/pull/33790">#33790</a>, <a href="https://github.com/servo/servo/pull/33809">#33809</a>, <a href="https://github.com/servo/servo/pull/33818">#33818</a>, <a href="https://github.com/servo/servo/pull/33821">#33821</a>, <a href="https://github.com/servo/servo/pull/33835">#33835</a>, <a href="https://github.com/servo/servo/pull/33840">#33840</a>, <a href="https://github.com/servo/servo/pull/33853">#33853</a>, <a href="https://github.com/servo/servo/pull/33849">#33849</a>, <a href="https://github.com/servo/servo/pull/33860">#33860</a>, <a href="https://github.com/servo/servo/pull/33878">#33878</a>, <a href="https://github.com/servo/servo/pull/33881">#33881</a>, <a href="https://github.com/servo/servo/pull/33894">#33894</a>, <a href="https://github.com/servo/servo/pull/33935">#33935</a>, <a href="https://github.com/servo/servo/pull/33936">#33936</a>, <a href="https://github.com/servo/servo/pull/33943">#33943</a>).</p>
+<h2 id="performance-improvements" tabindex="-1">Performance improvements <a class="header-anchor" href="https://servo.org/blog/2024/11/08/this-month-in-servo/#performance-improvements">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Our font system is faster now, with <strong>reduced latency</strong> when loading system fonts (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33638">#33638</a>), layout <strong>no longer blocking on sending font data</strong> to WebRender (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33600">#33600</a>), and <strong>memory mapped system fonts</strong> on macOS and FreeType platforms like Linux (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/33747">#33747</a>).</p>
+<p>Servo now has a <strong>dedicated fetch thread</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33863">#33863</a>).
+This greatly reduces the number of IPC channels we create for individual requests, and should fix crashes related to file descriptor exhaustion on some platforms.
+<strong>Brotli-compressed responses</strong> are also handled more efficiently, such that we run the parser with up to 8 KiB of decompressed data at a time, rather than only 10 bytes of compressed data at a time (<a href="https://github.com/crbrz">@crbrz</a>, <a href="https://github.com/servo/servo/pull/33611">#33611</a>).</p>
+<p><strong>Flexbox layout now uses caching</strong> to avoid doing unnecessary work (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33964">#33964</a>, <a href="https://github.com/servo/servo/pull/33967">#33967</a>), and now has experimental <strong><a href="https://docs.rs/tracing/0.1.40/tracing/">tracing</a>-based profiling support</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33647">#33647</a>), which in turn no longer spams RUST_LOG=info when not enabled (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/33845">#33845</a>).
+We’ve also landed optimisations in table layout (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33575">#33575</a>) and in our layout engine as a whole (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33806">#33806</a>).</p>
+<p>Work continues on making our massive <code>script</code> crate build faster, with <strong>improved incremental builds</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33502">#33502</a>) and further patches towards <strong>splitting <code>script</code> into smaller crates</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/33627">#33627</a>, <a href="https://github.com/servo/servo/pull/33665">#33665</a>).</p>
+<p>We’ve also fixed several crashes, including when initiating a WebXR session on macOS (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/33962">#33962</a>), when laying out replaced elements (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/34006">#34006</a>), when running JavaScript modules (<a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/33938">#33938</a>), and in many situations when garbage collection occurs (<a href="https://github.com/chickenleaf">@chickenleaf</a>, <a href="https://github.com/taniishkaa">@taniishkaa</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/33857">#33857</a>, <a href="https://github.com/servo/servo/pull/33875">#33875</a>, <a href="https://github.com/servo/servo/pull/33904">#33904</a>, <a href="https://github.com/servo/servo/pull/33929">#33929</a>, <a href="https://github.com/servo/servo/pull/33942">#33942</a>, <a href="https://github.com/servo/servo/pull/33976">#33976</a>, <a href="https://github.com/servo/servo/pull/34019">#34019</a>, <a href="https://github.com/servo/servo/pull/34020">#34020</a>, <a href="https://github.com/servo/servo/pull/33965">#33965</a>, <a href="https://github.com/servo/servo/pull/33937">#33937</a>).</p>
+<h2 id="servoshell%2C-embedding%2C-and-devtools" tabindex="-1">servoshell, embedding, and devtools <a class="header-anchor" href="https://servo.org/blog/2024/11/08/this-month-in-servo/#servoshell%2C-embedding%2C-and-devtools">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p><strong><a href="https://book.servo.org/hacking/using-devtools.html">Devtools</a> support</strong> (<code>--devtools 6080</code>) is now compatible with Firefox 131+ (<a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/servo/servo/pull/33661">#33661</a>), and no longer lists iframes as if they were inspectable tabs (<a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/servo/servo/pull/34032">#34032</a>).</p>
+<p><a href="https://book.servo.org/running-servoshell.html">Servo-the-browser</a> now <strong>avoids unnecessary redraws</strong> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/34008">#34008</a>), massively reducing its CPU usage, and no longer scrolls too slowly on HiDPI systems (<a href="https://github.com/nicoburns">@nicoburns</a>, <a href="https://github.com/servo/servo/pull/34063">#34063</a>).
+We now <strong>update the location bar when redirects happen</strong> (<a href="https://github.com/rwakulszowa">@rwakulszowa</a>, <a href="https://github.com/servo/servo/pull/34004">#34004</a>), and these updates are sent to all embedders of Servo, not just servoshell.</p>
+<p>We’ve added a <strong>new <code>--unminify-css</code> option</strong> (<a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/33919">#33919</a>), allowing you to dump the CSS used by a page <a href="https://book.servo.org/hacking/web-compat-bugs.html#diagnosing-js-errors">like you can for JavaScript</a>.
+This will pave the way for allowing you to modify that CSS for debugging site compat issues, which is not yet implemented.</p>
+<p>We’ve also added a <strong>new <code>--screen-size</code> option</strong> that can help with testing mobile websites (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/34038">#34038</a>), renaming the old <code>--resolution</code> option to <code>--window-size</code>, and we’ve <strong>removed <code>--no-minibrowser</code> mode</strong> (<a href="https://github.com/Taym95">@Taym95</a>, <a href="https://github.com/servo/servo/pull/33677">#33677</a>).</p>
+<p>We now publish <strong>nightly builds for OpenHarmony</strong> on <a href="http://servo.org/">servo.org</a> (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/33801">#33801</a>).
+When running servoshell on OpenHarmony, we now display toasts when pages load or panic (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/33621">#33621</a>), and you can now pass certain Servo options via <code>hdc shell aa start</code> or a test app (<a href="https://github.com/jschwe">@jschwe</a>, <a href="https://github.com/servo/servo/pull/33588">#33588</a>).</p>
+<h2 id="donations" tabindex="-1">Donations <a class="header-anchor" href="https://servo.org/blog/2024/11/08/this-month-in-servo/#donations">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Thanks again for your generous support!
+We are now receiving <strong>4201 USD/month</strong> (+1.3% over September) in recurring donations.
+<strong>We are no longer accepting donations on LFX</strong> — if you were donating there, please move your recurring donations to <a href="https://github.com/sponsors/servo">GitHub</a> or <a href="https://opencollective.com/servo">Open Collective</a>.</p>
+<p>Servo is also on <a href="https://thanks.dev/">thanks.dev</a>, and already <strong>ten GitHub users</strong> that depend on Servo are sponsoring us there.
+If you use Servo libraries like <a href="https://crates.io/crates/url/reverse_dependencies">url</a>, <a href="https://crates.io/crates/html5ever/reverse_dependencies">html5ever</a>, <a href="https://crates.io/crates/selectors/reverse_dependencies">selectors</a>, or <a href="https://crates.io/crates/cssparser/reverse_dependencies">cssparser</a>, signing up for <a href="https://thanks.dev/">thanks.dev</a> could be a good way for you (or your employer) to give back to the community.</p>
+<figure class="_fig" style="width: 100%; margin: 1em 0;"><div class="_flex" style="height: calc(1lh + 3em); flex-flow: column nowrap; text-align: left;">
+ <div style="position: relative; text-align: right;">
+ <div style="position: absolute; margin-left: calc(100% * 4201 / 10000); padding-left: 0.5em;"><strong>4201</strong> USD/month</div>
+ <div style="position: absolute; margin-left: calc(100% * 4201 / 10000); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="position: absolute; margin-left: calc(100% - 0.5em); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="padding-right: 1em;"><strong>10000</strong><!-- USD/month --></div>
+ </div>
+ <progress value="4201" max="10000" style="transform: scale(3); transform-origin: top left; width: calc(100% / 3);"></progress>
+</div></figure>
+<p>With this money, we’ve been able to pay for a <strong>second Outreachy intern</strong> in this upcoming round, plus our web hosting and self-hosted CI runners for Windows and Linux builds.
+When the time comes, we’ll also be able to afford macOS runners and perf bots!
+As always, use of these funds will be decided transparently in the Technical Steering Committee.
+For more details, head to our <a href="https://servo.org/sponsorship/">Sponsorship page</a>.</p>
+<h2 id="conference-talks" tabindex="-1">Conference talks <a class="header-anchor" href="https://servo.org/blog/2024/11/08/this-month-in-servo/#conference-talks">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<ul>
+<li><a href="https://www.youtube.com/watch?v=NHa4LPpWRh8&t=1365s"><strong>Servo project update</strong></a> — Manuel Rego spoke at the <a href="https://lfeumembersummit24.sched.com/event/1hUAF">LF Europe Member Summit</a> about the status and long-term vision of the Servo project</li>
+<li><a href="https://www.youtube.com/live/LPCg0NcQICQ?t=1089s"><strong>Servo: Building a Browser Rendering Engine in Rust</strong></a> (<a href="https://servo.org/slides/2024-10-25-ubuntu-summit/">slides</a>) — Rakhi Sharma spoke at the <a href="https://events.canonical.com/event/51/contributions/516/">Ubuntu Summit</a> about Servo’s recent work in embedding, layout, and benchmarking</li>
+</ul>
+<style>
+ /* guaranteed minimum width for first paragraph after a float */
+ ._floatmin {
+ display: block;
+ width: 13em;
+ overflow: hidden;
+ }
+ ._none {
+ display: none;
+ }
+ ._fig:not(#specificity) {
+ width: 33em;
+ max-width: 100%;
+ margin: 1em auto;
+ }
+ ._fig > ._flex {
+ display: flex;
+ }
+ ._fig table {
+ text-align: initial;
+ }
+ ._fig figcaption._notes {
+ text-align: left;
+ width: max-content;
+ max-width: 100%;
+ }
+ ._figl:not(#specificity),
+ ._figr:not(#specificity) {
+ margin: 0 1em 1em;
+ }
+ ._figl {
+ float: left;
+ max-width: 100%;
+ }
+ ._figr {
+ float: right;
+ max-width: 100%;
+ }
+ ._figl > figcaption,
+ ._figr > figcaption,
+ ._figl > iframe,
+ ._figr > iframe,
+ ._figl > video,
+ ._figr > video,
+ ._figl > a > img,
+ ._figr > a > img {
+ width: 21em;
+ max-width: 100%;
+ }
+ ._runin {
+ margin-bottom: 1em;
+ }
+ ._runin > p,
+ ._runin > h2 {
+ display: inline;
+ }
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
+ This month in Servo: Android nightlies, right-to-left, WebGPU, and more!
+
+ 2024-10-03T00:00:00Z
+ https://servo.org/blog/2024/10/03/this-month-in-servo/
+ <p>Servo has had several new features land in our nightly builds over the last month:</p>
+<ul>
+<li>as of 2024-09-10, we now support <strong><ul type></strong> and <strong><ul compact></strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33303">#33303</a>)</li>
+<li>as of 2024-09-10, we now support <strong>console.timeLog()</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33377">#33377</a>)</li>
+<li>as of 2024-09-10, we now support the <strong>encodeInto() method on TextEncoder</strong> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33360">#33360</a>)</li>
+<li>as of 2024-09-10, we now support <strong><link rel=prefetch></strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33345">#33345</a>)</li>
+<li>as of 2024-09-12, we now support <strong>right-to-left languages</strong>, except for floats (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/servo/servo/pull/33375">#33375</a>)</li>
+<li>as of 2024-09-14, we now support <strong>‘table-layout: fixed’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33384">#33384</a>, <a href="https://github.com/servo/servo/pull/33442">#33442</a>)</li>
+<li>as of 2024-09-17, we now support the <strong>‘reset’ event on XRReferenceSpace</strong> properties (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/33460">#33460</a>)</li>
+<li>as of 2024-09-19, we now support the <strong>‘object-fit’</strong> and <strong>‘object-position’</strong> properties (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33479">#33479</a>)</li>
+<li>as of 2024-09-19, <strong>Crypto.getRandomValues()</strong> can now take <strong>BigInt64Array</strong> or <strong>BigUint64Array</strong> (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/33485">#33485</a>)</li>
+<li>as of 2024-09-25, we now support <strong>‘innerText’</strong> and <strong>‘outerText’ on HTMLElement</strong> (<a href="https://github.com/Melchizedek6809">@Melchizedek6809</a>, <a href="https://github.com/shanehandley">@shanehandley</a>, <a href="https://github.com/servo/servo/pull/33312">#33312</a>)</li>
+</ul>
+<figure><a href="https://servo.org/img/blog/september-2024.png"><img src="https://servo.org/img/blog/september-2024.png" alt="Servo nightly showing new support for <ul type>, right-to-left layout, ‘table-layout: fixed’, ‘object-fit’, ‘object-position’, crypto.getRandomValues(BigInt64Array) and (BigUint64Array), and innerText and outerText" /></a></figure>
+<p>Servo’s flexbox support continues to mature, with support for <strong>‘align-self: normal’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33314">#33314</a>), plus corrections to <strong>cross-axis percent units</strong> in descendants (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33242">#33242</a>), <strong>automatic minimum sizes</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33248">#33248</a>, <a href="https://github.com/servo/servo/pull/33256">#33256</a>), <strong>replaced flex items</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33263">#33263</a>), <strong>baseline alignment</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33347">#33347</a>), and <strong>absolute descendants</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33346">#33346</a>).</p>
+<p>Our table layout has improved, with support for <strong>width</strong> and <strong>height presentational attributes</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33405">#33405</a>, <a href="https://github.com/servo/servo/pull/33425">#33425</a>), as well as better handling of <strong>‘border-collapse’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33452">#33452</a>) and <strong>extra <col> and <colgroup> columns</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33451">#33451</a>).</p>
+<p>We’ve also started working on the intrinsic sizing keywords <strong>‘min-content’</strong>, <strong>‘max-content’</strong>, <strong>‘fit-content’</strong>, and <strong>‘stretch’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33492">#33492</a>).
+Before we can support them, though, we needed to land patches to calculate intrinsic sizes, including for <strong>percent units</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33204">#33204</a>), <strong>aspect ratios</strong> of replaced elements (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33240">#33240</a>), <strong>column flex containers</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33299">#33299</a>), and <strong>‘white-space’</strong> (<a href="https://github.com/Loirooriol">@Loirooriol</a>, <a href="https://github.com/servo/servo/pull/33343">#33343</a>).</p>
+<p>We’ve also worked on our <strong>WebGPU support</strong>, with support for <strong>pipeline-overridable constants</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33291">#33291</a>), and major rework to <strong>GPUBuffer</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33154">#33154</a>) and our <strong>canvas presentation</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33387">#33387</a>).
+As a result, <strong>GPUCanvasContext</strong> now properly supports (re)configuration and resize on <strong>GPUCanvasContext</strong> (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33521">#33521</a>), presentation is now faster, and both are now more conformant with the spec.</p>
+<h2 id="performance-and-reliability" tabindex="-1">Performance and reliability <a class="header-anchor" href="https://servo.org/blog/2024/10/03/this-month-in-servo/#performance-and-reliability">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Servo now <strong>sends font data over shared memory</strong> (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/33530">#33530</a>), saving a huge amount of time over sending font data over IPC channels.</p>
+<p>We now debounce resize events for <strong>faster window resizing</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33297">#33297</a>), limit <strong>document title updates</strong> (<a href="https://github.com/simonwuelker">@simonwuelker</a>, <a href="https://github.com/servo/servo/pull/33287">#33287</a>), and use DirectWrite kerning info for <strong>faster text shaping on Windows</strong> (<a href="https://github.com/crbrz">@crbrz</a>, <a href="https://github.com/servo/servo/pull/33123">#33123</a>).</p>
+<p>Servo has a new kind of <strong>experimental profiling support</strong> that can send profiling data to <a href="https://ui.perfetto.dev/">Perfetto</a> (on all platforms) and <a href="https://github.com/openharmony/hiviewdfx_hitrace">HiTrace</a> (on OpenHarmony) via <a href="https://tracing.rs/"><code>tracing</code></a> (<a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/33188">#33188</a>, <a href="https://github.com/servo/servo/pull/33301">#33301</a>, <a href="https://github.com/servo/servo/pull/33324">#33324</a>), and we’ve instrumented Servo with this in several places (<a href="https://github.com/atbrakhi">@atbrakhi</a>, <a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/33189">#33189</a>, <a href="https://github.com/servo/servo/pull/33417">#33417</a>, <a href="https://github.com/servo/servo/pull/33436">#33436</a>).
+This is in addition to Servo’s existing <a href="https://book.servo.org/hacking/profiling.html#generating-timelines">HTML-trace-based profiling support</a>.</p>
+<p>We’ve also added a new <code>profiling</code> Cargo profile that builds Servo with the recommended settings for profiling (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/servo/pull/33432">#33432</a>).
+For more details on building Servo for profiling, benchmarking, and other perf-related use cases, check out our updated <a href="https://book.servo.org/hacking/building-servo.html#build-profiles">Building Servo</a> chapter (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/book/pull/22">book#22</a>).</p>
+<h2 id="build-times" tabindex="-1">Build times <a class="header-anchor" href="https://servo.org/blog/2024/10/03/this-month-in-servo/#build-times">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>The first patch towards <a href="https://github.com/servo/servo/issues/1799"><strong>splitting up our massive <code>script</code> crate</strong></a> has landed (<a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33169">#33169</a>), over ten years since that issue was first opened.</p>
+<p><code>script</code> is the heart of the Servo rendering engine — it contains the HTML event loop plus all of our DOM APIs and their bindings to SpiderMonkey, and the script thread drives the page lifecycle from parsing to style to layout.
+<code>script</code> is also a monolith, with over 170 000 lines of hand-written Rust plus another 520 000 lines of generated Rust, and it has long dominated Servo’s build times to the point of being unwieldy, so it’s very exciting to see that we may be able to change this.</p>
+<p>Contributors to Servo can now enjoy faster <strong>self-hosted CI runners</strong> for our <strong>Linux builds</strong> (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33321">#33321</a>, <a href="https://github.com/servo/servo/pull/33389">#33389</a>), cutting a typical <strong>Linux-only build</strong> from over half an hour to <strong>under 8 minutes</strong>, and a typical <strong><a href="https://book.servo.org/contributing.html#running-tests-in-pull-requests">T-full</a> try job</strong> from over an hour to <strong>under 42 minutes</strong>.</p>
+<p>We’ve now started exploring self-hosted macOS runners (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/servo/ci-runners/pull/3">ci-runners#3</a>), and in the meantime we’ve landed several fixes for self-hosted build failures (<a href="https://github.com/delan">@delan</a>, <a href="https://github.com/sagudev">@sagudev</a>, <a href="https://github.com/servo/servo/pull/33283">#33283</a>, <a href="https://github.com/servo/servo/pull/33308">#33308</a>, <a href="https://github.com/servo/servo/pull/33315">#33315</a>, <a href="https://github.com/servo/servo/pull/33373">#33373</a>, <a href="https://github.com/servo/servo/pull/33471">#33471</a>, <a href="https://github.com/servo/servo/pull/33596">#33596</a>).</p>
+<figure class="_figl"><a href="https://servo.org/img/blog/servoshell-tabs-september-2024.png"><img src="https://servo.org/img/blog/servoshell-tabs-september-2024.png" alt="servoshell on desktop with improved tabbed browsing UI" /></a></figure>
+<figure class="_figl" style="clear: left;"><a href="https://servo.org/img/blog/servoshell-android-september-2024.png"><img src="https://servo.org/img/blog/servoshell-android-september-2024.png" alt="servoshell on Android with new navigation UI" /></a></figure>
+<h2 id="beyond-the-engine" tabindex="-1"><span class="_floatmin"></span>Beyond the engine <a class="header-anchor" href="https://servo.org/blog/2024/10/03/this-month-in-servo/#beyond-the-engine">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>You can now <strong>download <a href="https://book.servo.org/running-servoshell.html">the Servo browser</a> for Android</strong> on <a href="https://servo.org/">servo.org</a> (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/33435">#33435</a>)!
+servoshell now <strong>supports gamepads by default</strong> (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/33466">#33466</a>), <strong>builds for OpenHarmony</strong> (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/33295">#33295</a>), and has <strong>better navigation on Android</strong> (<a href="https://github.com/msub2">@msub2</a>, <a href="https://github.com/servo/servo/pull/33294">#33294</a>).</p>
+<p><strong>Tabbed browsing</strong> on desktop platforms has become a lot more polished, with visible <strong>close and new tab buttons</strong> (<a href="https://github.com/Melchizedek6809">@Melchizedek6809</a>, <a href="https://github.com/servo/servo/pull/33244">#33244</a>), <strong>key bindings for switching tabs</strong> (<a href="https://github.com/Melchizedek6809">@Melchizedek6809</a>, <a href="https://github.com/servo/servo/pull/33319">#33319</a>), as well as better handling of <strong>empty tab titles</strong> (<a href="https://github.com/Melchizedek6809">@Melchizedek6809</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33354">#33354</a>, <a href="https://github.com/servo/servo/pull/33391">#33391</a>) and the <strong>location bar</strong> (<a href="https://github.com/webbeef">@webbeef</a>, <a href="https://github.com/servo/servo/pull/33316">#33316</a>).</p>
+<p>We’ve also fixed <strong>several HiDPI bugs</strong> in servoshell (<a href="https://github.com/mukilan">@mukilan</a>, <a href="https://github.com/servo/servo/pull/33529">#33529</a>), as well as <strong>keyboard input</strong> and scrolling on Windows (<a href="https://github.com/crbrz">@crbrz</a>, <a href="https://github.com/jdm">@jdm</a>, <a href="https://github.com/servo/servo/pull/33225">#33225</a>, <a href="https://github.com/servo/servo/pull/33252">#33252</a>).</p>
+<h2 id="donations" tabindex="-1">Donations <a class="header-anchor" href="https://servo.org/blog/2024/10/03/this-month-in-servo/#donations">
+ <span class="icon hashlink"><i class="fas fa-link"></i></span>
+ </a></h2>
+<p>Thanks again for your generous support!
+We are now receiving <strong>4147 USD/month</strong> (+34.7% over August) in recurring donations.
+This includes donations from <strong>12 people</strong> on LFX, but we will stop accepting donations there soon — <strong>please move your recurring donations to <a href="https://github.com/sponsors/servo">GitHub</a> or <a href="https://opencollective.com/servo">Open Collective</a></strong>.</p>
+<p>Servo is also on <a href="https://thanks.dev/">thanks.dev</a>, and already <strong>eleven GitHub users</strong> that depend on Servo are sponsoring us there.
+If you use Servo libraries like <a href="https://crates.io/crates/url/reverse_dependencies">url</a>, <a href="https://crates.io/crates/html5ever/reverse_dependencies">html5ever</a>, <a href="https://crates.io/crates/selectors/reverse_dependencies">selectors</a>, or <a href="https://crates.io/crates/cssparser/reverse_dependencies">cssparser</a>, signing up for <a href="https://thanks.dev/">thanks.dev</a> could be a good way for you (or your employer) to give back to the community.</p>
+<figure class="_fig" style="width: 100%; margin: 1em 0;"><div class="_flex" style="height: calc(1lh + 3em); flex-flow: column nowrap; text-align: left;">
+ <div style="position: relative; text-align: right;">
+ <div style="position: absolute; margin-left: calc(100% * 4147 / 10000); padding-left: 0.5em;"><strong>4147</strong> USD/month</div>
+ <div style="position: absolute; margin-left: calc(100% * 4147 / 10000); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="position: absolute; margin-left: calc(100% - 0.5em); height: calc(1lh + 1.5em); border-left: 1px solid;"></div>
+ <div style="padding-right: 1em;"><strong>10000</strong><!-- USD/month --></div>
+ </div>
+ <progress value="4147" max="10000" style="transform: scale(3); transform-origin: top left; width: calc(100% / 3);"></progress>
+</div></figure>
+<p>With this money, we’ve been able to pay for our web hosting and self-hosted CI runners for Windows and Linux builds, and when the time comes, we’ll be able to afford macOS runners, perf bots, and maybe even an Outreachy intern or two!
+As always, use of these funds will be decided transparently in the Technical Steering Committee.
+For more details, head to our <a href="https://servo.org/sponsorship/">Sponsorship page</a>.</p>
+<style>
+ /* guaranteed minimum width for first paragraph after a float */
+ ._floatmin {
+ display: block;
+ width: 13em;
+ overflow: hidden;
+ }
+ ._none {
+ display: none;
+ }
+ ._fig:not(#specificity) {
+ width: 33em;
+ max-width: 100%;
+ margin: 1em auto;
+ }
+ ._fig > ._flex {
+ display: flex;
+ }
+ ._fig table {
+ text-align: initial;
+ }
+ ._fig figcaption._notes {
+ text-align: left;
+ width: max-content;
+ max-width: 100%;
+ }
+ ._figl:not(#specificity),
+ ._figr:not(#specificity) {
+ margin: 0 1em 1em;
+ }
+ ._figl {
+ float: left;
+ max-width: 100%;
+ }
+ ._figr {
+ float: right;
+ max-width: 100%;
+ }
+ ._figl > figcaption,
+ ._figr > figcaption,
+ ._figl > iframe,
+ ._figr > iframe,
+ ._figl > video,
+ ._figr > video,
+ ._figl > a > img,
+ ._figr > a > img {
+ width: 21em;
+ max-width: 100%;
+ }
+ ._runin {
+ margin-bottom: 1em;
+ }
+ ._runin > p,
+ ._runin > h2 {
+ display: inline;
+ }
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
+ Reviving the devtools support in Servo
+
+ 2024-09-20T00:00:00Z
+ https://servo.org/blog/2024/09/20/devtools/
+ <figure><a href="https://servo.org/img/blog/devtools-inspector.png"><img src="https://servo.org/img/blog/devtools-inspector.png" alt="On the left, it shows the DOM inspector with the tree view, CSS list and computed properties views. On the right is servoshell with servo.org opened." /></a>
+<figcaption>The HTML and CSS inspector is able to display the DOM elements and their attributes and CSS properties.</figcaption></figure>
+<p><span class="_floatmin"></span>Servo has been working on improving our <a href="https://firefox-source-docs.mozilla.org/devtools-user">Firefox devtools</a> support as part of the <a href="https://www.outreachy.org/">Outreachy</a> internship program since June, and we’re thrilled to share significant progress.</p>
+<p>Devtools are a set of <strong>browser web developer tools</strong> that allows you to examine, edit, and debug HTML, CSS, and JavaScript.
+Servo leverages existing work from the Firefox devtools to inspect its own websites, employing the same open protocol that is used for connecting to other Firefox instances.</p>
+<p>While relying on a third party API allows us to offer this functionality without building it from scratch, it doesn’t come without downsides.
+Back in June last year, with the release of Firefox 110, changes to the protocol <strong>broke our previous implementation</strong>.
+The core issue was that the message structure sent between Servo and Firefox for the devtools functionality had changed.</p>
+<p>To address this, we first updated an existing patch to fix the connection and list the webviews running in Servo (<a href="https://github.com/fabricedesre">@fabricedesre</a>, <a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/32475">#32475</a>).
+We also had to update the structure of some <a href="https://firefox-source-docs.mozilla.org/devtools/backend/actor-hierarchy.html">actors</a> (pieces of code that respond to messages sent by Firefox with relevant information), since they changed significantly (<a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/servo/servo/pull/32509">#32509</a>).</p>
+<p>One of the main challenges was figuring out the messages we needed to send back to Firefox.
+The <a href="https://searchfox.org/mozilla-central/source/devtools/server/actors">source code</a> for their devtools implementation is very well commented and proved to be invaluable.
+However, it was also helpful to see the actual messages being sent.
+While Servo can show the ones it sends and receives, <strong>debugging another instance of Firefox</strong> to observe its messages was very useful.
+To facilitate this, we made a helper script (<a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/servo/servo/pull/32684">#32684</a>) using <a href="https://www.wireshark.org/">Wireshark</a> to inspect the connection between the devtools client and server, allowing us to view the contents of each packet and search through them.</p>
+<p><strong>Support for the console</strong> was fixed, enabling the execution of JavaScript code directly in Servo’s webviews and displaying any warnings or errors that the page emits (<a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/32727">#32727</a>).</p>
+<figure><a href="https://servo.org/img/blog/devtools-console.png"><img src="https://servo.org/img/blog/devtools-console.png" alt="Developer JavaScript console that shows commands and their results" /></a>
+<figcaption>The JavaScript developer console now displays page logs.
+It can also run commands.</figcaption></figure>
+<p><span class="_floatmin"></span>Finally, the most significant changes involved the <strong>DOM inspector</strong>.
+Tighter integration with Servo’s script module was required to retrieve the properties of each element.
+Viewing CSS styles was particularly challenging, since they can come from many places, including the <code>style</code> attribute, a stylesheet, or from ancestors, but <a href="https://github.com/emilio">@emilio</a> had great insight into where to look.
+As a result, it’s now possible to view the HTML tree, and add, remove, or modify any attribute or CSS property (<a href="https://github.com/eerii">@eerii</a>, <a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/32655">#32655</a>, <a href="https://github.com/servo/servo/pull/32884">#32884</a>, <a href="https://github.com/servo/servo/pull/32888">#32888</a>, <a href="https://github.com/servo/servo/pull/33025">#33025</a>).</p>
+<p>There is still work to be done.
+Some valuable features like the Network and Storage tabs are still not functional, and parts of the DOM inspector are still barebones.
+For example, now that flexbox is enabled by default (<a href="https://github.com/mrobinson">@mrobinson</a>, <a href="https://github.com/servo/servo/pull/33186">#33186</a>), it would be a good idea to support it in the Layout panel.
+We’re working on <strong>developer documentation</strong> that will be available in the <a href="https://book.servo.org/">Servo book</a> to make future contributions easier.</p>
+<p>That said, the <strong>Console</strong> and <strong>Inspector</strong> support has largely landed, and you can enable them with the <code>--devtools</code> flag in servoshell.
+For a step-by-step guide on how to use Servo’s devtools, check out the new <a href="https://book.servo.org/hacking/using-devtools.html">devtools chapter</a> in the Servo book.
+We’d love to hear your feedback on how these work and what additional features you’d find helpful in your workflow.</p>
+<p>Many thanks to <a href="https://github.com/eerii">@eerii</a> and Outreachy for the internship that made this possible!</p>
+<style>
+ /* guaranteed minimum width for first paragraph after a float */
+ ._floatmin {
+ display: block;
+ width: 13em;
+ overflow: hidden;
+ }
+ ._none {
+ display: none;
+ }
+ ._fig:not(#specificity) {
+ width: 33em;
+ max-width: 100%;
+ margin: 1em auto;
+ }
+ ._fig > ._flex {
+ display: flex;
+ }
+ ._fig table {
+ text-align: initial;
+ }
+ ._fig figcaption._notes {
+ text-align: left;
+ width: max-content;
+ max-width: 100%;
+ }
+ ._figl:not(#specificity),
+ ._figr:not(#specificity) {
+ margin: 0 1em 1em;
+ }
+ ._figl {
+ float: left;
+ max-width: 100%;
+ }
+ ._figr {
+ float: right;
+ clear: right;
+ max-width: 100%;
+ }
+ ._figl > figcaption,
+ ._figr > figcaption,
+ ._figl > iframe,
+ ._figr > iframe,
+ ._figl > video,
+ ._figr > video,
+ ._figl > a > img,
+ ._figr > a > img {
+ width: 33em;
+ max-width: 100%;
+ }
+ ._runin {
+ margin-bottom: 1em;
+ }
+ ._runin > p,
+ ._runin > h2 {
+ display: inline;
+ }
+ ._correction {
+ max-width: 33em;
+ margin: 1em auto;
+ border-bottom: 1px solid;
+ padding-bottom: 1em;
+ }
+ ._note {
+ margin: 1em 1em;
+ border-left: 1px solid;
+ padding-left: 1em;
+ opacity: 0.75;
+ }
+</style>
+
+
+
\ No newline at end of file