22 điểm bởi xguru 14 giờ trước | 8 bình luận | Chia sẻ qua WhatsApp
  • Công cụ chuyển nguồn đầu vào của màn hình (DisplayPort, HDMI, USB-C, v.v.) từ dòng lệnh bằng giao thức DDC/CI, hỗ trợ đầy đủ Windows/macOS/Linux
  • Có thể chỉ định trực tiếp nguồn đầu vào bằng cách thêm =nguồn_đầu_vào sau tên/chỉ mục
    • monitor-input Dell=dp1 → đặt tất cả màn hình có chứa "Dell" sang DisplayPort1
    • monitor-input 0=usbc1 → đặt màn hình đầu tiên sang USB-C1
  • Chạy không có tham số sẽ in ra danh sách tất cả màn hình đang kết nối, và hiển thị các trường tên/Input Source/Backend cho từng mục
  • Có thể tìm kiếm/tra cứu màn hình cụ thể bằng một phần tên hoặc chỉ mục (số)
    • monitor-input Dell liệt kê toàn bộ màn hình có "Dell" trong tên, monitor-input 2 tra cứu màn hình ở chỉ mục 2
  • Có thể nhập số cho nguồn đầu vào để hỗ trợ cả các nguồn đầu vào vendor-specific không tiêu chuẩn
    • monitor-input U2723=15 P3223=17
  • Hỗ trợ chức năng toggle/cycle để chuyển tuần tự theo trạng thái hiện tại bằng cách đăng ký từ hai nguồn trở lên, phân tách bằng dấu phẩy (,)
    • P3223=hdmi1,usbc2 → toggle giữa HDMI1 và USBC2, cũng có thể xoay vòng từ 3 nguồn trở lên như hdmi1,usbc2,dp1
  • Chức năng toggle cho nhiều màn hình: khi chuyển đồng thời nhiều màn hình, hệ thống căn theo nguồn đầu vào hiện tại của màn hình đầu tiên để giữ tính nhất quán nguồn đầu vào cho các màn hình còn lại
    • Với monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2, nếu nguồn đầu vào của màn hình đầu tiên U2723DisplayPort1 thì sẽ đổi sang UsbC2
    • Nếu màn hình đầu tiên chuyển sang nguồn thứ hai trong danh sách, các màn hình sau đó cũng sẽ chuyển sang nguồn thứ hai trong danh sách tương ứng của chúng (ví dụ: P3223 sẽ thành UsbC2)
  • Trên Windows, có bản subsystem (monitor-inputw.exe) không làm hiện cửa sổ console với tùy chọn -F winapp, lỗi sẽ được hiển thị bằng thông báo toast
  • Ngoài chạy từ dòng lệnh, công cụ còn được cung cấp dưới dạng library (as library) để có thể gọi trực tiếp từ mã Rust khác

8 bình luận

 

Tôi đang dùng Mac Mini và laptop Windows cùng với 2 màn hình DELL.

Dell 1 thì tôi chỉ kết nối với Mac Mini,

Còn Dell 2 thì tôi kết nối với cả Mac Mini lẫn laptop Windows.

Tôi đã cài Dell Display and Peripheral Manager trên Windows và đăng ký phím tắt (Ctrl + Space), rồi dùng để chuyển màn hình của Dell 2 qua lại giữa Mac và Windows mỗi khi cần.

Công cụ được giới thiệu ở đây cũng có vẻ hữu ích, chắc sắp tới tôi sẽ thử áp dụng một lần!

 

Tôi dùng qua lại giữa Windows và Mac với một màn hình.

Màn hình DELL U4025QW không có phím tắt một chạm để đổi nguồn vào, phải vào menu tìm rồi bấm, nên tôi dùng cái này để tạo script và sử dụng.

Tôi đang cắm Windows vào dp1, còn Mac thì vào usbc1,

trên Mac tôi thêm vào .zshrcalias mon='monitor-input 0=dp1'

trên Windows thì mở notepad $PROFILE rồi thêm function mon { monitor-input 0=usbc1 }

Làm vậy thì chỉ cần gõ mon trong shell của Windows hay Mac là màn hình sẽ chuyển đổi.

Tôi đang dùng rất hài lòng nên giới thiệu thử.

 

Ồ, tôi không biết là còn làm được thế này, cảm ơn mẹo hay nhé.

 
freedomzero 14 giờ trước

Ồ, thiết lập của bạn giống hệt tôi. Mỗi lần phải bấm phím vật lý khá phiền, tôi sẽ dùng công cụ này thật tốt..

 
daydreamblend 10 giờ trước

Tôi có một màn hình/bàn phím/chuột, nhưng lại có 3 thiết bị cần kết nối, nên tôi cắm dongle vào Raspberry Pi và gắn ESP32 vào các thiết bị khác để dùng theo cách vòng qua WiFi. Khi đó tôi đã khá vất vả để chuyển cả màn hình cùng lúc với việc chuyển đầu vào bàn phím/chuột; nếu biết cái này sớm hơn thì có lẽ đã tiện hơn nhiều. Cảm ơn vì bài viết hay.

 

Trên Ubuntu 24.04 của tôi thì không chạy được... buồn thật..

 

Thấy có ghi là phải cài libudev; làm vậy rồi vẫn không được à?

 

$ sudo apt install libudev-dev
Gói libudev-dev đã là phiên bản mới nhất (255.4-1ubuntu8.16).
$ sudo apt install librust-udev-dev
Gói librust-udev-dev đã là phiên bản mới nhất (0.8.0-1).
$ monitor-input
Error: No display monitors found for "".
Máy của tôi có kết nối cả hai cổng DP và HDMI nhưng công cụ không nhận ra.
Tôi cũng ngại đào sâu nên chỉ kết luận là không được rồi thôi.