Открытый клиент удалённого рабочего стола с тачпадом чехла, общим диском, микрофоном и агентом для Windows — бесплатно, без рекламы и монетизации.
Я веб‑разработчик, и моя работа устроена так, что «на связи» нужно быть в самый неожиданный момент: то прод упал в субботу вечером, то заказчик просит срочно поправить одну строчку, то нужно просто посмотреть, как ведёт себя вёрстка на боевом окружении. Всё это — на моём ПК: там настроенные программы, базы, локальный сервер для тестов и все проекты, которые я веду. ПК стоит дома, и уезжать от него далеко не хочется.
Какое‑то время я честно пытался решить это ноутбуками. И каждый раз упирался в одно и то же.
Почему ноутбук не подошёл
Ноутбук, который тянет мои задачи, — это тяжёлая машина с шумными вентиляторами и двумя килограммами в рюкзаке. Лёгкий и тонкий — не тянет: ни сборку, ни несколько запущенных сервисов, ни монтаж видео, который мне время от времени тоже нужен.
Вторая проблема оказалась даже неприятнее первой. Ноутбук — это отдельная система, которую надо поддерживать: обновления, настройки, версии SDK, лицензии. И главное — проекты. Всё уже развёрнуто на ПК. Чтобы работать с ноутбука, нужно либо дублировать каждый проект и периодически синхронизировать их, либо каждый раз что‑то переносить руками.
Планшет, который лежал без дела

У меня давно есть Android‑планшет, и пользуюсь я им часто — но в основном для чтения и видео. Как рабочую машину я его не воспринимал, потому что софта, который решал бы мою задачу, найти не удалось.
Я перепробовал довольно много всего. Приложения для удалённого доступа к ПК в основном работали на «троечку»: картинка есть, но тачпад корректно не поддерживается, клавиатура чехла в полной мере так же не работает, например сочетания клавиш вроде Win или Alt+Tab забирает себе Android, а не Windows. Приложения «для программирования» на планшете — это вообще отдельный жанр: редактор без нормальной сборки, без терминала, без возможности запустить то, что реально крутится у меня на ПК. Для простейшего редактирования — годится. Для работы — нет.
Так что планшет лежал и выполнял роль читалки, а мысль «а неплохо бы работать за ним» оставалась мыслью.
Первый промт и час «плясок» до первого коннекта к ПК
Дальше случилось то, что случилось со всеми нами за последние пару лет: появились инструменты, с которыми можно писать код, не умея писать код для этой платформы. Я не разрабатываю мобильные приложения. Никогда не писал на Kotlin, не открывал Android Studio, не разбирался в жизненном цикле Activity. Но в какой‑то момент я понял, что это больше не блокер.
Я поставил Android Studio, набросал макет — как примерно должно выглядеть приложение — и попросил ИИ: «сделай приложение для подключения к моему ПК по стандартному протоколу RDP». Первый результат, разумеется, не заработал. Дальше был час проб и ошибок: дебаг подключения, настройки, TLS, аутентификации, того, что сервер присылает и в каком порядке ожидает ответа.
И вот в какой‑то момент на экране планшета — у меня это Samsung Tab S9 Ultra — появился экран моего рабочего ПК, живой рабочий стол Windows, на котором можно уже что‑то делать.
Это ощущение сложно описать. Час назад у меня не было приложения, а сейчас у меня на кухонном столе рабочий стол компьютера, который стоит в другой комнате. Первый «отрыв» от рабочего ПК есть. На данный момент, используя NPV («все имена изменены»:) или внешний IP адрес от провайдера, можно выйти из помещения на свежий воздух и что‑то делать вне «4 х‑стенной тюрьмы».
Клавиатура, тачпад и прочая «мелочь»
Первое подключение — это процентов десять работы. Остальные девяносто — это довести ощущение до уровня «ноутбук».
Чехол с магнитной клавиатурой и тачпадом у планшета был, но приложение про него ничего не знало: тачпад не работал как тачпад, жесты прокрутки отсутствовали, курсор двигался, но всё это не соответствовало ожиданиям и не давало комфортного ощущения. Пришлось разбираться, как Android отдаёт события от тачпада чехла, как они соотносятся с осями экрана (тачпад в чехле установлен боком — отдельная калибровка), как сделать ускорение курсора, инерцию прокрутки, двупальцевую прокрутку в стиле macOS, щипок как Ctrl + колесо и свайпы назад‑вперёд в браузере.
Отдельная песня — сочетания клавиш. Android забирает себе Win, Alt+Tab и много чего ещё, поэтому в приложении появилась служба специальных возможностей, которая перехватывает их и отправляет на ПК. Без неё работать за планшетом с Windows‑привычками невозможно.
Потом оказалось, что планшетом хочется пользоваться и без чехла — просто с экрана. Так появились настройки для чисто сенсорного управления, а для смартфона — отдельная раскладка: панель сеанса внизу двумя строками, кнопка «Клавиатура», экранная клавиатура Android, которая работает как ввод на ПК.
Что получилось в итоге
За последние недели приложение обросло функциями, которые я добавлял ровно в тот момент, когда они мне становились нужны.
Рабочий стол. RDP с TLS и NLA, закрепление сертификата ПК по SHA-256. Графика двумя путями: обычные битмап‑обновления для Windows и конвейер RDPEGFX для Ubuntu с GNOME Remote Desktop. Сеанс продолжается, даже если свернуть приложение, — служба переднего плана не даёт Android заморозить соединение. При повороте планшета меняется размер рабочего стола, без выхода из сеанса. Масштаб интерфейса Windows и глубина цвета настраиваются на каждый ПК отдельно.
Тачпад чехла как в ноутбуке. Курсор с ускорением, левая‑правая‑средняя кнопка, физический щелчок, прокрутка двумя пальцами с настраиваемой силой и инерцией, щипок — масштаб, быстрый свайп — назад и вперёд, свайпы тремя‑четырьмя пальцами — обзор окон и виртуальные рабочие столы, перетаскивание «лежащий палец + второй палец», как на трекпаде Mac.
Жесты на самом экране. Три‑пять пальцев превращаются в сочетания клавиш Windows и GNOME: копировать, вставить, вырезать, отмена, повтор, Alt+Tab, рабочий стол.
Файлы, буфер и звук. Текст через буфер обмена в обе стороны. Файлы тоже: скопировали файл на планшете — вставили на ПК по Ctrl+V, и наоборот. Общий диск — папка планшета видна в Проводнике Windows как сетевой диск, в том числе только для чтения. Звук ПК идёт на планшет. Микрофон планшета виден в Windows как устройство записи, камеры планшета — как обычные веб‑камеры 720 p в Zoom, Teams и «Камере».
Список компьютеров. Не просто список IP: карточки с живым превью экрана, поиском по сети одной кнопкой, фильтрами по доступности и ОС, человеческими статусами («онлайн», «за ПК работают», «экран заблокирован», «сон», «гибернация», «выключен»). Питание ПК — выключить, перезагрузить, сон, гибернация — тремя путями: через агент, через SSH для Ubuntu или через сеанс RDP, если ничего другого нет. Спящий ПК приложение будит по Wake‑on‑LAN и ждёт, пока поднимется порт RDP.
HiWeb Agent для Windows. Это необязательная, но очень приятная часть. Агент устанавливается прямо из приложения: exe доставляется на ПК как временный диск через уже открытый сеанс и запускается в окне «Выполнить» — без скачивания, флешек и почты. С ним появляется команда «Переключиться на Планшет» в меню в трее: ПК сам зовёт планшет, сеанс открывается, мониторы гаснут. Уведомления Windows приходят на планшет, пока приложение свёрнуто. Сенсорная клавиатура Windows показывается сама, когда планшет без клавиатуры. А ещё агент следит за журналами RDP: замечает подбор пароля и вход с незнакомого адреса и предлагает заблокировать подсеть в брандмауэре одним нажатием.
Как это устроено под капотом
Самое интересное в проекте — то, что RDP‑клиент написан с нуля на Kotlin, без FreeRDP и без NDK. Готовой сборки FreeRDP для Android нет, а тащить в проект чужой протокольный слой мне не хотелось. Получилась цепочка X.224 → TLS → CredSSP/NTLM → MCS → согласование возможностей → графика, плюс статические и динамические каналы: буфер обмена (cliprdr), диск (rdpdr), звук (rdpsnd), микрофон (AUDIO_INPUT), камеры (RDCamera), смена размера стола (RDPEDISP) и агент (HiWeb::Agent). Раскладки PDU я сверял по исходникам FreeRDP — документации по протоколу в открытом доступе много, но местами она расходится с тем, что реально присылает Windows.
Агент для Windows — это C# 5 на.NET Framework 4.8: так его можно собрать компилятором, который уже есть в системе, без установки чего‑либо. Связь агент ↔ планшет — по локальной сети по TCP 47 853 с подписью HMAC, плюс UDP‑канал для команды «переключиться».
Логика, которую можно проверить без устройства, покрыта JVM‑тестами: разбор PDU, жесты тачпада и тачскрина, инерция прокрутки, определение ОС по сети, криптография, статусы ПК.
Честные ограничения
Чтобы не создавать ложных ожиданий, сразу скажу, где приложение не всесильно.
Клиент рассчитан на Windows и Ubuntu с GNOME Remote Desktop. Другие RDP‑серверы не гарантируются.
Микрофон и камера планшета перенаправляются только в Windows: GNOME Remote Desktop не отдаёт эти
устройства в сеанс.
Камера передаёт несжатый кадр, поэтому ограничена 720 p — компромисс ради отсутствия стороннего кодека.
Сенсорная клавиатура Windows и уведомления требуют агента. Без него сеанс полностью работоспособен, просто чуть менее удобен.
Защита RDP работает только на Windows и только с агентом.
На планшете с физической клавиатурой системная клавиатура Android в сеансе не показывается — ввод идёт с клавиатуры и тачпада. Это сделано намеренно.
Как начать
Установить APK на планшет или смартфон (Android 13 и новее).
На ПК включить «Удалённый рабочий стол» в параметрах системы или скриптом из репозитория.
В приложении нажать «Поиск» и добавить найденный ПК — или ввести адрес вручную.
Для Win и Alt+Tab включить службу «RemoteDesk: передача клавиш» в специальных возможностях.
По желанию установить агент кнопкой «Установить агент» в меню сеанса.
При первом запуске тачпад попросит один раз провести пальцем по осям — так приложение узнаёт, как повёрнут тачпад в чехле.






Заходить на рабочий стол ПК со смартфона — так себе идея, но это тоже работает. В конце концов, кейс с подключением смартфона к дисплею и клавиатуре с мышкой — тоже может оказаться нужным. Поэтому само приложение адаптировано под мобилку.


Вместо заключения
Я делал это приложение для себя — чтобы не носить ноутбук и не дублировать проекты. Оно лежит в открытом доступе, без рекламы, без монетизации, без «премиум‑версии». Если кому‑то окажется полезным, я буду только рад.
Там README с описанием возможностей и сборкой, исходники клиента, исходники агента и протокол агента. Issues и пул‑реквесты открыты.
hiWeb RemoteDesk v1.1 против «Windows App» для Android
1. Назначение и модель работы
hiWeb RemoteDesk | Windows App (Android) | |
|---|---|---|
Что это | RDP-клиент «свой ПК + планшет», написан с нуля на Kotlin | Официальный клиент Microsoft (наследник Remote Desktop), закрытый |
К чему подключается | Windows (RDP, TLS+NLA) и Ubuntu (GNOME Remote Desktop, порт 3390) | Azure Virtual Desktop, Windows 365, Dev Box, RDS, «Remote PC» (Windows) |
Вход | Логин/пароль на каждый ПК, пароли в Android Keystore | Вход в облако (рабочая/учебная учётка Entra), для Remote PC можно без входа |
Аккаунт Microsoft | не нужен | нужен для облачных сервисов; личная MSA не принимается |
Список ПК | свой: карточки, поиск по локальной сети, фильтры, сортировка | лента ресурсов из Entra; Remote PC добавляется вручную |
Лицензия | исходники открыты (файла лицензии в репозитории нет) | проприетарная, бесплатная |
2. Подключение и сеть
hiWeb RemoteDesk | Windows App (Android) | |
|---|---|---|
Поиск ПК в сети | ✅ скан подсети + определение ОС по баннеру SSH и ответу RDP | ❌ только ввод адреса вручную |
Пробуждение по сети (WoL) | ✅ будит спящий ПК по MAC и ждёт порт 3389 | ❌ |
RD Gateway / прокси | ❌ прямое TCP-подключение | ✅ шлюзы, прокси, Private Link |
RDP Shortpath (UDP, STUN/TURN) | ❌ только TCP | ✅ управляемые и публичные сети |
Сертификат сервера | ✅ закрепление по SHA-256 | ✅ проверка штатными средствами, политики администратора |
Сеанс в свёрнутом приложении | ✅ foreground-служба держит соединение | не заявлено в документации |
3. Экран и графика
hiWeb RemoteDesk | Windows App (Android) | |
|---|---|---|
Графический конвейер | свой: bitmap-обновления + RDPEGFX (RemoteFX Progressive), без H.264/AVC | полный стек Microsoft: H.264/HEVC, аппаратное декодирование |
Аппаратное ускорение | обычная отрисовка Android | ✅ переключатель «Use hardware acceleration when possible» |
Поворот экрана | ✅ меняет размер рабочего стола на лету (RDPEDISP + GFX), с анимацией | ❌ динамическое разрешение на Android не поддерживается: фиксированное «как на устройстве»/своё, ориентация auto/lock |
Масштаб интерфейса Windows | ✅ 100–300 % на каждый ПК (применяется к новому сеансу) | ✅ процент масштаба в «Custom» разрешении |
Глубина цвета | ✅ 16/24/32 бита на ПК | в интерфейсе Android не настраивается |
Несколько мониторов | ❌ | ❌ (на Android); внешний монитор ✅, зависит от устройства |
Видео/мультимедиа | PCM-звук; видео играет как картинка | ✅ оптимизации Teams (WebRTC), лучше для видео и звонков |
4. Ввод — главное отличие
hiWeb RemoteDesk | Windows App (Android) | |
|---|---|---|
Тачпад чехла (S9 Ultra) | ✅ полноценный тачпад ноутбука: ускорение курсора, левая/правая/средняя кнопка, физический щелчок, калибровка осей | ⚠️ тачпад ОС отдаёт как мышь или касания; жесты распознаёт Android до приложения, своей логики тачпада нет |
Прокрутка с инерцией | ✅ в стиле macOS, сила прокрутки и инерции на каждый ПК | ⚠️ обычная прокрутка средствами Android |
Щипок / свайпы | ✅ щипок = Ctrl+колесо, свайп = назад/вперёд, 3–4 пальца = обзор окон и рабочие столы | ⚠️ только штатные жесты Windows App (direct touch / mouse pointer) |
Режимы касания | пальцы по столу как мышь | ✅ два режима: «direct touch» и «mouse pointer» (у нас аналога нет) |
Нативные касания, мультитач, перо с давлением | ❌ касания переводятся в мышь/жесты | ✅ передаются в сеанс как есть |
Win, Alt+Tab и прочие «забранные» сочетания | ✅ служба спец. возможностей отправляет их на ПК | ⚠️ частично: через панель подключения/настройки, с ограничениями |
Экранная клавиатура | ✅ своя кнопка, символы уходят скан-кодами или Unicode; скан-коды для IME | ✅ значок клавиатуры в панели подключения |
Режим скан-кодов/Unicode | ✅ по факту (символы скан-кодом либо Unicode-событиями) | ✅ переключатель «Use scancode input when available» |
Сенсорная клавиатура Windows (TabTip) | ✅ через HiWeb Agent: сама всплывает при щелчке в поле ввода | ⚠️ только своя экранная клавиатура клиента |
5. Устройства, файлы, звук
hiWeb RemoteDesk | Windows App (Android) | |
|---|---|---|
Звук ПК на планшете | ✅ rdpsnd, только несжатый PCM 16 бит | ✅, включая сжатые форматы |
Микрофон планшета в Windows | ✅ audin (MS-RDPEAI), кнопка в сеансе | ✅ переключатель на каждый ПК / общее разрешение |
Камера планшета в Windows | ✅ MS-RDPECAM, до 720p, MJPG; несколько камер как отдельные устройства | ✅ «Камера» в перенаправлении |
Буфер обмена | ✅ текст в обе стороны | ✅ текст в обе стороны (файлы и картинки — нет; односторонний режим на Android не поддерживается) |
Файлы через буфер | ✅ файл туда и обратно, прогресс, сохранение в | ❌ (только текст) |
Общий диск | ✅ SAF-папка как | ✅ «Storage» как сетевой диск; выбор папки на Android не документирован |
Принтеры, смарт-карты, USB | ❌ | ❌ на Android (принтеры ❌, смарт-карты ❌) |
Геолокация | ❌ | ✅ |
6. Безопасность
hiWeb RemoteDesk | Windows App (Android) | |
|---|---|---|
Транспорт и вход | TLS, NLA (CredSSP/NTLM), закрепление сертификата | TLS, NLA, Entra SSO, passkeys/WebAuthn, внешние идентичности |
Пароли на устройстве | AES-GCM, ключ в Android Keystore | хранит токены Entra; пароли ПК — по политике |
Защита от кражи экрана и водяные знаки | ❌ | ✅ Screen capture protection (через Intune MAM), водяные знаки |
Политики организации | ❌ | ✅ Intune, условный доступ, запрет перенаправлений |
Защита самого RDP-порта на ПК | ✅ HiWeb Agent: журнал входов, детект подбора пароля, блокировка подсети в брандмауэре | ❌ (это задача ПК/шлюза, не клиента) |
7. Уникальное у каждого
Только у hiWeb RemoteDesk
HiWeb Agent: «Переключиться на Планшет» из трея ПК, уведомления Windows на планшет, превью экрана без сеанса, иконка-ноутбук с батареей.
Состояние ПК по-человечески («за ПК работают», «экран заблокирован», «сон») и кнопки питания: через агента, по SSH для Ubuntu или через сеанс RDP.
Кнопка «Повернуть» в сеансе, работающая при выключенном автоповороте.
Настройки на лету: сила прокрутки/инерции, скорость мыши и колёсика, захват жестов, микрофон.
Ubuntu (GNOME Remote Desktop) как полноценная цель, включая питание по SSH.
Только у Windows App
AVD, Windows 365 Cloud PC, Dev Box, RDS и RemoteApp — корпоративная инфраструктура целиком.
SSO/passkeys, условный доступ, Intune, шифрование политиками.
Оптимизации Microsoft Teams, мультимедиа-перенаправление (звонки/видео), Shortpath/UDP.
Нативные касания, перо и мультитач Windows, режим «direct touch».
Широкая локализация интерфейса (ru-RU в том числе).

