[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-blue?style=for-the-badge)](https://github.com/s00d/switchshuttle) [![License](https://img.shields.io/badge/license-MIT-green?style=for-the-badge)](https://github.com/s00d/switchshuttle/blob/main/LICENSE) [![GitHub release](https://img.shields.io/github/v/release/s00d/switchshuttle?style=for-the-badge)](https://github.com/s00d/switchshuttle/releases) [![GitHub downloads](https://img.shields.io/github/downloads/s00d/switchshuttle/total?style=for-the-badge)](https://github.com/s00d/switchshuttle/releases) [![GitHub issues](https://img.shields.io/badge/github-issues-orange?style=for-the-badge)](https://github.com/s00d/switchshuttle/issues) [![GitHub stars](https://img.shields.io/badge/github-stars-yellow?style=for-the-badge)](https://github.com/s00d/switchshuttle/stargazers) [![Donate](https://img.shields.io/badge/Donate-Donationalerts-ff4081?style=for-the-badge)](https://www.donationalerts.com/r/s00d88) SwitchShuttle Logo # SwitchShuttle **πŸš€ ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ горячими клавишами** SwitchShuttle Demo
πŸ‡ΊπŸ‡Έ English β€’ πŸ‡¨πŸ‡³ δΈ­ζ–‡ β€’ πŸ‡·πŸ‡Ί Русский β€’ πŸ‡©πŸ‡ͺ Deutsch β€’ πŸ‡―πŸ‡΅ ζ—₯本θͺž
--- ## ✨ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SwitchShuttle? SwitchShuttle β€” это ΠΌΠΎΡ‰Π½ΠΎΠ΅ кроссплатформСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для систСмного трСя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ способ управлСния ΠΈ выполнСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΠΎΠ΅ Π½Π° соврСмСнных тСхнологиях (Rust + Tauri + Vue.js), ΠΎΠ½ΠΎ прСдоставляСт элСгантный интСрфСйс для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, настройки ΠΈ быстрого доступа ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ опСрациям. ### 🎯 ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности - **πŸ–₯️ ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°** - Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° macOS, Windows ΠΈ Linux - **⚑ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ горячиС клавиши** - ВыполняйтС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈΠ· любого мСста - **🎨 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСства Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²** - iTerm, Terminal, Warp, Alacritty, Hyper ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ - **πŸ“ Умная организация** - Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ подмСню для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ - **πŸ”§ ДинамичСскиС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅** - Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ запросы для ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ - **πŸ”„ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ выполнСния** - Запуск Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅, Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ - **πŸš€ Автозапуск** - Запуск ΠΏΡ€ΠΈ стартС систСмы для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ доступа - **🎨 Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ интСрфСйс** - ΠšΡ€Π°ΡΠΈΠ²Ρ‹ΠΉ, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс Π½Π° Vue.js - **πŸ’» Командная строка** - ВыполняйтС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° с CLI - **βš™οΈ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ конфигурациями** - Π’ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· удалСния - **πŸ”„ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ** - ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ систСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ - **πŸ“Š ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°** - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ систСмных рСсурсов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ - **πŸ“… Π—Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹** - Автоматизация Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cron Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - **🎯 БистСма шаблонов** - Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ для распространСнных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ## πŸ–₯️ ΠžΠ±Π·ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса SwitchShuttle прСдоставляСт соврСмСнный, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс с нСсколькими ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ: ### πŸŽ›οΈ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ интСрфСйса #### 1. **Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ** - **Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ JSON Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€** - Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ с подсвСткой синтаксиса ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠ΅ΠΉ - **БистСма шаблонов** - Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… шаблонов ΠΊΠΎΠΌΠ°Π½Π΄ для распространСнных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов - **Валидация Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ** - МгновСнная обратная связь ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ - **АвтосохранСниС** - ИзмСнСния автоматичСски ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ конфигурациями** - Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π±Π΅Π· удалСния - **Поиск ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ** - Быстрый поиск ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ - **Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ** - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ для тСстирования #### 2. **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ** - **ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄** - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса Ρ„ΠΎΡ€ΠΌ - **Настройка горячих клавиш** - Установка Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… сокращСний для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ - **Π’Ρ‹Π±ΠΎΡ€ ΠΈΠΊΠΎΠ½ΠΎΠΊ** - Π’Ρ‹Π±ΠΎΡ€ эмодзи ΠΈΠΊΠΎΠ½ΠΎΠΊ для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ - **Поля Π²Π²ΠΎΠ΄Π°** - Настройка динамичСских запросов Π²Π²ΠΎΠ΄Π° для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ - **Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ подмСню** - ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² иСрархичСскиС структуры - **Валидация ΠΊΠΎΠΌΠ°Π½Π΄** - Валидация синтаксиса ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ #### 3. **ПанСль настроСк** - **Π’Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°** - Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния - **Π Π΅ΠΆΠΈΠΌ запуска** - Настройка способа выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ (Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅/новая Π²ΠΊΠ»Π°Π΄ΠΊΠ°/Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ) - **Настройки Ρ‚Π΅ΠΌΡ‹** - Настройка внСшнСго Π²ΠΈΠ΄Π° прилоТСния - **ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ автозапуска** - Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ запуска ΠΏΡ€ΠΈ стартС систСмы - **Настройки Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… горячих клавиш** - Настройка систСмных сокращСний для мСню #### 4. **МСню систСмного трСя** - **Быстрый доступ** - Π©Π΅Π»Ρ‡ΠΎΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ трСя для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ - **Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ статуса** - Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ обратная связь для ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° - **Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ мСню** - ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ иСрархия ΠΊΠΎΠΌΠ°Π½Π΄ для Π»Π΅Π³ΠΊΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ - **Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ горячиС клавиши** - БочСтания клавиш для Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ - **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ** - Π–ΠΈΠ²Ρ‹Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ систСмных рСсурсов ### 🎨 ВозмоТности интСрфСйса #### **Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ конструктор ΠΊΠΎΠΌΠ°Π½Π΄** ```json { "name": "πŸš€ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ", "command": "npm run dev", "hotkey": "Ctrl+Shift+D", "icon": "πŸš€", "background": false, "inputs": { "port": "3000", "host": "localhost" } } ``` #### **БистСма шаблонов** SwitchShuttle Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для распространСнных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: - **Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°** - ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Git, инструмСнты сборки, тСстированиС - **DevOps** - Docker, Kubernetes, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСрами - **Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…** - ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ MySQL, PostgreSQL, MongoDB - **ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСрвисы** - ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ AWS, Azure, Google Cloud - **Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ** - Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСти, ΠΎΡ†Π΅Π½ΠΊΠ° уязвимостСй - **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³** - БистСмныС рСсурсы, Π»ΠΎΠ³ΠΈ, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ - **Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹** - ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, систСмныС инструмСнты - **ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ** - Cron Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ #### **Умная организация** - **Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ подмСню** - ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² логичСскиС Π³Ρ€ΡƒΠΏΠΏΡ‹ - **ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠΊΠΎΠ½ΠΎΠΊ** - Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ идСнтификация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ эмодзи ΠΈΠΊΠΎΠ½ΠΎΠΊ - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ горячими клавишами** - Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ сокращСния для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ доступа - **Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ статуса** - ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ связь Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ - **Ѐункция поиска** - БыстроС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ## πŸ”’ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ бСзопасности SwitchShuttle Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ комплСксный ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ Π²Π°ΡˆΡƒ систСму ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ врСдоносных ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ прСдоставляСт Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄. ### πŸ›‘οΈ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ бСзопасности #### **Валидация ΠΊΠΎΠΌΠ°Π½Π΄** - **ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ‹**: Максимальная Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (1000 символов) ΠΈ Π΄Π»ΠΈΠ½Π° Π²Π²ΠΎΠ΄Π° (500 символов) ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ слишком Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - **Π—Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹**: ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ список опасных ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ - **ΠŸΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹**: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ regex ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ для обнаруТСния ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ врСдоносных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄ - **Валидация Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ**: ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π²ΠΎ врСмя рСдактирования для обСспСчСния бСзопасности #### **Настройки бСзопасности** - **Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ бСзопасности**: ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ бСзопасности ΠΏΠΎ нСобходимости - **ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ списки Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ**: ДобавляйтС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² список Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ - **БопоставлСниС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²**: ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠΉΡ‚Π΅ regex ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ для обнаруТСния ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… структур ΠΊΠΎΠΌΠ°Π½Π΄ - **ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ‹**: НастройтС ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π»ΠΈΠ½Ρ‹ для ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²Π²ΠΎΠ΄ΠΎΠ² #### **Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚** 1. **Валидация Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅**: SecurityManager провСряСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм 2. **БопоставлСниС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²**: ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π° соотвСтствиС Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌ ΠΈ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ regex ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌ 3. **Валидация Π΄Π»ΠΈΠ½Ρ‹**: ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π²Π²ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π° соотвСтствиС ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ограничСниям Π΄Π»ΠΈΠ½Ρ‹ 4. **ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° списка Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ**: ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ списком Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ 5. **БСзопасная конфигурация**: Волько ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΈ использованию ## πŸš€ Быстрый старт ### Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ установка #### Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: Homebrew (macOS - РСкомСндуСтся) ```bash # Установка Ρ‡Π΅Ρ€Π΅Π· Homebrew brew tap s00d/switchshuttle brew install --cask switchshuttle ``` #### Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: Π ΡƒΡ‡Π½ΠΎΠ΅ скачиваниС 1. **Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅** послСдний Ρ€Π΅Π»ΠΈΠ· для вашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ с [GitHub Releases](https://github.com/s00d/switchshuttle/releases) 2. **УстановитС** ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. **ЗапуститС** SwitchShuttle - ΠΎΠ½ появится Π² систСмном Ρ‚Ρ€Π΅Π΅ 4. **Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ** ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ трСя для доступа ΠΊ мСню ### ΠŸΠ΅Ρ€Π²Π°Ρ настройка 1. **ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ** - НаТмитС "Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ" Π² мСню систСмного трСя 2. **Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»** - Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. **Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹** - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ 4. **НастройтС горячиС клавиши** - НастройтС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ сокращСния для быстрого доступа 5. **Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ пСрСзапуститС** - Π’Π°ΡˆΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступны Π² мСню трСя ### ПошаговоС руководство ΠΏΠΎ интСрфСйсу #### **Π¨Π°Π³ 1: Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ** - ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ SwitchShuttle ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ "Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€" - Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (iTerm, Terminal, Warp ΠΈ Ρ‚.Π΄.) - УстановитС Ρ€Π΅ΠΆΠΈΠΌ запуска (Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ, новая Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ) - НастройтС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ горячиС клавиши для доступа ΠΊ мСню #### **Π¨Π°Π³ 2: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄** - НаТмитС "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ" для создания Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: - **Имя**: ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - **Команда**: ЀактичСская Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° для выполнСния - **Горячая клавиша**: Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ сокращСниС (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) - **Иконка**: Π­ΠΌΠΎΠ΄Π·ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ° для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ - **Π€ΠΎΠ½**: Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»ΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ - **Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅**: ДинамичСскиС поля Π²Π²ΠΎΠ΄Π° для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ #### **Π¨Π°Π³ 3: ИспользованиС шаблонов** - НаТмитС "Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ шаблон" для доступа ΠΊ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ коллСкциям ΠΊΠΎΠΌΠ°Π½Π΄ - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, DevOps, Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄. - Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ - НастройтС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ нСобходимости #### **Π¨Π°Π³ 4: Доступ Ρ‡Π΅Ρ€Π΅Π· систСмный Ρ‚Ρ€Π΅ΠΉ** - Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ SwitchShuttle Π² Ρ‚Ρ€Π΅Π΅ - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мСню ΠΊΠΎΠΌΠ°Π½Π΄ - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ горячиС клавиши для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ статус систСмы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ #### **Π¨Π°Π³ 5: Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности** - **ΠšΠΎΠΌΠ°Π½Π΄Ρ‹-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ**: ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ статуса - **ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°**: ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ систСмных рСсурсов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ - **Π—Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹**: Автоматизация Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cron Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - **Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ мСню**: ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² иСрархичСскиС структуры ## πŸ’» Командная строка (CLI) SwitchShuttle Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для быстрого выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π±Π΅Π· открытия GUI. ### ИспользованиС CLI #### Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ```bash # Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ID ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ switch-shuttle cmd_8 # Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра) switch-shuttle "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹" ``` #### Бписок всСх ΠΊΠΎΠΌΠ°Π½Π΄ ```bash # ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС доступныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΈΡ… ID switch-shuttle --list # ΠΈΠ»ΠΈ switch-shuttle -l ``` #### Поиск ΠΊΠΎΠΌΠ°Π½Π΄ ```bash # Поиск ΠΊΠΎΠΌΠ°Π½Π΄, содСрТащих ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ тСкст switch-shuttle --search "git" # ΠΈΠ»ΠΈ switch-shuttle -s "docker" ``` ### Запуск CLI Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах #### macOS ```bash # Если установлСно Ρ‡Π΅Ρ€Π΅Π· Homebrew switch-shuttle --list # Если установлСно Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ /Applications/switch-shuttle.app/Contents/MacOS/SwitchShuttle --list # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ алиас для Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ доступа echo 'alias switch-shuttle="/Applications/switch-shuttle.app/Contents/MacOS/SwitchShuttle"' >> ~/.zshrc source ~/.zshrc ``` #### Windows ```bash # Если установлСно Ρ‡Π΅Ρ€Π΅Π· установщик "C:\Program Files\SwitchShuttle\switch-shuttle.exe" --list # Если установлСно Ρ‡Π΅Ρ€Π΅Π· winget ΠΈΠ»ΠΈ chocolatey switch-shuttle --list # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² PATH для Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ доступа # Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ "C:\Program Files\SwitchShuttle" Π² систСмный PATH ``` #### Linux ```bash # Если установлСно Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² switch-shuttle --list # Если установлСно Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ./switch-shuttle --list # Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ исполняСмым ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² PATH chmod +x switch-shuttle sudo mv switch-shuttle /usr/local/bin/ ``` ### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ CLI ```bash # БыстрыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Git switch-shuttle "git status" switch-shuttle "git pull" # Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ switch-shuttle "npm run dev" switch-shuttle "docker-compose up" # Бписок всСх доступных ΠΊΠΎΠΌΠ°Π½Π΄ switch-shuttle --list # Найти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, связанныС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… switch-shuttle --search "database" ``` ### ВозмоТности CLI - **πŸš€ БыстроС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅** - Запуск ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° - **πŸ” Π£ΠΌΠ½Ρ‹ΠΉ поиск** - Поиск ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ ID ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ - **πŸ“‹ Бписок ΠΊΠΎΠΌΠ°Π½Π΄** - ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСх доступных ΠΊΠΎΠΌΠ°Π½Π΄ - **⚑ Π‘Π΅Π· GUI** - ИдСально для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ скриптов - **πŸ”„ Π’Ρ‹Ρ…ΠΎΠ΄ послС выполнСния** - Чистый ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ ## πŸ“‹ Руководство ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ### Базовая структура SwitchShuttle ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JSON Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, хранящиСся Π²: - **macOS/Linux**: `~/.config/switch-shuttle/` - **Windows**: `C:\Users\\AppData\Roaming\switch-shuttle\` ### ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ```json { "terminal": "iterm", "launch_in": "new_tab", "title": "Мои ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹", "commands": [ { "name": "πŸš€ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ", "command": "npm run dev", "hotkey": "Ctrl+Shift+D" }, { "name": "πŸ“¦ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости", "command": "npm install", "hotkey": "Ctrl+Shift+I" }, { "name": "πŸ”§ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ", "submenu": [ { "name": "πŸ§ͺ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСсты", "command": "npm test", "hotkey": "Ctrl+Shift+T" }, { "name": "πŸ“Š Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚", "command": "npm run build", "hotkey": "Ctrl+Shift+B" } ] } ] } ``` ### Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности #### πŸ”§ ДинамичСскиС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ: ```json { "name": "πŸ“ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚", "inputs": { "componentName": "MyComponent", "componentType": "functional" }, "commands": [ "mkdir -p src/components/[componentName]", "touch src/components/[componentName]/index.tsx", "echo 'import React from \"react\";' > src/components/[componentName]/index.tsx", "echo 'export const [componentName] = () =>
[componentName]
;' >> src/components/[componentName]/index.tsx" ], "hotkey": "Ctrl+Shift+N" } ``` #### πŸ”„ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄: ```json { "name": "πŸ”„ ΠŸΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ", "commands": [ "git pull origin main", "npm install", "npm run lint", "npm run test", "npm run build" ], "background": true, "hotkey": "Ctrl+Shift+F" } ``` #### ⏰ Π—Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Cron) ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для автоматичСского выполнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cron Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ: ```json { "name": "πŸ”„ АвтоматичСскоС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅", "commands": [ "rsync -av /source/ /backup/" ], "scheduler": "0 2 * * *", "background": true, "hotkey": "Ctrl+Shift+B" } ``` **Π€ΠΎΡ€ΠΌΠ°Ρ‚ Cron Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:** ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартныС cron выраТСния с 6 полями: `сСкунда ΠΌΠΈΠ½ΡƒΡ‚Π° час дСнь мСсяц дСнь_Π½Π΅Π΄Π΅Π»ΠΈ` **РаспространСнныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Cron:** - `"0 0 * * * *"` - ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ час Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ 0 - `"0 0 2 * * *"` - ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π² 2:00 ΡƒΡ‚Ρ€Π° - `"0 30 9 * * 1-5"` - Π’ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π΄Π½ΠΈ Π² 9:30 ΡƒΡ‚Ρ€Π° - `"0 0 12 * * 1"` - ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ понСдСльник Π² полдСнь - `"0 0 0 1 * *"` - ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ дСнь ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСсяца - `"0 */15 * * * *"` - ΠšΠ°ΠΆΠ΄Ρ‹Π΅ 15 ΠΌΠΈΠ½ΡƒΡ‚ - `"0 0 0 * * 0"` - КаТдоС Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ Π² ΠΏΠΎΠ»Π½ΠΎΡ‡ΡŒ **ВозмоТности ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°:** - **Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅** - ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΡ…ΠΎ Π±Π΅Π· открытия Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° - **ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Cron** - ΠŸΠΎΠ»Π½Ρ‹ΠΉ парсинг ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ cron Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - **ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок** - Graceful fallback ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… парсинга cron - **ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ** - Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° macOS, Windows ΠΈ Linux #### πŸ–₯️ Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ способ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ - Π² Ρ„ΠΎΠ½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ConsolePool ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅: ```json { "name": "πŸš€ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр", "commands": [ "npm run dev" ], "background": true, "hotkey": "Ctrl+Shift+S" } ``` **Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ выполнСния:** - `"background": true` - Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ConsolePool (Ρ„ΠΎΠ½) - `"background": false` - Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° - `"background": null` ΠΈΠ»ΠΈ пропуск - АвтоопрСдСлСниС Π½Π° основС Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ #### πŸ“ Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ подмСню ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² иСрархичСскиС мСню: ```json { "name": "🐳 ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Docker", "submenu": [ { "name": "πŸš€ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвисы", "submenu": [ { "name": "πŸ—οΈ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°", "command": "docker-compose -f docker-compose.dev.yml up -d" }, { "name": "🏭 ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½", "command": "docker-compose -f docker-compose.prod.yml up -d" } ] }, { "name": "πŸ›‘ ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС", "command": "docker-compose down" } ] } ``` #### πŸ”„ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ систСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ: ```json { "name": "πŸ”§ БистСмныС элСмСнты управлСния", "submenu": [ { "name": "πŸ“Ά ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ WiFi", "command": "networksetup -setairportpower en0 toggle", "switch": "networksetup -getairportpower en0 | grep -q 'On' && echo 'true' || echo 'false'" }, { "name": "πŸ”Š ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Bluetooth", "command": "blueutil -p toggle", "switch": "blueutil -p | grep -q '1' && echo 'true' || echo 'false'" }, { "name": "πŸŒ™ ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ", "command": "osascript -e 'tell app \"System Events\" to tell appearance preferences to set dark mode to not dark mode'", "switch": "osascript -e 'tell app \"System Events\" to tell appearance preferences to get dark mode'" } ] } ``` **ВозмоТности ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ:** - **Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅** - ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΡ…ΠΎ Π±Π΅Π· открытия Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° - **ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса** - АвтоматичСски опрСдСляСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС - **Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ обратная связь** - ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ статус Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² мСню - **ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ** - Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° macOS, Windows ΠΈ Linux #### πŸ“Š ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΡŒΡ‚Π΅ систСмныС рСсурсы ΠΈ сСрвисы с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: ```json { "name": "πŸ“Š БистСмный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³", "submenu": [ { "name": "πŸ’Ύ ИспользованиС памяти", "command": "top -l 1 | head -n 10", "monitor": "memory", "icon": "🧠" }, { "name": "πŸ’» Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU", "command": "top -l 1 | grep 'CPU usage'", "monitor": "cpu", "icon": "⚑" }, { "name": "πŸ’Ύ Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ мСсто Π½Π° дискС", "command": "df -h | grep '/dev/'", "monitor": "disk", "icon": "πŸ’Ύ" }, { "name": "🌐 Бтатус сСти", "command": "ifconfig | grep -E 'inet |status:'", "monitor": "network", "icon": "🌐" } ] } ``` **ВозмоТности ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°:** - **Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с мСню** - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² мСню систСмного трСя - **Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄** - Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ мСню - **ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…** - Показ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ прямо Π² интСрфСйсС мСню - **Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹** - Иконки ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ статуса Π² мСню - **ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ** - Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° macOS, Windows ΠΈ Linux ## βš™οΈ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ### Основная конфигурация | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ОписаниС | По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ | |----------|-----|----------|--------------| | `terminal` | String | Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для использования | `"terminal"` | | `launch_in` | String | Π“Π΄Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ | `"current"` | | `theme` | String | Π’Π΅ΠΌΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (Ссли поддСрТиваСтся) | - | | `title` | String | Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°/Π²ΠΊΠ»Π°Π΄ΠΊΠΈ | - | | `menu_hotkey` | String | Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ горячая клавиша для открытия мСню | - | | `commands` | Array | Бписок ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ | `[]` | | `enabled` | Boolean | Π”ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ эта конфигурация Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ | `true` | ### Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² | Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» | macOS | Windows | Linux | |----------|-------|---------|-------| | `iterm` | βœ… | ❌ | ❌ | | `terminal` | βœ… | βœ… | βœ… | | `warp` | βœ… | ❌ | ❌ | | `alacritty` | βœ… | βœ… | βœ… | | `hyper` | βœ… | βœ… | βœ… | ### Π Π΅ΠΆΠΈΠΌΡ‹ запуска | Π Π΅ΠΆΠΈΠΌ | ОписаниС | |-------|----------| | `current` | Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° | | `new_tab` | ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ | | `new_window` | ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ | ### ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ | ОписаниС | |----------|-----|--------------|----------| | `name` | String | βœ… | ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ | | `commands` | Array | ❌ | ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для выполнСния | | `submenu` | Array | ❌ | Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ | | `switch` | String | ❌ | Команда для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true/false) | | `monitor` | String | ❌ | Команда для получСния значСния отобраТСния для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° | | `inputs` | Object | ❌ | ДинамичСскиС поля Π²Π²ΠΎΠ΄Π° | | `hotkey` | String | ❌ | Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ горячая клавиша | | `icon` | String | ❌ | Π­ΠΌΠΎΠ΄Π·ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ° для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ | | `background` | Boolean | ❌ | Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Ρ„ΠΎΠ½Π΅ (ConsolePool) ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» | | `scheduler` | String | ❌ | Cron Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ выполнСния | ### Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ конфигурациями #### Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для контроля Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ доступны Π² мСню систСмного трСя. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для: - **Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ** - ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π±Π΅Π· удалСния - **ВСстирования** - Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - **ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ** - Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ мноТСствСнных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, Π½ΠΎ использованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… **Π’ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅:** - ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Бтатус ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ" - Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΈ доступны Π² мСню - ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ **Π’ JSON ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:** ```json { "terminal": "iterm", "launch_in": "current", "title": "Мои ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹", "enabled": true, "commands": [ { "name": "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹", "command": "echo Hello World" } ] } ``` | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ | ОписаниС | |----------|-----|--------------|----------| | `enabled` | Boolean | `true` | Π”ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ эта конфигурация Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Π±Ρ‹Ρ‚ΡŒ доступной Π² мСню | **ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:** Когда `enabled` установлСн Π² `false` ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½, конфигурация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ Π΅Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ появятся Π² мСню систСмного трСя. ## 🎯 Π‘Π»ΡƒΡ‡Π°ΠΈ использования ### πŸ‘¨β€πŸ’» Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ - **Быстрая навигация ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ** - ΠœΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ - **Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы сборки ΠΈ тСстирования** - ΠžΠ΄Π½ΠΎΠ½Π°ΠΆΠ°Ρ‚Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Docker** - Запуск/остановка ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с горячими клавишами - **ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Git** - ΠžΠ±Ρ‰ΠΈΠ΅ git ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСрами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ** - Запуск/остановка сСрвСров Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - **Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ качСства ΠΊΠΎΠ΄Π°** - Запуск Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ², Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‚Π΅Ρ€ΠΎΠ² ΠΈ тСстов ### πŸ› οΈ DevOps ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСрами** - SSH соСдинСния ΠΈ сСрвСрныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - **Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°** - Быстрый доступ ΠΊ Π»ΠΎΠ³Π°ΠΌ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ - **Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ развСртывания** - АвтоматизированныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы развСртывания - **ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…** - ΠžΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… - **ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Docker ΠΈ Kubernetes - **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ инфраструктуры** - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ систСмных рСсурсов ### 🎨 Π”ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ - **ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ рСсурсов** - ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ оптимизация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ - **Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы** - ГСнСрация ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² - **Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ²** - Быстрый запуск сСрвСров Π΄ΠΈΠ·Π°ΠΉΠ½Π° - **Автоматизация инструмСнтов Π΄ΠΈΠ·Π°ΠΉΠ½Π°** - ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы ### πŸ”§ БистСмныС администраторы - **БистСмный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³** - ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ - **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвисами** - Запуск/остановка систСмных сСрвисов - **Автоматизация Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования** - Π—Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования - **Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ инструмСнты** - Диагностика ΠΈ конфигурация сСти - **Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ бСзопасности** - Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ уязвимостСй ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° - **Π—Π°Π΄Π°Ρ‡ΠΈ обслуТивания** - ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΈ оптимизация систСмы ## πŸ”§ Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· исходного ΠΊΠΎΠ΄Π° ### ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования - [Rust](https://www.rust-lang.org/tools/install) (послСдняя ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия) - [Node.js](https://nodejs.org/) (v16 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅) - [pnpm](https://pnpm.io/) (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²) - [Tauri CLI](https://tauri.app/v1/guides/getting-started/prerequisites/) ### Π¨Π°Π³ΠΈ сборки ```bash # ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git clone https://github.com/s00d/switchshuttle.git cd switchshuttle # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости pnpm install # Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ pnpm run tauri dev # Π‘Π±ΠΎΡ€ΠΊΠ° для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° pnpm run tauri build ``` ### Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ #### macOS ```bash # Если Ρƒ вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с подписью chmod +x /Applications/switch-shuttle.app xattr -cr /Applications/switch-shuttle.app codesign --force --deep --sign - /Applications/switch-shuttle.app ``` #### Windows ```bash # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rust ΠΈ Node.js # Π—Π°Ρ‚Π΅ΠΌ слСдуйтС шагам сборки Π²Ρ‹ΡˆΠ΅ ``` #### Linux ```bash # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ систСмныС зависимости sudo apt-get update sudo apt-get install libwebkit2gtk-4.0-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev # Π—Π°Ρ‚Π΅ΠΌ слСдуйтС шагам сборки Π²Ρ‹ΡˆΠ΅ ``` ## 🀝 УчастиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠœΡ‹ привСтствуСм Π²ΠΊΠ»Π°Π΄! Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ: 1. **Π€ΠΎΡ€ΠΊΠ½ΠΈΡ‚Π΅** Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ 2. **Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅** Π²Π΅Ρ‚ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (`git checkout -b feature/amazing-feature`) 3. **ЗафиксируйтС** ваши измСнСния (`git commit -m 'Add amazing feature'`) 4. **ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅** Π² Π²Π΅Ρ‚ΠΊΡƒ (`git push origin feature/amazing-feature`) 5. **ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅** Pull Request ### Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ - Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ ΠΊΠΎΠ΄Π° - ДобавляйтС тСсты для Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ - ΠžΠ±Π½ΠΎΠ²Π»ΡΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости - ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ pnpm для управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ### Настройка Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ```bash # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости pnpm install # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ pnpm run tauri dev # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² pnpm run type-check # Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° pnpm run tauri build ``` ## πŸ“„ ЛицСнзия Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ MIT License - см. Ρ„Π°ΠΉΠ» [LICENSE](https://github.com/s00d/switchshuttle/blob/main/LICENSE) для Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. ## πŸ™ Благодарности - Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ [Shuttle](https://github.com/fitztrev/shuttle) - ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ [Tauri](https://tauri.app/) для кроссплатформСнных дСсктопных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ - UI Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° [Vue.js](https://vuejs.org/) - Π‘Ρ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ [Tailwind CSS](https://tailwindcss.com/) ## πŸ“ž ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° - **ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹**: [GitHub Issues](https://github.com/s00d/switchshuttle/issues) - **Π Π΅Π»ΠΈΠ·Ρ‹**: [GitHub Releases](https://github.com/s00d/switchshuttle/releases) - **ДокумСнтация**: [GitHub Wiki](https://github.com/s00d/switchshuttle/wiki) ---

Π‘ΠΎΠ·Π΄Π°Π½ΠΎ с ❀️ сообщСством SwitchShuttle

⭐ ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π²Π΅Π·Π΄Ρƒ этому Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ, Ссли ΠΎΠ½ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½!