GithubHelp home page GithubHelp logo

tchigher / aerialcompanion Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aerialscreensaver/aerialcompanion

0.0 0.0 0.0 1.71 MB

A companion app for the Aerial screen saver for macOS that takes care of install and auto-updates.

Swift 100.00%

aerialcompanion's Introduction

Aerial Companion

About Aerial Companion Aerial Companion in Action!

The official companion app for the Aerial screen saver for macOS. It takes care of install, automatic updates and more.

This utility will install the Aerial screensaver and keep you up to date!

Previously called AerialUpdater

Installation

  1. Download the latest release
  2. Unzip and copy AerialUpdater.app to /Applications

Drag and Drop

  1. Once copied, double click to launch Aerial.app in your Applications Folder

  2. Aerial will be installed if this is your first time, or prompt you to update to the latest version!

Uninstall

  • To uninstall the Aerial Companion App simply delete Aerial.app from your Applications folder.
  • To uninstall the Aerial screen saver, please follow the directions here

I thought Aerial had auto-updates with Sparkle?

Aerial used to automatically update (since version 1.5.0) using the Sparkle framework.

With the introduction of macOS 10.15 (Catalina), things changed for screen savers and Aerial was no longer able to update itself because of the new security restrictions introduced with sandboxing. A temporary workaround was put in place in version 1.8.0 where you could get notified of a new version but not automatically install.

Sparkle

While this worked most of the time, for some users, the update check caused the ScreenSaverEngine to lose the keyboard/mouse focus, and pressing a key would no longer let you exit the screen saver (pressing cmd-alt-shift-esc could be used as a workaround). This issue seem to trigger a lot more often in macOS 11 (Big Sur). Due to this, Sparkle was removed from Aerial starting in version 2.0.0 and native support was added using Aerial Companion.

How does it work?

During your first launch you will be able to set up Aerial Companion to keep you up to date the way that you want. Choose whether it checks for an update hourly, daily, weekly, or only when you want to update manually. Run the companion app in the foreground from your menubar, or in the background without any effort from you. Stay up to date with either stable releases or beta updates.

I meant, how does it work technically?

In this repository, I store a manifest file that contains the version number of the latest release, and also the sha256 of the releases. This is generated after Aerial gets notarized for distribution and before I upload a new version on Aerial's releases page.

Periodically, Aerial Companion checks the manifest to see if a new version was released. When you decide to perform an update, the following happens

  • Aerial Companion uses the version number from the manifest to infer the download link from Aerial's repository (the download links are always of the same format, so version 1.9.2 will be available at https://github.com/JohnCoates/Aerial/releases/download/v1.9.2/Aerial.saver.zip)
  • The zip file is downloaded to ~/Library/Application Support/AerialUpdater/
  • The sha256 of the file is computed, and compared to the one from the manifest
  • The zip is unzipped in place, looking for Aerial.saver
  • Aerial.saver is verified (using macOS codesigning) to be using the correct Bundle ID (com.JohnCoates.Aerial)
  • Aerial.saver is verified (using macOS codesigning) to be signed/notarized with my Developer Apple ID.

If and only if everything checks out, then Aerial.saver gets copied to ~/Library/Screen Savers/.

Do I have to use this? Is there an alternative?

You don't, and sure!

  • As pointed out in Aerial's installation instructions, you can also use homebrew to install and/or update Aerial automatically.
  • You will always be able to manually download and install Aerial from its Github repository.

I don't want yet ANOTHER icon on my status bar!

Do not fear! After installing Aerial Companion you can do the following:

If you want to update in the background and hide the status icon:

  1. Change your Check Every settings to Hourly, Daily, or Weekly
  2. Set your Update Mode to Automatic
  3. Open the menu one last time and select Launch > In the background (no menu)
  4. This will then quit Aerial Companion and you are all set!

If you want to update manually

  1. Simply quit Aerial Companion by clicking Quit at the bottom of the menu
  2. When you want to check for an update, launch Aerial.app from your /Applications folder and click Check Now from the menubar icon.
  3. Once installed, quit Aerial Companion again by clicking Quit at the bottom of the menu

Known Issues

  • This tool only installs/updates Aerial if you install it for your user only, and not for all users. Installing a screen saver for all users requires an administrator password at install, and at each subsequent update, defeating the purpose of an auto-updater. It's recommended to check if you have an Aerial.saver file in /Library/Screen Savers/. If you do, please remove it as you'll get two versions of Aerial alongside each other.
  • When updating a screen saver, you must first close System Preferences. If you don't, you will need to quit and restart System Preferences after installing to reload the new version as the old one will remain in memory.

Why should I trust you? Who are you?

I'm Guillaume Louel, the developer of Aerial since version 1.4.

I have more questions!

Great! We love questions! Please feel free to send us bug reports, feature requests, and ask questions through any of the following methods:

aerialcompanion's People

Contributors

glouel avatar zv00 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.