DeskHop – fitur perpindahan desktop cepat
(github.com/hrvach)DeskHop - perpindahan desktop cepat
- Gratis dan open source
- Hampir tidak ada jeda saat berpindah
- Bisa berpindah dengan menyeret pointer mouse antar komputer
- Tidak perlu instalasi perangkat lunak
- Menggunakan komponen murah dan mudah didapat (kurang dari 15 euro)
- Casing snap-fit yang bisa dicetak dengan printer 3D
- Isolasi galvanik penuh antar output
- Berfungsi di Linux, macOS, dan Windows
Cara kerja
- Perangkat ini berperan sebagai perantara antara keyboard/mouse dan komputer, sambil mempertahankan koneksi ke dua komputer secara bersamaan
- Berdasarkan pilihan pengguna, perangkat menentukan ke komputer mana input mouse dan keyboard akan diteruskan
- Saat mouse diseret ke desktop lain, keyboard juga otomatis berpindah
Mouse
- Descriptor laporan HID mouse diubah agar menggunakan koordinat absolut, lalu laporan mouse (pergerakan relatif) diakumulasikan secara internal untuk mempertahankan posisi yang akurat
- Saat mencoba keluar dari area monitor ke arah monitor lain, koordinat Y dipertahankan dan X maksimum diubah menjadi X minimum, lalu output dialihkan
- Kursor dibuat muncul di ketinggian yang sama pada monitor lain agar perpindahan terasa mulus
Keyboard
- Sebagai host USB, perangkat secara berkala melakukan polling keyboard, mencari shortcut yang sudah ditentukan sebelumnya (seperti Caps Lock), lalu meneruskan input ke output lain
- LED keyboard dimanfaatkan ulang sebagai umpan balik visual agar pengguna bisa mengetahui output mana yang sedang aktif
- Status LED masing-masing komputer diingat sehingga pekerjaan bisa dilanjutkan dengan kondisi sebelumnya
Menggunakan image yang sudah dibangun
- Bisa menggunakan image yang sudah dibangun sebelumnya
- Sambungkan board Pico ke slot A pada PCB, lalu saat menyambungkan kabel tahan tombol pada board agar muncul sebagai drive USB di sistem
- Salin file
board_A.uf2yang sesuai dan ulangi hal yang sama untuk B
Upgrade firmware
- Opsi 1: buka casing, lalu saat menyambungkan tiap Pico sambil menahan tombol, salin file
uf2yang benar - Opsi 2: gunakan kombinasi tombol tertentu (
Right Shift, P, H, X, Left Shift) untuk masuk ke mode BOOTSEL dan mengalihkan Picos ke mode upgrade bootloader
Fitur lain
- Saat perlu menggerakkan mouse dengan sangat presisi, tahan
Right ALTsambil menggerakkan mouse agar kecepatan mouse turun drastis sehingga pekerjaan detail lebih mudah dilakukan
Hardware
- Rangkaian ini murah (4,10 euro per unit), bisa disolder manual, dan berbasis dua board Raspberry Pi Pico yang sebagian besar pemasok masih punya stoknya
- Kedua Pico terhubung melalui UART menggunakan ADuM1201 dual-channel digital isolator dari Analog Devices (~3 euro)
- Berkat proyek luar biasa yang mengimplementasikan USB dengan keajaiban programmable IO pada RP2040, perangkat ini bisa berfungsi sebagai host USB sekaligus device
PCB
- Untuk menjaga build DIY sesederhana mungkin, trace hanya ditempatkan pada satu sisi dan jumlah komponen dijaga seminimal mungkin
- Jalur diferensial USB D+/D- harus memiliki panjang yang sama, tetapi sengaja dibuat sedikit asimetris untuk mengompensasi perbedaan panjang trace GPIO terkait pada PCB PICO itu sendiri agar total panjangnya cocok
Casing
- Karena tidak terlalu mahir dalam pemodelan 3D, casing dibuat sederhana dan dasar, tetapi tetap memenuhi tujuannya
- Mudah dicetak, menggunakan sekitar 33g filamen, dan selesai dalam beberapa jam
- Pergerakan horizontal PCB ditahan oleh pin yang melewati lubang, dan pergerakan vertikal ditahan oleh tonjolan snap-fit di sisi casing sehingga tidak memerlukan sekrup
- Konektor micro USB menonjol dari sisi casing, jadi perlu dibuat lubang yang sedikit lebih besar agar kabel bisa masuk
- Tutupnya menggunakan desain snap-fit dan memiliki slot obeng agar bisa dibuka
- Penanda di bagian atas dibuat cekung sehingga bisa diisi krayon atau sejenisnya untuk meningkatkan kontras (atau dibiarkan apa adanya)
Daftar material
- 2 Raspberry Pi Pico, 1 ADuM1201BRZ, 2 Cap 1206 SMD 100nF, 2 konektor USB-A PCB, 2 Headers 2.54 1x03
- Total harga: 11,53 euro
- Konektor USB-A bisa memakai Molex MX-67643-0910 atau alternatif lebih murah dengan dimensi yang sama
- Langkah tambahan: pembuatan PCB (Gerber disediakan, JLC bisa membuatnya dengan biaya beberapa dolar, pilih ketebalan 1,6mm), pencetakan 3D casing (file
stldisediakan, membutuhkan sekitar 33g filamen)
FAQ
- Apakah ini bisa berfungsi hanya dengan dua Pico tanpa PCB dan isolator?
- Isolator direkomendasikan, tetapi tanpa itu pun mungkin tetap bisa berfungsi.
- Bagaimana jika resolusi monitornya berbeda?
- Pergerakan mouse dilakukan dalam ruang koordinat abstrak, dan komputer menghitung pemetaannya ke layar fisik, jadi seharusnya tetap berfungsi tanpa masalah.
- Di mana saya bisa membeli produk ini?
- Tidak dijual; ini adalah proyek hobi pribadi nonkomersial.
- Saat layar aktif berubah karena mouse, apakah keyboard juga ikut berpindah (dan sebaliknya)?
- Ya, dibuat agar berfungsi seolah-olah hanya ada satu komputer.
- Apakah ini bekerja dengan dongle combo keyboard/mouse seperti Logitech Unifying Receiver?
- Pada versi saat ini tidak berfungsi karena diasumsikan mouse terhubung ke port lain. Perlu diteliti bagaimana Logitech Unifying Receiver bekerja lalu menambahkan dukungannya.
- Apakah ini bekerja dengan mouse dan keyboard nirkabel yang masing-masing punya receiver terpisah?
- Belum diuji untuk kasus seperti ini, jadi mungkin ada masalah tak terduga, tetapi secara teori seharusnya langsung bisa berfungsi.
Kekurangan
- Perhatian: untuk menggunakan fitur ini, kedua komputer harus terhubung dan menyala (setiap board mendapat daya dari komputer yang terhubung).
- Kode masih perlu dirapikan, direfaktor, dan sebagainya.
- Kadang masih ada bug dan perilaku aneh.
- Belum diuji dengan berbagai perangkat, jadi tidak diketahui bagaimana hasilnya pada hardware pengguna.
- Pico-PIO-USB telah dipatch untuk mendukung kontrol LED keyboard, yang biasanya ditangani oleh TinyUSB dalam mode host.
Penafian
- Siapa pun yang mencoba proyek ini harus memahami dan mengakui bahwa penulis tidak bertanggung jawab atas cedera, kerusakan, atau konsekuensi lain apa pun.
- Keselamatan itu penting, jadi penting untuk mengambil tindakan pencegahan yang diperlukan dan bertanggung jawab atas keselamatan diri sendiri sepanjang proyek.
- Hindari sengatan listrik, luka bakar, stres, atau marah; kerjakan dengan santai dan nikmati prosesnya.
Pendapat GN⁺:
- Artikel ini bisa sangat berguna bagi orang yang menggunakan dua komputer. Terutama menarik bagi pengguna yang ingin meningkatkan efisiensi kerja sambil berbagi satu keyboard dan mouse.
- Karena open source dan menggunakan pendekatan DIY, ini bisa menjadi proyek yang menarik bagi orang yang tertarik pada teknologi. Pengguna dapat menyesuaikan dan meningkatkan sistem sesuai kebutuhan mereka.
- Proyek ini menunjukkan semangat inovatif komunitas dalam memecahkan masalah teknis. Dengan pengguna menyelesaikan masalahnya sendiri dan membagikan prosesnya, orang lain juga bisa mendapatkan manfaatnya.
1 komentar
Opini Hacker News
Menarik bahwa ini bisa mendeteksi tepi layar tanpa perangkat lunak klien.
Sudah lebih dari sepuluh tahun menggunakan solusi perangkat lunak bernama Synergy. Perpindahan terjadi seketika lewat Wi‑Fi dan juga bekerja lintas Windows/Mac/Linux.
Saat mencoba memindahkan slider YouTube dengan tepat ke posisi tertentu, kadang mouse bergerak terlalu sensitif sehingga tangan harus digerakkan dengan sangat hati-hati.
,) dan titik (.) untuk scrub video per frame.Di Windows, ada alat bernama Mouse Without Borders yang dikembangkan oleh Microsoft Garage dan kini menjadi bagian dari Windows PowerToys.
Terinspirasi dari proyek-proyek serupa lain, seseorang membuat versinya sendiri.
Pernah membeli 4 USB hub untuk memindahkan keyboard dan mouse, tetapi kebanyakan perangkatnya sangat buruk sehingga harus mencabut hub secara fisik beberapa kali sehari.
Salah satu keluhan besar adalah saat memakai switch USB 3.0 untuk memindahkan input mouse dan keyboard antara dua PC.
Saat ini memakai switch KVM, dan karena butuh 2–3 detik untuk berpindah, sebagian besar waktu justru SSH ke komputer lain dan memakai sesi tmux.
Ini perkembangan yang luar biasa.
Synergy menyelesaikan masalah ini dengan baik hanya lewat perangkat lunak. Memang bukan gratis atau open source, tetapi harganya relatif terjangkau.