README_RU.md
August 26, 2025 Β· View on GitHub
SwitchShuttle
π ΠΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ Π³ΠΎΡΡΡΠΈΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌΠΈ
β¨ Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SwitchShuttle?
SwitchShuttle β ΡΡΠΎ ΠΌΠΎΡΠ½ΠΎΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ (Rust + Tauri + Vue.js), ΠΎΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ.
π― ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- π₯οΈ ΠΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° - Π Π°Π±ΠΎΡΠ°Π΅Ρ Π½Π° macOS, Windows ΠΈ Linux
- β‘ ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ - ΠΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°
- π¨ ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² - iTerm, Terminal, Warp, Alacritty, Hyper ΠΈ Π΄ΡΡΠ³ΠΈΠ΅
- π Π£ΠΌΠ½Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ - Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄
- π§ ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ - ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠ΅Π±ΡΡΡΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
- π ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ - ΠΠ°ΠΏΡΡΠΊ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅, Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅
- π ΠΠ²ΡΠΎΠ·Π°ΠΏΡΡΠΊ - ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°
- π¨ Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ - ΠΡΠ°ΡΠΈΠ²ΡΠΉ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Vue.js
- π» ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° - ΠΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ CLI
- βοΈ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ - ΠΠΊΠ»ΡΡΠ°ΠΉΡΠ΅/Π²ΡΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ
- π ΠΠΎΠΌΠ°Π½Π΄Ρ-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ - ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΎΠ½ΠΎΠ²ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ
- π ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° - ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ
- π ΠΠ°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ - ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cron Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- π― Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² - ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
π₯οΈ ΠΠ±Π·ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
SwitchShuttle ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ:
ποΈ ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
1. Π Π΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ
- ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ JSON ΡΠ΅Π΄Π°ΠΊΡΠΎΡ - Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠ΅ΠΉ
- Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² - ΠΠΌΠΏΠΎΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
- ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ - ΠΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
- ΠΠ²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ - ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ - ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ
- ΠΠΎΠΈΡΠΊ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ - ΠΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ
- ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
2. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
- ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠΎΡΠΌ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π³ΠΎΡΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ - Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΡΠ±ΠΎΡ ΠΈΠΊΠΎΠ½ΠΎΠΊ - ΠΡΠ±ΠΎΡ ΡΠΌΠΎΠ΄Π·ΠΈ ΠΈΠΊΠΎΠ½ΠΎΠΊ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ
- ΠΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° - ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π²Π²ΠΎΠ΄Π° Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ - ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ
- ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ - ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
3. ΠΠ°Π½Π΅Π»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ
- ΠΡΠ±ΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° - ΠΡΠ±ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- Π Π΅ΠΆΠΈΠΌ Π·Π°ΠΏΡΡΠΊΠ° - ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ (ΡΠ΅ΠΊΡΡΠ΅Π΅/Π½ΠΎΠ²Π°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ°/Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ)
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΌΡ - ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊΠ° - ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π³ΠΎΡΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ - ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΌΠ΅Π½Ρ
4. ΠΠ΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Ρ
- ΠΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ - Π©Π΅Π»ΡΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ ΡΡΠ΅Ρ Π΄Π»Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ
- ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΡΡΠ°ΡΡΡΠ° - ΠΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅Π½Ρ - ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ Π»Π΅Π³ΠΊΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
- ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ - Π‘ΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Π΄Π»Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ - ΠΠΈΠ²ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ²
π¨ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄
{
"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 ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ: ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π΄Π»ΠΈΠ½Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π²Π²ΠΎΠ΄ΠΎΠ²
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
- ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅: SecurityManager ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ
- Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ²: ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌ ΠΈ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ regex ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌ
- ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π΄Π»ΠΈΠ½Ρ: ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²Π²ΠΎΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ Π΄Π»ΠΈΠ½Ρ
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ: ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ: Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ ΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
π ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ°ΡΠΈΠ°Π½Ρ 1: Homebrew (macOS - Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ)
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ΅Π· Homebrew
brew tap s00d/switchshuttle
brew install --cask switchshuttle
ΠΠ°ΡΠΈΠ°Π½Ρ 2: Π ΡΡΠ½ΠΎΠ΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅
- Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ΅Π»ΠΈΠ· Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Ρ GitHub Releases
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ SwitchShuttle - ΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΡΡΠ΅Π΅
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ ΡΡΠ΅Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ΅Π½Ρ
ΠΠ΅ΡΠ²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ - ΠΠ°ΠΆΠΌΠΈΡΠ΅ "Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ" Π² ΠΌΠ΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Ρ
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» - ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ - ΠΠ°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΌΠ΅Π½Ρ ΡΡΠ΅Ρ
ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
Π¨Π°Π³ 1: Π Π΅Π΄Π°ΠΊΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ
- ΠΡΠΊΡΠΎΠΉΡΠ΅ SwitchShuttle ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ "Π Π΅Π΄Π°ΠΊΡΠΎΡ"
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (iTerm, Terminal, Warp ΠΈ Ρ.Π΄.)
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ Π·Π°ΠΏΡΡΠΊΠ° (ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ, Π½ΠΎΠ²Π°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ)
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ΅Π½Ρ
Π¨Π°Π³ 2: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ "ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ" Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
- ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
- ΠΠΌΡ: ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
- ΠΠΎΠΌΠ°Π½Π΄Π°: Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
- ΠΠΎΡΡΡΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ°: ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ)
- ΠΠΊΠΎΠ½ΠΊΠ°: ΠΠΌΠΎΠ΄Π·ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ° Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
- Π€ΠΎΠ½: ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ Π»ΠΈ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
- ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
Π¨Π°Π³ 3: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½" Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, DevOps, ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΈ Ρ.Π΄.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ
Π¨Π°Π³ 4: ΠΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΡΠ΅ΠΉ
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ SwitchShuttle Π² ΡΡΠ΅Π΅
- ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π΄Π»Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π¨Π°Π³ 5: Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- ΠΠΎΠΌΠ°Π½Π΄Ρ-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ: ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΡΠ°ΡΡΡΠ°
- ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°: ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
- ΠΠ°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cron Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅Π½Ρ: ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ
π» ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° (CLI)
SwitchShuttle ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π±Π΅Π· ΠΎΡΠΊΡΡΡΠΈΡ GUI.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CLI
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄
# ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ID ΠΊΠΎΠΌΠ°Π½Π΄Ρ
switch-shuttle cmd_8
# ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π±Π΅Π· ΡΡΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°)
switch-shuttle "ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ"
Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄
# ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΈΡ
ID
switch-shuttle --list
# ΠΈΠ»ΠΈ
switch-shuttle -l
ΠΠΎΠΈΡΠΊ ΠΊΠΎΠΌΠ°Π½Π΄
# ΠΠΎΠΈΡΠΊ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ
switch-shuttle --search "git"
# ΠΈΠ»ΠΈ
switch-shuttle -s "docker"
ΠΠ°ΠΏΡΡΠΊ CLI Π½Π° ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
macOS
# ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· 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
# ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ
"C:\Program Files\SwitchShuttle\switch-shuttle.exe" --list
# ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· winget ΠΈΠ»ΠΈ chocolatey
switch-shuttle --list
# ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² PATH Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°
# ΠΠΎΠ±Π°Π²ΡΡΠ΅ "C:\Program Files\SwitchShuttle" Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ PATH
Linux
# ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
switch-shuttle --list
# ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π²ΡΡΡΠ½ΡΡ
./switch-shuttle --list
# Π‘Π΄Π΅Π»Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² PATH
chmod +x switch-shuttle
sudo mv switch-shuttle /usr/local/bin/
ΠΡΠΈΠΌΠ΅ΡΡ CLI
# ΠΡΡΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ 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\<Username>\AppData\Roaming\switch-shuttle\
ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
{
"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"
}
]
}
]
}
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
π§ ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
{
"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] = () => <div>[componentName]</div>;' >> src/components/[componentName]/index.tsx"
],
"hotkey": "Ctrl+Shift+N"
}
π ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄:
{
"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 Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
{
"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 ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
{
"name": "π ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ",
"commands": [
"npm run dev"
],
"background": true,
"hotkey": "Ctrl+Shift+S"
}
ΠΠ°ΡΠΈΠ°Π½ΡΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
"background": true- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ConsolePool (ΡΠΎΠ½)"background": false- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°"background": nullΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΡΡΠΊ - ΠΠ²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ
π ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ
ΠΡΠ³Π°Π½ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅Π½Ρ:
{
"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"
}
]
}
π ΠΠΎΠΌΠ°Π½Π΄Ρ-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΎΠ½ΠΎΠ²ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ:
{
"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
π ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
ΠΠΎΠ½ΠΈΡΠΎΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ:
{
"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 ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
{
"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 (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ)
- Node.js (v16 ΠΈΠ»ΠΈ Π²ΡΡΠ΅)
- pnpm (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²)
- Tauri CLI
Π¨Π°Π³ΠΈ ΡΠ±ΠΎΡΠΊΠΈ
# ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git clone https://github.com/s00d/switchshuttle.git
cd switchshuttle
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
pnpm install
# Π Π΅ΠΆΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
pnpm run tauri dev
# Π‘Π±ΠΎΡΠΊΠ° Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
pnpm run tauri build
ΠΠ°ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ
macOS
# ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ
chmod +x /Applications/switch-shuttle.app
xattr -cr /Applications/switch-shuttle.app
codesign --force --deep --sign - /Applications/switch-shuttle.app
Windows
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Rust ΠΈ Node.js
# ΠΠ°ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΠ°Π³Π°ΠΌ ΡΠ±ΠΎΡΠΊΠΈ Π²ΡΡΠ΅
Linux
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
sudo apt-get update
sudo apt-get install libwebkit2gtk-4.0-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
# ΠΠ°ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΠ°Π³Π°ΠΌ ΡΠ±ΠΎΡΠΊΠΈ Π²ΡΡΠ΅
π€ Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
ΠΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΠΌ Π²ΠΊΠ»Π°Π΄! ΠΠΎΡ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠΎΡΡ:
- Π€ΠΎΡΠΊΠ½ΠΈΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π΅ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ (
git checkout -b feature/amazing-feature) - ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (
git commit -m 'Add amazing feature') - ΠΡΠΏΡΠ°Π²ΡΡΠ΅ Π² Π²Π΅ΡΠΊΡ (
git push origin feature/amazing-feature) - ΠΡΠΊΡΠΎΠΉΡΠ΅ Pull Request
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
- Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°
- ΠΠΎΠ±Π°Π²Π»ΡΠΉΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
- ΠΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΠΉΡΠ΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ pnpm Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
pnpm install
# ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
pnpm run tauri dev
# ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ²
pnpm run type-check
# Π‘ΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
pnpm run tauri build
π ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ MIT License - ΡΠΌ. ΡΠ°ΠΉΠ» LICENSE Π΄Π»Ρ Π΄Π΅ΡΠ°Π»Π΅ΠΉ.
π ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ
- ΠΠ΄ΠΎΡ Π½ΠΎΠ²Π»Π΅Π½ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Shuttle
- ΠΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tauri Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
- UI ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Vue.js
- Π‘ΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tailwind CSS
π ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ: GitHub Issues
- Π Π΅Π»ΠΈΠ·Ρ: GitHub Releases
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ: GitHub Wiki
Π‘ΠΎΠ·Π΄Π°Π½ΠΎ Ρ β€οΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ SwitchShuttle
β ΠΠΎΡΡΠ°Π²ΡΡΠ΅ Π·Π²Π΅Π·Π΄Ρ ΡΡΠΎΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½!