Coder Social home page Coder Social logo

rdm's Introduction

This is a tool that lets you use MacBook Pro Retina's highest and unsupported resolutions. As an example, a Retina MacBook Pro 13" can be set to 3360×2100 maximum resolution, as opposed to Apple's max supported 1680×1050. It is accessible from the menu bar.

rdm-screenshot

You should prefer resolutions marked with ⚡️ (lightning), which indicates the resolution is HiDPI or 2× or more dense in pixels.

For more practical results, add RDM.app to your Login Items in System Preferences ➡ Users & Groups ➡ Login Items. This way RDM will run automatically on startup.

This version has integrated generator/editor of display override plist (see https://comsysto.github.io/Display-Override-PropertyList-File-Parser-and-Generator-with-HiDPI-Support-For-Scaled-Resolutions/), which allows to add custom scaled resolutions. Now you just have to specify the resolution you want, not the twice of it. For example, in the previous versions (~2.3.3), you should have to specify 3840×2160 resolution with HiDPI box checked, to achieve a 1920×1080 resolution with HiDPI support. Now, you only need to add a 1920×1080 resolution with HiDPI box checked.

To install this application, simply run ./install in the project root directory. If you want to specify the installation path, set $RDM_PATH variable. The default installation path is /Applications. To uninstall this application, simply run ./uninstall. The $RDM_PATH variable works just the same way as in the install script.

This is a fork of https://github.com/avibrazil/RDM.

Code for toggling display mirroring is taken from https://github.com/fcanas/mirror-displays.

Requires macOS 10.10 or higher for running, Xcode 10 for building. For older systems use the original version. Tested in macOS 10.15.6 with Xcode 11.4.

How to revert

To revert all changes made by RDM, remove the /Library/Displays/Contents/Resources/Overrides folder.

rdm's People

Contributors

aryamccarthy avatar avibrazil avatar balakine avatar jnooree avatar rread avatar usr-sse2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rdm's Issues

HiDPI on 2048x1280?

Hello! I was wondering if it was possible to enable HiDPI on 2048x1280? I'm on a M1 Macbook Air - that works out to be 125% scaling. Currently, I have no issue using RDM to set the resolution to 2048x1280, but the text still appears a bit blurry. (blurrier than my previous laptop, which was a Huawei Matebook X Pro, 125% scaling).

I've tried adding resolutions with the HiDPI mode enabled to /Library/Displays/Contents/Resources/Overrides/DisplayVendorID*******, but it doesn't seem to be working - 2048x1280 still doesn't appear with the HiDPI icon:

image

I'm on RDM 2.5, and on MacOS 11.2.1 Big Sur.

Any help would be much appreciated!!

Install Error: Missing export.plist

The directory /Users/xxxxxx does not contain an Xcode project, workspace or package.
error: Couldn't load -exportOptionsPlist: The file “export.plist” couldn’t be opened because there is no such file.

xcode project opens correctly but the installer fails

Running xcode 13.1, OS Monterey 12.0.1

big sur M1 mac pro does not work

It adds the additional profile however the HiDPI option is not there. The only workaround I found is to mirror the retina display with HiDPI resolution which applies to external display as well. The issue is that the highest resolution is 1680 x 1050 HiDPI. See attached screenshot.

So the iOS knows how to do it for retina either for external display - just it is somehow hidden and not possible to set for external display..

Tomas

Screenshot 2021-05-07 at 17 23 46

Custom Resolution not Working

Screen Shot 2021-01-14 at 10 42 50 PM

I added 1920x1200 resolution in the custom menu, but even after saving and rebooting multiple times, it didn't show up. I am using macOS Big Sur 11.1 on the Mac m1 chip.

Also for the popup shown below to verify the user password, it appears twice, again after you already verified the password once.
Screen Shot 2021-01-14 at 10 49 26 PM

16x9 HIDPI doesn't work on my external monitor

I have a 13.3inch, 16x9, 3k (3200x1800) external monitor, and the HIDPI mode for 16x9 resolutions such as 1920x1080, 1600x900 does not do anything. However, HIDPI 16x10 resolutions do work (1440x900, 1900x1200) but it results in black bars on the sides of the monitor. What should I do to fix this issue?

Manage resolution list

It would be great to reduce the clutter of the resolution window.
I would suggest having a toggles to remove either all non-retina resolutions, "double" resolutions (regular/HiDPI), or/and all regular resolutions, but the ones being higher than the highest retina one.

Hiding non-native aspect ratios by default would be great as well.

Fix incorrect resolution for internal display

I was trying to use this to fix some sharpness issues on my external monitor, I did something wrong, and now my internal Macbook display things its something else, and has the wrong resolution options. How can I fix this?  

image
image

Am I using this software correctly?

My ultrawide monitor (LG WL500) supports 2560x1080 natively. Due to this res not being shown by MacOs out of the box, I decided to try RDM. The problem is that setting up that res (I also enable HiDPI), leads to have two large black bands at the top and at the bottom of the screen. Any suggestions on what I may be doing wrong?

Thanks.

Meaning of unknown flags

First of all, thank you for making this work on Bug Sur!

There are some check marks on the Scaled Resolutions screen that are named Unknown. Could you or anyone please clarify what they are actually for?

Screenshot 2021-01-08 at 22 10 57

M1 cannot activate HiDPI

If you find the way please tell us ...
sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true
does nothing.
ioreg -lw0 | grep -i "IODisplayEDID"
displays nothing.

Edit resolutions dialog unresponsive

Hi usr-sse2 :)

Thanks for publishing the Cataline update! I'm seeing an issue, running Catalina 10.15.3.

Clicking the 'edit' option doesn't open the edit resolutions dialog. But if I then click the 'about' option, the about dialog appears along with the edit resolutions dialog. However the buttons on the edit resolutions dialog are unresponsive.

Best rgds,
Jims

[SUGGESTION] Replace retina icon / sort non-retina resolutions separately

I feel like the likening bolt is just there because there was nothing fitting at the time, and I must admit I am not sure there is now. First of, I think it would appear much cleaner, if it wasn't an emoji style symbol.
While I'm not certain which character would be right I got some that came to mind.

- pretty self-explanatory

- representing the (original) four to one pixel ratio of apples retina displays

☑︎/✔︎ - check, it's retina!

/ - still better than ⚡️?

- possibly coloured green?

PS: What about just having non-retina resolution written in a faded/lighter color or dividing the menu into two/multiple lists by a separator? Retina … non-retina (… non-native aspect ratios)

Installation Problems on Monterey 12.0.1

After running ./install I get the following errors:

--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:macOS, arch:x86_64, id:EA2A1CB9-33EB-582A-B607-5E672427555D }
{ platform:macOS, name:Any Mac }
** ARCHIVE FAILED **


The following build commands failed:
	CompileC /Users/yambo/Library/Developer/Xcode/DerivedData/RDM-
eghdfoggxqkwmngjtyblbkdsomho/Build/Intermediates.noindex/ArchiveIntermediates/RDM/Inter
mediateBuildFilesPath/RDM.build/Release/RDM.build/Objects-normal/x86_64/utils-
641b650dac2a9545feb7359eb61ef07b.o /Users/yambo/Downloads/RDM/src/utils.mm normal 
x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'RDM' from 
project 'RDM')
(1 failure)
error: archive not found at path 
'/var/folders/x4/6_mygbld3l5bshh7fhm84knm0000gn/T/tmp.KQT1UXmt/RDM.xcarchive'

Messed-up system icons

After adding and deleting custom resolution (without any luck, btw) I'm now seeing broken images and names for displays:
image
Previously I had nice retina-like images, including a nice small image of a MacBook:
telegram-cloud-photo-size-2-5278776220424714770-y
How do I restore all settings to their defaults? Images are broken forever, even if RDM is not running. I presume this software writes something to a system folder. How to remove all those modifications?

Installation error

That's the error I'm seeing when using the installer.
Does anyone know a workaround/fix?

I'm using an Intel Macbook Pro on Macos Big Sur 11.5.1.
Xcode Version 13.1 (13A1030d)

~/Downloads/RDM-edit-resolutions
λ sudo ./install
Password:
Install RDM to /Applications? (Y/n): y

An error occured; try again

--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:macOS, arch:x86_64, id:A7242399-A924-5C59-A126-CC1AD7604E2C }
{ platform:macOS, name:Any Mac }
** ARCHIVE FAILED **

The following build commands failed:
CompileC /var/root/Library/Developer/Xcode/DerivedData/RDM-fnvusjtnyxunizddvhdautgbtnsk/Build/Intermediates.noindex/ArchiveIntermediates/RDM/IntermediateBuildFilesPath/RDM.build/Release/RDM.build/Objects-normal/arm64/utils-641b650dac2a9545feb7359eb61ef07b.o /Users/boetzkes/Downloads/RDM-edit-resolutions/src/utils.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'RDM' from project 'RDM')
(1 failure)
error: archive not found at path '/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.HcZM8Y8N/RDM.xcarchive'

Need internal logging mechanism

This utility relies on private interface and directly accesses low-level graphics. Since there is no guarantee that those low-level jobs work properly and consistently, there should be some kind of logging mechanism for this app. It would make debugging much easier, and finding out the source of the problem.

This doc might be helpful. I'll try to work on this stuff, but after #19 is merged into. I think it is not a good idea to add more commits to the PR that is already under reviewing process.

Resolution editing not set

running macOS Mojave 10.14
I dont have same image with you about editing resolution Display
trying to set 1600x900 and this is what is set on the setup menue

Screenshot

Modular Image Creation
Also the resolution not appear in the list of choice

I think am using this wrong

Hi and thanks for the effort

Hi have a monitor that its resolution is 3440 x 1440 am trying to the application to enable the "escale text option" after digging online i found that is because mac need to recognize the monitor with higdpi

So i downloaded the app and installed created a customer and checked highdpi rebooted and still the same did I miss something?

Screen Shot 2020-07-22 at 5 59 02 PM

Screen Shot 2020-07-22 at 6 00 40 PM

i tried using thunderbolt cable and thunderbolt to display port with the same results

i already have csrutil disabled, i had switchresx installed on the laptop but i decided to removed since i dint know if it could cause a conflict

added custom hiDPI res -> computer won't boot anymore

Hi,

I ran your version of RDM.
I selected edit to add a custom hiDPI res.
Saved (admin login required).
Rebooted - > computer wont boot.

How can I revert to the previous state?
Tx
-a-

PS:

  • machine: hackintosh (let me know if you need more info)
  • monitor native res. 3860x2160
  • added custom hiDPI res. 3360x1890

Back up original resolutions file.

Hey!

First, thanks for picking up this piece of software and adding a few nice features to it!

I have a feature suggestion: when editing resolutions it would be great to display the location of the original resolutions file, that is being used for the display, so that the user can back it up, and not worry about breaking something, while editing.

As a next step, the app could do backup/restore with a button click.

What do you think?

set hidpi but not work

I add a custom resolution and set hidpi.
Then restart. but hidpi with my resolution not work.

can't change resolution

I am able to add the custom resolution. However, if I click the added resolution, nothing happens.
(Some other resolutions work)

The resolution I added is 1600x900+hidpi. I am able to use 1440x900+hidpi. (I was able to use 1980x1080+hidpi, but I think I broke something...)

Project not building universal

Hi
Current project does not build universal products. Was building on a M1 but needed it on a Mac Pro 2008.
Changed: Build Settings - Build active Architechture Only to No

I can do a merge request, but it is one line change.

New scaled resolutions do not appear anywhere

When I create a new scaled resolution (menu, edit...) I am unable to see it anywhere. I save and then reboot and I can see it sitting there under scaled resolutions but it does not appear in the RDM menu or through settings/display. What am I doing wrong?

1720 * 720 (hidpi) not working with Big Sur

Hi! I recently updated my MBP 13inch from Catalina to Big Sur. 1720 * 720 (hidpi) worked perfectly with my Dell 3419W with Catalina. However, it did not work with Big Sur. I could find 1720 * 720 with the flash in the menu, but nothing happened when I clicked on it. I tried this workaround #23, but it did not work for me.

System: MacOS Big Sur
RDM version: 2.5.0
Monitor: Dell 3419W

How to undo changes made to display setting?

I have uninstalled the RDM but the changes made to display setting are persisted. As per the system report it shows the resolution as Resolution: 5120x2880 (5K/UHD+ - Ultra High Definition Plus) while the actual resolution is 2560 X 1440.

Do we need to remember all the changes we made and uncheck them manually?

Installation error. Mojave

An error occured; try again

** ARCHIVE FAILED **

The following build commands failed:
CompileSwift normal x86_64
CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
(2 failures)
error: archive not found at path '/var/folders/w3/ktbzdxv53nn4x6l6dr5cmbl40000gn/T/tmp.so1aPA29/RDM.xcarchive'
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

Scaled Resolutions dialog not usable

When select the "Edit..." menu entry the "Scaled Resolutions" dialog opens but is unusable (see screnshot).

Is this a limitation or a bug? I am working on Catalina 10.15.7 via VNC without physical monitor attached.

Unbenannt

Custom Resolution not working

Hello, I am on Big Sur and having some problems getting a custom resolution to work.

I am on a 27" 1440p monitor and looking to either get 1920x1080 HiDPI or 2048x1152 HiDPI working. I made the custom options but nothing happens when I select them.

Fwiw I had 1920x1080 HiDPI working with a different resolution app (ResXtreme) prior to Big Sur, but then the resolution disappeared once I upgraded to Big Sur.

Any help is appreciated thanks!!

image
image

Sleep management issues with scaled resolution on external monitor

When I select a HiDPI scaled resolution on the external monitor and use the Macbook in clamshell mode, if the Macbook goes to sleep then to wake it up I always need to open the lid. This is not necessary when using one of the native screen resolutions.

I've had this issue both in Mojave and Catalina, but not in High Sierra.

Is there any solution for this?

Add custom refresh / scan rate

RDM allows one to add a custom horizontal and vertical resolution, but it does not allow adding a custom refresh resolution.

My monitor supports refresh of 50Hz and 60Hz but RDM only shows 60Hz.

SwitchResX allows adding a custom resolution with horizontal and vertical and refresh values Shown as Scan rate in the image below:

image

After rebooting the new 50Hz option is available in RDM menus too.

Can this feature be added to RDM too? It is the only thing that I find lacking in this excellent app!

Mojave (fresh install), SIP disabled, Thunderbolt Display 1920 x 1080 HiDPI not working

I have no idea how you guys do this. I have 2 MacBooks Pro 2013 (13 and 15") BOTH doesn't work.

  1. Fresh install Mojave
  2. Disable SIP
  3. Open Safari and download this fork of RDM
  4. Add 1920 x 1080 with HiDPI check
  5. Reboot
  6. RDM shows the lightning icon with the resolution 1920 x 1080
  7. Nothing happens
  8. Repeat above with 3840x2160
  9. Same and post here.

1280x800 works fine.

Disable Monitor

I am wondering if you will find this as an additional useful feature for RDM. https://github.com/Eun/DisableMonitor
I've been using both yours and DisableMonitor to achieve my settings.

I don't use my MacBook Pro LCD when I am hooked to TB Display.

Hi DPI not working with correct resolution

Hi,
I installed RDM and was able to use to scale to some custom resolution, but the problem that the correctresolutions I want to scale to are not working, they do nothing, I'll explain:
My screen is a Samsung C34F791 which is a 34' ultrawide with a resolution of 34401440
I can connect my 2018 Macbook 15' (with Radeon VGA Card) to it
As the native resolution of 3440
1440 make text too small for my eyes, I wanted to try one of the following resolutions in hiDpi:
2752 x 1152 hidpi
2560x1080 hidpi
1720 * 720 hidpi

I was able to add them to the menu, but when I click on any of them nothing happens.
When I add them without the hidpi checkbox, I'm able to select them and they work, but ofc that's not what I want, I want them as hiDpi (with the flash sign next to them).

Any ideas what can be wrong?

Can't persist custom resolution on BigSur

After updating to BigSur, I tried to re-apply my custom HiDPI resolution but RDM doesn't persist the resolution change.

I disabled SIP following those instructions:

Click the Apple symbol in the Menu bar.
Click Restart…
Hold down Command-R to reboot into Recovery Mode.
Click Utilities.
Select Terminal.
Type csrutil disable.
Press Return or Enter on your keyboard.
Click the Apple symbol in the Menu bar.
Click Restart

And tried to add a custom resolution, then restart to persist the changes.

Usually (I did this on several machines) it works at this point, but this time after a restart I don't see the custom resolution with the ⚡ .

Do you know how to fix this ? Thank you ❤️

Suggestions and questions for release 2.5.0

First, the calculator (which I have added) was removed in release 2.5.0. Was it intentional or accidental? If it was intentional, please explain the reason why, and maybe suggest improvements for it.
Second, the app is currently parsing all the information when the view controller is about to be appear, but I think this adds significant delay before the editor window appears. Maybe moving this code to the initialization step of the app will improve performance.

override func viewWillAppear() {
super.viewWillAppear()
let plists = sourceFiles.map { NSMutableDictionary(contentsOf: URL(fileURLWithPath: $0)) ?? nil }.filter({$0 != nil})
if !plists.isEmpty {
plist = plists.first!!
if let a = plist[kDisplayProductName] as? String {
displayProductName = a
}
}
else {
plist = NSMutableDictionary()
}
if let a = plist[kScaleResolutionsKey] {
if let b = a as? NSArray {
resolutions.append(contentsOf: ((b as Array).map { Resolution(nsdata: $0 as? NSData) }))
}
}
// Remove counterparts
resolutions = resolutions.filter({ (res) -> Bool in
return !(res.RawFlags == 0 && resolutions.contains(where: {$0.HiDPI && $0.height * 2 == res.height && $0.width * 2 == res.width}))
})
resolutions = Array(NSOrderedSet(array: resolutions)) as! [Resolution]
var selection : [DisplayIcon] = []
var computerBoardId : String? = nil
if #available(OSX 10.13, *) {
let p = Process()
let pipe = Pipe()
p.executableURL = URL(fileURLWithPath: "/usr/sbin/ioreg")
p.arguments = ["-c", "IOPlatformExpertDevice", "-a"]
p.standardOutput = pipe
try! p.run()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
var format = PropertyListSerialization.PropertyListFormat.xml
let dict = try! PropertyListSerialization.propertyList(from: data, options: [], format: &format) as! [String : AnyObject]
if let children = dict["IORegistryEntryChildren"] as? [AnyObject] {
if children.count == 1,
let item = children.first as? [String : AnyObject] {
if let data = item["board-id"] as? Data {
computerBoardId = String(data: data, encoding: String.Encoding.ascii)
}
}
}
}
for iconsPlist in sourceIconsPlists.map { NSMutableDictionary(contentsOf: URL(fileURLWithPath: $0)) ?? nil }.filter({$0 != nil}) {
if let boards = iconsPlist!["board-ids"] as? [String : Any] {
for board in boards {
if let boardDict = board.value as? [String : AnyHashable] {
if boardDict[kDisplayResolutionPreviewIcon] != nil {
let icon = icons.insert(DisplayIcon(properties: boardDict)).memberAfterInsert
if board.key == computerBoardId {
iconForBoardId = icon
}
}
}
}
}
if let vendors = iconsPlist!["vendors"] as? [String : Any] {
let defaultDisplayIcon = vendors[kDisplayIcon] as? String
for vendor in vendors {
if let vendorDict = vendor.value as? [String : Any] {
let vendorDefaultDisplayIcon = vendorDict[kDisplayIcon] as? String ?? defaultDisplayIcon
if let products = vendorDict["products"] as? [String : Any] {
for product in products {
if var productDict = product.value as? [String : AnyHashable] {
if vendorDefaultDisplayIcon != nil && !productDict.keys.contains(kDisplayIcon) {
productDict[kDisplayIcon] = vendorDefaultDisplayIcon
}
if productDict[kDisplayResolutionPreviewIcon] != nil {
let (_, displayIcon) = icons.insert(DisplayIcon(properties: productDict))
if String(format: "%x", vendorID).lowercased() == vendor.key.lowercased() &&
String(format:"%x", productID).lowercased() == product.key.lowercased() {
selection = [displayIcon]
}
}
}
}
}
}
}
}
}

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.