general high-level discussion about spectrum
 help / color / mirror / Atom feed
* This week in Spectrum, 2020-W18
@ 2020-05-03 19:19 Alyssa Ross
  0 siblings, 0 replies; only message in thread
From: Alyssa Ross @ 2020-05-03 19:19 UTC (permalink / raw)
  To: discuss, devel

[-- Attachment #1: Type: text/plain, Size: 3879 bytes --]

A belated Happy International Workers' Day. :)
I had some other stuff going on this week but I'm still happy with what
I got done.


Wayfire
-------

I've been working on packaging Wayfire in Nixpkgs so we can use it in
Spectrum.  (See last week's update for why I've chosen Wayfire for
this.)  This has required quite a bit of work on Wayfire itself, because
up until now Wayfire has assumed that every component, including
plugins, will be installed into Wayfire's prefix.  With Nix, a package's
prefix is only writable by that package, so we need to make some
changes to Wayfire to support each component having its own prefix.
This is necessary even for our simple case because even a basic Wayfire
setup has at least one plugin to provide the desktop shell.  Everything
is supposed to be a plugin, after all.  And we'll want to add our own
plugins at some point.

To implement plugins in other search paths, I added two environment
variables WAYFIRE_PLUGIN_PATH (for libraries) and
WAYFIRE_PLUGIN_XML_PATH (for the XML files that define Wayfire plugin
options).  These are then searched in addition to Wayfire's prefix.
Support for plugins coming from multiple prefixes required some small
changes in several parts of the Wayfire ecosystem.

Wayfire has so far proven to be a very friendly upstream.  They
understood the problem I was having, even though it's less of an issue
on traditional distributions, and I always got quick answers on IRC when
I needed to ask for advice on implementing the search paths.

Here's the issue I filed describing the need for search paths:
https://github.com/WayfireWM/wayfire/issues/493

And here are all the pull requests I made to implement them across the
ecosystem:

https://github.com/WayfireWM/wayfire/pull/496
https://github.com/WayfireWM/wf-config/pull/25
https://github.com/WayfireWM/wayfire/pull/497
https://github.com/WayfireWM/wf-shell/pull/52
https://github.com/WayfireWM/wf-shell/pull/53
https://github.com/WayfireWM/wcm/pull/17
https://github.com/WayfireWM/wf-shell/pull/54
https://github.com/WayfireWM/wcm/pull/18

With these changes, I can have Wayfire all nicely packaged up.  We can
even provide a nice Nix interface for configuring a Wayfire with some
specific plugins:

    (wayfireApplications.withPlugins (plugins: with plugins; [ wf-shell ])).wayfire

I made a pull request to add Wayfire, with the interface demonstrated
above, to Nixpkgs:
https://github.com/NixOS/nixpkgs/pull/86606

Unbeknownst to me, while I was working on this, another PR was also
opened to add the latest version of Wayfire to Nixpkgs:
https://github.com/NixOS/nixpkgs/pull/86569

This PR does a good job of making the basic Wayfire installation work,
but it doesn't support extra plugins.  Still, it's likely that if this
had been available before I started my work, it would have been good
enough for us for now.  This sort of thing is always a risk, and even if
I hadn't done the Wayfire work now I'd have had to come back later
anyway to do plugins, so it's not too bad.  The author of that PR and I
have agreed to work together from here to get Wayfire into Nixpkgs,
using my PR as a base because it has the plugins support.

So, hopefully by the time I write my next status update all my Wayfire
pull requests will have been merged, and Wayfire will be in Nixpkgs.
Reviews on the Nixpkgs PR in particular are very much appreciated. :)

From here, I'll start trying to modify Wayfire/wlroots to make it
request host memory rather than allocating its own, as described in last
week's status update.  I had a quick look, and it appears that there
aren't many places these allocations are happening, so hopefully that
shouldn't require too much modification.  Then, we should be able to run
an application in one VM, displayed on a compositor in another. :)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-05-03 19:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-03 19:19 This week in Spectrum, 2020-W18 Alyssa Ross

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).