Điểm:1

Tự động giảm độ phân giải về độ phân giải của màn hình nhỏ nhất khi kết nối màn hình mới?

lá cờ au

Tôi có một màn hình và TV đôi khi tôi sử dụng. Màn hình là 4k, được sử dụng ở độ phân giải 2560x1440 - ngoại trừ khi TV được kết nối, tôi cần giảm độ phân giải xuống 1080 theo cách thủ công, rồi đặt lại về 1440 theo cách thủ công sau khi ngắt kết nối TV.

đầu ra xrandr trông giống như:

Đã kết nối DVI-I-1 (bình thường trái phải trục x trục y)
   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  
HDMI-0 sơ cấp được kết nối 2560x1440+0+0 (bình thường đảo trái phải trục x trục y) 597mm x 336mm
   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
lá cờ by
Định nghĩa quá nhiều. Không có kịch bản? Không.
francois P avatar
lá cờ it
Tôi cũng nghĩ rằng bạn không thể làm điều đó nếu không có tập lệnh, cho đến khi quá trình phát hiện sẽ tự động sử dụng độ phân giải tốt nhất cho tất cả các màn hình được cắm.
Slbox avatar
lá cờ au
@JacobVlijm đủ công bằng - đã chỉnh sửa nội dung bài đăng! Mở cho bất kỳ và tất cả các đề xuất.
Jacob Vlijm avatar
lá cờ by
Bạn đang ở x hay wayland? Kwin dường như làm cả hai.
Slbox avatar
lá cờ au
Sử dụng `x`. Bạn có thể giải thích cách đạt được điều này với `kwin` không?
Jacob Vlijm avatar
lá cờ by
Đúng. Bạn có thể đăng lên câu hỏi của mình đầu ra của xrandr không? chúng tôi cần tên màn hình. Ngoài ra, vui lòng xuất ra với màn hình bên ngoài được đính kèm/sắp xếp
Slbox avatar
lá cờ au
@JacobVlijm đã xong!
Jacob Vlijm avatar
lá cờ by
... Và do đó, nó là. Bạn đã thử kịch bản? Cần bất kỳ sự giúp đỡ với nó?
Điểm:1
lá cờ by

Thay đổi độ phân giải trên tín hiệu

Với sự giúp đỡ của Gdk, chúng ta có thể hành động trên một số tín hiệu, a.o. khi kết nối/ngắt kết nối màn hình. Nếu chúng ta kết nối cả hai thêm màn hìnhloại bỏ màn hình -dấu hiệu (Gdk.Display) để cập nhật độ phân giải màn hình tự động, tùy thuộc vào TV được gắn vào, chúng tôi đã hoàn tất.

trong một kịch bản

#!/usr/bin/env python3
nhập gi
gi.require_version("Gdk", "3.0")
gi.require_version("Gtk", "3.0")
từ gi.repository nhập Gtk, Gdk
quy trình con nhập khẩu

triggermon = "DVI-I-1" # nếu cái này được kết nối, hãy giảm độ phân giải
tochange="HDMI-0" # bật màn hình về độ phân giải thấp hơn
lowres = "1920x1080" # độ phân giải thấp
highres = "3840x2160" # độ phân giải mặc định


lớp Coi chừng:
    def __init__(bản thân):
        self.gdkdsp = Gdk.Display.get_default()
        # sử dụng tín hiệu kết nối/ngắt kết nối
        self.gdkdsp.connect("monitor_added", self.act_onchange)
        self.gdkdsp.connect("monitor_removed", self.act_onchange)
        # đảm bảo cấu hình ban đầu là chính xác
        self.act_onchange()
        # chúng tôi cần chuỗi gtk để sử dụng tín hiệu
        Gtk.main()

    def act_onchange(self, *args):
        # hãy để mặc định ở mức cao
        curr_res = cao
        # đính kèm n-màn hình, giảm độ phân giải nếu triggermon được kết nối
        n_mons = self.gdkdsp.get_n_monitor()
        cho n trong [n cho n trong phạm vi(self.gdkdsp.get_n_monitor())]:
            mon_name = self.gdkdsp.get_monitor(n).get_model()
            nếu mon_name == triggermon:
                curr_res = lowres
        # thiết lập độ phân giải
        quy trình con.Popen([
            "xrandr", "--output", tochange, "--mode", curr_res
        ])               
        
Coi chừng()

Thiết lập

  • Sao chép tập lệnh vào một tệp trống, lưu nó dưới dạng actonmonitor.pylàm cho nó có thể thực thi được (nếu bạn chạy nó mà không gọi rõ ràng trình thông dịch).

  • Tên màn hình nằm trong phần đầu của tập lệnh và do đó, các độ phân giải bạn đã đề cập, hãy thay đổi chúng nếu cần.

  • Kiểm tra- chạy nó trong một cửa sổ đầu cuối.

      /path/to/actonmonitor.py
    
  • Xem nếu tất cả hoạt động như bình thường.

  • Thêm nó vào các ứng dụng khởi động của bạn nếu bạn muốn.

N.B.

Vị trí chính xác của màn hình phụ trong bố cục màn hình không có trong đầu ra (của bạn) của xrandr.Nếu vị trí quan trọng, có lẽ bạn cần thêm một xrandr lệnh vào kịch bản.

Slbox avatar
lá cờ au
Tôi chưa thể thử điều này vì sự cố đã được giải quyết _partially_ bằng Plasma 5.23.1 và điều này đã trở nên bớt cấp bách hơn nhiều đối với tôi. Có vẻ đầy hứa hẹn mặc dù! Tôi đã tạm thời chấp nhận câu trả lời cho đến khi tôi có cơ hội dùng thử. Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.