Skip to content

Conversation

@philippremy
Copy link
Owner

@philippremy philippremy commented Jan 7, 2024

As requested in #2, WavyBackgrounds should be enhanced with new features. This draft pull request keeps track of the current progress:

  • ‘Start at login’ option
  • Remove a downloaded background from your local disk (so the wallpapers don’t clutter space)
  • Auto update option when there is a new version on Github
  • The option to remove the app-icon from the MacOS Dock, but a active icon (as is also now) in the upper Icons bar
  • A ‘Pauze/Play’ button to stop the Wallpaper from moving (e.g. when you want to reduce energy)
  • Play the dynamic wallpaper continuously, basically a loop (it just stops now after the ‘video’ is done while the (my) intention is that it plays continuously)
  • Perhaps a timer on how long to play the video for customization purposes
  • Play video’s continuously, with a Shuffle feature.

To test out the new and yet to be merged features, clone the dev branch.

Added a UI element to indicate the option to delete locally saved video files
@philippremy philippremy self-assigned this Jan 7, 2024
@philippremy philippremy linked an issue Jan 7, 2024 that may be closed by this pull request
@philippremy philippremy added the enhancement New feature or request label Jan 7, 2024
…rement

Add buttons to pause dynamic backgrounds (either all or only the one on the active space).
Remove requirement of a nightly chain for building from source.
Added a very hacky way of hiding and (again) showing the app icon. Currently causes the app window to flash very briefly.
Use `SMAppService` class to register the app officially as a LoginItem, i.e. launch the app on startup/login, if the user agrees to do so.
Add external Objective-C library to check if the app was launched as a LoginItem, i.e., automatically at startup. For this, an external library was written in Objective-C, which then gets compiled within the `build.rs` file automatically.
Supports fat (universal) binaries with Tauri's `universal-apple-darwin` target.
Add Apple Clang as a build dependency to README.md
@joostiphone
Copy link

I see there is some progress, awesome 👍 Can you make a (beta) build; I can't seem to make a build on my own according the instruction you mentioned earlier, and I surely want to test the changes you made.

@philippremy
Copy link
Owner Author

I see there is some progress, awesome 👍 Can you make a (beta) build; I can't seem to make a build on my own according the instruction you mentioned earlier, and I surely want to test the changes you made.

Sure, I'd love to! But keep in mind that this is all very much in beta right now and I currently question my approach to certain topics. This is all very much based around Apple's AppKit, Core Graphics and Core Foundation frameworks. As the code grows I do realize that I have to write more and more code in Objective-C (and C, because there will be a need for Apple's Private APIs). The interoperability with Rust directly is - let's put it very plainly - half-baked at best. Even more so, it discards Rusts memory safety guarantees and I do see some SIGSEGVs happen.
I do consider to refactor once again and get rid of all "Objective-C-within-Rust" to build one static library in Objective-C directly, which should make maintenance easier and the program more safe in general, because I could build proper wrapper functions with better error handling (no need to pass pointers through Objective-Cs ARC and Rusts Borrow Checker 🎉).
I will look into that soon (I promise!), but until then, I'll temporarily pause the implementation of the new features.

WavyBackgrounds.zip

@joostiphone
Copy link

Hey, me again :-) It's been a while ago, so I thought let's get in touch again. Would love to hear if you still have plans to work on the mentioned adjustments. Just wondering because it can be an awesome app IMO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Request for features

3 participants