Top Related Projects
The modern video player for macOS.
VLC media player - All pull requests are ignored, please use MRs on https://code.videolan.org/videolan/vlc
🎥 Command line video player
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
:tangerine: Clementine Music Player
Mopidy is an extensible music server written in Python
Quick Overview
Equinox is an open-source macOS app that allows users to customize their system appearance based on the time of day. It enables automatic switching between light and dark modes, as well as changing wallpapers, according to a user-defined schedule or sunrise/sunset times.
Pros
- Seamless integration with macOS for automatic theme switching
- Customizable schedules for appearance changes
- Ability to sync with sunrise/sunset times for natural transitions
- User-friendly interface for easy configuration
Cons
- Limited to macOS platform only
- Requires macOS 10.14 or later
- May have minor impact on system resources
- Limited customization options compared to more complex theming tools
Getting Started
To get started with Equinox:
- Visit the Equinox GitHub repository
- Download the latest release from the Releases page
- Install the app on your macOS system (10.14 or later)
- Launch Equinox and grant the necessary permissions
- Configure your desired light/dark mode schedule and wallpaper preferences
- Enjoy automatic theme switching based on your settings
Note: Equinox is a macOS application and not a code library, so there are no code examples or programming-specific quick start instructions.
Competitor Comparisons
The modern video player for macOS.
Pros of IINA
- More mature project with a larger community and contributor base
- Supports a wider range of video and audio formats
- Offers more advanced playback features and customization options
Cons of IINA
- Larger codebase, potentially more complex to maintain
- Limited to macOS platform, not cross-platform like Equinox
- May have higher system requirements due to more features
Code Comparison
IINA (Swift):
class PlayerCore: NSObject {
static let playerCoreKey = Notification.Name("IINAPlayerCore")
var mpv: MPVController!
var info: PlaybackInfo!
var syncPlayTimeTimer: Timer?
}
Equinox (Swift):
class EquinoxPlayer: NSObject {
private var player: AVPlayer?
private var playerItem: AVPlayerItem?
private var timeObserverToken: Any?
private var statusObserver: NSKeyValueObservation?
}
Both projects use Swift for macOS development, but IINA relies on MPV for video playback, while Equinox uses AVPlayer. IINA's codebase is more extensive, reflecting its broader feature set, while Equinox focuses on a simpler, more streamlined approach to media playback.
VLC media player - All pull requests are ignored, please use MRs on https://code.videolan.org/videolan/vlc
Pros of VLC
- Extensive media playback support for various formats and codecs
- Cross-platform compatibility (Windows, macOS, Linux, mobile)
- Large, active community and long-standing development history
Cons of VLC
- Complex codebase due to its extensive feature set
- Steeper learning curve for contributors
- Larger resource footprint compared to lightweight alternatives
Code Comparison
VLC (C):
static int Open(vlc_object_t *p_this)
{
demux_t *p_demux = (demux_t*)p_this;
demux_sys_t *p_sys = malloc(sizeof(demux_sys_t));
if (unlikely(p_sys == NULL))
return VLC_ENOMEM;
}
Equinox (Swift):
struct EquinoxApp: App {
@StateObject private var model = Model()
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(model)
}
}
}
Summary
VLC is a comprehensive media player with broad format support and cross-platform compatibility. It has a large community but a complex codebase. Equinox, on the other hand, is a macOS-specific menu bar app for controlling system appearance. It's written in Swift and has a simpler, more focused codebase. While VLC offers extensive media playback features, Equinox provides a streamlined solution for managing macOS appearance settings.
🎥 Command line video player
Pros of mpv
- Highly versatile media player with extensive codec support
- Cross-platform compatibility (Linux, Windows, macOS)
- Robust command-line interface and scripting capabilities
Cons of mpv
- Steeper learning curve for non-technical users
- Less polished GUI compared to some other media players
Code Comparison
mpv (C):
static void video_thread(void *arg)
{
struct vo *vo = arg;
vo_loop(vo);
}
Equinox (Swift):
func playVideo() {
player.play()
}
Summary
mpv is a powerful, open-source media player with broad format support and extensive customization options. It excels in flexibility and performance but may be less user-friendly for beginners. Equinox, on the other hand, is a macOS-specific video player focused on simplicity and a modern user interface.
mpv's codebase is primarily in C, allowing for low-level optimizations and cross-platform development. Equinox uses Swift, leveraging Apple's ecosystem for a native macOS experience.
While mpv offers more advanced features and broader platform support, Equinox provides a streamlined, user-friendly experience specifically tailored for macOS users. The choice between the two depends on the user's needs, technical expertise, and preferred platform.
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
Pros of XBMC
- Mature and well-established project with a large community and extensive documentation
- Supports a wide range of media formats and streaming protocols
- Highly customizable with numerous add-ons and skins available
Cons of XBMC
- Larger codebase and more complex architecture, potentially harder to contribute to
- Heavier resource usage, may not be suitable for low-powered devices
- Steeper learning curve for new users and developers
Code Comparison
XBMC (C++):
bool CVideoPlayer::OpenInputStream()
{
if (m_pInputStream.use_count() > 1)
throw std::runtime_error("Input stream is in use");
m_pInputStream.reset();
m_pInputStream = CInputStreamFactory::CreateInputStream(m_item);
if (!m_pInputStream)
return false;
return true;
}
Equinox (Swift):
func openInputStream() throws -> InputStream {
guard let inputStream = InputStream(fileAtPath: filePath) else {
throw InputStreamError.failedToOpen
}
inputStream.open()
return inputStream
}
The XBMC code snippet shows a more complex C++ implementation for opening an input stream, while the Equinox code demonstrates a simpler Swift approach. XBMC's implementation includes additional error handling and resource management, reflecting its more extensive feature set and mature codebase.
:tangerine: Clementine Music Player
Pros of Clementine
- Cross-platform support (Windows, macOS, Linux)
- Extensive music library management features
- Integration with various online music services
Cons of Clementine
- Older codebase with less frequent updates
- More complex user interface
- Larger resource footprint
Code Comparison
Clementine (C++):
void MainWindow::AddFiles() {
QStringList filenames = QFileDialog::getOpenFileNames(
this, tr("Add files"), last_add_dir_,
QString("%1 (%2);;%3").arg(tr("Music"), FileView::kFileFilter,
tr("All files (*.*)")));
if (filenames.isEmpty()) return;
// ...
}
Equinox (Swift):
func addFiles() {
let panel = NSOpenPanel()
panel.allowsMultipleSelection = true
panel.canChooseDirectories = false
panel.canChooseFiles = true
panel.allowedFileTypes = ["mp3", "m4a", "wav"]
if panel.runModal() == .OK {
// Handle selected files
}
}
The code comparison shows that Clementine uses C++ with Qt framework, while Equinox is built with Swift for macOS. Clementine's implementation is more complex, handling multiple file types and translations, whereas Equinox's code is more concise and focused on macOS-specific functionality.
Mopidy is an extensible music server written in Python
Pros of Mopidy
- Mature and well-established project with a large community and extensive documentation
- Supports multiple audio backends and a wide range of music sources
- Highly extensible through plugins and extensions
Cons of Mopidy
- Requires more setup and configuration compared to Equinox
- Written in Python, which may have performance limitations for some use cases
- Primarily focused on audio playback and streaming, lacking some of Equinox's additional features
Code Comparison
Mopidy (Python):
from mopidy import core
class MyFrontend:
def __init__(self, config, core):
self.core = core
def playback_state_changed(self, old_state, new_state):
print(f"Playback state changed from {old_state} to {new_state}")
Equinox (Swift):
import EquinoxCore
class MyViewController: UIViewController {
private let player = Player()
func playTrack(_ track: Track) {
player.play(track)
}
}
While both projects are music-related, they serve different purposes. Mopidy is a versatile music server with a focus on extensibility and multiple audio sources. Equinox, on the other hand, is an iOS app for playing local music files with a modern interface and additional features like lyrics display and Last.fm scrobbling.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Description
Equinox is an application that allows you to create macOS native wallpapers. Starting macOS Mojave we have such cool things as «Dynamic Desktop»
, «Light and Dark Desktop»
types of wallpapers. With the help of the Equinox
application, you can easily create those with a few clicks in seconds. Just select a suitable type, drag and drop your images and create your wallpaper.
Features
There are three
types of wallpapers that you can create:
Solar wallpaper
- The main feature of this type of wallpaper is that it takes the position of the sun into account. Depending on the time of year you will see the most relevant image on your desktop. Don't worry about calculations for sun positions. With the help of the «Solar calculator» you only need to know where and when you took a photo.
Time wallpaper
- Time is the key to this type of wallpaper. The desktop picture changes throughout the day, based on the time you choose.
Appearance wallpaper
- This type of wallpaper is as simple as it is. The desktop picture changes throughout the day, based on system appearance change. You need two images: one for light and one for dark mode.
Solar calculator
It will help you to calculate the position of the sun in the sky.
- Choose the
place
,date
, andtime
on the«Sun timeline»
when you took a photo. If you don't know the exact time you can use the sun timeline to see how high or low the position of the sun in the sky is and match it with the photos you have. - Drag and drop or copy the result over your image.
Shots
FAQ
- Q: How to set the wallpaper after saving?
- A: Right click on your wallpaper, then
«Services»
->«Set Desktop Picture»
- Q: I set up my wallpaper, but it won't change over time. Looks like it doesn't work.
- A: Due to macOS bug you need to set
«Dynamic»
type in your«Desktop & Screen Saver»
macOS Preferences before you set the wallpaper.- Open
«Desktop & Screen Saver»
macOS Preferences. - Choose any
«Dynamic Desktop»
wallpaper and set itâs type to«Dynamic»
. - Right click on your wallpaper, then
«Services»
->«Set Desktop Picture»
- Open
- Q: How to test that my wallpaper works correctly?
- A: Open
«Preferences»
->«Date & Time»
, change the time to see how wallpaper works over time.
Requirements
- macOS 10.14 (Mojave) and later
Libraries
Thanks
Many thanks to the macOS community and special thanks to mczachurski and his awesome articles.
License
Translation
Equinox is translated to:
- English
- French, by W1W1-M
- Türkçe, by furkanipek
- Chinese (Simplified), by Chuan Hu, DevLiuSir
- Chinese (Traditional), by 5idereal
- Chinese (Traditional, Hong Kong), by changanmoon
To translate Equinox to another language:
- Fork the main branch
- Make a branch for the new translation as follows:
translation-xx
where xx is the language code (ex: en, fr, es, de, ...) - Add the new language to the Xcode
Equinox
&EquinoxAssets
projects - Add the new language to
Localizable.strings
localization languages inEquinoxAssets
- Update
Localizable.strings
for the new language with your translated strings - Update this part of the README with the new language
- Write a pull request on GitHub
Top Related Projects
The modern video player for macOS.
VLC media player - All pull requests are ignored, please use MRs on https://code.videolan.org/videolan/vlc
🎥 Command line video player
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
:tangerine: Clementine Music Player
Mopidy is an extensible music server written in Python
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot