Rotér skærm


Source: Download script

Last Updated: 11. September 2025 by Agnete Moos (agms@sonderborg.dk)

Parameters:

Navn Type Standardværdi Påkrævet
Click to see the source code
#!/bin/bash

#================================================================
# HEADER
#================================================================
#% SYNOPSIS
#+    rotate_display.sh [normal/right/left]
#%
#% DESCRIPTION
#%    This script looks for all displays connected and rotates the first one from the list.
#%
#%    It takes one mandatory parameter. The direction of the rotation.
#%    Based on xrandr. From xrandr manual:
#%    "Rotation can be one of 'normal', 'left', 'right' or 'inverted'. This causes the output contents to be
#%    rotated in the specified direction. 'right' specifies a clockwise rotation of the picture and  'left'
#%    specifies a counter-clockwise rotation."
#%
#================================================================
#- IMPLEMENTATION
#-    version         rotate_display.sh (magenta.dk) 1.0.0
#-    author          Danni Als
#-    copyright       Copyright 2019, Magenta ApS
#-    license         GNU General Public License
#-    email           danni@magenta-aps.dk
#-
#================================================================
#  HISTORY
#     2019/11/12 : da : Script created
#     2019/11/14 : da : Changed tactics. Instead of trying to connect to the X-server from root, we now rotate screen upon user login.
#
#================================================================
# END_OF_HEADER
#================================================================

set -ex

if get_os2borgerpc_config os2_product | grep --quiet kiosk; then
  echo "Dette script er ikke designet til at blive anvendt på en kiosk-maskine."
  exit 1
fi

if [ "$1" != "normal" ] && [ "$1" != "right" ] && [ "$1" != "left" ]; then
    echo "Wrong rotation command given: $1"
    exit 1
fi

AUTOSTART_FOLDER=/home/.skjult/.config/autostart/

mkdir -p $AUTOSTART_FOLDER

ROTATE_SCREEN_FILE=rotate_screen.sh
ROTATE_SCREEN_FILE_COMPLETE_PATH="$AUTOSTART_FOLDER$ROTATE_SCREEN_FILE"

cat < "$ROTATE_SCREEN_FILE_COMPLETE_PATH"
#!/bin/bash

active_monitors=\$(xrandr --listactivemonitors | grep -oE ' (e?)DP-[0-9](-?[0-9]?)(-?[0-9]?)')

active_monitors_array=(\$active_monitors)

xrandr --output \${active_monitors_array[0]} --rotate $1
EOT

chmod +x $ROTATE_SCREEN_FILE_COMPLETE_PATH

echo "$ROTATE_SCREEN_FILE_COMPLETE_PATH created/updated with rotation $1"

DESKTOP_FILENAME=rotate_screen.desktop
DESKTOPFILE_COMPLETE_PATH="$AUTOSTART_FOLDER$DESKTOP_FILENAME"
if [ -f $DESKTOPFILE_COMPLETE_PATH ]; then
  exit 0
fi

cat <> "$DESKTOPFILE_COMPLETE_PATH"
[Desktop Entry]
Type=Application
Exec=$ROTATE_SCREEN_FILE_COMPLETE_PATH
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=rotate screen
Name=rotate screen
Comment[en_US]=Rotates Primary monitor $1
Comment=Rotates Primary monitor $1
EOT

chmod +x $DESKTOPFILE_COMPLETE_PATH

echo "$DESKTOPFILE_COMPLETE_PATH created..."
exit 0

Beskrivelse

Rotérer den første skærm der bliver fundet til “normal”, “left” eller “right”.

Udarbejdet af danni@magenta-aps.dk

I samarbejde med Københavns Kommune. Allan Grauenkær - zr09@kk.dk

Dette script er blevet testet og virker på Ubuntu 22.04.