LINUX.ORG.RU

Избранные сообщения frunobulax

Общие сведения о работе терминала

Форум — General

Эту заметку пишу как ответ на коммент в тему Хочу работу с мышкой как в терминале ConEmu Но пишу быстро и по верхам, так что в общий раздел, а не в раздел статьи. Возможно окажется полезным, чтоб ссылаться сюда в случае похожих вопросов у новичков.

Всё это у меня немного путается. Терминалы, консоли, командные строки. Признаюсь, я в терминологии немного чайник.

Ща всё разъясним.

Базово есть такая архитектура:

Приложение-терминал <--> TTY <--> программа, которая хочет общаться через терминал

TTY это компонент ядра. Кроме того, что служит связующим звеном, он также реализует некоторые базовые фичи, которые делают терминал немного «умнее». Дело в том, что исторически терминалы (те самые — физические, аппаратные терминалы) для Unix были концептуально «тупые». То есть умели только выводить текст по командам программы, а также пересылать ей, какие клавиши пользователь нажал. Для некоторых других ОС терминалы были «умные», с продвинутыми средствами работы с данными на стороне терминала. Но в Unix они не применялись. Unix вообще концептуально была про простоту. А ля делай только самое необходимое и не больше.

Так вот TTY реализует некоторые базовые примитивы и алгоритмы для случаев, когда программа не умеет или не предназначена сама работать с терминалом.

Про работу TTY я писал подробную статью, вот тут можно прочитать: https://wandrien.github.io/articles/tty/

Далее.

Если программа хочет сама продвинуто работать с терминалом, она настраивает TTY, чтобы оно ей не мешало, то есть отключает его логику обработки данных частично или полностью. И таким образом работает с терминалом прозрачно, без особого вмешательства TTY.

Кроме того, что программа настроила TTY, ей нужно еще управлять самим терминалом.

Терминал управляется через некоторый протокол. Этих протоколов и их вариаций за историю была чертова уйма. Обычно конкретное приложение-терминал поддерживает некоторый базовый набор + какие-нибудь специфичные для себя фишки. Кто-то меньше, кто-то больше. Например, если внимательно почитать, сколько команд и режимов работы имеет xterm, там можно потеряться. Ну короче зоопарк как с браузерами или как с поддержкой разных фич в видеокартах.

Для реализации концепции командной строки программы обычно не велосипедят всю логику работы с терминалом с нуля, а берут готовые решения. Часто это библиотека readline. Например, она используется в bash.

В мире BSD-софта вместо readline обычно используется libedit. Ну и еще куча альтернатив есть, как обычно.

Итак, если мы работаем с командным интерпретатором bash, он использует библиотеку readline, реализующую фичи строки ввода, и readline отображает текст в терминале и реагирует на наши команды правки текста.

Если мы работаем с Midnight Commander, то там вместо readline применяется продвинутый тулкит, который реализует окошки, кнопки, поля ввода и так далее.

В zsh, если память не изменяет, используется не readline, а свой отдельный велосипед. (Лень факт-чекать.)

Вот так всё это устроено.

То есть в таких случаях логика работы с вводом пользователя находится в некотором компоненте в составе клиентской программы. А сам терминал тут не особо играет роль.

Теперь к вопросу про мышь, который был в исходном треде.

Если программа не включила в терминале режим передачи событий мыши, то мы видим вот эту простую логику, встроенную в любой терминал, когда можно мышкой выделить текст и скопировать. Если же программа сказала, что хочет сама обрабатывать события мыши, то терминал свою логику выделения текста отключает.

Таким образом получается, что не достаточно сделать так, чтобы мышь работала только в командной строке. Нужно, чтобы приложение еще и «обычную» логику выделения текста как-то у себя поддерживало.

Но! Тут есть обходной путь. Если, например, мы запустим mc и попытаемся выделить текст с нажатой Shift, то увидим, что мышь обрабатывается терминалом, а не mc. Удержание Shift принудительно возвращает обработку мыши в терминал.

Вот вроде и всё, что я хотел вам на эту тему сообщить сегодня. =)

 ,

wandrien
()

GSmartControl 2.0.0

Новости — Open Source
Группа Open Source

После почти 3 лет разработки состоялся выпуск GSmartControl 2.0.0 – графической утилиты для отслеживания состояния HDD и SSD дисков по технологии S.M.A.R.T.

( читать дальше... )

>>> Подробности

 , , , ,

cchr
()

Преобразование звука в MIDI в реальном времени

Галерея — Скриншоты

Спустя 2,5 месяца работы я готов вам представить свою программу wave2midi. Она анализирует спектр нот в звуковом сигнале в реальном времени и выдает на выход MIDI события, которые можно записывать в таких программах, как MuseScore, или проигрывать в синтезаторе Yoshimi. Моя программа может воспринимать даже аккорды!

Программа работает в среде UNIX подобных систем с звуковой системой JACK Audio Connection Kit.

К ней можно подключать любые программы, поддерживающие JACK.

Я использую w2midi для того, чтобы получать звук синтезатора, играя на электрогитаре и для того, чтобы получать звук синтезатора своим голосом в микрофон! Вы можете придумать свой способ её использовать. Можно, например, для более точного распознавания пропускать входящий сигнал через компрессор, а выходящие ноты транспонировать (я думаю есть такие утилиты, если нет, то напишу).

>>> Видео демонстрация

Программа состоит из интерфейса командной строки (w2midi) и графического интерфейса (w2midi_qt). CLI часть написана на C99, а графическая - на C++ с использованием фреймворка Qt5.

w2midi распространяется под лицензией Apache 2.0, w2midi_qt под GPL-3.0-only.

Хочу обратить внимание на настройку:

  • Чем выше буфер, тем выше задержка и точность
  • Если программа улавливает лишние звуки, измените порог срабатывания в Дб

Программа распознает частоты с помощью преобразования Фурье, а конкретно, с помощью библиотеки FFTW3. Частоты преобразуются в ноты по простой формуле: 12 * \log_2 \frac{f}{d}, где f - полученная частота, d - опорная. Гармонический ряд - относителен, я считаю его относительно частоты 440 герц (нота ля первой октавы).

Отдельно хочу обратить внимание на обертоны. Если просто анализировать ноты по такому алгоритму, то получается настоящая какафония… Это из за того, что музыкальные инструменты издают не чистую синусоиду, а еще и дополнительные гармоники, называемые обертонами, придающие тембр. Но они нам не нужны во время записи нот. Чтобы их побороть я придумал очень простой алгоритм: из полутонов, стоящий в интервале (расстояние между нотами) секунда (1-2 полутона) выбирается самый громкий. Да, все так просто… В музыке НИКОГДА не используются секунды. Самое интересное, что об этом нигде не написано, просто заметил эмпирическим путём такое интересное свойство.

Вот такая история. Инструкции по сборке из исходных кодов находятся в README.

>>> Видео демонстрация

>>> Репозиторий w2midi

>>> Репозиторий w2midi_qt

>>> Просмотр (1920x1080, 1088 Kb)

 , , , ,

realbarmaley
()

Творческий коллектив Complex Numbers выпустил бету новой оперы 2084. Ваши фидбеки могут повлиять на конечный результат

Форум — Talks

Здравствуйте, мой голос тоже в опере есть, в этом проекте я также помогаю по сайту и прочим.

Отношение к опен сорсу тем что лицензия на творчество Creative Commons BY-SA 4.0, в будущем будут опубликованы исходники на оперу, как и для предыдущих опер.

Виктор ценит обратную связь со слушателями - чтобы опера была понятная и интересная. Часть треков еще возможно будет перезаписана с измененным текстом.

Опера состоит из 40 треков.

Ключевые темы: радикальное продление жизни, глобальные угрозы новому человечеству, перешивка психики под полную рациональность, искусственное управление эмоциями, технологии всеобщего счастья, проблема единства и неделимости сознания, панпсихизм, открытый индивидуализм, проблема сосуществования и доверия человека и ИИ, проблема использования ИИ для решения философских проблем, критическая оценка законов Азимова применительно к реальным сверхинтеллектуальным системам, обратная приоритетность этих законов (3 закон как важнейший), мир без войн, границ и традиционной политики, всеобщая прозрачность/слежка, опасности глубинных исследований механизмов сознания, утилитрониум, гедониум, теория игр, утилитаризм, психопанк, технокоммунизм, всеобщая любовь

Made on Windows XP :)

Можно скачать тут https://drive.google.com/drive/folders/1XNr98DseYZswwKRiFXzCLUs00s1OnMAQ

Кто хочет больше - на сайте доступны предыдущие оперы:

2032

Русалочка

Подробности

Перемещено hobbit из multimedia

 ,

vitaly-zdanevich
()

Хранение, доступ и каталогизация мобильных фото на семью. Self-hosted only.

Форум — Talks

Когда-то поднимал вопрос уже, тогда ничего толком не удалось узнать, все продукты были сырые от слова «совсем».

Со временем погонял немного Nextcloud - не то, не предназначено оно на замену облачной галерии, дохнет.

Сейчас пытаюсь тыкать уже довольно заматеревший Immich, выглядит перспективно, но, конечно монструозное оно довольно и много всяких ненужностей.

В тред призываются активные юзеры сего продукта, в частности, @diamond_cat. Как оно, не дохнет на десятках тысяч файлов за несколько лет?

 immich, , , photoprism,

pekmop1024
()

Elektroid 3.1

Новости — Мультимедиа
Elektroid 3.1
Группа Мультимедиа

Выпущена новая версия Elektroid — свободного аналога Elektron Transfer для управления пресетами и сэмплами на аппаратных синтезаторах и сэмплерах различных производителей.

( читать дальше... )

>>> Подробности

 ,

AP
()

Приложения и утилиты, которые стоит попробовать

Статьи — Администрирование
Приложения и утилиты, которые стоит попробовать

Многие пользователи Linux с большим стажем даже не подозревают о существовании этих замечательных инструментов, которые способны облегчить им жизнь…

( читать дальше... )

 , ,

rtxtxtrx
()

Где взять заграничный VPS с оплатой российскими картами?

Форум — Talks

Собственно сабж. VPS нужен за пределами России. Хочу поднять себе VPN.

Например вижу предложение от RU VDS в Казахстане. Но не знаю что там с местной цензурой. А то из огня да в полымя.

Вопрос в догонку: какой протокол VPN выбрать и какое железо нужно, чтобы 50 мбит/с тянуло?

Перемещено hobbit из general

 ,

ox55ff
()

jdupes 1.28.0

Новости — Open Source
jdupes 1.28.0
Группа Open Source

27 июля состоялся выпуск 1.28.0 консольной утилиты jdupes, написанной на языке C и распространяемой по лицензии MIT.
Утилита предназначена для поиска дублирующихся файлов, с возможностью их удаления, блочной дедупликации или замены на ссылки.

В новой версии:

  • перенесены исправления безопасности из разрабатываемой версии 2;
  • исправлено падение при создании новой базы хешей;
  • увеличена производительность вычисления длины имени;
  • улучшены меры предосторожности при интерактивном запросе об удалении;
  • во избежание потери базы данных хешей, она не перезаписываетя при нехватке места на диске.

>>> Подробности

 , , , ,

dataman
()

NethSecurity 8.1

Новости — Безопасность
NethSecurity 8.1
Группа Безопасность

Выпущена новая версия NethSecurity, открытого межсетевого экрана на базе Linux. В ней улучшена стабильность, обновлён интерфейс управления администраторами, добавлено отслеживание соединений.

( читать дальше... )

>>> Подробности

 , nethsecurity,

CrX
()

Релиз Goblins' Lot (бывший Goblin Camp) v0.24

Форум — Games

Новости разработки игры Goblins’ Lot:

  • Ilkka Halila, автор старого Goblin Camp решил запустить новый, уже не свободный, проект под старым именем. Поэтому оригинальный свободный Goblin Camp был переименован в Goblins’ Lot (Можно прочитать как «удел гоблинов», «надел гоблинов», «гоблиново племя»). Дальше свободная версия игры будет развиваться уже под новым именем

  • Исправлена работа девелоперской консоли под python3. На этом процесс переноса игры в современное программное окружение можно считать завершенным

  • Удалена поддержка python2.7

  • Исправлено несколько багов

  • Немного уменьшено количество deprecation warning’ов

  • Внесен ряд изменений необходимых для успешной сборки под windows (однако сама сборка так и не была реализована)

Release Notes

Исходники

 , , goblins-lot, ,

shaplov
()

Вышло обновление X4: Foundations 7.0 и DLC «Timelines»

Форум — Games

Сабж.

Графика похорошела, первое, что заметил — новый неоново-светящийся интерфейс. Добавили возможность летать на некоторых ксеноновских кораблях, эндгейм кризис (опциональный — многим не понравилось) и всякие мелочи, чейнжлог длинный. Ещё обещают улучшенный ИИ кораблей.

Новое DLC «Timelines», как я понял, не добавляет новые секторы/фракции в основную игру (как все другие DLC), а запускается как отдельные сценарии из нового пункта в главном меню, этакий экскурс в историю. После прохождения сценариев в основной игре откроются новые корабли.

Для тех, кто не в курсе, это экономическая стратегия, успешно маскирующаяся под космическую «леталку», с очень крутой живой экономикой, где есть полноценные цепочки производства, и рынок, и всё это динамично и влияет на весь мир игры.

Нативно под онтопик.

 

pelmeshechka
()

Бета-версия ALT Mobile 20240425

Новости — PDA
Группа PDA

ALT Mobile — проект, цель которого предоставить на мобильном устройстве полноценный Линукс, точно тот же Альт, что есть и на других устройствах, но с оболочкой и приложениями, поддерживающими мобильный интерфейс. Это не какая-то отдельная операционная система, не клон Android или Линукс на ядре и низкоуровневых компонентах Android, а самый обычный Альт Линукс.

( читать дальше... )

>>> Подробности

 , ,

Bircoph
()

Переносной монитор для настройки серверов

Форум — Admin

Не всегда есть локальный монитор на серверах. Необходимо небольшое переносное устройство для подключения к серверу. Прошу совета в выборе.

 

petav
()

А есть ли live-образ для проверки ноутбуков?

Форум — Linux-hardware

Привет, ЛОР.

Я тут задумался: а есть ли готовый liveCD/USB, чтобы, например, в магазине воткнуть флешку и проверить, насколько хорошо машинка дружит с линуксом?

Что, на мой взгляд, туда должно входить:

  • утилита, выводящая список оборудования (в компактном, но полном виде) - понятно, зачем;
  • аудиоплеер из коробки + пара мелодий к нему;
  • видеоплеер из коробки + пара роликов к нему;
  • тестилка 3D (наверно, традиционный glxgears вполне подойдёт… хотя есть мнение, что шестерёнки современные процессоры и программно хорошо качают, и для проверки, работает ли аппаратный openGL, нужно что-то посолиднее, но не настаиваю, самому интересно);
  • что-нибудь для проверки сети (ну тут, наверное, достаточно, чтобы NM карту распознал и ping сработал);
  • Upd: сборка должна тащить максимум драйверов в принципе поддерживаемого линуксом железа и грузить всё нужное по умолчанию, чтобы не вызывать, как написали в комментариях, смех показывающих на тебя пальцем продавцов.

То, что традиционно пихают в Live-дистрибутивы, те же менеджеры разделов диска — помешать не помешают, но обязательными не являются. Переразбивать диск в магазине, да ещё и до покупки, я не буду. А вот проверить, играет ли музыка и работает ли Wi-Fi — надо.

 , , ,

hobbit
()

fastcompmgr — быстрая альтернатива для picom/compton

Форум — Talks

Вышел первый публичный релиз нового композитного менеджера для X11 на основе исходного кода классического xcompmgr.

CPU usages by compositor:

Compositor      move    resize  scroll
fastcompmgr     6.7%    4.4%    1.5%
xcompmgr        7.8%    4.9%    1.6%
compton         26.4%   6.8%    17.1%
picom           29.3%   8.1%    23.1%

Подробности:

 , fastcompmgr, ,

wandrien
()

PiKVM 3.333 — новый релиз открытого IP-KVM на Raspberry Pi

Новости — Hardware and Drivers
PiKVM 3.333 — новый релиз открытого IP-KVM на Raspberry Pi
Группа Hardware and Drivers

Спустя четыре года после первого релиза, проект PiKVM рад представить релиз 3.333 с кодовым именем It will (not) pass.

PiKVM – это проект, объединяющий в себе софт и инструкции, которые позволяют превратить Raspberry Pi в полностью функциональный KVM-over-IP. Это устройство подключается к HDMI- и USB-портам сервера или рабочей станции, и позволяет удаленно управлять ими по сети, независимо от операционной системы. Можно включать и выключать хост, настроить BIOS и даже полностью переостановить OS с помощью эмулятора CD-ROM или флеш-драйва. Вся функциональность доступна через веб-интерфейс, не требующий никаких дополнительных плагинов и апплетов, и реализованный только средствами HTML5.

( читать дальше... )

>>> Подробности

 , , pi-kvm, ,

liksys
()

Имеет ли смысл поставить во входной квартирный щиток УЗИП на 1.5КВ (номинал 500В вроде бы) дополнительно к обычному номиналом на 230В

Форум — Talks

Речь о такой модели:

https://www.etm.ru/cat/nn/6673000?city=77

Модификация: ОР 600/50

https://cdn.etm.ru/ipro/1102/%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%20%D0%BD%D0%B8%D0%BB%D0%B5%D0%B4%20%D1%81%D1%82%D1%80.23.pdf

Цель - защита от грозовых и других высоковольтных импульсов.

Ессно ставить собираюсь после автомата (даже пары последовательных однофазных двуполюсных автоматов на C32А и C20А). Кроме того после этих автоматов есть стабилизатор вероятно с более низковольтным варистором и УЗМ51М тоже с варистором.

Не уверен, какие отличия могут быть при таком включении от IEK ОПС1-D, у которого меньшее напряжение сработки ?

Продлит ли этот мощный разрядник НИЛЕД жизнь остальных варисторов? Защитят ли они все вместе по очереди (при необходимости) нагрузку от грозы? Какие ещё преимущества и недостатки его установки?

Читаю: https://www.amnis.ru/staty/zashchita-ot-impulsnogo-perenapryazheniya-elektroseti-i-oborudovaniya/

Но пока не всё понятно.

 , ,

sanyo1234
()

vue.js - чем дополнить вместо twitter bootstrap?

Форум — Web-development

Решил написать мелкую веб-приложеньку на vue. Надо делать чем-то разметку и всякие мелочи вроде dropdown menu. Но у меня сложилось впечатление, что привинчивание к vue бутстрапа отдает попыткой привинтить в проект jquery.

Нужен совет, в какую сторону глядеть за альтернативами. Т.к. всяких проектов налепили много, а какие из них перспективные - с ходу понять сложно.

Пока из полезного нашел:

  • vueuse - всякие низкоуровневые ништяки
  • TailwindCSS - для общей разметки
  • HeadlessUI - мелочи вроде дропдаунов и диалогов, но тут не уверен, стоит ли оно того, или врукопашную навалять.

Посоветуйте, куда стоит копать.

 

Vit
()

Minder 1.16.0

Новости — GNOME
Группа GNOME

Выпущена новая версия свободного редактора Minder для создания ментальных карт (mindmaps).

Особенности редактора:

  • Можно создавать больше одного корневого узла в карте
  • Не требует сохранения файлов при закрытии
  • Есть удобное управление с клавиатуры
  • Можно настраивать внешний вид карт и отдельных узлов
  • Доступен встроенный набор стикеров для нод
  • Есть поддержка Markdown в тексте нод
  • К соединениям (а также к нодам) можно писать заголовки и примечания
  • Можно визуально группировать соседние ноды
  • Можно вставлять узлы в простом встроенном текстовом редакторе (Quick Entry), формируя иерархию табуляцией
  • Есть режим фокусировки: выделяется весь путь от корневого узла до выбранной ноды, все остальные ноды и их ветки затеняются
  • Можно создавать кликабельные ссылки из одной ноды на другую
  • Импорт Freemind, Freeplane, OPML, Markdown, PlantUML, XMind 8 и 2021
  • Экспорт: те же плюс Mermaid, org-mode, Yed, SVG, PDF, JPEG, PNG

Технологический стек: Vala + GTK3.

Изменения в этой версии (есть на скриншоте):

  • Добавлена поддержка ссылок в примечаниях к нодам, соединениям и группам
  • Добавлена поддержка пользовательских стикеров
  • К нодам теперь можно прикреплять выноски
  • Добавлена панель выравнивания нод относительно друг друга при выбранном макете «Manual» (отключена автоматическая расстановка при нод создании)
  • Добавлена настройка масштабирования при экспорте в PNG/JPEG

>>> Подробности

 ,

AP
()