39

I accidentally disabled my monitors, so when I log in I land on a blank, back-lit screen. I can open terminals with Ctrl+Alt+F#, so how do I enable the monitor from terminal?

I tried xrandr, but it can't open display. xset does not work either. I found this question which closely resembles my problem. The answer provides a script to be put in /etc/X11/Xreset.d.

Running it does not solve my problem (though it is likely I don't understand how to use it properly). I think I somehow made the new default to be "disable monitors".

Running Ubuntu Studio 13.10. I do not have nVidia drivers. I can't find an xorg.conf file to remove. Thankful for any and all input!

  • Output of command xrandr -d :0:

    Screen 0: minimum 320x200, current 1366 x 768, maximum 32767 x 32767
    LVDS1 connected 1366x768+-32768+-32768 (normal left inverted right x axis y axis) 344mm x 192mm
        1366x768    60.0*
        1360x768    59.8    60.0
        1024x768    60.0
        800x600     60.3    56.2
        640x480     59.9
    VGA1 disconnected (normal left inverted right x axis y axis)
    HDMI1 disconnected (normal left inverted right x axis y axis)
    DP1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    Still being a CLI beginner I fail to understand from man xrandr how to switch on (there is an off option) or enable displays.

  • Output of:

    xrandr --auto
    

    is:

    Can't open display
    
  • Output of xrandr -d :0 --auto:

    Configure crtc 0 failed
    

    Maybe I just have to reinstall X11?

  • Outputs of suggested commands / which xset commands I tried:

    $xrandr -d :0 output LVDS1 --auto
    configure crtc 0 failed
    

    xset q and xset dpms force on both return:

    unable to open display ''''
    

No difference for sudo commands.

More futile attempts and the potential discovery of a security issue:

  1. I've tried to reinstall Xorg and X11, then I ran:

    sudo apt-get install --reinstall xserver*
    

    which failed with this output:

    (many versions of this:)
        Note, selecting 'xserver-xorg-something' for regex 'xserver*'
    (next:)
        Some packages could not be installed. This may mean that you have
        requested an impossible situation or if you are using the unstable
        distribution that some required packages have not yet been created
        or been moved out of Incoming.
    
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
    xserver-xorg-input-mtrack : Conflicts: xserver-xorg-input-multitouch
    but 1.0~rc2+git20110312-2build4 is to be installed
    E: Unable to correct problems, you have held broken packages.
    

  2. Next I logged in as guest and logged in as myself through TTY Ctrl+Alt+F# and ran the same xrand commands as above, with the same output as far as I can see.

  3. Then I created a new user with full admin rights and repeated 4.2 via TTY.

  4. SECURITY ISSUE? No, just a need of awareness. Not related to this subject, details at launchpad.

It begins looking like a system reinstall is necessary.

Al F
  • 1,101

7 Answers7

22

After running this command switch immediately to the tty where the screen is black, and after 5 seconds the screen should show up.

sleep 5 && xrandr -d :0 --output LVDS --auto

The xrandr command will turn on your main screen. It only seems to work if you're currently on the tty where your display manager is run, hence the sleep to give you some time to be able to switch.

Martin Marčan
  • 221
  • 2
  • 2
  • Brilliant in its simplicity. Solved my problem. – billyjmc Oct 30 '16 at 05:02
  • What it does? Waits for 5 secs and then what? – zygimantus Mar 22 '17 at 21:30
  • 1
    Then it runs xrandr (required command), while you switch back to graphical virtual console tty7 (:0 display), that you want to turn on again. That worked for me. – Martin Marčan Apr 16 '17 at 12:10
  • 1
    This guy saved me.
    1. Login to TTY by using ctrl-alt-F1
    2. Run his sleep ... command
    3. ctrl-alt-F7 to return to my blank screen before the 5 seconds are up
    4. the screen appears after 5 seconds!
    – Tron Jun 06 '17 at 23:49
  • 1
    Somewhat similar approach (on MX Linux 17) via ssh: ssh to the computer (I had to sudo apt install openssh-server before in VT1), ctrl-alt-F7 (on the computer itself, to be on the graphical console which happens to be VT7 in my case). Then, in the ssh session: export DISPLAY=:0.0, xrandr -display :0.0 --output eDP-1 --auto. – bli Mar 13 '18 at 17:15
  • Note that LVDS is specific and your display may be named something different. Find out with xrandr -d :0 -q from @steeldriver's answer. – EL_DON Dec 05 '18 at 02:52
  • In my case it failed with LVDS so just removed the --output LVDS and it worked – golimar Aug 08 '20 at 17:01
  • It worked but you can avoid the sleep by using the chvt command like mentioned in the answer of cyberbrain. – baptx Sep 29 '21 at 19:30
8
  1. Figure out that the offending settings are stored in a file called displays.xml.

    I won't detail here how I guessed it, though the comment about deleting monitors.xml proved helpful. It also involved manual comparing of several .config subdirectories.

    Of course, what I should have done was ask my search engine "where does xubuntu store display settings" and find this thread at ubuntuforums...

  2. Log in to your blank display and use CTRL+ALT+F# to enter command line.

  3. sudo find . -type f -name "*displays*"

  4. mv ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml.bak

  5. sudo reboot

I hope this quest may help somebody.

Al F
  • 1,101
7

You should be able to open (and set properties for) a display via the virtual terminal console provided you know the display number for the running X session. That's usually :0 for the primary physical display but that's not always the case. For example, to query display :0

xrandr -d :0 -q

To re-enable a display that's been turned off, it's usually sufficient to use the --auto e.g. to turn the LVDS1 output device on display :0 back on

xrandr -d :0 --output LVDS1 --auto 
steeldriver
  • 136,215
  • 21
  • 243
  • 336
  • Output of this command is the same as in edit #2 in my question. See edit #3 – Al F Jan 18 '14 at 09:44
  • 2
    Perhaps we should take a step back - how exactly did you "accidentally disable" your monitors? – steeldriver Jan 18 '14 at 11:45
  • 2
    I had connected a projector. When finished watching I opened display settings, chose the projector entry and clicked "do not use this" (don't remember exact wording). I'm not sure if I accidentally clicked on both, anyway my screen went blank. Can't remember for sure now if I used tty login to reboot (I think I did) or if I did a hard reboot by power button. – Al F Jan 18 '14 at 15:12
  • 3
    Have you tried moving or renaming your ~/.config/monitors.xml file (e.g. mv ~/.config/monitors.xml ~/.config/monitors.xml.bak)? BTW does logging into to a different account or guest account work? – steeldriver Jan 18 '14 at 15:18
  • I don't find a ~/.config/monitors.xml file on my system. – Al F Jan 18 '14 at 15:20
  • Guest account is working fine. I can also use my profile through advanced options in the boot menu. Choosing recovery mode, then resuming normal boot. This gives a warning that some graphical drivers may not load properly, ironically meaning it works for me, without possibilities to change resolution, etc. – Al F Jan 18 '14 at 15:28
  • This worked for me when I used sleep 5 && ... before it, then switched to the main screen before the 5 seconds were up (from @Martin Marcan's answer) – EL_DON Dec 05 '18 at 02:53
3

I would extend the answer of Martin Marčan by replacing the sleep with a command that switches to the black console:

chvt 7 && xrandr -d :0 --output LVDS --auto

where 7 is the number of the console used for X11 (usually 7 or 8) and LVDS is the name of the output you want to reconfigure. You can retrieve the list of outputs first with

xrandr -d :0
2

I solved this problem in Lubuntu 18.04 like this:

If you boot into a screen, which is turned of, open a terminal blindly with CTR-ALT-T. Since you cannot see the terminal and what you write, type very carefully

xrandr --output "nameYourScreen" --auto

Hit Enter. Voila.

(BTW: In my case, entering such code in tty1 or any virtual terminal did not work. I tried various things, people mention above, but when switching back to the running session or after reboot, nothing changed. Maybe the problem is that xrandr can execute this command properly for some hardware only within a running x-session ?)

Thomas
  • 6,223
sverris
  • 21
1

This works for enable two external monitors on my computer (Ubuntu with i3wm):

xrandr --auto

That turns on all the monitors.

Then I disable the duplicate desktop and setup the resolution (eDP-1 - my laptop monitor, DP-1-1 and DP-1-2 - my external monitors connected via thunderbolt):

xrandr --output DP-1-2 --mode 1920x1080 --left-of eDP-1
xrandr --output DP-1-1 --mode 1920x1080 --left-of DP-1-2
0

Try this:

xrandr --output "nameYourVGA" --mode "yourResolution"

For example:

xrandr --output VGA1 --mode 1366x768

See if that works.

Carl H
  • 6,181
  • 6
  • 27
  • 41