Files
Meshtastic-Android/ru-rRU/user/desktop.html
T

5 lines
39 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <link rel="stylesheet" href="/Meshtastic-Android/assets/css/just-the-docs-default.css"> <link rel="stylesheet" href="/Meshtastic-Android/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet"> <style id="jtd-nav-activation"> .site-nav ul li a { background-image: none; } </style> <script src="/Meshtastic-Android/assets/js/vendor/lunr.min.js"></script> <script src="/Meshtastic-Android/assets/js/just-the-docs.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Begin Jekyll SEO tag v2.9.0 --> <title>Настольное приложение | Meshtastic Android</title> <meta name="generator" content="Jekyll v4.4.1" /> <meta property="og:title" content="Настольное приложение" /> <meta property="og:locale" content="ru_rRU" /> <meta name="description" content="Установка и использование приложения Meshtastic Desktop на Linux, macOS и Windows — подключения, функционал и сочетания клавиш." /> <meta name="twitter:description" property="og:description" content="Установка и использование приложения Meshtastic Desktop на Linux, macOS и Windows — подключения, функционал и сочетания клавиш." /> <link rel="canonical" href="/Meshtastic-Android/ru-rRU/user/desktop.html" /> <meta property="og:url" content="/Meshtastic-Android/ru-rRU/user/desktop.html" /> <meta property="og:site_name" content="Meshtastic Android" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="Настольное приложение" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","description":"Установка и использование приложения Meshtastic Desktop на Linux, macOS и Windows — подключения, функционал и сочетания клавиш.","headline":"Настольное приложение","url":"/Meshtastic-Android/ru-rRU/user/desktop.html"}</script> <!-- End Jekyll SEO tag --> <!-- Inter font from Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> <style> /* M3-inspired typography */ :root { --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace; } body, .site-title, .search-input { font-family: var(--font-sans) !important; } code, pre, .highlight { font-family: var(--font-mono) !important; font-size: 0.875em; } /* M3 surface elevation & rounding */ .main-content table { border-radius: 12px; overflow: hidden; } .main-content blockquote { border-radius: 12px; padding: 1rem 1.25rem; border-left-width: 4px; } .main-content pre { border-radius: 12px; } .main-content code { border-radius: 6px; padding: 0.15em 0.4em; } /* Smooth transitions for theme switching */ body, .side-bar, .main, .main-content, .site-header, .search-input, .search-results, a { transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; } /* Theme toggle button styling */ .theme-toggle { background: none; border: 1px solid var(--border-color, #D5D6E0); border-radius: 20px; padding: 6px 12px; cursor: pointer; font-family: var(--font-sans); font-size: 0.75rem; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; color: inherit; margin: 0 auto; transition: background-color 0.2s ease, border-color 0.2s ease; } .theme-toggle:hover { background-color: rgba(128, 128, 128, 0.1); } .theme-toggle-wrap { text-align: center; padding: 12px 0 4px; } /* Heading weight refinement */ h1, h2, h3, h4, h5, h6 { font-weight: 600; letter-spacing: -0.01em; } h1 { font-weight: 700; letter-spacing: -0.02em; } /* Smooth anchor scroll */ html { scroll-behavior: smooth; } /* Language switcher */ .language-switcher { display: inline-block; position: relative; margin-left: 8px; } .language-switcher-btn { cursor: pointer; font-size: 0.8rem; font-weight: 500; font-family: var(--font-sans); list-style: none; padding: 4px 10px; border: 1px solid var(--border-color, #D5D6E0); border-radius: 16px; display: inline-flex; align-items: center; gap: 4px; transition: background-color 0.2s ease; } .language-switcher-btn:hover { background-color: rgba(128, 128, 128, 0.1); } .language-switcher[open] .language-switcher-list { display: block; } .language-switcher-list { position: absolute; top: 100%; right: 0; left: auto; z-index: 100; list-style: none; padding: 8px 0; margin: 4px 0 0; min-width: 140px; background: var(--body-background-color, #fff); border: 1px solid var(--border-color, #D5D6E0); border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); } .language-switcher-list li { padding: 0; } .language-switcher-list a { display: block; padding: 6px 16px; text-decoration: none; font-size: 0.85rem; color: inherit; } .language-switcher-list a:hover { background-color: rgba(103, 234, 148, 0.15); } /* Version switcher (shares the language-switcher dropdown styling) */ .version-switcher { margin-left: 8px; } .version-switcher[hidden] { display: none; } /* Link out to the upstream meshtastic.org docs */ .upstream-docs-link { display: inline-flex; align-items: center; margin-left: 8px; padding: 4px 10px; border: 1px solid var(--border-color, #D5D6E0); border-radius: 16px; font-size: 0.8rem; font-weight: 500; font-family: var(--font-sans); text-decoration: none; color: inherit; transition: background-color 0.2s ease; } .upstream-docs-link:hover { background-color: rgba(128, 128, 128, 0.1); } </style> <script> // Respect OS preference on first visit, then remember user choice (function() { var stored = localStorage.getItem('jtd-theme'); if (stored) return; // will be applied by jtd.setTheme below if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { localStorage.setItem('jtd-theme', 'meshtastic-dark'); } })(); </script> </head> <body> <a class="skip-to-main" href="#main-content">Skip to main content</a> <svg xmlns="http://www.w3.org/2000/svg" class="d-none"> <symbol id="svg-link" viewBox="0 0 24 24"> <title>Link</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE --> <symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"> <title id="svg-external-link-title">(external link)</title> <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line> </symbol> <symbol id="svg-doc" viewBox="0 0 24 24"> <title>Document</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> </svg> </symbol> <symbol id="svg-search" viewBox="0 0 24 24"> <title>Search</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </symbol> <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md --> <symbol id="svg-copy" viewBox="0 0 16 16"> <title>Copy</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/> <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/> </svg> </symbol> <symbol id="svg-copied" viewBox="0 0 16 16"> <title>Copied</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16"> <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/> </svg> </symbol> </svg> <header class="side-bar"> <div class="site-header"> <a href="/Meshtastic-Android/" class="site-title lh-tight"> Meshtastic Android </a> <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false"> <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg> </button> </div> <nav aria-label="Main" id="site-nav" class="site-nav"> <ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/en/" class="nav-list-link">Home</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="User Guide submenu" aria-expanded="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/Meshtastic-Android/en/user.html" class="nav-list-link">User Guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/onboarding.html" class="nav-list-link">Getting Started</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/connections.html" class="nav-list-link">Connections</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/messages-and-channels.html" class="nav-list-link">Messages & Channels</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/nodes.html" class="nav-list-link">Nodes</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/node-metrics.html" class="nav-list-link">Node Metrics</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/map-and-waypoints.html" class="nav-list-link">Map & Waypoints</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/settings-radio-user.html" class="nav-list-link">Settings — Radio & User</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/settings-module-admin.html" class="nav-list-link">Settings — Modules & Admin</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/telemetry-and-sensors.html" class="nav-list-link">Telemetry & Sensors</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/tak.html" class="nav-list-link">TAK Integration</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/mqtt.html" class="nav-list-link">MQTT</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/discovery.html" class="nav-list-link">Discovery</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/firmware.html" class="nav-list-link">Firmware Updates</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/desktop.html" class="nav-list-link">Desktop App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/signal-meter.html" class="nav-list-link">How the Meshtastic Signal Meter Works</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/units-and-locale.html" class="nav-list-link">Units, Measurement & Locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/translate.html" class="nav-list-link">Translate the App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/android-auto.html" class="nav-list-link">Android Auto</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/app-functions.html" class="nav-list-link">App Functions</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/widget.html" class="nav-list-link">Home Screen Widget</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/help-and-docs.html" class="nav-list-link">Help & In-App Docs</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/user/debug-logs.html" class="nav-list-link">Debug Logs</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Developer Guide submenu" aria-expanded="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/Meshtastic-Android/en/developer.html" class="nav-list-link">Developer Guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/architecture.html" class="nav-list-link">Architecture</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/codebase.html" class="nav-list-link">Codebase</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/adding-a-feature-module.html" class="nav-list-link">Adding a Feature Module</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/navigation-and-deep-links.html" class="nav-list-link">Navigation & Deep Links</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/transport.html" class="nav-list-link">Transport</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/persistence.html" class="nav-list-link">Persistence</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/testing.html" class="nav-list-link">Testing</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/contributing.html" class="nav-list-link">Contributing</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/measurement.html" class="nav-list-link">Measurement & Formatting</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/en/developer/test-builds.html" class="nav-list-link">Test Builds & Obtainium</a></li></ul></li></ul> </nav> <div class="d-md-block d-sm-none"> <div class="site-footer"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </div> </div> </header> <div class="main" id="top"> <div id="main-header" class="main-header"> <div class="search" role="search"> <div class="search-input-wrap"> <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search Meshtastic Android" autocomplete="off"> <label for="search-input" class="search-label"> <span class="sr-only">Search Meshtastic Android</span> <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg> </label> </div> <div id="search-results" class="search-results"></div> </div> <div class="theme-toggle-wrap"> <button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode" title="Toggle light/dark theme" onclick="toggleMeshtasticTheme()"> <span id="theme-icon">🌙</span> <span id="theme-label">Dark</span> </button> <details class="language-switcher version-switcher" id="version-switcher" aria-label="Documentation version" hidden> <summary class="language-switcher-btn" title="Switch documentation version"> 🏷️ <span id="version-current"></span> </summary> <ul class="language-switcher-list" id="version-switcher-list"></ul> </details> <script> (function() { var baseurl = '/Meshtastic-Android'; var root = baseurl; var channel = 'latest'; // /main/, /vX.Y.Z/ or a prerelease snapshot like /v2.8.0-open.1/. var match = baseurl.match(/^(.*)\/(main|v\d+\.\d+\.\d+(?:-(?:open|closed)\.\d+)?)$/); if (match) { root = match[1]; channel = match[2]; } fetch(root + '/versions.json') .then(function(res) { return res.ok ? res.json() : Promise.reject(); }) .then(function(data) { var switcher = document.getElementById('version-switcher'); var list = document.getElementById('version-switcher-list'); var current = document.getElementById('version-current'); if (!switcher || !list || !current) return; // Keep the reader on the same page when switching channels; a page // that doesn't exist in the target version lands on the 404 page. var relativePath = location.pathname.slice(baseurl.length) + location.hash; var entries = []; if (data.latest) { entries.push({ id: 'latest', label: 'latest (v' + data.latest + ')', base: root }); } // Prereleases are documented ahead of general availability, so the track // is always spelled out — a reader must not mistake a closed-testing // snapshot for a shipped release. (data.prereleases || []).forEach(function(p) { entries.push({ id: p.dir, label: p.dir.replace(/^v/, 'v') + ' — ' + p.track + ' testing', base: root + '/' + p.dir }); }); if (data.hasMain) { entries.push({ id: 'main', label: 'main (unreleased snapshot)', base: root + '/main' }); } (data.versions || []).forEach(function(v) { entries.push({ id: 'v' + v, label: 'v' + v, base: root + '/v' + v }); }); var currentEntry = entries.filter(function(e) { return e.id === channel; })[0]; current.textContent = currentEntry ? currentEntry.label : channel; var others = entries.filter(function(e) { return e.id !== channel; }); if (others.length === 0) return; others.forEach(function(e) { var li = document.createElement('li'); var a = document.createElement('a'); a.href = e.base + relativePath; a.textContent = e.label; li.appendChild(a); list.appendChild(li); }); switcher.hidden = false; }) .catch(function() { /* no manifest (local build) — leave switcher hidden */ }); })(); </script> <details class="language-switcher" aria-label="Language options"> <summary class="language-switcher-btn" title="View in another language"> 🌐 <span class="lang-current">Русский</span> </summary> <ul class="language-switcher-list"> <li><a href="/Meshtastic-Android/en/user/desktop" lang="en">English</a></li> <li><a href="/Meshtastic-Android/ar-rSA/user/desktop" lang="ar-rSA" dir="rtl">العربية</a></li> <li><a href="/Meshtastic-Android/be-rBY/user/desktop" lang="be-rBY" >Беларуская</a></li> <li><a href="/Meshtastic-Android/bg-rBG/user/desktop" lang="bg-rBG" >Български</a></li> <li><a href="/Meshtastic-Android/ca-rES/user/desktop" lang="ca-rES" >Català</a></li> <li><a href="/Meshtastic-Android/cs-rCZ/user/desktop" lang="cs-rCZ" >Čeština</a></li> <li><a href="/Meshtastic-Android/de-rDE/user/desktop" lang="de-rDE" >Deutsch</a></li> <li><a href="/Meshtastic-Android/el-rGR/user/desktop" lang="el-rGR" >Ελληνικά</a></li> <li><a href="/Meshtastic-Android/es-rES/user/desktop" lang="es-rES" >Español</a></li> <li><a href="/Meshtastic-Android/et-rEE/user/desktop" lang="et-rEE" >Eesti</a></li> <li><a href="/Meshtastic-Android/fi-rFI/user/desktop" lang="fi-rFI" >Suomi</a></li> <li><a href="/Meshtastic-Android/fr-rFR/user/desktop" lang="fr-rFR" >Français</a></li> <li><a href="/Meshtastic-Android/ga-rIE/user/desktop" lang="ga-rIE" >Gaeilge</a></li> <li><a href="/Meshtastic-Android/gl-rES/user/desktop" lang="gl-rES" >Galego</a></li> <li><a href="/Meshtastic-Android/iw-rIL/user/desktop" lang="iw-rIL" dir="rtl">עברית</a></li> <li><a href="/Meshtastic-Android/hr-rHR/user/desktop" lang="hr-rHR" >Hrvatski</a></li> <li><a href="/Meshtastic-Android/ht-rHT/user/desktop" lang="ht-rHT" >Kreyòl Ayisyen</a></li> <li><a href="/Meshtastic-Android/hu-rHU/user/desktop" lang="hu-rHU" >Magyar</a></li> <li><a href="/Meshtastic-Android/is-rIS/user/desktop" lang="is-rIS" >Íslenska</a></li> <li><a href="/Meshtastic-Android/it-rIT/user/desktop" lang="it-rIT" >Italiano</a></li> <li><a href="/Meshtastic-Android/ja-rJP/user/desktop" lang="ja-rJP" >日本語</a></li> <li><a href="/Meshtastic-Android/ko-rKR/user/desktop" lang="ko-rKR" >한국어</a></li> <li><a href="/Meshtastic-Android/lt-rLT/user/desktop" lang="lt-rLT" >Lietuvių</a></li> <li><a href="/Meshtastic-Android/nl-rNL/user/desktop" lang="nl-rNL" >Nederlands</a></li> <li><a href="/Meshtastic-Android/no-rNO/user/desktop" lang="no-rNO" >Norsk</a></li> <li><a href="/Meshtastic-Android/pl-rPL/user/desktop" lang="pl-rPL" >Polski</a></li> <li><a href="/Meshtastic-Android/pt-rBR/user/desktop" lang="pt-rBR" >Português (Brasil)</a></li> <li><a href="/Meshtastic-Android/pt-rPT/user/desktop" lang="pt-rPT" >Português</a></li> <li><a href="/Meshtastic-Android/ro-rRO/user/desktop" lang="ro-rRO" >Română</a></li> <li><a href="/Meshtastic-Android/sk-rSK/user/desktop" lang="sk-rSK" >Slovenčina</a></li> <li><a href="/Meshtastic-Android/sl-rSI/user/desktop" lang="sl-rSI" >Slovenščina</a></li> <li><a href="/Meshtastic-Android/sq-rAL/user/desktop" lang="sq-rAL" >Shqip</a></li> <li><a href="/Meshtastic-Android/sr-rLatn/user/desktop" lang="sr-rLatn" >Српски (Latinica)</a></li> <li><a href="/Meshtastic-Android/srp/user/desktop" lang="srp" >Српски (Ћирилица)</a></li> <li><a href="/Meshtastic-Android/sv-rSE/user/desktop" lang="sv-rSE" >Svenska</a></li> <li><a href="/Meshtastic-Android/tr-rTR/user/desktop" lang="tr-rTR" >Türkçe</a></li> <li><a href="/Meshtastic-Android/uk-rUA/user/desktop" lang="uk-rUA" >Українська</a></li> <li><a href="/Meshtastic-Android/zh-rCN/user/desktop" lang="zh-rCN" >中文 (简体)</a></li> <li><a href="/Meshtastic-Android/zh-rTW/user/desktop" lang="zh-rTW" >中文 (繁體)</a></li> </ul> </details> <a class="upstream-docs-link" href="https://meshtastic.org/docs/" title="Official Meshtastic documentation (meshtastic.org)">Meshtastic Docs ↗</a> </div> <script> function toggleMeshtasticTheme() { var current = localStorage.getItem('jtd-theme') || 'meshtastic'; var next = (current === 'meshtastic-dark') ? 'meshtastic' : 'meshtastic-dark'; if (typeof jtd !== 'undefined' && typeof jtd.setTheme === 'function') { jtd.setTheme(next); } localStorage.setItem('jtd-theme', next); var icon = document.getElementById('theme-icon'); var label = document.getElementById('theme-label'); if (icon && label) { icon.textContent = (next === 'meshtastic-dark') ? '☀️' : '🌙'; label.textContent = (next === 'meshtastic-dark') ? 'Light' : 'Dark'; } } // Apply stored/OS theme on page load (function() { var theme = localStorage.getItem('jtd-theme') || 'meshtastic'; // Sync toggle label immediately var icon = document.getElementById('theme-icon'); var label = document.getElementById('theme-label'); if (icon && label) { icon.textContent = (theme === 'meshtastic-dark') ? '☀️' : '🌙'; label.textContent = (theme === 'meshtastic-dark') ? 'Light' : 'Dark'; } // Apply theme once jtd is ready function tryApply() { if (typeof jtd !== 'undefined' && typeof jtd.setTheme === 'function') { jtd.setTheme(theme); } else { setTimeout(tryApply, 50); } } tryApply(); })(); </script> </div> <div class="main-content-wrap"> <nav aria-label="Breadcrumb" class="breadcrumb-nav"> <ol class="breadcrumb-nav-list"> <li class="breadcrumb-nav-list-item"><span>Настольное приложение</span></li> </ol> </nav> <div id="main-content" class="main-content"> <main> <div class="locale-page-banner" > <p class="locale-notice"> 🌐 <strong>Русский</strong> — Community translation <a href="/Meshtastic-Android/en/user/desktop">View in English</a> </p> </div> <div lang="ru-rRU"> <h1 id="настольное-приложение"> <a href="#настольное-приложение" class="anchor-heading" aria-labelledby="настольное-приложение"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Настольное приложение </h1> <p>Настольное приложение Meshtastic использует общий код с Android через Kotlin Multiplatform. Большинство функций работают одинаково на Linux, macOS и Windows.</p> <h2 id="установка"> <a href="#установка" class="anchor-heading" aria-labelledby="установка"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Установка </h2> <h3 id="linux"> <a href="#linux" class="anchor-heading" aria-labelledby="linux"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Linux </h3> <ul> <li>Скачайте пакет <code class="language-plaintext highlighter-rouge">.deb</code> или <code class="language-plaintext highlighter-rouge">.AppImage</code> со страницы релизов</li> <li>Или соберите из исходного кода с помощью <code class="language-plaintext highlighter-rouge">./gradlew :desktopApp:run</code></li> </ul> <h3 id="macos"> <a href="#macos" class="anchor-heading" aria-labelledby="macos"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> macOS </h3> <ul> <li>Скачайте пакет <code class="language-plaintext highlighter-rouge">.dmg</code> из релизов</li> <li>Или соберите из исходных кодов</li> </ul> <h3 id="windows"> <a href="#windows" class="anchor-heading" aria-labelledby="windows"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Windows </h3> <ul> <li>Загрузите установщик <code class="language-plaintext highlighter-rouge">.msi</code> со страницы релизов</li> <li>Или соберите из исходных кодов</li> </ul> <h2 id="подключение-твоей-радиостанции"> <a href="#подключение-твоей-радиостанции" class="anchor-heading" aria-labelledby="подключение-твоей-радиостанции"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Подключение твоей радиостанции </h2> <h3 id="последовательная-usb-основной"> <a href="#последовательная-usb-основной" class="anchor-heading" aria-labelledby="последовательная-usb-основной"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Последовательная USB (Основной) </h3> <p>Наиболее надежный способ подключения к компьютеру:</p> <ol> <li>Подключите свою радиостанцию Meshtastic через USB-кабель.</li> <li>Приложение должно автоматически определить последовательный порт.</li> <li>Если порт не определён, выберите правильный последовательный порт в меню “Подключение”.</li> </ol> <h3 id="tcpip"> <a href="#tcpip" class="anchor-heading" aria-labelledby="tcpip"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> TCP/IP </h3> <p>Для радиостанций, подключённых по сети:</p> <ol> <li>Введите IP-адрес и порт радиостанции (по умолчанию: 4403).</li> <li>Нажмите “<strong>Подключиться</strong>”.</li> </ol> <h3 id="bluetooth-ble"> <a href="#bluetooth-ble" class="anchor-heading" aria-labelledby="bluetooth-ble"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Bluetooth (BLE) </h3> <p>Bluetooth Low Energy поддерживается в настольном приложении с помощью библиотеки <a href="https://github.com/JuulLabs/kable">Kable</a>:</p> <ol> <li>Убедитесь, что ваша система оснащена Bluetooth-адаптером.</li> <li>Приложение автоматически сканирует находящиеся поблизости радиостанции Meshtastic.</li> <li>Выберите своё устройство на экране «Подключение».</li> </ol> <h2 id="паритет-функций"> <a href="#паритет-функций" class="anchor-heading" aria-labelledby="паритет-функций"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Паритет функций </h2> <div class="table-wrapper"><table> <thead> <tr> <th>Функция</th> <th>Android</th> <th>Desktop</th> <th>Заметки</th> </tr> </thead> <tbody> <tr> <td>Обмен сообщениями</td> <td>✓</td> <td>✓</td> <td>Полное равенство</td> </tr> <tr> <td>Список узлов</td> <td>✓</td> <td>✓</td> <td>Полное равенство</td> </tr> <tr> <td>Карта</td> <td>✓</td> <td>◐</td> <td>Вкладка карты присутствует в настольном приложении, но интерактивный просмотр карты доступен только на Android</td> </tr> <tr> <td>Настройки</td> <td>✓</td> <td>✓</td> <td>Полное равенство</td> </tr> <tr> <td>Bluetooth (BLE)</td> <td>✓</td> <td>✓</td> <td>Через Kable в настольном приложении</td> </tr> <tr> <td>Обновление прошивки</td> <td>✓</td> <td>✓</td> <td>Внутри приложенное обновление по USB, BLE и Wi-Fi (ESP32) работает так же, как на Android</td> </tr> <tr> <td>Уведомления</td> <td>✓</td> <td>✓</td> <td>Системные уведомления</td> </tr> <tr> <td>Виджеты</td> <td>✓</td> <td>✗</td> <td>Только Android</td> </tr> <tr> <td>Android Auto</td> <td>✓</td> <td>✗</td> <td>Только Android — недоступно в настольном приложении или iOS</td> </tr> <tr> <td>AI-ассистент (Chirpy)</td> <td>✓*</td> <td>✗</td> <td>Только в Google-версии для Android</td> </tr> <tr> <td>Функции приложения (системный ИИ)</td> <td>✓†</td> <td>✗</td> <td>Только в Google-версии для Android</td> </tr> </tbody> </table></div> <p>*Chirpy AI требует Android 14+ в Google-версии на поддерживаемом оборудовании.</p> <p>†Функции приложения предоставляют действия приложения системному ИИ Android в Google-версии. См. <a href="app-functions">Функции приложения</a>.</p> <h2 id="различия-интерфейса"> <a href="#различия-интерфейса" class="anchor-heading" aria-labelledby="различия-интерфейса"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Различия интерфейса </h2> <p>Настольное приложение использует тот же интерфейс на Compose Multiplatform с адаптациями для больших экранов и настольного взаимодействия.</p> <h3 id="сочетания-клавиш"> <a href="#сочетания-клавиш" class="anchor-heading" aria-labelledby="сочетания-клавиш"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Сочетания клавиш </h3> <p>Сочетания клавиш используют ⌘ (Command) на macOS и Ctrl на Windows и Linux. (Клавиша Super / Windows не используется.)</p> <div class="table-wrapper"><table> <thead> <tr> <th>Сочетание</th> <th>Действие</th> </tr> </thead> <tbody> <tr> <td><strong>⌘/Ctrl+Q</strong></td> <td>Выйти из приложения</td> </tr> <tr> <td><strong>⌘/Ctrl+,</strong></td> <td>Открыть настройки</td> </tr> <tr> <td><strong>⌘/Ctrl+1</strong></td> <td>Перейти во вкладку “Сообщения”</td> </tr> <tr> <td><strong>⌘/Ctrl+2</strong></td> <td>Перейти во вкладку “Узлы”</td> </tr> <tr> <td><strong>⌘/Ctrl+3</strong></td> <td>Перейти во вкладку “Карта”</td> </tr> <tr> <td><strong>⌘/Ctrl+4</strong></td> <td>Перейти во вкладку “Подключение”</td> </tr> <tr> <td><strong>⌘/Ctrl+/</strong></td> <td>Открыть “О программе”</td> </tr> </tbody> </table></div> <h3 id="окно-и-системный-трей"> <a href="#окно-и-системный-трей" class="anchor-heading" aria-labelledby="окно-и-системный-трей"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Окно и системный трей </h3> <ul> <li><strong>Изменение размера окна</strong> — адаптивный макет подстраивается под размеры окна</li> <li><strong>Системный трей</strong> — сверните в системный трей для фоновой работы mesh-сети</li> <li><strong>Меню трея</strong> — щёлкните правой кнопкой мыши по значку в трее, чтобы показать окно или выйти</li> <li><strong>Взаимодействие с мышью</strong> — состояния при наведении и стандартная настольная навигация</li> </ul> <h3 id="настройки-уведомлений"> <a href="#настройки-уведомлений" class="anchor-heading" aria-labelledby="настройки-уведомлений"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Настройки уведомлений </h3> <p>Настольное приложение предоставляет встроенные переключатели для управления отображением уведомлений: сообщения, новые узлы и предупреждения о низком заряде батареи. Доступ к ним осуществляется через <strong>Настройки → Уведомления</strong> в самом приложении.</p> <h2 id="встроенный-браузер-документации"> <a href="#встроенный-браузер-документации" class="anchor-heading" aria-labelledby="встроенный-браузер-документации"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Встроенный браузер документации </h2> <p>Настольное приложение включает встроенный браузер документации для быстрого доступа к справочным материалам без выхода из приложения.</p> <p><img src="../../assets/screenshots/docs-browser_toc.png" alt="Браузер документации с оглавлением" /></p> <p>Браузер поддерживает полнотекстовый поиск по всей документации:</p> <p><img src="../../assets/screenshots/docs-browser_search.png" alt="Поиск в браузере документации" /></p> <p>Отдельные страницы документации отображаются с полным форматированием:</p> <p><img src="../../assets/screenshots/docs-browser_page.png" alt="Страница документации" /></p> <h2 id="сборка-из-исходного-кода"> <a href="#сборка-из-исходного-кода" class="anchor-heading" aria-labelledby="сборка-из-исходного-кода"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Сборка из исходного кода </h2> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/meshtastic/Meshtastic-Android.git
<span class="nb">cd </span>Meshtastic-Android
./gradlew :desktopApp:run
</code></pre></div></div> <p>Требования:</p> <ul> <li>JDK 21</li> <li>Для сборки только настольной версии Android SDK не требуется</li> </ul> <h2 id="известные-ограничения"> <a href="#известные-ограничения" class="anchor-heading" aria-labelledby="известные-ограничения"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Известные ограничения </h2> <ul> <li>Интерактивный просмотр карты доступен только на Android — вкладка «Карта» присутствует в настольном приложении, но не отображает карту</li> <li>Некоторые специфичные для Android функции (виджеты, отдельные каналы уведомлений) недоступны</li> <li>Производительность может варьироваться на маломощном оборудовании при запуске Compose Desktop</li> <li>BLE-связывание пока не поддерживается в настольном приложении (сопряжение работает без связывания)</li> </ul> <h2 id="связанные-темы"> <a href="#связанные-темы" class="anchor-heading" aria-labelledby="связанные-темы"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Связанные темы </h2> <ul> <li><a href="connections">Подключения</a> — обзор методов подключения</li> <li><a href="firmware">Обновление прошивки</a> — обновление по USB, BLE и Wi-Fi работает так же, как на Android</li> </ul><hr /> </div> <style> .locale-page-banner { background: rgba(103, 234, 148, 0.1); border: 1px solid rgba(103, 234, 148, 0.3); border-radius: 12px; padding: 10px 16px; margin-bottom: 1.5rem; font-size: 0.85rem; } .locale-notice a { margin-left: 12px; font-weight: 500; } </style> </main> <hr> <footer> <footer class="site-footer"> Copyright &copy; 2026 Meshtastic LLC. Distributed under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPL v3 License.</a> </footer> <div class="d-sm-block d-md-none"> <div class="mt-4 fs-2"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </div> </div> </footer> </div> </div> <div class="search-overlay"></div> </div> </body> </html>