experiments in a post-browser web
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(hud): make HUD visible on all macOS Spaces and pass through visibleOnAllWorkspaces option

- Add visibleOnAllWorkspaces: true to HUD window options
- Pass visibleOnAllWorkspaces through to BrowserWindow via setVisibleOnAllWorkspaces() after creation
- Remove ineffective setVisibleOnAllWorkspaces calls on modal/reused windows that didn't fix the Spaces issue

+165 -14
+4 -14
backend/electron/ipc.ts
··· 2185 2185 DEBUG && console.log('Reused window transient from appFocused:', existingData.params.transient, 'appFocused:', coordinator.isAppFocused()); 2186 2186 2187 2187 if (!isHeadless()) { 2188 - // Reinforce visibleOnAllWorkspaces before showing — on macOS, this 2189 - // ensures the window appears on the user's current Space instead of 2190 - // pulling them back to the Space where the window was first created. 2191 - if (process.platform === 'darwin' && (options.modal === true || options.alwaysOnTop === true)) { 2192 - existingWindow.window.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true }); 2193 - } 2194 2188 existingWindow.window.show(); 2195 2189 existingWindow.window.focus(); 2196 2190 } ··· 2365 2359 const win = new BrowserWindow(winOptions); 2366 2360 { const actualBounds = win.getBounds(); console.log(`[window-open:actual] Window ${win.id} actual bounds after creation: (${actualBounds.x},${actualBounds.y}) ${actualBounds.width}x${actualBounds.height}`); } 2367 2361 2368 - // Reinforce visibleOnAllWorkspaces after creation — on macOS the constructor 2369 - // flag can be unreliable. This ensures modal/palette windows (e.g. cmd palette) 2370 - // appear on the current Space rather than pulling the user to the creation Space. 2371 - if (options.modal === true && process.platform === 'darwin') { 2372 - win.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true }); 2373 - DEBUG && console.log('[window-open] Set visibleOnAllWorkspaces for modal window', win.id); 2374 - } 2375 - 2376 2362 // Reinforce alwaysOnTop after creation — on macOS the constructor flag alone 2377 2363 // is unreliable; calling setAlwaysOnTop with 'floating' level ensures it stays 2378 2364 // above regular windows. 2379 2365 if (options.alwaysOnTop) { 2380 2366 win.setAlwaysOnTop(true, 'floating'); 2381 2367 DEBUG && console.log('[window-open] Set alwaysOnTop floating for window', win.id); 2368 + } 2369 + 2370 + if (options.visibleOnAllWorkspaces) { 2371 + win.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true }); 2382 2372 } 2383 2373 2384 2374 // Track window position for display-watcher home display restoration
+1
extensions/hud/background.js
··· 153 153 alwaysOnTop: true, 154 154 skipTaskbar: true, 155 155 focusable: false, 156 + visibleOnAllWorkspaces: true, 156 157 resizable: false, 157 158 frame: false, 158 159 escapeMode: 'ignore',
+160
notes/Niko-Igalia.md
··· 1 + # Context 2 + 3 + The European Commission (EC) has been funding open source software in the last 8 years via the NGI initiative, fro Unit E.3 of DG Connect. 4 + 5 + Next Generation Internet was modeled on “cascade funding” or “sub-granting”, also called FSTP for its technical name (Financial Support to Third-Parties) which implied the granting of a big chunk of money from EC to a consortium, for 3 years, and selected among competing proposals answering to an open call on the EC portal. The open calls would happen every year or 2, so there was overlaps in the funds. Then this consortium would divide the money in small chunks of 50K, and distribute those to project owners that apply to some bi-monthly calls on NLnet.nl website. NLnet was indeed a major player in this scheme, as it was almost always granted the big grants from EC. 6 + 7 + We all benefited from those small grants, and we appreciated the support from NLnet that was not only financial but in other ways too. 8 + 9 + Obtaining a grant from NLnet would sometimes take 6 to 7 months, and the money was only available for 1 year. At this rate and in those conditions, only one or maybe 1.5 FTE could fit in a grant. They then extended the options to 150K by grant, and then to 500K by grantee, in the course of the 3 years that a fund is available. 10 + 11 + In the last years, we also saw some “pilots” which were opportunities for projects that deserved more funding, to directly apply to EC money. Most of the time, with NLnet as coordinator of the consortium, and with a small part of the budget reserved for sub-granting too, but with a narrow scope. You might have seen those pilot programs on NLnet website: Taler, Mobifree and Fediversity. 12 + 13 + In 2025, the NGI initiative was closed, and a new one replaced it. It is called “Open Internet Stack” (OIS). And started the same year, with 2 open calls issued on EC portal : one big call for 10 Millions, related to networking, cloud and edge computing, with a substantial part (70%) for sub-granting, and NLnet won it. It will appear soon on their website under the name “ReStack” and will come as a complement to “Zero Commons” which is the current subgranting fund valid until mid-2027 (with 24 Millions). 14 + 15 + Another call was issued for 5 pilots, each one with a distinct Area (meaning, topic). One consortium on the Area of “supply chain” won, it is called “CodeSupply” and is led by Philippe Ombredanne, while the coordinator is NLnet. 3 other Areas have been awarded but I don’t have much more details at this point. The 5th one, on the Area of “Alternative solutions to centralized platforms” was awarded to the ELFA consortium, of which I am the lead. In the next 3 years, with a total budget of 3 Millions, we will be working on Encrypted Local-First Applications, to create a Workspace that can compete with Google Workspace, and based on NextGraph, the project I am working on since 4 years. You can find more info on https://elfaconsortium.eu and https://nextgraph.org 16 + 17 + NLnet is the coordinator, and will also manage the FSTP part for 10% of the budget. You will soon see an additional choice in the dropdown at NLnet website, when you want to apply for a small grant, and it will be about ELFA, for those who want to develop new apps that would complement the Suite of Apps we envision. 18 + 19 + The winner of those grants were announced at the last FOSDEM, and they are the first batch of new consortia related to Open Internet Stack. 20 + 21 + In the same move, EC published new open calls on the 15th of January, to expand on that. 22 + Those calls are emanating from the same Unit E.3 at DG Connect, with whom I have a very good contact. The calls are open until the 15th of April, which is the deadline for submission. 23 + 24 + OIS wants to introduce a breaking change compared to NGI. 25 + 26 + NGI was about cascade funding, and made the success of NLnet. 27 + 28 + OIS to the contrary, would like to give bug chunks of money directly to the engineers, to the projects that deserve it, and that can develop products that can scale. 29 + 30 + This was the new policy unveiled at NGI Forum 2025, where the NGI initiative was closed and OIS was announced as a replacement. 31 + 32 + Unit E.3 understood that cascade funding led to fragmentation, as small projects all compete one with another, and there is a dispersion of efforts, with no project really reaching momentum. 33 + 34 + In the current geopolitical context, the EC is taking the question of Digital Sovereignty a bit more seriously than it used to be. The top brass at DG Connect are asking: what do you have for us, after 250M invested in Open Source, in order to deploy solutions based in Europe, and that can scale. 35 + 36 + Unfortunately, Unit E.3 and NLnet, have nothing substantial to show. 37 + 38 + Yes we have thousands of projects that were funded, but we do not have one good solution that can compete with Gmail, Google workspace, Office 365, Apple iCloud, Meta and Bytedance social networks and so on. 39 + 40 + Europeans depend daily on Big Tech solutions, and it is starting to hurt. 41 + 42 + For this reason, the open calls of OIS are not putting emphasis on sub-granting anymore, but instead, on funding structured and coherent consortia composed of critical mass projects that want to collaborate. 43 + 44 + Sub-granting is being phased out, but not completely, as it is still a great instrument for finding new talents, for agile research and innovation, and to maintain small pieces of software. 45 + 46 + For bigger ambitions, we need to form consortia, and apply directly to EC portal. 47 + 48 + The 2 calls that are available until 15 of April, are meant specially for that, and we shall not let this opportunity pass, as there will be nothing else available coming from Unit E.3, in the next 3 years, due to how the budgeting calendar works at EC. 49 + 50 + The calls 51 + 52 + The first call is called DATA-02 “Open Internet Stack Sovereign Solutions”, and it is focusing on scaling up existing open source solutions that were previously funded by NGI. The total budget is 20M that must be divided into 2 consortia of 10M each (3 consortia of 7M each). https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/HORIZON-CL4-2026-04-DATA-02 53 + 54 + The call features several topics, that can be answered in full, partially, or selectively, by the consortia. 55 + - Network and Transport technologies including for example routing and virtual private networks, survivable mesh technologies. 56 + - Sovereign operating systems and firmware (including smartphones). 57 + - Open Source software productivity and supply chain technologies such as federated forges, independent and cross-platform development framework. 58 + 59 + This is broad enough to apply to many projects. 60 + The idea being to establish synergies between the projects and areas, towards an integrated solution. 61 + 62 + The consortia can opt for up to 80% of the budget for FSTP (sub-granting) with maximum 400K by grantee. But I know from my contact at Unit E.3 who issued the calls and will select the proposals, that lower FSTP levels are desired. Something between 20 and 50%. 63 + 64 + The second call is called HUMAN-02 “Web 4.0 architectural framework and Open Internet Stack applications for virtual worlds”, for a total budget of 17 M, divided into 2 or 3 consortia of between 3 to 8 M each. 65 + 66 + https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/HORIZON-CL4-2026-04-HUMAN-02 67 + 68 + This one is focuses on 2 areas : 69 + - “Architectural Framework”, which is poorly defined and can support up to 70% of FSTP, and who will most probably be awarded to NLnet so it can continue to do its subgranting program. There will be one and only one consortium chosen for this area. 70 + - “Applications” Area: composed of distinct topics, that can be mixed and matched : 71 + - Alternative decentralised applications and services such as synchronous and asynchronous messaging, videoconferencing, collaboration and groupware or social media that can be exploited through Virtual Worlds technologies, including immersion and interaction. 72 + - App-stores (incl. web-based) adapted for Virtual Worlds 73 + - Shared, robust and trustworthy cross-technology Virtual Worlds for user and attribute management 74 + There can be several consortia selected for this area. The “virtual world dimension” should not scare you, as it is not really important. Still we would need to address it. In my own consortium ELFA, we answered to a similar call in 2025 (HUMAN-16) and it had some Virtual Worlds aspect to it, that we addressed with XRFragments. 75 + 76 + The plan 77 + 78 + As you can see, Web platforms are not specifically mentioned anywhere, but we will find a way. 79 + 80 + As soon as June 2025, I entered in contact with Unit E.3, after my talk at NGI Forum, and I sent them my contribution to what I believed should be the strategy for the next years. I included an estimated budget in which Web Platforms and specially Servo had a major place. 81 + 82 + I argued that Web engines are at the heart of the whole internet, and including in applications using a webview. I stressed that the 3 options available for now, are all ridden with zero-days, and we don’t see the end of this continuous stream of security fixes and hot patches. Servo, being memory-safe with Rust, should be the obvious solution to this problem. I also noted that none of the above options are sovereign, and are all controlled by some companies more or less friendly with the open source communities. 83 + 84 + Web engines are a huge dependency, an essential architecture layer, that the EC budgets never address. 85 + 86 + I remember the workshop organized by NLnet at the end of 2025, about Web platforms, where it was stated, by some Igalia members, that a need to gather forces was being felt, in order to form consortium and apply for a bigger grant (as small NLnet grants can only lead us that far). The problem being that such open call from EC is nowhere to be found. 87 + 88 + I am educating Unit E.3 on the need to open such call, but it takes them time, as budget are decided years in advance, and their reactivity is… non existent. I nevertheless expect some interesting calls to be opened in 2028. 89 + 90 + Until then, we have to do with what we have. 91 + 92 + DATA-02 contains the topic of supply chain and cross-platform development framework. 93 + I believe that Web platforms can fit in that definition, if we explain the rational well, and that Servo, and specially its webview, would be essential to add to our proposal. 94 + 95 + I recently met with Daniel Thompson-Yvetot of Tauri framework and CrabNebula, as well as with Dietrich Ayala, and they both joined me on this adventure of defining what would be the baseline readiness scenario we could include in a proposal for DATA-02, with limited funding for the next 3 years. 96 + 97 + Tauri also fits very well with the supply chain security and dev framework, and extends to the other call, about App Stores. 98 + 99 + NLnet organized a “matchmaking event” on the 11th of February and a large amount of NLnet sponsored projects participated and expressed their interest and desire to form a consortium. 100 + https://nlnet.nl/events/20260211/OIS-matchmaking/index.html 101 + 102 + Following up on that, I contacted Murena e/OS project, and proposed them to gather a consortium on the theme of Mobile OSes. Rik Viergever, who has experience working with EC as he was the lead of the Mobifree pilot, is stepping up as coordinator of one the consortium, answering to DATA-02. He has with him postmarketOS, F-Droid, microG, Matrix/Element and Shiftphone. He will also establish a consortium for answering to HUMAN-02, together with NextGraph, CrabNebula and maybe Mastodon who was interested to join. 103 + 104 + There is still room for a third consortium, to answer to the parts not covered on DATA-02 : forges, supply chain, dev frameworks, networking and mesh. Daniel of Tauri is willing to be the coordinator and is gathering forces with other Rust based projects like Slint and others related to IoT like ariel-os and the RustNL conference in general. In this consortium, there would be room for Servo and Igalia to join. 105 + 106 + The goal is to present 3 consortia “all at once” to the 2 calls, and describe the links and synergies between all the projects composing those 3 consortia. We want to see all those projects as one mega-consortium, and stress the inter-dependencies and complementarity of them all. 107 + 108 + This approach also matches with the strong desire of Unit E-3 to hand over the management of the grants to engineers, instead of organizations who do not have hand-on experience on the software and products. It also fits the plan of defeating fragmentation, by forcing all players to overcome overlaps and competition, and find complementary and collaboration between each other. 109 + 110 + NLnet has not been invited to those consortia because unfortunately, they intend to apply by themselves to DATA-02 for 10M (and use it all for FSTP) while we believe this is not the right approach, nor the desire of the granting authority Unit E-3. 111 + 112 + Joining a consortium 113 + 114 + After the first call I had with Rego and Dietrich on Friday, I am extending you this offer to join the consortium established by Daniel. 115 + The timing is very short and we would need your agreement as soon as possible, ideally within a week. 116 + There is no formal step to take in order to commit to joining the consortium. Nothing to sign officially. 117 + Still there are some administrative steps that would need to happen soon, and that I will detail below. 118 + Also, the budget and the description of the tasks you would like to take upon yourself, are still to be defined. We could imagine an overall budget of 2 to 4 millions being assigned to Servo, via Igalia. This amount is for the 3 years of the duration of the grant, not for every year, unfortunately. 119 + We came up with some numbers of what could be done with this money, thanks to the amazing work of Dietrich who produced a “Servo Readiness Summary” document, that I am sure he will share with you. 120 + I let the details of your plan to be defined by you guys, in the coming few weeks, and that plan would also have to take into account the needs of the other partners, like Tauri, and including the mobile OS projects, and even the web-based app store. 121 + 122 + Igalia would join the consortium, and would receive a budget that it must use to pay salaries. That’s the way most of the money of a EC grant should be spent. 123 + There is also this option to include an FSTP percentage on your budget, between 20 to 50%, so this part of the budget is reserved for later, for an open call that we would manage on our own website, and where developers, contributors, would propose some grant, that we would then review and award, in a very similar fashion as what NLnet is currently doing, except that we would be deciding on the grantees, and it would probably not take 7 months for them to receive our answer. The FSTP mechanism is great to pay freelancers that work for a shorter period on a specific task. 124 + 125 + As an indicative rate, I share with you the daily rates I am aware of (those are gross amounts. Total cost for employer):
- 500 € : maximum rate for NLnet grantees. Does not apply to us. Just indicative. 126 + - 495 € : rate used by my consortium ELFA, composed of very qualified open source engineers 127 + - 680 € : rate for some consultancy work from one of the leader in CRDT/Local First technology 128 + - 1250 € : rate for a short consultancy of the same, from another of the leader in the field. This is way above what the EC is willing to pay. We hire him just for one month. And it is already controversial. 129 + 130 + In EC standards, a month is composed of 18 days and a year is composed of 215 worked days. 131 + Hence, the above rates would lead to these amounts for FTE : 132 + - 107,500 : NLnet 133 + - 106,425 : ELFA 134 + - 146,200 : higher rate, that cannot be sustained for very long. 135 + Something in that range would be acceptable, but more to the lower end. This is public money, and the rates we ask for are also counting against or in favor of our proposal. The cheapest the better chance to be selected. 136 + 137 + I am experienced in the writing of a proposal. My previous grant application was rated 14/15, and won. I also have a direct contact with the people at Unit E.3 and I know what they expect. Also, I will help in the writing the proposal, in the administrative parts, even though I won’t be coordinator. 138 + 139 + The coordinator is the partner in the consortium that receives all the budget upfront. For this reason, it has to have a solid financial situation. The partner who will manage the FSTP program needs to have similar guarantees. 140 + 141 + Here are the steps for joining a consortium 142 + 143 + - if you don’t have a PIC number yet, someone at the Igalia company will have to create one on the portal of the EC. This is easy. The legal documents about the company (registration number and VAT number) have to be submitted at that moment. One person who has authority in the company, shall be assigned the LEAR role (Legal Entity Appointed Representative). There is one form that is printed and signed by the legal representative of the company. This form needs to be ready very soon, within few weeks. It is not an official commitment to the grant. It just proves that the LEAR is an authorized person by the company. A very short verification is done on the part of EC. Then the PIC needs to be communicated to the coordinator, that will add you to the proposal. 144 + - a written proposal will contain list of tasks, deliverables, time estimates in person-months and a total budget. A good story will have to be written explaining the reason for proposal and the detailed action plan. I will guide you through that, and it will be done in cooperation with the rest of the partners. 145 + - then we wait for 4 months to get the answer. Probably in September. 146 + - then more administrative work is needed, mostly done by the coordinator. It can take several months. It is at this moment that you sign the grant agreement. I do not expect the work to start before January 2027. 147 + 148 + Then during the 3 years of the grant, there is a monthly reporting to do, that just consists of listing the names of the employees, and the amount of days worked on the action. 149 + 150 + Each partner usually receives the budget needed for paying the salaries, upfront, at the beginning of 12 months period. The coordinator manages the whole budget and transfers the amount to each partners. The coordinator is also responsible for more complex reporting to EC. 151 + 152 + If you have more questions about this proposal to join our consortium, please contact me at niko@nextgraph.org 153 + 154 + We would also like to invite you to the next consortium meeting. The 3 consortia are not completely formed yet, but this will happen in the coming week. 155 + 156 + Time is running against us, so I would be very grateful if you could come back to us with a verbal pre-agreement as soon as within a week from now. 157 + 158 + Looking forward having you with us, so we can advance Servo and the whole European sovereign open source ecosystem. 159 + 160 + Cheers,
Niko