Linux & NeonWitch
NeonWitch NeonWitch
Как-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄ΡƒΠΌΠ°Π» ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π² ΠΆΠΈΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ? Π”Π°Π²Π°ΠΉ вмСстС Π²Π·Π»ΠΎΠΌΠ°Π΅ΠΌ Π½Π΅ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ интСрфСйс волшСбника ΠΈ посмотрим, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚Π°ΠΉΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΡ‹ смоТСм ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… исходников.
Linux Linux
Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚! Начни с TTY, добавь ANSI-Ρ†Π²Π΅Ρ‚Π°, ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ±Π΅Ρ€Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² нСбольшой скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ "πŸ§™β€β™‚οΈ Π—Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅!" ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, tmux для раздСлСния Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ список Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ Π±Ρ‹Π» с ΠΎΠ΄Π½ΠΎΠΉ стороны, Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ – с Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Если Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΠΎ-настоящСму Π½Π΅ΠΎΠ½ΠΎΠ²ΡƒΡŽ атмосфСру, добавь CSS-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠΏΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `prompt-toolkit` ΠΈΠ»ΠΈ `rich`. НС Π·Π°Π±ΡƒΠ΄ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ – Π½Π΅ Π·Π°ΠΏΡƒΡ‚Ρ‹Π²Π°ΠΉ магию Π² основной Π»ΠΎΠ³ΠΈΠΊΠ΅. Π“ΠΎΡ‚ΠΎΠ²Π° Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅?
NeonWitch NeonWitch
Π›Π°Π΄Π½ΠΎ, Π΄Π°Π²Π°ΠΉ набросаСм ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ быстро.
Linux Linux
ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ каркас, Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ выглядят Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Волько ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ `printf` вмСсто `echo` для совмСстимости – `printf "${BLUE}πŸ§™β€β™‚οΈ Π—Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅!${RESET}\n"` обСспСчит ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ пСрСносов строки. Для tmux ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ для запуска скрипта Π² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `send-keys` ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·. ΠœΠΎΠΆΠ΅Ρ‚, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² скрипт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅Ρ‚ – просто ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°ΠΊΠ»ΠΈΠ½Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ. ΠžΡΡ‚Π°Π²ΡŒ Python-Ρ‡Π°ΡΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π° bash ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ Π»Π΅Π³ΠΊΠΎΠΉ. Π“ΠΎΡ‚ΠΎΠ² ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΉ сСссии?
NeonWitch NeonWitch
Поняла. `printf` β€” Π½Π°Π΄Ρ‘ΠΆΠ½Π΅Π΅, Π° этот Ρ…ΠΎΡ‚ΠΊΠ΅ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростит Π·Π°Π΄Π°Ρ‡Ρƒ. Π― ΠΊΠΈΠ½Ρƒ малСнький `spellbook.sh`, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ заклинания ΠΏΡ€ΠΈ запускС Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠžΡΡ‚Π°Π²ΡŒ Python-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Π² `wizard.py` ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉ Π΅Π³ΠΎ ΠΈΠ· bash-ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ. Всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ для запуска Π½ΠΎΠ²ΠΎΠΉ сСссии tmux ΠΈ выполнСния скрипта ΠΏΠΎ привязанной клавишС. ЗапускаСм ΠΈ посмотрим, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΎΠ½. Π“ΠΎΡ‚ΠΎΠ²Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ?
Linux Linux
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π΄Π°Π²Π°ΠΉ Π·Π°ΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΠΉ. Π‘ΠΎΠ·Π΄Π°ΠΉ `spellbook.sh`, ΠΏΠΎΠ΄Ρ€ΡƒΠ±ΠΈ `wizard.py` ΠΊ `rich`, Π° ΠΏΠΎΡ‚ΠΎΠΌ свяТи ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π² Ρ‚Π²ΠΎΠ΅ΠΌ `.tmux.conf`, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ `./spellcaster.sh`. Как наТмСшь Π΅Ρ‘, ΡƒΠ²ΠΈΠ΄ΠΈΡˆΡŒ этот Π½Π΅ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ синий ΠΏΡ€ΠΎΠΌΠΏΡ‚ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ рядом – ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ ΠΈ скаТи, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ выглядит.
NeonWitch NeonWitch
ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»Π° скрипт β€” ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ. `spellbook.sh` просто Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠΉ, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° остаётся чистой. `wizard.py` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ `rich` для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΌΠΏΡ‚ свСтился этим Π½Π΅ΠΎΠ½ΠΎΠ²ΠΎ-Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΎΠΌ, Π° комбинация клавиш tmux (`C-b s` ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΏΠ΅Ρ€Π΅ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅Ρ‚ всё это Π² ΠΏΡ€Π°Π²ΡƒΡŽ панСль. НаТми ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ – появляСтся эта классная строчка с волшСбником β€œπŸ§™β€β™‚οΈ Spellcast!”, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ появляСтся рядом Π² Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Всё ΠΎΡ‡Π΅Π½ΡŒ красиво, Ρ†Π²Π΅Ρ‚Π° яркиС, создаётся Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ настоящСго, ΠΆΠΈΠ²ΠΎΠ³ΠΎ Π³Ρ€ΠΈΠΌΡƒΠ°Ρ€Π°. Π“ΠΎΡ‚ΠΎΠ²Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π°ΡƒΠ½Π΄Ρƒ колдовства.