[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Displaymanager resolutie



On Wed, Apr 12, 2017 at 10:13:35AM +0200, Paul van der Vlis wrote:
> Op 12-04-17 om 09:36 schreef Huub Reuver:
> > On Tue, Apr 11, 2017 at 03:54:24PM +0200, Paul van der Vlis wrote:
> >> Hoi allen,
> >>
> >> Ik wil de resolutie wijzigen van GDM3, of eventueel een andere
> >> displaymanager zoals LightDM. Maar dit lukt niet zo erg.
> >>
> >> Ik heb geprobeerd een regel met xrandr toe te voegen in
> >> /etc/gdm3/Init/Default, zoals in vele manuals staat.
> >> Maar het werkt niet.
> >>
> >> Ook zoiets werkt niet:
> >> cp /home/user/.config/monitors.xml /var/lib/gdm3/.config/monitors.xml
> >>
> >> Is er hier iemand die hier ervaring mee heeft?
> >>
> >> Dit gaat om Debian testing.
> > 
> > Ik gebruik zelf altijd een scriptje om direct met xrandr de resolutie
> > te wijzigen van een netbook.
> > 
> > Het script doet de volgende dingen:
> > - bekijk de huidige status (start xrandr en purge de resultaten).
> > - kijk welke aansluitingen er zijn
> > - als de externe monitor is aangesloten maar niet gebruikt zet
> >   deze dan met xrandr in een standaard resolutie
> > - zet de interne videokaart uit,
> > - schakel de externe videokaart in de resolutie van de monitor
> > 
> > De tussenregel van schakelen naar een standaard resolutie is om 
> > een vast uitgangspunt te hebben, dat verbetert de betrouwbaarheid 
> > van het script nogal.
> > 
> > Mijn script is "hardcoded" en wordt gestart met een toetsencombinatie.
> > Dit betekent dat ik geen input nodig heb. Gewoon monitor inpluggen
> > en de toetsencombinatie. En ja, xbindkeys of iets vergelijkbaars moet
> > zijn gestart bij het starten van X. En ik kan alleen enkele vaste 
> > configuraties "doortoggelen".
> > 
> > Ik gebruik dat script zelf als ik een externe monitor gebruik 
> > (laptopscherm uit, beeld extern of andersom).
> > En ja, omdat het hardcoded is werkt een vrij eenvoudig script.
> > Denk aan regels als:
> >   xrandr | grep HDMI-1 # dit gebruik ik om de gebruikte resolutie 
> >                        # te achterhalen voor IF-constructies.
> >   xrandr --output HDMI-1 --mode "1920x1080"
> >   xrandr --output HDMI-1 --off
> > Waarschijnlijk wil jij iets dat algemeen werkt(?).
> 
> Het liefst wel, maar dat blijkt lastig.
> 
> Wat betekend dat "--off" ?
> 
> Het gaat overigens om een HiDMI monitor, dat wordt niet juist herkend.
> Daarom is alles erg klein.
> 
> Ik heb het overigens al via een "script" geprobeerd. Dat wil zeggen, een
> script van 1 regel wat ik direct in het configfile heb gezet. Maar dit
> ging niet. Doe jij dit onder Debian, en zo ja met welke display manager?
> 
> > Wat niet werkt is een combinatie van de opensource NVidia drivers en
> > HDMI output, beperking van de drivers.
> 
> Het gaat bij mij niet om NVidia, maar om open source drivers (AMD).
> 
> > En het is mij opgevallen dat elke laptop en netbook weer andere labels
> > voor de display uitgang heeft (VGA1, VGA-1, HDMI1, HDMI-1, etc.).
> 
> Ja, iets wat voor alles geldt zou veel handiger zijn. Deze computer
> heeft 4 displayport aansluitingen, dus ik moet het 4x doen.

Ik denk dat je te moeilijk denkt voor het scriptje.

Met de output van xrandr:
~$ xrandr 
Screen 0: minimum 8 x 8, current 1680 x 1050, maximum 32767 x 32767
LVDS1 connected (normal left inverted right x axis y axis)
   1024x600      60.00 +  65.00  
   800x600       60.32    56.25  
   640x480       59.94  
   512x300       60.00  
VGA1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 434mm x 270mm
   1680x1050     59.88*+  59.95  
   1280x1024     75.02    60.02  
..

Werkt het script:
#!/bin/sh
VGA=`xrandr|grep VGA1`
VGA_RES=`echo $VGA | sed -e "s/.*connected \(.*\)(normal.*/\1/"`
MAX_VGA=`xrandr | grep -A 1 VGA1 | tail -1 |colrm 1 3|colrm 10 80`

LVDS=`xrandr|grep LVDS1`
LVDS_RES=`echo $LVDS | sed -e "s/.*connected \(.*\)(normal.*/\1/"`
MAX_LVDS=`xrandr | grep -A 1 LVDS1 | tail -1 |colrm 1 3|colrm 10 80`

VGA_DIS=`echo $VGA | grep disconnected`


if [ "x$VGA_DIS" = "x"  ] ; then 

   if [ "x$LVDS_RES" = "x"  ] ; then 
      xrandr --output VGA1 --mode 800x600
      xrandr --output LVDS1 --mode 800x600
      xrandr --output LVDS1 --auto 
      xrandr --output VGA1 --off
      xrandr --output LVDS1 --mode 1024x600
   else
      xrandr --output VGA1 --mode 800x600
      xrandr --output LVDS1 --mode 800x600
      xrandr --output LVDS1 --off
      xrandr --output VGA1 --auto
      xrandr --output VGA1 --mode $MAX_VGA
   fi

else
 
   xrandr --output VGA1 --mode 800x600
   xrandr --output LVDS1 --mode 800x600
   xrandr --output LVDS1 --auto 
   xrandr --output VGA1 --off
   xrandr --output LVDS1 --mode 1024x600
   MAX_VGA="disconnected"

fi

echo -n "Max LVDS: "
echo -n $MAX_LVDS
echo -n " ("
echo -n $LVDS_RES
echo -n ") Max VGA: "
echo -n $MAX_VGA
echo -n " ("
echo -n $VGA_RES
echo    ")"

En dat werkt met xdm. Eerst inloggen en dan met een shortkey (bijv. 
xbindkeys) roep je het script aan en je loopt gewoon de 
mogelijkheden af.

Het script "kijkt" welke screen actief is, schakelt de andere aan
en de eerste uit. De regel met 800x600 staat ertussen omdat dit 
_altijd_ werkt en dit de zo nodige "default output aan" afhandelt.

Het werkt zo direct op X dat ik me afvraag of er windowmanagers zijn
waarbij het niet werkt.

Met vriendelijke groet,
Huub Reuver


Reply to: