ΠΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° 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