-
-
Save debloper/2793261 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# Copyright (c) 2021 Soumya Deb <[email protected]> | |
# | |
# Permission is hereby granted, free of charge, to any person obtaining a copy | |
# of this software and associated documentation files (the "Software"), to deal | |
# in the Software without restriction, including without limitation the rights | |
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
# copies of the Software, and to permit persons to whom the Software is | |
# furnished to do so, subject to the following conditions: | |
# | |
# The above copyright notice and this permission notice shall be included in | |
# all copies or substantial portions of the Software. | |
# | |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
# SOFTWARE. | |
# | |
# --- | |
# Q: WHY IS THERE A COPYRIGHT NOTICE ON THIS SCRIPT? | |
# A: It had to be added on (a very reasonable) user request. | |
# https://gist.github.com/chirag64/7853413#gistcomment-3736041 | |
# First we need to get the modeline string for xrandr | |
# Luckily, the tool `gtf` will help you calculate it. | |
# e.g. `gtf <hRes> <vRes> <refreshRate>`: | |
gtf 1920 1080 60 | |
# In this case, the horizontal resolution is 1920px the | |
# vertical resolution is 1080px & refresh-rate is 60Hz. | |
# IMPORTANT: BE SURE THE MONITOR SUPPORTS THE RESOLUTION | |
# Typically, it outputs a line starting with "Modeline" | |
# e.g. "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync | |
# Copy this entire string (except for the starting "Modeline") | |
# Now, use `xrandr` to add a new display mode. Pass the | |
# copied string as the parameter to the --newmode option: | |
xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync | |
# Well, the string within the quotes is the nick/alias | |
# of the display mode - you can as well pass something | |
# as "MyAwesomeHDResolution". But, why though!?! | |
# Then all you have to do is to add the new mode to the | |
# display you want to apply, like this: | |
xrandr --addmode VGA1 "1920x1080_60.00" | |
# VGA1 is the display name, it might differ for you. | |
# Run `xrandr` without any parameters to be sure. | |
# The last parameter is the mode-alias/name which | |
# you've set in the previous command (--newmode) | |
# It should add the new mode to the display & apply it. | |
# If it doesn't apply automatically, force it with: | |
xrandr --output VGA1 --mode "1920x1080_60.00" | |
# That's it... Enjoy the new awesome high-res display! | |
# NOTE to make the change persistent over reboots: | |
# - save the script file (with the necessary changes) | |
# - run it at startup (search the web for "How To") | |
# Thanks for the feedback! |
@namhoangle from the output name, I'm guessing it's a remote desktop session. If that's the case, see if https://unix.stackexchange.com/questions/90101/xrdp-custom-resolution-fedora-19 helps.
If that's not the case, the simplest assertion would be either
- the resolution you're trying to set isn't available for the display
- you're using an adapter (DVI, HDMI, DP) which often causes issues
- you're using NVIDIA drivers, which has some history of causing issues.
Without knowing more about the relevant details of the system, it'll not be possible to pinpoint the issue.
how to save this change to make it working after reboot?
Oh, great, now I get an option with the desired resolution in the droptown to choose. However, when I apply it it has no effect, the screen still stays at 640x480.
Very useful!
@teo1978 for a person in their 40's you're awfully bitter. Hope you don't intend to spend the rest of your life as such. I'd recommend taking a moment to self-reflect. And if this seems like an unwarranted/unwanted advice, then congrats... I've been able to get my message across without resorting to passive-aggressive smugness or sarcasm.
If I was facing the same issue as yours, I'd check (in order):
- if the monitor is rated for the resolution+refresh rate
- the graphics processor is capable of delivering it, and
- the frame-buffer throughput is sufficient to allow it.
I can't tell which one might be the problem, cause your comment didn't come with any useful diagnostic/troubleshooting information.
how to save this change to make it working after reboot? @saviobabu @Mouhamouhy @asdf5252
To make it persistent, just add the resulting xrandr
commands to your ~/.xprofile
:
#!/bin/sh
xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
xrandr --addmode VGA1 "1920x1080_60.00"
xrandr --output VGA1 --mode "1920x1080_60.00"
I entered xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
and it returned xrandr: Failed to get size of gamma for output default
What do I do?
@Vortigern-The-Grey I looked up the error and found this discussion: https://askubuntu.com/questions/441040/ - hopefully it helps.
Hi, I got this error in the last step:
nale@r-iibi021:~$ xrandr --output xrdp_0 --mode "1920x1080_60.00"
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 139 (RANDR)
Minor opcode of failed request: 7 (RRSetScreenSize)
Serial number of failed request: 25
Current serial number in output stream: 26
I googled for a while but found no explanation. You have any ideas what they mean?