کنترل و اتصال
LocalHub
لوکالهاب
کامپیوتر ویندوزی را از گوشی کنترل کن، بدون هیچ ابری
یک جفت برنامهٔ کاملاً محلی: روی کامپیوتر اجرا میشود و گوشی از طریق مرورگر یا اپ اندروید به آن وصل میشود. تاچپد، کیبورد، کنترل صدا، انتقال فایل، وضعیت سیستم و استریم صفحه — همه روی وایفای خانه.
- وضعیت
- پایدار
- پلتفرم
- ویندوز
- فناوری
- Go 1.22+
- پورت پیشفرض
- 8899
چرا ساخته شده
مشکلی که حل میکند
برای کنترل کردن کامپیوتر از روی کانال، معمولاً باید به یک سرویس ابری وصل شوی، حساب بسازی و ترافیکت را از بیرون رد کنی. این کار هم کُند است هم حریم خصوصی را از بین میبرد.
برای چه کسی
کسی که لپتاپش به تلویزیون یا پروژکتور وصل است و میخواهد از روی مبل یا کانال، کامپیوتر را کنترل کند.
قابلیتها
10 قابلیت، هر کدام با توضیح کوتاه و مشخص.
- 01
تاچپد و ایرماوس
حرکت روان نشانگر، کلیک چپ با یک ضربه، کلیک راست با دو انگشت و اسکرول عمودی دو انگشتی.
- 02
انتقال فایل روی شبکهٔ محلی
فایل بین کامپیوتر و گوشی رد و بدل میشود، با نوشتن اتمی تا فایل نیمکاره باقی نماند.
- 03
همگامسازی دوطرفهٔ کلیپبورد
متنی که در گوشی کپی میکنی، بلافاصله در کامپیوتر قابل چسباندن است.
- 04
کنترل صدا و رسانه
صدای کل سیستم، قطع صدا، پخش و توقف و رفتن به قطعهٔ بعدی.
- 05
قدرت و نمایشگر
قفل کردن، خاموش کردن نمایشگر، خواب و خاموشی زماندار با امکان لغو.
- 06
وضعیت سیستم
نمودار زندهٔ پردازنده و حافظه و فهرست پردازشهای پر مصرف با امکان بستن آنها.
- 07
ارائه و اسلاید
دکمههای بزرگ برای اسلاید بعد و قبل، حالت تمامصفحه و سیاهکردن صفحه.
- 08
ماشینحساب و تایپ سریع
صفحهکلید عددی با لرزش لمسی و نوار نوشتن متن برای فرستادن جمله به پنجرهٔ فعال.
- 09
اجرای سریع برنامهها
اجرای ترمینال، ویرایشگر، مرورگر، فایلمنیجر و مدیریت وظیفه با یک ضربه.
- 10
نمای زندهٔ صفحه
پیشنمایش زندهٔ دسکتاپ برای دیدن پیشرفت یک کار بدون بلند شدن.
رابط در عمل
این تصاویر از اجرای واقعی خود برنامه گرفته شدهاند، نه ماکت طراحیشده.
موبایل همان رابط روی صفحهٔ کوچک
-
همان رابط روی موبایل
راهاندازی
دستورها همانهایی هستند که در خود پروژه اجرا میشوند. هر بلوک یک دکمهٔ کپی دارد.
پیشنیازها
- Go 1.22 یا بالاتر برای ساخت از سورس
- ویندوز برای مسیر کنترل سیستم
- گوشی و کامپیوتر روی یک شبکهٔ وایفای
-
روی کامپیوتر فایل اجرایی را باز کن
یک پنجرهٔ تیره باز میشود که آدرس اتصال و یک کد QR را نشان میدهد.
textLocalHub.exe -
روی گوشی وصل شو
دو راه داری: اپ اندروید را نصب کن، یا فقط کد QR روی صفحهٔ کامپیوتر را با دوربین اسکن کن. راه دوم هیچ نصبی لازم ندارد.
texthttp://<PC-LAN-IP>:8899آدرس واقعی را از پنجرهٔ برنامه روی کامپیوتر بردار؛ آدرس داخل مرورگر باید همان باشد.
نشانهٔ موفقیت: بعد از باز شدن آدرس، صفحهٔ LocalHub با تبهای Media / Remote / Control / Share بالا میآید.
پیشنیاز این روش: Go 1.22+ · برای ساخت APK: JDK 17 و Android SDK
-
تستها را اجرا کن
bashcd /home/ubuntu/LocalHub go test ./... -
نسخهٔ ویندوزی را بساز
اسکریپت ساخت، آیکون را کامپایل میکند و بعد باینری را میسازد.
bash./scripts/build_windows.sh -
نسخهٔ اندروید را بساز
این اسکریپت داراییهای وب را همگام میکند، بازرسها را اجرا میکند و در پایان APK را امضا و بررسی میکند.
bash./android/build_apk.shرمز کلید امضا از متغیر محیطی LOCALHUB_KEYSTORE_PASS یا فایل ~/.config/LocalHub/keystore.pass خوانده میشود و داخل مخزن نیست.
-
حالت بدون رابط گرافیکی (برای سرور)
bash./localhub_linux -headless -port 8899
نشانهٔ موفقیت: خروجی go test باید همهٔ بستهها را ok نشان دهد.
در عمل
افزودن پوشهٔ اشتراکی
پوشههای اشتراکی از خود رابط مدیریت میشوند و در یک فایل تنظیمات محلی ذخیره میشوند.
کنترل صدا از تب Control
تب Audio لغزندهٔ صدای کل سیستم و دکمههای پخش، توقف، بعدی و قبلی را دارد.
استریم صفحه
در تب Screen، نمای زندهٔ دسکتاپ با چند سطح کیفیت پخش میشود. استریم روی یک اتصال جداگانه میرود تا حرکت نشانگر را کُند نکند.
محدودیتها و عیبیابی
این بخش عمداً صریح است؛ محدودیتها پنهان نشدهاند.
- مسیر ضبط صفحهٔ ویندوز روی یک دستگاه ویندوزی واقعی آزمایش نشده است؛ عدد کارایی فعلی از همان کد فیلتر روی لینوکس اندازهگیری شده.
- هیچ تستی روی گوشی اندروید واقعی انجام نشده، چون روی سرور ساخت شبیهساز اجرا نمیشود. قویترین شاهد موجود، بررسی بایتکد بستهبندیشده و رندر داراییها است.
- برای کار کردن، هر دو دستگاه باید روی یک شبکهٔ محلی باشند.
مشکلهای واقعی و راهحلشان
گوشی به آدرس وصل نمیشود
علت برنامه ممکن است آدرس یک کارت شبکهٔ مجازی را نشان دهد که از گوشی قابل دسترسی نیست.
راهحل در پنجرهٔ برنامه آدرس اصلی را از فهرست آدرسها بردار و آدرسهای ردشده را نادیده بگیر.
فایل آپلود نمیشود و دلیلش معلوم نیست
علت پیام خطای عمومی جای دلیل واقعی را میگیرد.
راهحل از نسخهای استفاده کن که دلیل واقعی خطا و نوار پیشرفت را نشان میدهد.
بعد از تغییر رابط، صفحهٔ قدیمی نمایش داده میشود
علت داراییهای وب در زمان کامپایل داخل باینری جاسازی میشوند.
راهحل بعد از هر تغییر در پوشهٔ رابط، پروژه را دوباره بساز.
ارتباط با ابزارهای دیگر
فقط ارتباطهایی که در خود پروژهها قابل اثباتاند.
منابع این اطلاعات
- README پروژهٔ LocalHub
- go.mod و ساختار بستههای internal
- unit سرویس و اسکریپتهای ساخت
- اجرای واقعی باینری لینوکسی و رندر رابط
این پروژه مخزن عمومی ندارد، پس هیچ لینک مخزن یا دانلودی برای آن ساخته نشده است.