6 poin oleh GN⁺ 2023-12-28 | 1 komentar | Bagikan ke WhatsApp
  • DeskHop adalah proyek hardware open-source yang, saat dua komputer berbagi satu keyboard/mouse, menggantikan switch USB berbasis tombol dengan hotkey dan perpindahan pointer mouse untuk mengalihkan target input dengan cepat
  • Perangkat ini berperan sebagai USB Host/Device di antara keyboard/mouse dan dua komputer, menjaga koneksi ke keduanya secara bersamaan, lalu meneruskan gerakan mouse dan input tombol ke output yang dipilih
  • Perpindahan mouse dilakukan dengan mengubah HID report descriptor menjadi koordinat absolut dan secara internal mengakumulasi perpindahan relatif, sehingga saat melewati batas layar, kursor muncul di layar komputer lain pada ketinggian yang sama
  • Fitur utamanya mencakup tanpa latensi yang terasa, tanpa instalasi software, dukungan Linux/macOS/Windows, komponen di bawah 15€, casing cetak 3D, dan isolasi galvanik antar-output
  • Keterbatasannya juga jelas: setelah Windows 10 KB5003637 ada masalah koordinat absolut untuk multi-layar, multi-layar macOS memerlukan workaround eksperimental, dan kompatibilitas dengan keyboard canggih, mouse dengan banyak tombol, serta berbagai perangkat tidak dijamin

Switch hardware untuk berpindah cepat di antara dua komputer

  • DeskHop adalah proyek yang berangkat dari use case pengguna yang memakai dua komputer setiap hari dan ingin berbagi satu keyboard/mouse
  • Proyek ini berupaya memecahkan masalah kotak switching USB lama yang membutuhkan waktu untuk berpindah dan merepotkan karena harus mencari tombol
  • Perilaku yang diinginkan ada dua
    • Berpindah output dengan hotkey keyboard
    • Berpindah otomatis saat pointer mouse diseret melewati monitor
  • Dirancang agar berfungsi juga di antara komputer yang memakai sistem operasi berbeda
  • Tersedia User Manual

Fitur utama

  • Sepenuhnya gratis dan open-source, serta mendapat sertifikasi Open Source Hardware
  • Tidak ada latensi yang terasa saat berpindah
  • Pointer mouse bisa diseret berpindah di antara komputer
  • Tidak perlu menginstal software terpisah di komputer
  • Biaya komponen disebut di bawah 15€
  • Menggunakan casing snap-fit yang bisa dicetak 3D
  • Menyediakan isolasi galvanik penuh antar-output
  • Berjalan di Linux, macOS, dan Windows

Cara kerja

  • Perangkat bertindak sebagai perangkat perantara antara keyboard/mouse dan komputer
  • Koneksi ke dua komputer dibuat dan dipertahankan secara bersamaan
  • Berdasarkan status pilihan saat ini, perangkat menentukan ke komputer mana gerakan mouse dan input tombol akan diteruskan
  • Keyboard mengikuti mouse, dan mouse juga mengikuti status perpindahan keyboard
    • Saat mouse diseret ke desktop lain, target input keyboard ikut berpindah

Implementasi perpindahan mouse

  • Untuk menciptakan sensasi kursor mouse berpindah di antara layar, HID report descriptor diubah ke mode koordinat absolut
  • Laporan mouse sebenarnya tetap masuk sebagai perpindahan relatif, lalu perangkat mengakumulasikannya secara internal untuk mengelola posisi saat ini
  • Saat kursor mencoba keluar dari area layar saat ini ke arah monitor lain, perangkat mempertahankan koordinat Y, mengubah koordinat X ke batas sisi seberang, lalu mengganti output
  • Dengan cara ini kursor muncul di layar komputer lain pada ketinggian yang sama, sehingga perpindahan terlihat alami
  • Perpindahan sebenarnya terjadi pada momen ketika panah di satu sisi berhenti dan panah di sisi lain mulai bergerak

Perpindahan keyboard dan status LED

  • Perangkat bekerja sebagai USB Host dan secara berkala melakukan polling keyboard
  • Jika menemukan hotkey yang sudah diatur di HID report, karakter berikutnya diteruskan ke output lain
    • Contoh penggunaan: Ctrl + Caps Lock
  • LED keyboard bisa dimanfaatkan ulang untuk menunjukkan output mana yang sedang digunakan
  • Karena status LED tiap komputer diingat, status sebelumnya bisa dilanjutkan apa adanya

Build dan pembaruan firmware

  • Untuk mengurangi ketidaksesuaian versi dan masalah path, serta menghindari unduhan SDK besar, pico sdk minimal dan tinyusb disertakan bersama
  • Di Debian/Ubuntu, perlu memasang build-essential, cmake, gcc-arm-none-eabi, libnewlib-arm-none-eabi, python3
  • Build dasar dilakukan dengan perintah berikut
    • cmake -S . -B build
    • cmake --build build
  • Build yang reproducible menggunakan Docker juga disediakan
    • docker-compose -f misc/docker.yml run --rm build_container
  • Bisa juga menggunakan pre-built images
    • Mulai versi 0.6, tersedia satu image universal
    • Digunakan dengan menyalin file .uf2 ke perangkat

Cara upgrade firmware

  • Option 1: pada firmware 0.6 atau lebih baru, masuk ke config mode dengan left ctrl + right shift + c + o
    • Perangkat di sisi yang terhubung ke keyboard akan reboot dan muncul sebagai drive USB bernama DESKHOP
    • Jika file .uf2 disalin, setelah verifikasi image perangkat akan melakukan flash dan reboot, lalu upgrade board lain juga dilanjutkan
    • Drive ini bukan perangkat penyimpanan USB biasa, sehingga tidak bisa dipakai untuk menyalin file
  • Option 2: gunakan ROM bootloader dengan menyambungkan tiap Pico sambil menekan tombol board, lalu salin .uf2 ke flash drive yang muncul
  • Option 3: jika build debug dibuat dengan DH_DEBUG_CDC_FLASH=ON, perangkat bisa masuk bootloader mode melalui perintah serial CDC
    • echo -n 'flash' > /dev/tty.usbmodem11104

Fitur tambahan

  • Mouse slowdown

    • Mode mouse lambat di-toggle dengan right CTRL + right ALT
    • Menurunkan kecepatan pointer secara drastis saat perlu penyesuaian posisi yang presisi
  • Switch Lock

    • Mengunci ke layar saat ini dengan RIGHT CTRL + K
    • Mencegah kursor tidak sengaja berpindah ke layar lain
  • Lock Both Screens

    • Bisa mengunci dua komputer sekaligus dengan RIGHT CTRL + L
    • Sistem operasi tiap output perlu diatur
  • Gaming Mode

    • Di-toggle dengan LEFT CTRL + RIGHT SHIFT + G
    • Terkunci ke layar saat ini dan mouse bekerja seperti mouse koordinat relatif standar
    • Mode ini ditujukan untuk menangani game, virtual machine, dan sistem operasi yang saat ini belum didukung yang tidak cocok dengan mode mouse absolut
  • Screensaver

    • Default-nya mati
    • Jika diaktifkan, setelah waktu tidak aktif berlalu pointer mouse akan memantul di layar seperti bola Pong
    • Otomatis mati jika input dikirim ke layar tersebut

Konfigurasi hardware

  • Rangkaian berbasis dua board Raspberry Pi Pico
    • Pico dipilih karena murah, 4,10€ per unit, bisa disolder tangan, dan mudah didapat
  • Dua Pico terhubung lewat UART
  • Kedua sisi dipisahkan dengan digital isolator
    • Analog Devices ADuM1201 sekitar 3€
    • TI ISO7721DR sekitar 1,5€, lebih murah, lebih cepat, dan pin-compatible sehingga lebih disukai
  • RP2040 secara default tidak mendukung dual USB, tetapi lewat Pico-PIO-USB, USB diimplementasikan dengan PIO sehingga bisa menjalankan peran USB Host dan Device sekaligus

PCB dan casing

  • Untuk memudahkan pembuatan DIY, trace PCB ditempatkan di satu sisi dan jumlah komponen diminimalkan
  • Jalur diferensial USB D+/D- pada prinsipnya harus sama panjang, tetapi sengaja dirancang sedikit asimetris untuk mengompensasi perbedaan panjang trace GPIO pada PCB Pico
  • Target impedansi diferensial adalah 90Ω, dan realisasinya sekitar 107Ω
  • Ketebalan PCB dirancang 1,6mm agar cocok dengan casing snap-fit
  • PCB v1.1 menambahkan hal berikut dibanding v1.0
    • Proteksi ESD TPD4E1U06DBVR
    • Kapasitor VBUS untuk konektor keyboard/mouse
    • Penanda arah pada silkscreen
    • Lubang dan perbaikan alignment untuk board klon dengan header yang sudah disolder
    • Resistor USB 27Ω
  • v1.1 sedikit lebih sulit disolder tangan karena IC TVS kecil dan resistor 0805
  • Casing tersedia di case, memakai sekitar 33g filamen, dan bisa dicetak dalam beberapa jam
  • Terpasang dengan struktur snap-fit tanpa sekrup, dan pada tutup ada slot yang bisa dibuka dengan obeng

Biaya dan komponen

  • Total BOM PCB v1.1 disebut 11,22€
  • Komponen utamanya sebagai berikut
    • 2 Raspberry Pi Pico: 8,20€
    • 2 konektor PCB USB-A: 0,40€
    • 1 TI ISO7721DR: 1,40€
    • 2 kapasitor 100nF: 0,18€
    • 4 resistor 27Ω: 0,12€
    • 2 TPD4E1U06DBVR: 0,62€
    • 2 kapasitor 4.7uF: 0,14€
    • 2 header 2.54mm 1x03: 0,16€
  • Selain itu perlu pembuatan PCB, dan Gerber disediakan
  • File STL untuk cetak 3D juga disediakan

Hotkey penggunaan dan pengaturan

  • Berdasarkan firmware 0.68 atau lebih baru, hotkey utama adalah sebagai berikut
    • Left Ctrl + Right Shift + C + O: masuk config mode
    • Right Shift + F12 + D: hapus pengaturan flash
    • Right Shift + F12 + Y: simpan offset perpindahan layar
    • Right CTRL + Right ALT: toggle mode mouse lambat
    • Right CTRL + K: kunci/buka kunci perpindahan desktop mouse
    • Right CTRL + L: kunci kedua output sekaligus
    • Left CTRL + Right Shift + G: toggle gaming mode
    • Left CTRL + Right Shift + S: aktifkan screensaver
    • Left CTRL + Right Shift + X: nonaktifkan screensaver
    • Left CTRL + Caps Lock: pindah output
  • Hotkey diubah karena sebagian keyboard tidak mengirim input kedua Shift secara bersamaan dengan benar

Mode pengaturan web

  • Mulai firmware 0.6, configuration mode yang diperbaiki diperkenalkan
  • Saat menekan Left Ctrl + Right Shift + C + O, perangkat reboot dan masuk ke mode pengaturan
  • Drive USB bernama DESKHOP muncul, dengan satu file config.htm di dalamnya
  • File ini harus dibuka di Chromium atau Chrome
    • Firefox menghindari implementasi WebHID sehingga saat ini tidak didukung
  • Setelah mengizinkan koneksi, opsi dapat diatur dan disimpan, lalu akan ditulis ke perangkat
  • Alasan memakai metode file lokal alih-alih halaman pengaturan online adalah karena memuat JavaScript yang berinteraksi dengan perangkat input dari lokasi online acak merupakan potensi risiko keamanan
  • Halaman web pengaturan menggunakan metode dekompresi mandiri karena keterbatasan ruang penyimpanan, dan seluruh source disertakan di repositori

Desain keamanan dan keselamatan

  • Tidak ada fungsi copy/paste atau berbagi informasi antar-sistem
    • Ini adalah batasan yang disengaja untuk mencegah kebocoran informasi
  • Tidak ada koneksi masuk dari komputer output
    • Pengecualiannya adalah pesan on/off LED keyboard standar, yang dibatasi pada data 1 byte
  • Komputer output tidak dapat memicu upgrade firmware
    • Hanya tindakan pengguna eksplisit melalui hotkey khusus yang diizinkan
  • Tidak mengekspos endpoint kustom keyboard/mouse yang terhubung atau meneruskan informasi ke sisi perangkat
  • Tidak menyimpan riwayat input
  • Perangkat tidak membuat input tombol secara arbitrer
    • Hanya yang diketik atau dipicu pengguna yang dikeluarkan
  • Output dipisahkan secara fisik dan menggunakan isolasi galvanik dengan tegangan isolasi minimal 2kV
  • Paket antar-perangkat memiliki panjang tetap, dan opsi pengaturan yang dikirim dibatasi pada daftar pendek
  • Tidak ada Bluetooth, Wi-Fi, jaringan, atau akses internet
  • Komputer yang terhubung tidak pernah dianggap sebagai pihak tepercaya dalam kondisi apa pun
  • Mode pengaturan otomatis mati setelah tidak aktif selama beberapa waktu
  • Kode tersedia sebagai open-source tanpa binary blob

FAQ dan kompatibilitas

  • Perangkat bisa berjalan hanya dengan dua Pico tanpa PCB dan isolator, tetapi penggunaan isolator direkomendasikan
  • Perpindahan mouse pada resolusi monitor berbeda pun seharusnya berjalan karena diproses dalam ruang koordinat abstrak dan komputer memetakannya ke layar fisik
  • Ini bukan produk untuk dijual, melainkan proyek hobi pribadi non-komersial
  • Ada pembaruan bahwa Elecrow menyediakan pesanan satuan untuk PCB, PCB rakitan, dan perangkat jadi
    • Menurut laporan pengguna, board datang dalam keadaan kosong dan firmware harus ditulis sendiri
  • Dongle kombinasi keyboard/mouse seperti Logitech Unifying disebut makin baik dukungannya setelah pembaruan firmware terbaru
  • Mouse dan keyboard nirkabel yang memakai receiver nirkabel terpisah berjalan normal dalam pengujian mouse nirkabel Anker
  • Masalah build bisa merujuk ke Troubleshooting Wiki

Alternatif software

Keterbatasan yang diketahui dan rencana

  • Setelah Windows 10 KB5003637, perilaku koordinat absolut HID rusak sehingga tidak bisa memakai lebih dari 1 layar di Windows
    • Mouse tetap berada di layar utama; ada workaround eksperimental dan workaround yang lebih baik sedang dikembangkan
  • Kode perlu dirapikan dan di-refactor
  • Karena belum cukup diuji pada berbagai perangkat, ada kemungkinan tidak langsung berjalan tergantung hardware
  • Pada keyboard canggih dengan knob, tombol tambahan, atau slider, hardware tambahan tersebut mungkin tidak berfungsi
  • Pada mouse modern dengan sangat banyak tombol, sebagian tombol mungkin tidak berfungsi seperti yang diharapkan
  • Kedua komputer harus terhubung dan memasok daya USB agar perangkat berjalan
    • Karena tiap board mendapat daya dari komputer yang terhubung dengannya
  • macOS bermasalah pada 2 layar atau lebih, dan firmware terbaru menyediakan workaround eksperimental untuk ini
  • Fitur yang direncanakan mencakup perbaikan workaround multi-layar Windows/macOS, mode transparan/gaming, dukungan lebih dari 2 output, dan peningkatan UI pengaturan
  • Versi lite yang menyediakan fungsi dasar hanya dengan satu board Pico W juga sedang dikerjakan
  • Polling mouse saat ini dapat berjalan pada 1000Hz

1 komentar

 
GN⁺ 2023-12-28
Pendapat di Hacker News
  • Bagus karena bisa mendeteksi tepi layar tanpa perangkat lunak klien
    Caranya adalah dengan mengubah descriptor laporan HID mouse menjadi koordinat absolut agar kursor mouse bisa berpindah secara alami, lalu secara internal mengakumulasi laporan mouse yang sebenarnya masuk sebagai gerakan relatif untuk menjaga posisi yang akurat
    Jadi, ini bekerja seperti synergykm / Barrier tanpa fitur clipboard dan tanpa perangkat lunak klien

    • Yang sangat bagus adalah komputer-komputer tidak perlu terhubung lewat jaringan
    • Saya penasaran apakah ini akan benar-benar rusak jika kursor digerakkan oleh sesuatu selain mouse
      Misalnya skrip otomasi atau game yang mengunci kursor di tengah layar
  • Di YouTube, bahkan tanpa perangkat keras terpisah, video bisa digeser per frame dengan tombol , dan .

    • Semoga ada solusi juga untuk Android
      Melakukan pilihan presisi dengan slider di antarmuka sentuh benar-benar buruk
    • Tidak mungkin berpindah di antara 30 detik dan 1 frame
    • Menurut saya mouse masa kini sangat presisi dan bekerja dengan baik; jadi saya penasaran mouse apa yang digunakan sampai harus menahan napas saat menggulir
    • mpv juga memakai pintasan yang sama
      Saya tidak tahu siapa yang lebih dulu, tetapi saya mengetahuinya dari mpv, lalu iseng menekannya di YouTube dan ternyata berfungsi
  • Di Windows, Anda bisa memakai Mouse Without Borders, yang dikembangkan oleh Microsoft Garage dan kini termasuk dalam Windows PowerToys
    Tautan:
    https://www.microsoft.com/en-us/garage/profiles/mouse-without-borders
    https://github.com/microsoft/PowerToys

    • Barrier adalah proyek open source lintas platform yang bercabang dari Synergy, dan bekerja cukup baik tanpa perangkat keras tambahan
      Namun, setelah saya lihat sekarang pemeliharaannya sudah dihentikan, dan penerusnya adalah Input Leap
      https://github.com/debauchee/barrier
      https://github.com/input-leap/input-leap
    • Saya pernah mencobanya dulu dan bekerja sangat baik
      Terutama jadi mudah menyeret dan melepas file untuk menyalinnya antar komputer
  • Saya membeli sampai 4 USB hub untuk berpindah keyboard dan mouse, tetapi sebagian besar perangkatnya sangat berantakan sehingga menjengkelkan
    Dalam sehari ada kalanya saya harus mencabut dan memasang kembali hub secara fisik berkali-kali, dan menjadi lebih buruk lagi jika webcam atau mikrofon USB ikut terhubung
    Synergy memang saya pakai dengan baik, tetapi saya membutuhkan KVM yang benar-benar layak yang bisa menangani webcam, mikrofon, dan audio dengan benar, serta bisa memindahkan hanya kelompok perangkat yang terhubung lewat pintasan keyboard
    Pengguna KVM jelas masih kurang mendapat dukungan

    • Konfigurasi KVM bawaan monitor BenQ 32 inci 4K yang secara kebetulan saya pakai di kantor adalah yang terbaik
      Setiap input DisplayPort memiliki port USB yang terkait, sementara USB-C menangani periferal, input display, sekaligus keluaran daya yang cukup lumayan
      Perpindahan dilakukan dengan sakelar kecil di meja, dan monitor tetap membuat input yang tidak sedang ditampilkan tampak seolah masih terhubung, sehingga Windows tidak berkedip-kedip karena harus menata ulang, dan perpindahannya jauh lebih cepat serta mulus
    • Saya ingin berbagi keyboard, mouse, dan monitor antara PC dan MacBook, tetapi sepertinya tidak ada KVM yang satu sisinya DP+USB dan sisi lainnya Thunderbolt
      Rasanya ini kasus penggunaan yang umum, jadi sayang sekali
      Memang bisa dikeluarkan dulu lewat dock, tetapi resolusi monitor yang saya pakai tinggi sehingga sebagian besar dock kewalahan atau hanya mendukung 30Hz
    • Baru-baru ini saya membeli monitor Dell 32 inci 6K yang memiliki hub Thunderbolt 4 dan KVM bawaan, dan semuanya bekerja sempurna
      Mac tersambung dengan satu kabel Thunderbolt 4, sedangkan PC memakai HDMI 2.1 dan upstream USB3 10Gbps
      Saya menghubungkan ethernet serta keyboard/mouse ke monitor, lalu berpindah ke perangkat yang tepat lewat pintasan keyboard atau OSD monitor
      Dengan fitur PIP, dua perangkat juga bisa dilihat sekaligus
    • Saya sangat puas dengan KVM tesmart dual DP 4-port
      Batasannya hanya ada pada host controller USB 2, sehingga perangkat berkecepatan tinggi seperti beberapa webcam sulit dipindahkan
      Jika harus mencampur produk Apple, karena Apple tidak menyukai MST, Anda perlu memakai dua kabel USB3 fisik di Mac untuk membedakan dua kanal display
    • ATEN USB KVM bisa dipasangi apa saja
      Saya memakainya dengan mencolokkan USB drive untuk memindahkan file dengan cepat, dan pada umumnya perangkat yang berjalan dengan daya USB akan berfungsi
      Jika memilih USB 3+, DP, dan sejenisnya memang mahal, tetapi ada juga model murah yang hanya memindahkan USB
      Namun, kelemahan besarnya adalah beberapa mouse dan keyboard dengan tombol khusus tidak bekerja 100%
  • Saya sudah memakai Synergy untuk keperluan ini selama lebih dari 10 tahun
    https://symless.com/synergy cepat, langsung berpindah bahkan lewat Wi-Fi, dan mendukung Windows/Mac/Linux semuanya

    • Synergy, Barrier, dan Input Leap adalah solusi perangkat lunak yang cukup bagus dari leluhur yang sama
      Dua yang terakhir gratis dan open source, sementara Synergy punya cara yang bagus untuk mengonfigurasi batas antarperangkat
      Namun, solusi apa pun akan lebih baik kalau mendukung tata letak monitor kustom dengan benar
      Di lingkungan saya, monitor tidak tersusun segaris dan tiap monitor bisa berpindah ke tiap perangkat secara independen, jadi akan hebat kalau bisa menentukan batas per monitor dan per perangkat, tetapi sepertinya baik perangkat lunak maupun perangkat keras belum ada yang begitu
      Baru-baru ini saya bertanya ke Synergy, dan mereka bilang itu ada di roadmap sebagai permintaan fitur populer; semoga segera hadir
    • Kalau memakai VPN yang berbeda di beberapa komputer, Synergy tidak bekerja dengan baik, jadi saya membeli perangkat komersial yang mirip dengan DIY di sini, dan hasilnya sangat bagus
      Tidak perlu login ke komputer terlebih dahulu, dan bisa berpindah dengan melewati tepi layar atau kombinasi tombol
      Perangkat USB yang tersambung juga bisa dialihkan secara independen dari keyboard dan mouse
      Produk seperti ini kadang disebut boundless, borderless, atau roaming KM switch
      https://www.cdw.com/product/siig-4-port-roaming-km-switch-wi...
    • ShareMouse juga layak disebut: https://www.sharemouse.com/
      Secara pribadi, ini bekerja jauh lebih baik daripada Synergy
      Saya beralih setelah para pengembang Synergy tidak menanggapi bug yang sudah bertahun-tahun ada sampai tidak bisa saya pakai lagi
      Contoh: https://github.com/symless/synergy-core/issues/5992
      Kekurangannya, kalau ingin tetap mendapat pembaruan setelah 1 tahun, harus melakukan “perpanjangan pemeliharaan”, tetapi sejauh ini saya masih memakainya dengan baik walau belum memperpanjang
    • Beberapa bulan lalu mouse di komputer kedua berhenti, dan saya begitu saja lupa bahwa saya sedang menjalankan Synergy, jadi butuh beberapa menit untuk memperbaikinya
      Setelah dicek, konfigurasinya sudah berjalan 4–5 tahun tanpa masalah, dan termasuk perangkat lunak berbayar yang nilainya sangat tinggi
    • Kelihatannya bagus, tetapi sayang TLS dijadikan fitur premium di atas SKU berbayar dasar
      Keamanan harus menjadi default dan gratis di semuanya; itu bukan kemewahan, melainkan syarat minimum
      Meski begitu, kalau dicoba dan ternyata bagus, saya mungkin akan membeli lisensi premium karena fitur salin-tempelnya
  • Ada proyek yang saya buat, terinspirasi dari proyek serupa https://github.com/jfedor2/screen-hopper
    Versi yang saya buat sendiri terdiri dari dua program
    Satu berjalan di desktop Linux, mendengarkan event input dari evdev, subsistem input Linux, lalu saat tombol tertentu ditekan, ia mengonsumsi semua event dan mengirimkannya ke RPI Pico melalui serial USB
    Jika ditekan lagi, ia kembali ke mode mendengarkan manual
    RPI Pico mengubah event Linux evdev yang diterima lewat serial menjadi event USB HID dan mengirimkannya ke PC Windows lain
    Hasilnya adalah KM switch yang bisa langsung berpindah antara PC Linux dan PC dengan OS apa pun
    Foto perkabelan: https://ibb.co/m0zhzgz
    Saya memakai Pico lain sebagai adaptor serial USB, dan sebagai pemula hardware, fakta bahwa hanya perlu 2 kabel benar-benar melegakan
    Kedua program masing-masing kurang dari 100 baris, dan ada banyak crate Rust serta paket Python untuk mendengarkan Linux evdev
    Sisi Pico juga lebih mirip loop dengan statement switch besar, dan ada crate Rust untuk mengirim event USB HID
    Dengan COBS, event bisa dikirim lewat serial tanpa perlu khawatir soal framing
    Pada akhirnya saya tidak merilisnya sebagai open source karena bug serial USB: setelah koneksi terputus, ia tidak tersambung kembali dengan benar ke desktop Linux
    Saya tidak tahu apakah penyebabnya Linux atau Pico, dan karena kabelnya tidak saya cabut, sampai sekarang masih saya pakai tanpa masalah
    Karena saya banyak bermain game FPS, fitur koordinat absolut sengaja saya hilangkan, dan tombol pindah saya ikat ke tombol samping mouse sehingga bisa berganti sistem tanpa menyentuh keyboard

    • Ide yang benar-benar keren
      Saya baru tahu proyek screen-hopper kemarin, dan rasanya seperti membuktikan teori bahwa apa pun yang ingin dibuat, selalu ada seseorang yang lebih pintar sudah membuatnya dengan lebih baik
      Karena saya sama sekali tidak bermain game, koordinat absolut juga tidak masalah, tetapi di daftar tugas saya ada item untuk membuatnya bisa dikonfigurasi
    • Bug serial USB itu justru bisa menjadi alasan untuk mempublikasikannya
      Bisa nerd-snipe seseorang agar menyelidiki detail halus yang menyebabkan bug tersebut
    • Saya sudah banyak mendapat saran untuk merilisnya walau masih ada bug, dan logikanya masuk akal
      Sumber yang disediakan apa adanya ada di sini: https://github.com/null-dev/picokvm
    • Akan bagus kalau bisa mengunggahnya ke repositori dengan peringatan bahwa tidak ada dukungan dan pengguna menanggung sendiri risikonya
    • Saya rasa banyak orang tetap ingin melihatnya meski bug masih ada
  • Salah satu keluhan besar saya adalah mengganti input mouse dan keyboard antara dua PC dengan switch USB 3.0
    Saat rapat Teams dan saya tidak banyak bicara, kalau seseorang memanggil nama saya atau mengirim pesan, saya jadi panik mencari tombol untuk mengalihkan input ke PC yang menjalankan Teams
    Saya sempat membayangkan menghubungkan ESP32 atau Rpi Pico W dan beberapa optocoupler ke pin tombol switch USB, lalu mengekspos endpoint HTTP agar skrip AutoHotkey dan shortcut bisa men-toggle input dua perangkat
    Namun saya menyerah karena tidak terpikir cara menentukan input yang sedang aktif saat ini, dan saya suka solusi ini

    • Coba lihat headset yang kompatibel dengan Teams dan memiliki tombol mute
      Headset Logitech yang saya dapat dari kantor punya tombol volume, akhiri panggilan, dan mute di kabelnya, sehingga jauh lebih mudah melepas mute saat multitasking
  • Synergy menangani penggunaan seperti ini dengan baik sebagai perangkat lunak murni
    Memang tidak gratis atau open source, tetapi relatif murah
    https://symless.com/synergy

    • Sebelum Synergy menjadi sumber tertutup, ia di-fork menjadi Barrier[0], lalu di-fork lagi menjadi input-leap[1]
      Keduanya open source
      [0] https://github.com/debauchee/barrier
      [1] https://github.com/input-leap/input-leap
    • Synergy bersifat open core, dan bagian-bagian ini dilisensikan dengan GPL: https://github.com/symless/synergy-core/#License-1-ov-file
      Ada juga fork open source yang bercabang dari versi 1.9: https://github.com/debauchee/barrier#what-is-it
    • Synergy punya bug yang tampaknya tidak mereka pedulikan
      Misalnya, jika menggunakan host macOS, pada klien Windows/Linux ia memakai kurva akselerasi macOS untuk menghitung posisi kursor, tetapi tidak memakainya untuk pergerakan kursor sebenarnya
      Akibatnya, saat mencoba bekerja di sepertiga area layar Windows yang dekat dengan host, kursor tanpa sengaja kembali menyeberang
    • Penasaran apakah ada rekomendasi yang layak untuk kombinasi Windows dan tablet Android
      Sepertinya semua solusi hanya berjalan di OS desktop
    • Ada yang mengatakan, “Tidak ada yang semenyebalkan Synergy, tapi semuanya memang begitu”
      Tidak satu pun teknologi seperti ini yang stabil, dan Synergy pernah beberapa kali sampai membuat keyboard yang terhubung berhenti berfungsi, sehingga komputer harus dimatikan lalu dinyalakan lagi agar merespons
  • Benar-benar luar biasa
    Terutama terasa begitu bagi saya yang setidaknya selama 20 tahun memakai konfigurasi desktop dengan boks Linux-Mac-Windows dari kiri ke kanan
    Jika dalam bahasa pemrograman ada kemampuan multibahasa, maka di hardware ada konfigurasi multiplatform
    Untungnya, dalam beberapa tahun terakhir ini menjadi lebih mudah seiring meningkatnya desain system-on-chip (SoC)
    Konfigurasi saya saat ini adalah dua tiruan Mac mini Ryzen SoC seharga 250 dolar dari Shenzhen dan sebuah M1 MBP
    Sayangnya, dunia solusi KVM open source seperti Synergy yang dulu tangguh telah berubah menjadi mimpi buruk fork rekursif, sehingga sulit mendapatkan KVM perangkat lunak open source multiplatform yang berfungsi gratis
    Sekarang akhirnya saya memakai switch KVM lama, tetapi menekan tombol membuat konsentrasi buyar
    Suatu saat saya ingin mencoba hal seperti ini lagi

  • Jika ada yang mau bekerja sama untuk mengomersialkan ini, saya bersedia menanggung biaya dan menangani injeksi plastik, pemasaran, perakitan massal, serta pekerjaan lain yang diperlukan
    Email ada di profil

    • Jika dikomersialkan, saya sangat berharap kelemahan “kedua komputer harus terhubung dan menyala agar bisa bekerja” diselesaikan
      Bagi saya itu syarat yang membatalkan transaksi
    • Sudah ada produk komersial
      Coba cari dengan kata kunci boundless, borderless, roaming KM switch