mozilla / dinobuildr

A macOS deployment utility developed by Mozilla IT
Mozilla Public License 2.0
28 stars 24 forks source link

Wallpaper script brittleness #188

Open jlin opened 4 years ago

jlin commented 4 years ago

There are some known issues re our current wallpaper changer for dinobuildr. We use a pinned version of a set of scripts hosted at https://github.com/mozilla/macos-desktop/ , forked from upstream https://github.com/tech-otaku/macos-desktop

This issue is to collect known bugs and cases of fluke bugs so that we can find our next step for replacement and/or change of approach when it comes to setting wallpapers.

jlin commented 4 years ago

Known issue:

jlin commented 4 years ago

Mystery/flaky issue that came up with https://github.com/mozilla/dinobuildr/pull/187 - on a VM in VMware running 10.15.5, @luciusbono had an issue where the wallpaper didn't change even though all files were being written correctly, and everything else seems set. On VirtualBox and on a physical computer, the wallpaper change did go through as designed. The PR was committed because it seemed like a fluke on a VM instance, but it points to the brittleness of the script.

see https://github.com/mozilla/dinobuildr/commit/dc5a798e551652d4d15c0da902236fad2ac4d981

data-sync-user commented 3 years ago

Known issue:

* wallpaper script does not work in multi-monitor setups

* even after the external monitor is detached, it will not proceed because there is an entry of a monitor having been attached at some point in time.

* on testing vm's this can be bypassed with changing a variable in one of the preferences databases (I'll try to locate / find the exact change)

Hi @jlin Were you able to determine the variable to change in the preference databases, and can we implement a way to fix it in instances where multi-monitor setup is used by mistake during running of dinobuildr?

jlin commented 3 years ago

Yes, the multi-display and multi-"space" entries are in $HOME/Library/Application Support/Dock/desktoppicture.db

using sqlite we can remove the extra entries in the "display" and "spaces" tables. I don't have a script ready to do this, in my testing hardware I've been browsing the sqite db using a gui to examine the database and remove the entries as needed.

The relevant code is in

https://github.com/jlin/macos-desktop/blob/81fb52052cb13480ce49258a70821a0b387cfafb/set-desktop.sh#L157

and

https://github.com/jlin/macos-desktop/blob/81fb52052cb13480ce49258a70821a0b387cfafb/set-desktop.sh#L163

for the fix, since we are using this script on "new" computers we can simply add something that will remove the extra lines (the upstream software doesn't do this because they don't know if the 2nd monitors are important, but for us, we know that in our use case the 2nd monitor isn't really being used yet, since the users are most likely getting the computer fresh from manufacturer)

Can run through these details in Thursday 7 Oct 2021 meeting with team - and perhaps put in fix if someone is willing to help me test.