GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Ein Tool zum automatischen Anwenden der Randr-Konfiguration, wenn ein externes Display angeschlossen ist?

Gibt es ein Tool, mit dem man:

  • Aktuelle RandR-Konfiguration (Position, Ausrichtung, Auflösung usw.) auf Monitorbasis merken
  • die zuletzt als funktionierend bekannte Konfiguration automatisch anwenden, sobald das Display angeschlossen wird, ohne mit Applets oder xrandr(1) herumspielen zu müssen?

Die Konfigurationen müssten pro Benutzer und Display angewendet werden.

Wenn es kein solches Tool in freier Wildbahn gibt, würde ich gerne selbst eines zusammenschmeißen, aber soweit ich sehen kann, gibt es keine Möglichkeit zu erkennen, dass ein Monitor angeschlossen ist. Muss ich mit xrandr -q abfragen hin und wieder herausfinden, ob ein Ausgang verbunden oder getrennt wurde, oder gibt es einen effizienteren Weg, dies zu tun? Kann udev so eingestellt werden, dass es genau das tut?

Akzeptierte Antwort:

Ich verwende dieses einfache (hausgemachte) Skript, das RandR abfragt und zwischen LVDS1 und VGA1 wechselt, wenn VGA verbunden/getrennt wird. (Für HDMI Ausgaben ändern Sie in der folgenden Skriptdatei alle VGA1 an HDMI1 )

Es ist eine unsaubere Lösung, aber sie funktioniert einwandfrei.

Es ist für mein Setup angepasst:Sie müssen höchstwahrscheinlich die RandR-Ausgabenamen ändern (LVDS1 und VGA1 ) und im Gegensatz zu mir werden Sie wahrscheinlich mit Ihrem RandR-Standardmodus für VGA zurechtkommen.

#!/bin/bash

# setting up new mode for my VGA
xrandr --newmode "1920x1080" 148.5 1920 2008 2052 2200 1080 1089 1095 1125 +hsync +vsync
xrandr --addmode VGA1 1920x1080

# default monitor is LVDS1
MONITOR=LVDS1

# functions to switch from LVDS1 to VGA and vice versa
function ActivateVGA {
    echo "Switching to VGA1"
    xrandr --output VGA1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
    MONITOR=VGA1
}
function DeactivateVGA {
    echo "Switching to LVDS1"
    xrandr --output VGA1 --off --output LVDS1 --auto
    MONITOR=LVDS1
}

# functions to check if VGA is connected and in use
function VGAActive {
    [ $MONITOR = "VGA1" ]
}
function VGAConnected {
    ! xrandr | grep "^VGA1" | grep disconnected
}

# actual script
while true
do
    if ! VGAActive && VGAConnected
    then
        ActivateVGA
    fi

    if VGAActive && ! VGAConnected
    then
        DeactivateVGA
    fi

    sleep 1s
done

Vollständige Schritte:

  1. Fügen Sie das obige Skript ein (homemadeMonitor.sh ) in Ihr bevorzugtes Verzeichnis

  2. Machen Sie die .sh-Datei ausführbar, indem Sie im Terminal den folgenden Befehl eingeben

    chmod +x homemadeMonitor.sh

  3. Führen Sie die .sh-Datei

    aus

    ./homemadeMonitor.sh


Linux
  1. Was ist Ihr bevorzugtes Bildschirmaufzeichnungstool für Linux?

  2. Welches Mp3-Tagging-Tool für Linux?

  3. Linux – Werkzeug zur Messung der Entropiequalität?

  4. Krita – Ein ausgezeichnetes professionelles Malwerkzeug für Linux

  5. Überprüfen Sie die Linux-Konfigurationsdateien auf Syntaxfehler

Zeigen Sie Netzwerkinformationen in Linux mit What IP Tool an

Eine Einführung in Cockpit, ein browserbasiertes Verwaltungstool für Linux

Skanlite – Ein einfaches Bildscan-Tool für Linux

Top 15 der besten Übersetzungssoftware für Linux-Systeme

Top 10 der besten Scan-Tools für Linux-Systeme

Top 10 der besten Wetter-Tools für Linux-Systeme