2

I have a monitor that is too big and too bright to work on in the night-time. (but I want to keep it for gaming). For work, I am wondering if there is a way to resize ALL of the content down on the screen, effectively give myself black bars (increase overscan) through software, since my monitor does not support such a feature.

I don't see any such scaling options in the Display settings, lowering the resolution will still stretch it out across the entire screen.

It is a Intel HD Graphics 5500 graphics card on a laptop with an external monitor.

Can this be done?

  • If your game does not need to be played in fullscreen, maybe setting a black background may help. If you are using a desktop environment that supports it (I don't think Unity does), enable auto-hide on your panels. – luk3yx Apr 20 '17 at 0:07
  • No it's not for the game, it's the opposite. Sorry if I explained it wrong, the game is not important here. I was just justifying why I wanted to keep the big monitor, as opposed to just buying a smaller one. – 3Nex Apr 20 '17 at 0:11
  • As far as brightness is concerned, have you considered something like redshift? For the "black bars" I would try searching through items related to overscan. Typically, this is something people are trying to get rid of, not create, but you might be able to use the same advice to increase overscan. – b_laoshi Apr 20 '17 at 0:41
  • Something along these lines might get you going in the right direction. – b_laoshi Apr 20 '17 at 0:50
  • Redshift is actually an even better solution that I hoped for. xrandr gave me nothing but errors saying BadName (named color or font does not exist), but I'm more than okay with using Redshift. – 3Nex Apr 21 '17 at 1:12
1

I have nvidia, so I can't say for sure that what worked for me will work for you. Differences in capability may also come down to available features offered by the actual monitor as well.

I'll address brightness and overscan separately

Brightness:

If your screen is too bright at night, try a program like redshift. It doesn't reduce backlight. It's a software-based approach to "[adjusting] the color temperature of your screen according to your surroundings." Basically, the screen is less harsh to look at when the sun goes down and there's less ambient light.

Overscan*:

xrandr is your friend here. Basically, you want to open a terminal, use xrandr to find the overscan property and then set the overscan. Here's how I did it on mine.

  • In a terminal, run xrandr --prop. This will spit out properties for all video output devices, connected or disconnected. Look for the the section pertaining to your connected display. Mine looks like this...

    HDMI-0 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
    CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 
    EDID: 
        00ffffffffffff005a63248201010101
        14140103802f1e782e78f5a655489b26
        125054bfef80a940950f950081808140
        714f0101010121399030621a274068b0
        3600da281100001c000000ff00524d41
        3130323030353632390a000000fd0032
        4b185211000a202020202020000000fc
        00564132323332205365726965730031
    BorderDimensions: 4 
        supported: 4
    Border: 0 0 0 0 
        range: (0, 65535)
    SignalFormat: TMDS 
        supported: TMDS
    ConnectorType: HDMI 
    ConnectorNumber: 1 
    _ConnectorLocation: 1 
    1680x1050     59.95*+
    1600x1200     60.00  
    1440x900      74.98    59.89  
    1280x1024     75.02    60.02  
    1280x960      60.00  
    1152x864      75.00  
    1024x768      75.03    70.07    60.00  
    800x600       75.00    72.19    60.32    56.25  
    640x480       75.00    72.81    59.94  
    
    

    HDMI-0 is my output and Border: 0 0 0 0 is property of interest to me. Beware, properties appear to be case sensitive!

  • Now I run xrandr --output HDMI-0 --set Border 100,100,100,100, and it creates a 100-pixel black border all the way around my screen.
  • To reset, I run xrandr --output HDMI-0 --set Border 0,0,0,0, and the border is gone.

If you wanted, you could bind these to keyboard shortcuts to turn the overscan on or off.

*Warning: I noticed that when I maximize windows on my screen, the rightmost edge of the window is not visible and falls under the black border. This may be because I have dual monitors though. This is not a problem so long as I do not maximize windows and keep the window moved and resized such that it fits within the visible workspace.

  • Seems this Borded option is nvidia-specific. I'd like to solve the same issue. But mine xrandr --prop look like HDMI2 connected primary EDID: 0000.. aspect ratio: Automatic supported: Automatic, 4:3, 16:9 Broadcast RGB: Automatic supported: Automatic, Full, Limited 16:235 audio: auto supported: force-dvi, off, auto, on 1920x1080 ... and on --set Broders it threw error X Error of failed request: BadName (named color or font does not exist) – Dima Fomin Apr 23 '17 at 11:45
  • @DimaFomin, sorry, I don't see any properties there that look like they would accomplish what you're looking for. You might have better luck creating a new question and including the full output of xrandr --prop with your question. – b_laoshi Apr 25 '17 at 1:57
0

My xrandr does not support the "Border" prop for HDMI-0. Attempting this will result in the following error:

$ xrandr --output HDMI-0 --set Border 100,0,100,0 
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  11 (RRQueryOutputProperty)
  Serial number of failed request:  41
  Current serial number in output stream:  41

However to "shrink" the screen to give yourself black bars, sometimes referred to as pillarboxing, one method is to set a resolution which does not take up the full width of the monitor (e.g. 1024x768 w/ aspect ration 4:3) then set the 'scaling mode' with xrandr

xrandr --output HDMI-0 --set 'scaling mode' 'Full aspect'

This gives me black bars on sides when screen is too wide. I think this will work with any resolution with aspect ratio 4:3. You can also check here for using xrandr to add resolutions not available by default in the display setting.

Also check xrandr --prop for other properties that might help.

EDIT: for devices which do not support 'scaling mode' 'Full scale', you can use an xrandr transform.

xrandr --output HDMI-1 --mode 1024x768 --scale 1.33333333x1 --transform 1.33333333,0,-100,0,1,0,0,0,1 

to create pillar box style black bars on the sides. Adjust -100 to be the width you want for the bars.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.