ИзлСзС notcurses v1.4.1 - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ тСкстови интСрфСйси


ИзлСзС notcurses v1.4.1 - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ тСкстови интСрфСйси

ИзлСзС Π½ΠΎΠ²Π° вСрсия Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° notcurses v1.4.x β€žΡΠ°Π³Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°! Π’Π£ Π’Π°Π½Π³! Π’Π£ Π’Π°Π½Π³!"

Notcurses Π΅ TUI Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½ΠΈ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ. Π‘ΡƒΠΊΠ²Π°Π»Π½ΠΎ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ – Π½Π΅ проклятия. Написан Π΅ Π½Π° C, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ C++-бСзопасни Π·Π°Π³Π»Π°Π²ΠΊΠΈ. Налични ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π·Π° РъТда, C + + ΠΈ ΠŸΠΈΡ‚ΠΎΠ½.

Какво Π΅ Ρ‚ΠΎΠ²Π°: Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която опростява слоТнитС TUI Π½Π° ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½ΠΈ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΉΠΊΠΈ максимално ярки Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅ ΠΈ Unicode. Много Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄Π΅Π»Π΅Π³ΠΈΡ€Π°Π½ΠΈ Π½Π° curses, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ изпълнСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° notcurses (ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ).

Какво Π½Π΅ Π΅: Π‘ΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° рСализация Π½Π° X/Open curses ΠΈΠ»ΠΈ замСститСл Π½Π° ncurses Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ систСми.

Notcurses ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Ρ X/Open Curses API, прСдоставСн ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ Π΅Π΄ΠΈΠ½Π½Π°Ρ‚Π° UNIX спСцификация. Π’Π°Π·ΠΈ спСцификация ΠΎΡ‚Π΄Π°Π²Π½Π° Π΅ остаряла ΠΈ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° функционалност Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΊΠ°Ρ‚ΠΎ нСиндСксиран 24-Π±ΠΈΡ‚ΠΎΠ² цвят. ΠšΠ°Ρ‚ΠΎ Ρ‚Π°ΠΊΡŠΠ², notcurses Π½Π΅ Π΅ замСститСл Π½Π° проклятията. Π’ΠΎΠΉ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ прСносим ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π΅ тСстван Π½Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€.
ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΅ възмоТно, notcurses ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° terminfo, прСдоставСна с ncurses, ΠΊΠ°Ρ‚ΠΎ сС възползва Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΡ‚ Π½Π΅ΠΉΠ½Π°Ρ‚Π° прСносимост.
Notcurses отваря Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност Π·Π° взаимодСйствиС с ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ станции, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈ, Π»Π°ΠΏΡ‚ΠΎΠΏΠΈ ΠΈ Ρ‚Π°Π±Π»Π΅Ρ‚ΠΈ.

Π—Π°Ρ‰ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Π°Π·ΠΈ нСстандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°?

  • БСзопасността Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π°Ρ‚Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π² многонишкови ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ са ΡΡŠΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ.

  • По-Π΄ΠΎΠ±Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½ API Π² сравнСниС с X/Open:

    • ЕкспортиранитС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ са с прСфикс, Π·Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ Π² пространството Π½Π° ΠΈΠΌΠ΅Π½Π°.

    • ΠžΠ±Π΅ΠΊΡ‚Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Скспортира ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π·Π½Π°Ρ†ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ, статичният ΠΊΠΎΠ΄ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° само Π·Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’ΠΎΠ²Π° улСснява ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΈ намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅.

  • Всички API ΠΈΠ·Π½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ унивСрсалния Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ символи (Unicode). ΠšΠ»Π΅Ρ‚ΡŠΡ‡Π½ΠΈΡΡ‚ API сС основава Π½Π° концСпцията Π Π°Π·ΡˆΠΈΡ€Π΅Π½ Π³Ρ€Π°Ρ„Π΅ΠΌΠ΅Π½ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° Unicode.

  • Π’ΠΈΠ·ΡƒΠ°Π»Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ изобраТСния, ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅, тСкст с висок контраст, спрайтовС ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΈ области. Всички API ΠΈΠ·Π½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ 24-Π±ΠΈΡ‚ΠΎΠ² цвят, ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ спорСд Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

  • Apache2 Π»ΠΈΡ†Π΅Π½Π·, Π·Π° ​​разлика ΠΎΡ‚ Π΄Ρ€Π°ΠΌΠ° Π² няколко Π°ΠΊΡ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π»ΠΈΡ†Π΅Π½Π·ΡŠΡ‚ Π·Π° ncurses (послСдният Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ ΠΊΠ°Ρ‚ΠΎ β€žΠΏΡ€Π΅Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° MIT-X11β€œ).

ΠžΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° Π·Π½Π°Ρ‡ΠΈΠΌΠ° вСрсия 1.1.0 бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • ΠŸΡ€ΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π·Π° въвСТданС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² свободна Ρ„ΠΎΡ€ΠΌΠ°, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π½ΠΈΠ·ΠΎΠ²Π΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅

  • ΠŸΡ€ΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅ Π·Π° подпроцСс Π·Π° създаванС Π½Π° подпроцСс, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΡƒ ΠΈ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

  • Linux 5.3+ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° новия ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ clone3+pidfd Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° процСси Π±Π΅Π· условиС Π·Π° ΡΡŠΡΡ‚Π΅Π·Π°Π½ΠΈΠ΅.

  • Π£ΠΈΠ΄ΠΆΠ΅Ρ‚ Fdplane Π·Π° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² дСскриптор към Ρ€Π°Π²Π½ΠΈΠ½Π°Ρ‚Π° (Π²ΡŠΡ€Ρ…Ρƒ която Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚). И Π΄Π²Π΅Ρ‚Π΅ позволяват ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ извиквания Π·Π° стилизиранС ΠΈΠ»ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° тСкст.

  • Π’ΡŠΡ€Ρ‚Π΅Π½Π΅ Π½Π° Ρ€Π°Π²Π½ΠΈΠ½ΠΈ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ. Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ RGBA/BGRx ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅.

  • ΠœΠ΅Π½ΡŽΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС поставСно Π½Π° Π΅Π΄Π½Π° (ΠΈΠ»ΠΈ ΠΈ Π½Π° Π΄Π²Π΅Ρ‚Π΅) Π³ΠΎΡ€Π½Π° ΠΈ Π΄ΠΎΠ»Π½Π° Ρ€Π°Π²Π½ΠΈΠ½Π°.

  • Π“ΠΎΠ»Π΅ΠΌΠΈ подобрСния Π² Direct Ρ€Π΅ΠΆΠΈΠΌ.

  • ΠŸΠΎΠ»ΠΈΡ„ΠΈΠ»ΠΈ, Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ тСкст с висок контраст.

  • Π”ΠΎΠ±Π°Π²Π΅Π½ тСтрис ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  • C++ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅ ΠΎΡ‚ Marek Habersack Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ способността Π΄Π° Ρ…Π²ΡŠΡ€Π»ΡΡ‚ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ).

  • Python ΠΈ Rust FFI Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈ тСствани.

Π’ΠΈΠ΄Π΅ΠΎ дСмонстрация с авторски ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ
ΠšΠ½ΠΈΠ³Π°Ρ‚Π° β€žHacking The Planet! с Notcoursesβ€œ ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€