notcurses v1.4.1 бароварда шуд - китобхона барои интерфейсҳои матнии муосир


notcurses v1.4.1 бароварда шуд - китобхона барои интерфейсҳои матнии муосир

Версияи нави китобхонаи notcurses v1.4.x бароварда шуд "сага идома дорад! ву-танг! ву-танг!»

Notcurses китобхонаи TUI барои эмуляторҳои муосири терминал мебошад. Айнан тарҷума шудааст - на лаънат. Он дар C навишта шудааст, бо истифода аз C++-сарлавҳаҳои бехатар. Сарпӯшҳо барои зангин, C ++ и Python.

Ин чист: китобхонае, ки TUI-ҳои мураккабро дар эмуляторҳои муосири терминал содда мекунад ва рангҳои дурахшон ва Юникодро ба ҳадди аксар дастгирӣ мекунад. Бисёре аз вазифаҳое, ки ба лаънатҳо вогузор шудаанд, метавонанд бо истифода аз латофатҳо иҷро шаванд (ва баръакс).

Ин чӣ нест: Татбиқи мувофиқи лаънатҳои X/Open ё иваз кардани лаънатҳо дар системаҳои мавҷуда.

Notcurses API-и X/Open Curses-ро, ки дар доираи мушаххасоти ягонаи UNIX пешниҳод шудааст, бекор мекунад. Ин мушаххасот кайҳо кӯҳна шудааст ва масалан, функсияҳои терминалро, ба монанди ранги индекснашавандаи 24-бит дастгирӣ намекунад. Ҳамин тавр, notcurses иваз кардани лаънатҳо нест. Он камтар сайёр аст ва бешубҳа дар сахтафзори камтар озмуда шудааст.
То ҳадди имкон, notcurses китобхонаи истилоҳҳои бо ncurses таъминшударо истифода мебарад ва аз интиқолпазирии он манфиати зиёд меорад.
Notcurses функсияҳои пешрафтаро барои муошират бо корбарон дар истгоҳҳои корӣ, телефонҳо, ноутбукҳо ва планшетҳо мекушояд.

Чаро ин китобхонаи ғайристандартӣ истифода мешавад?

  • Бехатарии ришта ва истифодаи самарабахш дар барномаҳои бисёрсоҳавӣ аз ибтидо як баррасии тарҳрезӣ буд.

  • Дар муқоиса бо X/Open API-и хубтар форматшуда:

    • Идентификаторҳои содиротӣ барои пешгирӣ кардани бархӯрди фазои номҳо префикс гузошта мешаванд.

    • Файли объекти китобхона маҷмӯи ҳадди ақали аломатҳоро содир мекунад. Дар ҳолатҳои амалӣ, рамзи статикӣ танҳо барои сарлавҳаҳои сатр истифода мешавад. Ин оптимизатсияи компиляторро осон мекунад ва вақти боркуниро кам мекунад.

  • Ҳама APIҳо ба таври аслӣ маҷмӯи аломатҳои универсалиро (Юникод) дастгирӣ мекунанд. API ҳуҷайра ба консепсия асос ёфтааст Кластери васеъшудаи графикии Юникод.

  • Хусусиятҳои визуалӣ, аз ҷумла тасвирҳо, ҳуруфҳо, видеоҳо, матни контрасти баланд, спрайтҳо ва минтақаҳои шаффоф. Ҳама APIҳо ба таври аслӣ ранги 24-битро дастгирӣ мекунанд, ки мувофиқи терминал миқдорбандӣ карда мешавад.

  • Иҷозатномаи Apache2, баръакс драма дар якчанд санад, ки иҷозатномаи ncurses аст (охирин ҳамчун "ислоҳоти MIT-X11" ҷамъбаст карда мешавад).

Аз замони нашри назарраси қаблии 1.1.0, шумораи зиёди хусусиятҳо илова карда шуданд. Тағироти асосӣ:

  • Виҷети хониш барои ворид кардани сатрҳои шакли озод, ки бо сатрҳои хониш алоқаманд аст

  • Виҷети зерпроцесс барои тавлиди зерпроцесс, идоракунии он ва интиқоли натиҷаҳои он.

  • Linux 5.3+ механизми нави clone3+pidfd-ро барои идоракунии равандҳо бидуни ҳолати мусобиқа истифода мебарад.

  • Виҷети Fdplane барои ҷараён додани дескриптори файли худсарона ба ҳавопаймо (дар он зерпроцесс сохта шудааст). Ҳарду ба зангҳои бозгашт имкон медиҳанд, ки матнро услуб ё ба тариқи дигар идора кунанд.

  • Гардиши ҳавопаймоҳо ва эффектҳои визуалӣ. Боркунии визуализатсия аз хотира. Блитинги тасодуфии RGBA/BGRx.

  • Менюро дар ҳарду (ё ҳарду) аз болои ва поён ҷойгир кардан мумкин аст.

  • Пешрафтҳои калон дар режими мустақим.

  • Полифилҳо, градиентҳо ва матни контрасти баланд.

  • Ба сифати мисол Tetris илова карда шуд.

  • Папкаҳои C++-и Marek Habersack ҳоло қобилияти партофтани истисноҳоро доранд (агар лозим бошад).

  • Python ва Rust FFI навсозӣ ва санҷида шуданд.

Намоиши видеоӣ бо шарҳҳои муаллиф
Китоби «Хакер кардани сайёра! бо Notcourses" аз муаллиф

Манбаъ: linux.org.ru

Илова Эзоҳ