- Our own product
- macOS
- Open source
VibeRes
Switches every monitor in one click, shows the change first and can undo it.
Project facts
- Platform
- macOS 26 Tahoe or later · Apple silicon and Intel
- Signing
- Developer ID + Apple notarisation
- Languages
- SK · EN · DE
- Distribution
- Homebrew · GitHub · automatic updates
- Swift 6
- SwiftUI
- CoreGraphics
- ScreenCaptureKit
- AppIntents
- Sparkle
- Swift Testing
- XCTest
- XcodeGen
- Homebrew
- GitHub Actions
The brief
VibeRes is a macOS app that switches the resolution of every connected monitor in one click, from a saved profile. A preview shows the change before you make it, every change can be undone, and when a monitor is plugged in the matching profile applies itself. We designed it and release it as open source, signed with a Developer ID certificate and notarised by Apple. It speaks Slovak, English and German and keeps itself up to date.
VibeRes is a macOS resolution switcher we built when development of the popular EasyRes utility came to an end. A laptop sits next to an external monitor one day and a projector the next, and setting up each display separately in System Settings every time gets in the way. VibeRes remembers the whole setup as a profile and brings it back in one click. We use it ourselves, and it is published as open source.
What we did
Your whole desk switches in one click
A profile remembers the resolution and refresh rate of every monitor you include and sets them all at once. It recognises a specific monitor by its identifier, so the profile still applies after a restart or with a different cable. A presentation profile can instead match any external display, including the meeting-room projector the app has never seen before. When a switch goes through, the window in the menu bar icon briefly springs out to fill the screen, so you can tell at once that it worked.
You see the result before you click
Hover over a resolution and a sketch appears in the corner: the outline is the current mode, the fill is the new one, drawn to the same scale. The preview sits in a fixed corner on purpose, not next to the cursor. A window floating beside the row looked more elegant, but it swallowed the first click and lagged behind the mouse. For the app's main action, reliability matters more than effect.
A wrong choice can be undone
⌘Z or a row in the menu undoes the last change, even when it was a whole profile. For extra safety you can turn on confirmation: the new resolution then holds only temporarily, and if you do not confirm it within 12 seconds, it reverts on its own. A countdown decides, not a button, because you cannot click on a black screen.
The right profile applies itself
When you connect or disconnect a monitor, the app finds the profile that fits the new setup exactly and applies it without asking. It never overrides a resolution you have just chosen by hand. Profiles and resolutions can also be run from Shortcuts, Spotlight and Siri, or from the companion command-line tool.
Delivered as a finished product
Three languages including Slovak, Developer ID signing, Apple notarisation and automatic updates with a verified signature. An automated pipeline builds, signs, notarises and publishes every release, Homebrew included. Nearly 300 automated tests guard mode selection, profiles and undo, and the main controls work from the keyboard and with VoiceOver.
What does this mean for your project?
With VibeRes we first asked what happens when something goes wrong, and only then how it will look. That is why a wrong choice can be undone in one click or with ⌘Z. With confirmation switched on, an unconfirmed resolution reverts by itself after 12 seconds, because nobody can click on a black screen. A preview floating by the row looked more elegant but swallowed the first click, so it sits in a fixed corner instead. We ask the same questions about an app for your company: what people see when something fails, and how they get back without having to phone a technician.
Installation and links
brew install --cask m-moravcik/viberes/viberes-app
brew install m-moravcik/viberes/viberes
Need something similar?
Tell us about your project in a few sentences. We get back to you with a suggested next step.
Write to us


