4

I have checked other posts about randomly rotating screens, and screens that rotate after sleep. I have tried the following to no avail:

  1. Lock screen rotation:

    enter image description here

    Problem persists.

  2. Disable GNOME orientation plugin:

    gsettings set org.gnome.settings-daemon.plugins.orientation active false
    

    Problem persists.

  3. Disable/Uninstall iio-sensor-proxy:

    sudo systemctl stop iio-sensor-proxy.service
    sudo systemctl disable iio-sensor-proxy.service
    sudo apt-get remove iio-sensor-proxy
    

    Problem persists.

Every time I close the lid, the laptop wakes up sideways and I have to run:

xrandr -o normal

Is there a bug somewhere? Have I missed something?

How can I make xrandr -o normal run every time the laptop wakes from suspend? Maybe a hackish solution, but it might work, right?

Joshua Besneatte
  • 4,773
  • 5
  • 23
  • 42

2 Answers2

1

I don't know if what you describe is a bug, but you can run xrandr -o normal at wake-up from suspend by doing the following (based on this answer and the comment below it):

  1. Create a shell script named xrandr_normal.sh (you can use another name if you wish) that runs your xrandr command:

    nano /path/to/script/xrandr_normal.sh
    

    Put the following inside:

    #!/bin/bash
    DISPLAY=:0.0 ; export DISPLAY
    xrandr -o normal
    
  2. Give execution rights to your script:

    chmod u+x /path/to/script/xrandr_normal.sh
    
  3. Create a service file that will run your script after suspend (you can use whatever name you wish for the service file):

    sudo nano /etc/systemd/system/xrandr_normal.service
    

    Put the following inside:

    [Unit]
    Description=Some description
    Before=sleep.target
    StopWhenUnneeded=yes
    

    [Service] User=YOUR_USERNAME Type=oneshot RemainAfterExit=yes ExecStop=/path/to/script/xrandr_normal.sh

    [Install] WantedBy=sleep.target

    Make sure to replace YOUR_USERNAME in the first line below [Service] with your actual username and put the correct path to your script in ExecStop.

  4. Enable the service you created:

    sudo systemctl enable xrandr_normal
    
  5. Start the service:

    sudo systemctl start xrandr_normal
    
  6. As the author of the answer that this one is based on suggests, you can check for errors if the service does not work after suspend with the following command:

    journalctl -u xrandr_normal.service
    
0

I had the exact same issue. Manually switching the orientation of the screen to portrait (left or right) and then back to landscape in display settings seems to have fixed the issue.

Nakeuh
  • 101
  • 1