Puncte:1

Reduceți automat rezoluția la cea a celui mai mic monitor la conectarea unui monitor nou?

drapel au

Am un monitor și un televizor pe care le folosesc uneori. Monitorul este 4k, folosit la o rezoluție de 2560x1440 - cu excepția cazului în care televizorul este conectat, trebuie să reduc manual rezoluția la 1080 și apoi să o setez manual înapoi la 1440 după deconectarea televizorului.

Ieșirea xrandr arată astfel:

DVI-I-1 conectat (normal stânga inversată dreapta x axa y axa)
   1920x1080 60,00 + 59,94 23,98 60,05 60,00  
   1440x480 60,05  
   1280x720 60,00 59,94  
   720x480 59,94  
   640x480 59,93  
Primar conectat HDMI-0 2560x1440+0+0 (normal stânga inversat dreapta x axa y axa) 597 mm x 336 mm
   3840x2160 60,00 + 59,94 29,97 25,00 23,98  
   2560x1440 59,95* 
   2048x1280 60,00  
   1920x1080 60,00 59,94 50,00 25,00 23,98 60,00 50,04  
   1600x1200 60,00  
   1600x900 60,00  
   1280x1024 75,02 60,02  
   1280x720 59,94  
   1152x864 75,00  
   1024x768 75,03 60,00  
   800x600 75,00 60,32  
   720x576 50,00  
   720x480 59,94  
   640x480 75,00 59,94 59,93  
Jacob Vlijm avatar
drapel by
Definiți prea mult. Fără scripting? Nu.
francois P avatar
drapel it
De asemenea, cred că nu puteți face asta fără un script, până când detectarea va folosi automat cea mai bună rezoluție pentru toate monitoarele conectate.
Slbox avatar
drapel au
@JacobVlijm destul de corect - am editat textul postării! Deschis la orice sugestie.
Jacob Vlijm avatar
drapel by
Ești pe x sau pe wayland? Kwin pare să le facă pe amândouă.
Slbox avatar
drapel au
Folosind `x`. Puteți explica cum să realizați acest lucru cu `kwin`?
Jacob Vlijm avatar
drapel by
Dreapta. Puteți posta la întrebarea dvs. rezultatul xrandr? avem nevoie de numele de ecran. De asemenea, vă rugăm să ieșiți cu ecranul extern atașat/aranjat
Slbox avatar
drapel au
@JacobVlijm s-a terminat!
Jacob Vlijm avatar
drapel by
... Asa si este. Ai încercat scenariul? Ai nevoie de ajutor cu el?
Puncte:1
drapel by

Schimbați rezoluția semnalului

Cu ajutorul Gdk, putem actiona asupra mai multor semnale, a.o. la conectarea/deconectarea monitoarelor. Dacă le conectăm pe ambele monitor adăugat și monitor-eliminat -semnal (Gdk.Display) pentru a actualiza automat rezoluția monitorului, în funcție de televizorul atașat, am terminat.

Într-un scenariu

#!/usr/bin/env python3
import gi
gi.require_version(„Gdk”, „3.0”)
gi.require_version(„Gtk”, „3.0”)
din gi.repository import Gtk, Gdk
subproces de import

triggermon = "DVI-I-1" # dacă acesta este conectat, reduceți rezoluția
tochange = "HDMI-0" # monitorul pentru a reduce rezoluția activat
lowres = "1920x1080" # rezoluția scăzută
highres = "3840x2160" # rezoluția implicită


clasa WatchOut:
    def __init__(self):
        self.gdkdsp = Gdk.Display.get_default()
        # utilizați semnale de conectare/deconectare
        self.gdkdsp.connect("monitor_added", self.act_onchange)
        self.gdkdsp.connect("monitor_removed", self.act_onchange)
        # asigurați-vă că configurația inițială este corectă
        self.act_onchange()
        # avem nevoie de un fir gtk pentru a folosi semnalele
        Gtk.main()

    def act_onchange(self, *args):
        # să setăm implicit la highres
        curr_res = highres
        # atașați n-monitoare, rezoluție mai mică dacă triggermon este conectat
        n_mons = self.gdkdsp.get_n_monitors()
        pentru n în [n pentru n în interval(self.gdkdsp.get_n_monitors())]:
            mon_name = self.gdkdsp.get_monitor(n).get_model()
            if mon_name == triggermon:
                curr_res = lowres
        # setați rezoluția
        subproces.Popen([
            „xrandr”, „--output”, tochange, „--mode”, curr_res
        ])               
        
Ai grija()

Înființat

  • Copiați scriptul într-un fișier gol, salvați-l ca actonmonitor.py și face-l executabil (dacă îl rulați fără a apela explicit interpretul).

  • Numele monitorului sunt în capul scriptului și, așadar, rezoluțiile pe care le-ați menționat, modificați-le dacă este necesar.

  • Testați - rulați-l într-o fereastră de terminal.

      /path/to/actonmonitor.py
    
  • Vezi dacă totul funcționează așa cum ar trebui.

  • Adăugați-l la aplicațiile dvs. de pornire, dacă doriți.

N.B.

Poziția exactă a monitorului secundar în aspectul monitorului nu este în ieșirea (dvs.) a xrandr.Dacă poziția contează, probabil că trebuie să adăugați un alt xrandr comanda către script.

Slbox avatar
drapel au
Nu am putut încerca încă acest lucru, deoarece problema este _parțial_ rezolvată de Plasma 5.23.1 și acest lucru a devenit mult mai puțin urgent pentru mine. Pare promițător totuși! Am acceptat provizoriu răspunsul până am ocazia să-l încerc. Multumesc foarte mult pentru ajutorul tau.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.