
ساعات الأداة المساعدة هذه لأحداث توصيل/فصل جهاز USB وتبديل مدخلات المراقبة عبر DDC/CI. هذا يحول مفتاح USB بسيط إلى حل KVM كامل: اضغط على زر واحد على مفتاح USB الخاص بك وتتصل جميع الشاشات بإدخال مختلف.
من المفترض أن يتم تثبيته على جميع أجهزة الكمبيوتر التي يمكن توصيلها بهذه الشاشات ، حيث أن التطبيق يحول فقط شاشات "طريقة واحدة" ويعتمد على نفسها على أجهزة الكمبيوتر الأخرى لتبديلها "في الاتجاه الآخر" حسب الحاجة.
يجب أن يعمل التطبيق على MacOS و Windows و Linux.
display_switch مع Homebrew: brew install haimgel/tools/display_switchالتكوين متشابه إلى حد كبير في جميع المنصات:
على MacOS: من المتوقع أن يكون ملف التكوين في ~/Library/Preferences/display-switch.ini على windows: من المتوقع أن يكون ملف التكوين في %APPDATA%display-switchdisplay-switch.ini $XDG_CONFIG_HOME/display-switch/display-switch.ini ~/.config/display-switch/display-switch.ini
إعدادات ملف التكوين:
usb_device = " 1050:0407 "
on_usb_connect = " Hdmi1 "
on_usb_disconnect = " Hdmi2 " usb_device هو أي جهاز USB الذي يجب مشاهدته (معرف البائع / معرف الجهاز في HEX) ، و on_usb_connect هو الذي يراقب إدخال للتبديل إليه ، عند توصيل هذا الجهاز. القيم المدعومة هي Hdmi1 و Hdmi2 و DisplayPort1 و DisplayPort2 و Dvi1 و Dvi2 و Vga1 . إذا كان لدى شاشتك منفذ USB-C ، فعادة ما يتم الإبلاغ عنه باسم DisplayPort2 . يمكن أيضًا تحديد الإدخال كقيمة "خام" عشرية أو سداسية عشرية: on_usb_connect = 0x10
تتيح إعدادات on_usb_disconnect الاختيارية التبديل في الاتجاه الآخر عند فصل جهاز USB. لاحظ أن الطريقة المفضلة هي تثبيت هذا التطبيق على كلا الكمبيوتر. التبديل "بعيدا" يمثل مشكلة: إذا وضع الكمبيوتر الآخر الشاشات للنوم ، فسيتم تبديلها فورًا إلى المدخلات الأصلية.
يدعم display-switch الشاشة التكوين لكل مراقب: أضف أقسام تكوين خاصة بالشاشة أو أكثر لضبط المدخلات الخاصة بالشاشة. على سبيل المثال:
on_usb_connect = " DisplayPort2 "
on_usb_disconnect = " Hdmi1 "
[monitor1]
monitor_id = " len "
on_usb_connect = " DisplayPort1 "
[monitor2]
monitor_id = " dell "
on_usb_connect = " hdmi2 " يحدد monitor_id فرعية غير حساسة للحالة لتتناسب مع معرف الشاشة. على سبيل المثال ، سوف يتطابق "Len" إلى LEN P27u-10 S/N 1144206897 معرف مراقب. إذا كان أكثر من قسم لديه تطابق ، فسيتم استخدام أول قسم. on_usb_connect و on_usb_disconnect ، إذا تم تحديدها ، لها الأسبقية على الافتراضات العالمية.
نصائح لنظام التشغيل Windows : يمكن إعادة تسمية الشاشات في السجل على HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumDISPLAY{MODEL_ID}{CONNECTION_ID} . قم بتحرير قيمة DeviceDesc وقم بتغيير الاسم بعد آخر فاصلة. هذا مفيد بشكل خاص في حال كونهم جميعًا "شاشة PNP عامة".
يدعم display-switch تشغيل أوامر خارجية عند الاتصال أو فصل أجهزة USB. يمكن أن يكون هذا التكوين عالميًا (يتم تشغيله في كل مرة يتم فيها توصيل جهاز USB الذي تم تكوينه أو فصله) أو لكل مراقب (يتم تشغيله فقط عند تبديل شاشة معينة):
usb_device = " 1050:0407 "
on_usb_connect = " Hdmi1 "
on_usb_disconnect = " DisplayPort2 "
on_usb_connect_execute = " echo connected "
on_usb_disconnect_execute = " echo disconnected "
[monitor1]
monitor_id = " foobar "
on_usb_connect_execute = " echo usb connected, monitor 'foobar' being switched "
on_usb_disconnect_execute = " 'c:\program files\my app.exe' --parameter "ملحوظات:
display-switch .لتحديد معرف معرف جهاز USB الخاص بك على Windows:
HIDVID_046D&PID_C52B&MI_00 (ستختلف القيم الدقيقة) - معرف جهاز USB هو مزيج من معرف البائع ومعرف المنتج - على سبيل المثال ، في هذه الحالة سيكون 046D:C52B لتحديد معرف معرف جهاز USB الخاص بك على MacOS ، افتح محطة وقم بتشغيل ما يلي:
brew install lsusb
$ lsusb > a
< switch the usb dock here >
$ lsusb > b
$ opendiff a bفي إخراج الأوامر ، تُظهر لك الخطوط المميزة التي تعتبر معرفات USB أكثر صلة.
للحصول على قائمة كاملة بأجهزة USB:
system_profiler SPUSBDataType
هام : تنسيق switch.ini هو البائع: ProductId. البائع هو محظور في المركز الثاني في إخراج system_profiler
يتطلب حزم إضافية ، تثبيت عبر: sudo apt install libxi-dev xorg-dev
لتحديد موقع معرف جهاز USB الخاص بك على Linux ، قم أولاً بتثبيت lsusb ، والتي يجب أن تحتوي عليها توزيعة Linux. (على Debian و Ubuntu و Redhat ، اسم الحزمة هو usbutils .) ثم ، في محطة ، قم بتشغيل ما يلي:
$ lsusb > a
<switch the usb dock here>
$ lsusb > b
$ diff -u a b
سيظهر إخراج DIFF المعرفات USB الأكثر صلة.
/Users/USERNAME/Library/Logs/display-switch/display-switch.log /logs/display-switch/display-switch.log%LOCALAPPDATA%display-switchdisplay-switch.log$XDG_DATA_HOME/display-switch/display-switch.log أو ~/.local/share/display-switch/display-switch.log قم بتثبيت الصدأ ، ثم قم cargo build --release
تثبيت Xcode ، قم بتثبيت الصدأ ، ثم قم cargo build --release
قم بتثبيت الصدأ ، ثم قم cargo build --release
copy display_switch.exe من targetrelease (حيث تم إنشاؤه في الخطوة السابقة) إلى %APPDATA%MicrosoftWindowsStart MenuProgramsStartup .
# Get your INI file in order! (see above)
cp target/release/display_switch /usr/local/bin/
cp dev.haim.display-switch.daemon.plist ~ /Library/LaunchAgents/
launchctl load ~ /Library/LaunchAgents/dev.haim.display-switch.daemon.plistنسخة قابلة للتنفيذ:
cp target/release/display_switch /usr/local/bin/ تمكين القراءة/الكتابة إلى أجهزة I2C للمستخدمين في مجموعة i2c . تشغيل الجذر:
groupadd i2c
echo ' KERNEL=="i2c-[0-9]*", GROUP="i2c" ' >> /etc/udev/rules.d/10-local_i2c_group.rules
udevadm control --reload-rules && udevadm triggerثم أضف المستخدم الخاص بك إلى مجموعة I2C:
sudo usermod -aG i2c $(whoami)
قم بإنشاء ملف وحدة نظام في دليل المستخدم الخاص بك ( /home/$USER/.config/systemd/user/display-switch.service ) مع المحتويات
[Unit]
Description=Display switch via USB switch
[Service]
ExecStart=/usr/local/bin/display_switch
Type=simple
StandardOutput=journal
Restart=always
[Install]
WantedBy=default.target
قم بإنشاء ملف التكوين على /home/$USER/.config/display-switch/display-switch.ini $user/.config/display-switch/display-switch.ini. ثم تمكين الخدمة مع
systemctl --user daemon-reload
systemctl --user enable display-switch.service
systemctl --user start display-switch.service