https://github.com/p00ya/displaymode
a command-line utility for changing the display resolution on macOS
https://github.com/p00ya/displaymode
macos
Last synced: 3 months ago
JSON representation
a command-line utility for changing the display resolution on macOS
- Host: GitHub
- URL: https://github.com/p00ya/displaymode
- Owner: p00ya
- License: apache-2.0
- Created: 2019-05-23T17:17:52.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-12-07T04:14:18.000Z (over 1 year ago)
- Last Synced: 2025-10-12T02:58:22.968Z (7 months ago)
- Topics: macos
- Language: C
- Homepage:
- Size: 48.8 KB
- Stars: 111
- Watchers: 5
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# displaymode
`displaymode` is a command-line utility for changing the display resolution on macOS. It will work on macOS 10.6 or later.
In recent versions of macOS (e.g. macOS Ventura / v13), it's possible to set the resolution via Apple's built-in System Settings app, obviating the need for this utility. Firstly, enable System Settings > Displays > Advanced > "Show resolutions as list", then enable "Show all resolutions".
## Installation
## With Xcode
If you have Xcode (or the Xcode command line tools) installed, it's best to compile it yourself. From the terminal:
1. `git clone https://github.com/p00ya/displaymode.git`
2. `cd displaymode`
3. `clang -std=c11 -lm -framework CoreFoundation -framework CoreGraphics -o displaymode displaymode.c`
## Without Xcode
If you don't have Xcode installed, then you can download the binary (note this is not a zip file) then give the OS permission to run it. From the terminal:
1. `curl -LO https://github.com/p00ya/displaymode/releases/latest/download/displaymode`
2. `xattr -d com.apple.quarantine displaymode`
3. `chmod a+x displaymode`
4. `codesign -f -s "-" -v displaymode`
## Usage
To change the resolution of the main display to 1440x900, run the command:
```
./displaymode t 1440 900
```
To change the resolution of the secondary display to 1440x900, run the command:
```
./displaymode t 1440 900 1
```
You can also specify a particular refresh rate:
```
./displaymode t 1440 900 @60
```
You can get a list of active displays and available resolutions by running:
```
./displaymode d
```
The output will be a table like:
```
Display 0 (MAIN):
2560 x 1600 @60.0Hz *
1280 x 800 @60.0Hz
2880 x 1800 @60.0Hz
640 x 480 @60.0Hz !
Display 1:
800 x 600 @75.0Hz *
```
where each row is the width x height in pixels. `*` indicates the current mode, and `!` indicates modes that are not usable for the desktop.
## Other options
`./displaymode h` prints a summary of the options.
`./displaymode v` prints the version and copyright notice.