[03:29] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [issue #2532](https://github.com/MirServer/mir/issues/2532): Verify wl_pointer.set_cursor() serial matches latest wl_pointer.enter() serial... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/2cf33a4954310e9da64f0fd3c14c8d35e785ebba)
 "Yeah, like I said I'm on it..." <- Hm. If it's not needed to be exported, why *is* it exported? If we just removed it from `symbols.map`, it wouldn't be exported anywhere, regardless of optimisation?
[04:06] <RAOF> Ah, I see that has been the solution.
[04:09] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [issue #2533](https://github.com/MirServer/mir/issues/2533): Null-terminate buffer behind keymap fd... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/5be861d54bd0475cb44d5bec0c3acbcc05bc1827)
[04:12] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [issue #2534](https://github.com/MirServer/mir/issues/2534): Change from MAP_SHARED to MAP_PRIVATE in our clients... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/46944cacec14d4844dfbbf5f4e295caa8969d90a)
[04:16] -GitHub[m]:#mir-server- **[MirServer/mir]** wmww opened [issue #2535](https://github.com/MirServer/mir/issues/2535): Send keyboard modifiers after keyboard enter
[04:16] -GitHub[m]:#mir-server-  
[04:16] -GitHub[m]:#mir-server- > The newest version of the protocol states that is required, it doesn't appear we do it.
[07:54] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths opened [issue #2536](https://github.com/MirServer/mir/issues/2536): miral::ExternalClientLauncher::launch() returns a pid_t... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/e585fc5f9f47f64cbce0c209c6f855835df46ea2)
[08:42] <alan_g[m]> Now that's weird! I have a notification from noreply+security-snap-review this morning that revisions 108-110 of confined-shell have an outdated lib. But the store says revisions 114-116 were uploaded on 21st July.
[08:47] <alan_g[m]> Although, 114 does also contain the outdated libxml2
[08:59] <Saviq> Does the email it say it's released on `edge`? Maybe the store is backed up and catching up ;)
[09:00] <alan_g[m]> It's all edge for that snap
[09:00] <alan_g[m]> But the version numbers are screwed in the egmde snap too
[09:04] <alan_g[m]> As you imply, it is probably getting cached results from weeks ago when retrieving the version numbers
[09:04] <alan_g[m]> Do you know who owns it?
[09:05] <Saviq> Store team
[09:05] <alan_g[m]> I'll first make sure our/my snaps are updated and then report.
[10:07] <Saviq> alan_g so for the signage stuff I was thinking what would be a simple thing we could wrt. multi-monitor. Could we round-robin clients across the available outputs? Match snap labels to outputs to statically map clients to outputs? Anything else?
[10:11] <alan_g[m]> Statically map clients window names to locations in global display space or outputs
[10:17] <Saviq> Right, but that a) assumes you can influence the window names b) needs some design for how to configure that
[10:19] <alan_g[m]> We don't actually need to do anything: Clients can already specify "fullscreen on <output>" for a window
[10:19] <alan_g[m]> s/</\</, s/>/\>/
[10:19] <Saviq> That's also assuming you can ask the client to do that :)
[10:21] <alan_g[m]> Is anyone creating signage solutions to support clients they don't control?
[10:24] <Saviq> Uhm. Me.
[10:32] <alan_g[m]> I don't think "the app knows what to display on each output" is a difficult requirement. But you have reason to disagree?
[10:42] <Saviq> I would rather Frame be in control (if the operator so desires). If you have multiple screens, you may want to use different clients and place each on their dedicated screen. Some of those clients may not have a way to tell them which screen to go on
[10:46] <Saviq> Case in point: wpe-webkit-web-kiosk does not seem to have a way to do that
[10:57] <alan_g[m]> Right, but it doesn't have a way to output multiple windows either
[11:02] <Saviq> That's always an option, start two
[11:02] <alan_g[m]> So, instead of saying "a client must ask for the outputs it wants" (which is simple) you want "parallel install instances of a client, configure each install for a different output and configure Frame to connect each instance to one screen"
[11:07] <Saviq> What's simpler is debatable, when solving it in Frame, you have one for all - having clients own it all requires changes in all clients that you may want to use
[11:09] <alan_g[m]> But you're not "solving it in frame" if you need to configure multiple clients that identify themselves in a way Frame can grok
[11:09] <alan_g[m]> Even if you don't need to write code in the client
[11:12] <Saviq> That's why I suggested snap labels. Long term we could match on different properties of surfaces
[11:12] <alan_g[m]> If the client is setting properties on the surface, then it can request the fullscreen output
[11:13] <Saviq> In principle, yes, but many properties will already be set - like you said, window name
[11:14] <Saviq> And it may, or may not be enough to uniquely identify a client/surface in a given scenario - in which case yes, you'd need the client to do better
[11:15] <alan_g[m]> Anyway, it would be simple for us to implement the strategies you mention. But the result would be far from simple to use
[11:19] <Saviq> Round-robin has the obvious problem of being non-deterministic
[11:19] <Saviq> But requires little to none configuration
[11:24] <Saviq> So I'm kinda leaning towards matching snap labels to start with, but not sure how best to tie that to the display config now that groups are there
[11:27] <alan_g[m]> Well, there is a lot that needs to be done in the display config area
[13:22] <alan_g[m]> Saviq, the situation with Frame is "interesting". GHA isn't rebuilding the snap, but the library mentioned in the USN (libxml2) is outdated. And a rebuild does pick up the new one. As we've also made a couple of functional changes (#78, #79) I won't promote just now.
[13:23] <Saviq> GHA now says:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/fc7e7dfc98c2727b1e7506cdf01ad530b916793f)
[13:23] <Saviq> But I imagine that's because you triggered manually?
[13:24] <alan_g[m]> Yeah, because a couple of GHA runs went by with nothing happening
[13:25] <alan_g[m]> I guess there's no globally consistent timeline. ;)
[13:29] <Saviq> It looks to me like review-tools is broken
[13:30] <Saviq> review-tools.check-notices BPZbvWzvoMTrpec4goCXlckLe2IhfthK_3350.snap 
[13:30] <Saviq> ERROR: Unterminated string starting at: line 1 column 144547727 (char 144547726)
[13:30] <Saviq> WARN: 
[13:30] <Saviq> {}
[13:30] <Saviq> Or the database which review-tools reads, at least
[13:35] <Saviq> Hmm it might've been my cache, cleared now
[13:35] <Saviq> s/might've/was/
[13:36] <Saviq> But it still doesn't report the USN on `stable` snaps
[13:37] <alan_g[m]> And, actually for Frame, it is only mentioned in the manifest. The files are not actually shipped
[13:39] <Saviq> That may explain
[13:39] <alan_g[m]> Indeed
[13:39] <Saviq> Store looking at manifest alone, while review-tools at contents, too
[13:43] <alan_g[m]> So, once Kodi/armhf has built we should be good
[13:44] <alan_g[m]> :done:
[14:08] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths assigned AlanGriffiths to [issue #2535](https://github.com/MirServer/mir/issues/2535): Send keyboard modifiers after keyboard enter
[14:25] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths opened [pull request #2537](https://github.com/MirServer/mir/pull/2537): Send keyboard modifiers after keyboard enter... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/7ad4eab391ba9056c6b6fb3eceb9637ad97547bc)
[15:36] <grayson-g[m]> I'm a bit confused about some snap behavior. If in Frame we want to be able to `snap set` things like `log_refresh_time` or `log_location`, right?
[15:38] <alan_g[m]> grayson-g, what is the question?
[15:40] <grayson-g[m]> Firstly, is this is how we want to configure those settings? Secondly, is the correct approach to launching the snap with `snap set` options to create a launch script for Frame that grabs those options?
[15:41] <alan_g[m]> So, I thought we'd said that we're not calling the display text "log"
[15:41] <grayson-g[m]> alan_g[m]: Yes, that will be changed.
[15:42] <alan_g[m]> And the way we configure Frame is updating frame.config in the configure hook (which then gets picked up via CommandLineOption
[15:42] <alan_g[m]> But what are log_refresh_time and log_location
[15:42] <grayson-g[m]> alan_g[m]: AH okay, that's what I wasn't realizing. I didn't know CommandLineOption did that by itself.
[15:43] <alan_g[m]> CommandLineOption is a poor name - it reads command line, environment and .config
[15:44] <grayson-g[m]> `log_refresh_time` meaning the amount of time the while loop sleeps between checking to see if a log (diagnostics) file exists (as suggested by Saviq here https://github.com/MirServer/ubuntu-frame/pull/80#discussion_r935195047), and `log_location` is so the location of the diagnostics file can be configurable.
[15:45] <alan_g[m]> Why are we sleeping? Isn't that what ionotify is for?
[15:45] <grayson-g[m]> alan_g[m]: ¯\_(ツ)_/¯
[15:46] <grayson-g[m]> > <@alan_g:matrix.org> Why are we sleeping? Isn't that what ionotify is for?
[15:46] <grayson-g[m]>  * ¯\\_(ツ)\_/¯
[15:46] <alan_g[m]> And there's not much value to configuring the location. It will probably need to be supplied via a content interface anywah
[15:47] <grayson-g[m]> alan_g[m]: Cool, I'll remove `log_location`.
[15:48] <alan_g[m]> It is probably needed as an option to Frame, but not as a configuration option for the snap
[15:49] <Saviq> > Why are we sleeping? Isn't that what ionotify is for?
[15:49] <Saviq> I suggested a delay to avoid DoSing when the file gets changed all the time
[15:50] <alan_g[m]> Oh, I thought this was a wait for file creation
[15:51] <Saviq> That, if it doesn't exist, yeah
[15:59] <alan_g[m]> If the file is being currently being written, I agree we should probably sleep a bit before (re)displaying the content
[16:00] <grayson-g[m]> alan_g[m]: `FileObserver::file_updated()` checks simultaneously for both `IN_CREATE` and `IN_CLOSE_WRITE`
[16:06] <alan_g[m]> Well we should wait for create in the directory and close close-write of the file. Then sleep before looking again
[16:07] <Saviq> Yup, but after waking up, we should probably just display and inotify_wait again
[16:08] <Saviq> So, roughly:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/1d2e90dfc797229c29215b171e63c56a85b474b4)
[16:10]  * alan_g[m] sent a while code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/be4bd116bf0cf62a12bd34b025c05b902d4e4e51
[16:12] <Saviq> I did say roughly ;P
[16:12] <Saviq> EOW, have a good one all o/
[16:13] <Saviq> > ```while true:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/283a5464080d9424376c48fc070a19d65be54abc)
[16:14] <alan_g[m]> Also "roughly"
[16:59] -GitHub[m]:#mir-server- **[MirServer/mir]** AlanGriffiths requested a review from wmww for [pull request #2537](https://github.com/MirServer/mir/pull/2537): Send keyboard modifiers after keyboard enter