LINUX.ORG.RU

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

EasyEffects не нужно, или PipeWire для продвинутых: часть 3

Статьи — Desktop

Во второй части мы разобрали вопрос, как управлять параметрами эффектов в реальном времени, без перезапуска PipeWire.

Теперь рассмотрим, как можно добавить сторонний плагин, реализующий эффект, который не встроен в PipeWire, и как управлять его параметрами.

Модуль filter-chain, помимо встроенных (builtin) эффектов, поддерживает два самых распространенных в Linux стандарта DSP плагинов - LADSPA и LV2. Прежде всего, эти плагины предназначены для использования в DAW системе (цифровая звуковая рабочая станция, в которой «делают музыку»), такой как Ardour, Qtractor, LMMS. Они реализуют множество эффектов, таких как эквалайзер, компрессор, лимитер и тому подобное.

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

Реализуем очень нужный многим эффект – нормализацию громкости, или компрессию. То есть, нам нужно, чтобы тихие звуки стали громче, и были слышны в зашумлённой обстановке (на работе, к примеру) из плохих динамиков ноутбука. Также эта проблема очень актуальна при просмотре фильмов, часто есть огромная разница в громкости между диалогами и активными сценами (когда начинают бить морды). Надо эту разницу уменьшить.

Для этого мы используем замечательный набор плагинов LSP. Эти плагины доступны во всех основных форматах, мы же используем LV2 версию. В составе набора есть плагин Compressor Mono, который хорошо подходит для нашей задачи – там предусмотрен «обратный» режим работы, когда тихие звуки делаются более громкими (а не только громкие – более тихими, как в большинстве аналогичных плагинов). Это именно то, что нужно.

Добавим этот плагин в цепочку фильтров filter-chain. Для этого, сначала надо узнать такую вещь, как URI плагина. Это такая форма его названия, в виде веб-адреса. Но это не настоящая веб-ссылка, просто такая форма ))). В общем, это тяжело объяснить.

Чтобы узнать URI плагина, выполним команду lv2ls. Команда выдаст URI всех плагинов, которые установлены в системе. Среди них должен быть нужный нам плагин http://lsp-plug.in/plugins/lv2/compressor_mono. Если такого нет, надо установить набор плагинов LSP, при помощи пакетного менеджера дистрибутива.

Теперь добавим в конфиг-файл из предыдущих частей вот такой кусок, в массив nodes (полная версия конфига будет в конце статьи):

{
  type = lv2
  name = compressor
  label = compressor
  plugin = "http://lsp-plug.in/plugins/lv2/compressor_mono"
  control = { "cm" = 1 "cr" = 4.0}
}

Как видно, это очень похоже на добавление builtin эффекта. Только теперь тип будет lv2, plugin - указываем URI плагина. name, label – название, которое мы сами даём этому эффекту, может быть любое. По нему потом всё будет доступно через pw-cli для изменения параметров. Добавляем два параметра - "cm" = 1 это режим работы, который делает тихие звуки громче (а не громкие – тише). "cr" = 4.0 – это степень компрессии, во сколько раз. Чем больше это значение, тем больше будет выравниваться громкость.

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

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

Для этого используем утилиту lv2info. Выполним команду

lv2info http://lsp-plug.in/plugins/lv2/compressor_mono

В выводе команды видим всю информацию о плагине, нас интересуют блоки вида Port N:. Порты у плагина, упрощенно, есть двух видов - это входы/выходы, через которые передается звук, и параметры самого плагина, которые можно задавать и изменять. Находим среди портов те, которые соответствуют нужным нам параметрам. Ищем, ориентируясь на поле Name, оно говорящее, сразу понятно что это.

Port 17:
Type:
  http://lv2plug.in/ns/lv2core#ControlPort
  http://lv2plug.in/ns/lv2core#InputPort
  Scale Points:
    0 = "Down"
    1 = "Up"
    2 = "Boot"

  Symbol:      cm
  Name:        Compression mode
  Minimum:     0.000000
  Maximum:     2.000000
  Default:     0.000000
  Properties:  http://lv2plug.in/ns/ext/port-props#hasStrictBounds
  http://lv2plug.in/ns/lv2core#integer                           
  http://lv2plug.in/ns/lv2core#enumeration

Это описание параметра cm, который мы меняем в конфиг-файле. Из этого куска мы узнаем, что есть параметр Name: Compression mode, он имеет имя Symbol: cm, может принимать значения 0, 1 или 2.

  Scale Points:
    0 = "Down"
    1 = "Up"
    2 = "Boot"

Нам нужен режим Up (делать громче тихий звук), значит мы должны установить этот параметр в значение 1.

Далее, надо «залинковать» этот дополнительный эффект к уже добавленному ранее эквалайзеру. Для этого добавляем в конфиг-файле, в массив links:

{ output = "eq_band_15:Out" input = "compressor:in" }

то есть подключить вход компрессора к выходу 15 полосы эквалайзера. И последний штрих: надо сделать выходом всей цепочки эффектов – выход компрессора.

outputs = [ "compressor:out" ]

Теперь, помимо эквалайзера, у нас в цепочке обработки будет компрессор. Какими параметрами может потребоваться управлять? Можно включать/отключать компрессор

pw-cli s 36 Props '{params = ["compressor:enabled" 0]}'
pw-cli s 36 Props '{params = ["compressor:enabled" 1]}'

Не забываем, что 36 – это номер ноды Equalizer Sink, у вас он может быть совсем другим. Как его определить - см. Часть 2.

Ещё можно подрегулировать степень компрессии, параметр cr.

 pw-cli s 36 Props '{params = ["compressor:cr" 10.0]}'

Вот и всё, два основных эффекта мы реализовали )). Полная версия получившегося конфиг-файла будет выглядеть так:

context.modules = [
    { name = libpipewire-module-filter-chain
        args = {
            node.description = "Equalizer Sink"
            media.name       = "Equalizer Sink"
            filter.graph = {
                nodes = [
                    {
                        type  = builtin
                        name  = eq_preamp
                        label = bq_highshelf
                        control = { "Freq" = 0 "Q" = 1.0 "Gain" = 5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_1
                        label = bq_peaking
                        control = { "Freq" = 25.0 "Q" = 1.7 "Gain" = -10.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_2
                        label = bq_peaking
                        control = { "Freq" = 40.0 "Q" = 1.7 "Gain" = -10.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_3
                        label = bq_peaking
                        control = { "Freq" = 63.0 "Q" = 1.7 "Gain" = -9.0}
                    }
                    {
                        type  = builtin
                        name  = eq_band_4
                        label = bq_peaking
                        control = { "Freq" = 100.0 "Q" = 1.7 "Gain" = 3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_5
                        label = bq_peaking
                        control = { "Freq" = 160.0 "Q" = 1.7 "Gain" = 3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_6
                        label = bq_peaking
                        control = { "Freq" = 250.0 "Q" = 1.7 "Gain" = 3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_7
                        label = bq_peaking
                        control = { "Freq" = 400.0 "Q" = 1.7 "Gain" = -5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_8
                        label = bq_peaking
                        control = { "Freq" = 630.0 "Q" = 1.7 "Gain" = -5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_9
                        label = bq_peaking
                        control = { "Freq" = 1000.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_10
                        label = bq_peaking
                        control = { "Freq" = 1600.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_11
                        label = bq_peaking
                        control = { "Freq" = 2500.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_12
                        label = bq_peaking
                        control = { "Freq" = 4000.0 "Q" = 1.7 "Gain" = -5.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_13
                        label = bq_peaking
                        control = { "Freq" = 6300.0 "Q" = 1.7 "Gain" = -3.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_14
                        label = bq_peaking
                        control = { "Freq" = 10000.0 "Q" = 1.7 "Gain" = 0.0 }
                    }
                    {
                        type  = builtin
                        name  = eq_band_15
                        label = bq_peaking
                        control = { "Freq" = 16000.0 "Q" = 1.7 "Gain" = 0.0 }
                    }
                    {
                        type = lv2
                        name = compressor
                        label = compressor
                        plugin = "http://lsp-plug.in/plugins/lv2/compressor_mono"
                        control = { "cm" = 1 "cr" = 4.0}
                    }
                ]
                links = [
                    { output = "eq_preamp:Out" input = "eq_band_1:In" }
                    { output = "eq_band_1:Out" input = "eq_band_2:In" }
                    { output = "eq_band_2:Out" input = "eq_band_3:In" }
                    { output = "eq_band_3:Out" input = "eq_band_4:In" }
                    { output = "eq_band_4:Out" input = "eq_band_5:In" }
                    { output = "eq_band_5:Out" input = "eq_band_6:In" }
                    { output = "eq_band_6:Out" input = "eq_band_7:In" }
                    { output = "eq_band_7:Out" input = "eq_band_8:In" }
                    { output = "eq_band_8:Out" input = "eq_band_9:In" }
                    { output = "eq_band_9:Out" input = "eq_band_10:In" }
                    { output = "eq_band_10:Out" input = "eq_band_11:In" }
                    { output = "eq_band_11:Out" input = "eq_band_12:In" }
                    { output = "eq_band_12:Out" input = "eq_band_13:In" }
                    { output = "eq_band_13:Out" input = "eq_band_14:In" }
                    { output = "eq_band_14:Out" input = "eq_band_15:In" }
                    { output = "eq_band_15:Out" input = "compressor:in" }
                ]
                inputs = [ "eq_preamp:In" ]
                outputs = [ "compressor:out" ]
            }
            capture.props = {
                node.name   = "effect_input.eq6"
                media.class = Audio/Sink
                audio.channels = 2
                audio.position=[FL FR]
            }
            playback.props = {
                node.name   = "effect_output.eq6"
                node.passive = true
                audio.channels = 2
                audio.position=[FL FR]
            }
        }
    }
]

 , ,

James_Holden
()

Немного серозной военщины

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

Собсно пилю потихоньку блок обработки для волоконно-оптического вибрационного извещателя

Рабочее место (моё) простенькое ибо не понимаю зачем нужна ДЕ, которая мешает больше чем помогает: таск бар + ярлыки под рукой+ генмон со статусом яндекс-диска (не нашёл под рукой удобный аплет, показывающий когда синхронизация завершилась и можно выключать ПК - так вполне понятно хотя места занимает не в коня)

Рабочее место (оператора, точнее это режим настройки для пуско-наладчика, у оператора просто план/зоны/события) в скучном сером свинге (штатная кросс-платформенная тема нимбус) - пытался привить им любовь к плюшевым цветам и лазурным кнопкам но словил фидбек из разряда «шта эта??? у нас глаза пухнут».
ДЕ у оператора ессно нет, голые иксы и одна программулька ибо нефиг.
Это версия софта в ранней стадии разработки, рабочая охраняет, помимо прочего, 4 аэропорта и прошла первый этам гос испытаний на военку :-)

Цимус в том что в течении года она станет бесплатной (точнее она и так бесплатная но пока без железа её не получить ибо смысла нет) и в обозримом будущем открытой, при этом она умеет не только в наше но и в болидовское железо (через с2000-пп) + onvif/rtsp и отлично пашет на расбери 3/4 (просто добавь USB->RS485 или ethernet->rs-485)

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

 , , , ,

rukez
()

Iosevka 3.0.0

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

Выпущена версия 3.0.0 лучшего шрифта для эмуляторов терминалов и текстовых редакторов с графическим пользовательским интерфейсом.

В течение пяти альфа- и трёх бета-версий, а также восьми релиз-кандидатов был добавлен ряд новых глифов и лигатур, улучшены начертания отдельных символов и сделано множество других исправлений (см. Подробности).

Кроме того, начиная с этой версии изменено наименование пакетов:

  • Iosevka Term → Iosevka Fixed.
  • Iosevka TermLig → Iosevka Term.
  • Iosevka Type → Удалён.
  • Iosevka CC → Удалён.

>>> Подробности (англ.)

 ,

anonymous
()

Дождливый XMonad

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

Терминал — urxvt, бар — polybar

Конфиги: https://github.com/malyutinegor/rainy

Видео с обоями: https://i.imgur.com/CTiwPki.mp4 (они обычно всегда отключены, включаю чисто чтобы помедитировать)

 , , , ,

rk-d
()

Переехал на кучу утилит переписаных на Rust

Форум — Talks

Тег «угадай автора по заголовку».

Q: Зачем?

A: Ради эксперимента, повысится комфорт пользования терминалом или нет.

Q: Причем тут Rust?

A: Ни при чем, но из-за нативности и отсутствия GC на нем толпа людей побежала переписывать что ни попадя. С таким же успехом можно было бы и npm install, но тормозило бы. Ближе opam install или go get

Теперь мой терминал по истине свистит и пердит. Даю список если кому надо.

  • alacritty - GPU ускоренный терминал.
  • alias cat=bat- cat с хорошей подсветкой синтаксиса и нумерацией строк и пейджером.
  • broot - навигатор по каталогам, который одновременно показывает дерево, но адекватно себя ведет с громадными каталогами, показывая их по чуть-чуть.
  • dust - утилита для исследования места занимаемого каталогами, сортирует деревья файлов начиная с самых больших каталогов.
  • alias ls="exa -l --group-directories-first" ls с хорошими дефолтами, tree встроено.
  • rip Утилита для удаления файлов с разными удобными фичами и восстановлением
  • hors "How do I parse float in javascript?" - находит короткий ответ в интернетах и отвечает. Чуть лучше работает чем оригинал - howdoi.
  • mdcat - cat для Markdown, для отображения удобочитаемой формы документа. Ссылки делает сносками.
  • alias grep=rg - очень быстрый и удобный grep
  • starship - shell command prompt, показывает кучу полезной информации в зависимости от контекста, например git branch если в репозитории, версии софта и ЯП если в каталогах с сорцами, hostname если зайти по ssh.
  • tokei - сборщик статистики по ЯП и строкам кода в деревьях исходников.
  • hyperfine - бенчмарк утилита, time на стероидах.
  • tldr- сокращенная версия man, показывает как чем пользоваться в примерах, а не выдавая полную справку. Страницы поддерживаются сообществом для громадного количества утилит. Изначальный проект - https://tldr.sh/
  • topgrade - универсальная утилита обновления. При запуске пытается обновить все что видит - системные пакеты, vim пакеты и так далее.
  • runiq - быстрый sort | uniq с разными алгоритмами внутри.
  • fd - быстрый и удобный find, удобно чтобы не вспоминать заковыристые ключи
  • fselect - поисковик файлов с SQL-like языком запросов
  • sd - как sed, только интуитивный
  • i3status-rs - Сразу i3status+i3blocks. Плюс батарейки к i3blocks, которые как я понял автор решил убрать.
  • onefetch - Вроде neofetch, но для сорцов. Просто запустите эту штуку с корня любого git репа, клонированого локально
  • wasmtime - JIT runtime для WASI стандарта. Пускалка WebAssembly приложений.
  • scriptisto - «shebang-интерпретатор» для компилируемых языков, прозрачно собирает и кеширует нативные сборки кода

Что не зашло совсем

Все вышеперечисленое ставится через cargo install <package_name> (кроме alacritty), название смотрите на страницах. Сам cargo и Rust ставятся через

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

P.S. Призываю остальных взять ЯП вашей секты и поставить такой эксперимент и отписаться. Да-да, расскажите как вы пользовались ls на Java. Пользователей emacs прошу не беспокоить

 , , ,

vertexua
()

Vala Panel AppMenu 0.7.0

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

Вчера я выпустил наконец vala-panel-appmenu 0.7.0

Список изменений (по сравнению с 0.6.1, выпущенным 7 месяцев назад):

  • Теперь DBusMenu преобразуется в GMenuModel, а не сразу в виджет, как раньше.
  • Теперь используется только одна GtkMenuBar, что позволило сделать скроллинг между меню.
  • Добавлен компактный режим - все меню может быть показано в одну секцию (под именем приложения, примерно как в gnome-shell)
  • Полужирное имя приложения теперь является настройкой времени выполнения, а не компиляции
  • libwnck теперь не используется (временно), хотя при сборке все равно ищется
  • Переработана Jayatana - добавлены хаки для Idea, а также кэширование пунктов меню.

Для скачивания исходников нужно пройти по ссылке ниже и либо заклонить репозиторий, либо скачать артефакты сборки (просто зазипованный репозиторий работать не будет)

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

 , ,

Athor
()

В чем отличие OpenRC от Systemd?

Форум — Admin

Я не причисляю себя к опытным, так называемым «тру» линуксоидам, хоть и использую ArchLinux в качестве десктопа. Захотелось «осилить» сборку Gentoo. В хендбуке говорилось о выборе между Systemd и OpenRC. Погуглив, почитав Вики.генту и всякие форумы, так и не понял в чем их принципиальное отличие, а также плюсы и минусы. Расскажите, в чем их достоинства и недостатки? Что лучше выбрать?

 , , ,

EnZen
()

twm в естественной среде обитания

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

Раз уж по галерее катится волна некрофилии, надо добавить свою каплю. Например дефолтный twm, который я использую как дополнительное окружение (fluxbox надоел) для дополнительного юзера в системе, сеансы которого настроены на ~10% общего процессорного времени через cgrops.

В данном случае оно занято запихиванием сериала на мелкий экран моего кнопочного смартфона через ffmpeg. Небольшой скрипт через файл-блокировку позволяет запуститься только 1 копии ffmpeg, но писать скрипт для автоматического запуска заданий мне лениво, поэтому просто ручной запуск в 10-и окнах.

Из минусов: 10 минут на выгрузку задачи на ночь, оверхед ~2800Кб памяти на копию xterm и 2100Кб на копию bash.
Из плюсов: нескучные обои, креативные методы управления окнами (креативней чем гном3), отдельный пользовательский сеанс, занимающий всего 19Мб на Х-сервер и 3960Кб на оконный менеджер.

P.S. Для полного погружения можно запустить в основном окружении homm2 в досбоксе или doom в PrBoom-Plus, а на vt2 через mc включить какую-нибудь музыку.

 

kirill_rrr
()

Старый добрый FVWM

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

Вдохновленный «некрофильными» скриншотами, решил кардинально изменить конфигурацию своего FVWM. Конфигурация минимальная. В системе 900 пакетов. Из графических приложений только браузер Firefox-esr (есть и w3m, но он для простых сайтов) и торрент качалка — transmission-gtk. Все остальное — терминальные программы (irssi, fff, mpg123 со скриптом conplay, есть и moc), gotop, видео — mpv.

Conky почти дэфолт. Я только убрал ненужную мне инфу, и добавил вывод mocp.

Использую лишь xterm. Почему он? Потому, что быстрый.

Терминальные шрифты — идущие в поставке Xorg. Я только изменил их размер. А в самой системе — DejaVu Sans.

Получилось удобно (для меня).

Кому интересно, конфиги, как всегда, лежат вот тут.

 ,

Odalist
()

обычный dwm

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

dwm был установлен в начале 2019, сделаны лишь небольшие настройки внешнего вида (цвета, рамки), добавлены некоторые функций для удобства (переключение окон и прочее). Пользуюсь уже без малого целый год — ничего удобнее для себя так и не нашел. Из приложений тут царит некий минимализм/аскетизм:

pd (для всякого рода прототипирования и прочего), firefox, telegram, gimp, zathura (для pdf, djvu), ну и все.

Файловый менеджер — pcmanfm — практически не пользуюсь, очень многое меня там не устраивает. Для всего остального обычный xterm. Система — slackware 14.2. Очень удобно. Перешел на нее с генту. Возможно, перейду в обозримом будущем на Void или на что-то подобное (что-то из bsd, например, неважно).

 ,

nioelumiijke
()

CRUX всему голова

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

Давно хотел это сделать и собственно воть, крукс собственной персоной, добавлять особо то и нечего, так как даже звук я еще не настроил. Кастую спуфа для помощи, alsa не хочет заводиться ни в какую. ну или я тупой

Но на скриншоте присутствует:

  • Urxvt с zsh и плагином для подсветки синтаксиса
  • Openbox
  • Патченый compton с красивым размытием
  • Тема Matcha
  • Немного настроеный фуррифокс в цвет темы
  • нескучные обои

 , ,

oriko32
()

Опубликована книга «Programming Add-Ons for Blender 2.8»

Новости — Документация
Опубликована книга «Programming Add-Ons for Blender 2.8»
Группа Документация

Витольд Яворски (Witold Jaworski) опубликовал бесплатную книгу-пособие на английском языке по разработке Python-дополнений для Blender 2.80 на условиях лицензии CC-NC-ND 3.0.

ПРИМЕЧАНИЕ: Для желающих сделать перевод книги на русский язык необходимо связаться с автором — Витольд предоставляет для переводчиков исходник книги (в формате DOC) в индивидульном порядке! При этом перевод должен быть также лицензирован на условиях лицензии CC-NC-ND 3.0.

Это второе издание ранее опубликованой книги «PyDev Blender» (первое издание было ориентировано на создание дополнений для Blender 2.5x-2.7x)

P.S.: Витольд на протяжении многих лет занимается авиамоделированием и 3D-моделированием самолётов в Blenderсозданием дополнений для Blender), ведёт блог посвящённый даной тематике и уже опубликовал три издания книги «Virtual Airplane» (первое - для Blender 2.4x, третье - для Blender 2.7x; ожидается четвёртое издание - для Blender 2.8x).

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

 , , ,

atsym
()

Lounge 1.20

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

Состоялся релиз gtk-темы Lounge 1.20.

Промо-ролик.

Добавлен вариант темы с увеличенными элементами и отступами, оригинальный вариант переименован в Lounge-compact. Тема поставляется с нескучными динамическими обоями (рекомендуемая зависимость для deb/rpm-пакетов), работают только в gnome - репозиторий, оригиналы. Также добавлены отдельные пакеты для пользователей xfce/sway, собранные с четкой границей для контекстных меню gtk2-приложений (скриншот со сравнением).

Поддерживаемые DE - gnome и xfce.

Инструкция по сборке и установке находится на гитхабе, доступны репозитории для Fedora и Ubuntu. Тема также представлена на flathub, для поддержки flatpak-приложений.

Еще есть репозиторий в AUR, но pkgbuild содержит ненужные зависимости (попытка связаться с мейнтейнером оказалась безуспешной), так что лучше собрать по инструкции.

 ,

monday
()

Простой NixOS

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

Спустя полтора года на Void-musl, решил вернутся на NixOS. На этот раз решил отказаться от панели, чтобы съэкономить ещё немного пикселей.

Работает конечно не так реактивно как void, но удонее в разы, думаю nixos будет со временем только популярнее.

kakoune ranger chromium - практически всё, чем я пользуюсь.

Не очень-то интересные скрины, но все же решил поделиться.

 , , , ,

ddidwyll
()

Темный i3

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

Решил перекатиться с арча на дженту, заодно обновил свой вырвиглазный i3.

  • ФМ - ranger
  • App manager - dmenu
  • Editor ОС - emacs
  • ШГ - Liberation Mono
  • Colors - dracula

P.s. Как в emacs сделать отступы от краев окна? Выглядит просто немного не очень.

 , , ,

RedMaun
()

Радужный i3

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

Собственно решил обновить свой конфиг десктопа и вот что получилось.

  • Операционный стол - Рачик
  • Запуск приложений - Rofi(скрин)
  • Неосилил vim - VScode(скрин)
  • Есть же i3blocks - Polybar
  • Терминал - Alacritty
  • ФМ на скриншоте - Ranger
  • Основной ФМ - Thunar(скрин)
  • Browser - Огнелис(скрин)
  • GTK тема - Сгенерирована с помощью oomox'a(скрин)
  • Цветовая схема - Pywal(скрин)
  • Тема для VScode - Своя

 , , ,

RedMaun
()

Вышел NoRT CNC Control 0.4

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

Состоялся новый релиз разрабатываемой мной системы управления фрезерным станком с ЧПУ. В этом релизе в основном исправлены недоработки и баги предыдущего релиза (Вышел NoRT CNC Control)

Улучшения:

  • Переделан планировщик скорости движений. Новый планировщик полностью анализирует движение от начала и до конца, в том числе учитывает кривизну дуг при движении по дуге и выбирает максимально возможную скорость впределах установленных скоростей так, чтобы не превысить максимально допустимых ускорений
  • Часть конфигурации, которая хранилась в RT части на микроконтроллере, полностью перенесена в python код
  • Исправлены проблемы с потерей фокуса в UI при ручном вводе команд
  • Добавлена возможность независимо эмулировать шпиндель и координатный стол
  • Исправлены баги состояния машины при ручном вводе команд
  • Скорректирован цикл отсылки сообщений в координатный стол и на шпиндель, корректная обработка сигнала резета и обработка сообщения о резете от микроконтроллера
  • Добавлена CRC в протокол взаимодействия с микроконтроллером
  • Завершение работы при отключении USB serial порта, если взаимодействие с микроконтроллером идет через него - ранее система начинала в цикле читать уже несуществующий ttyUSB0
  • Теперь движения заблокированы после перезагрузки микроконтроллера. Чтобы разблокировать, надо послать в микроконтроллер специальную команду. Она отсылается при старте исполнения g-code. Тем самым исключается некорректное движение в случае внезапной перезагрузки MCU в ходе движения

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

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

 

cvs-255
()

Женат на Gentoo, а люблю CRUX

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

В преддверии скорого выпуска CRUX 3.5 потихоньку мониторю чего там новенького. А сам давно уже на Gentoo.

Gentoo как располневшая жена, хотя годы и берут своё, зато с ней не задумываешься о низменных вещах; сказано — сделано; мудрая женщина. В то время как CRUX — стройная и гибкая, юная леди, но требует внимания к себе, и вся прелеть в том, что вы сами захотите уделять ей это внимание и любоваться результатом.

На скриншоте Gentoo в качестве десктопа, уже знакомый вам FVWM и CRUX в качестве шлюза в интернет. Попутно пытаюсь подключить три монитора; на материнской плате имеются VGA/DVI/HDMI, процессор Pentium G4620 так же поддерживает 3 монитора, но xrandr ни в какую: xrandr: Configure crtc 0 failed.. Работают только два одновременно — или, или. Уж всё перепробовал, даже разрешение суммарное 640+640+640x480 на всех трёх выставлял, всё бестолку. Неужели придётся видеокарту с тремя DisplayPort приобретать? :(

 , ,

Spoofing
()

Спокойные цвета

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

Конфиг осома особо не поменялся (патч для использования GTK+3 темы, кстати, уже принят в апстрим). Кстати, недавно наконец нашел время разобраться как сделать полупрозрачные уведомления с непрозрачной картинкой внутри уведомления :D Толстые границы окон функциональны, не только для перетаскивания и ресайза, но и для этого.

На скриншоте также можно увидеть терминал xst, на данный момент самый годный: старый добрый st с поддержкой Xresources, live-reload настроек и другими полезными ништяками.

Темы GTK, иконки и Xresources сгенерированы, как обычно, oomox-ом (кстати, теперь еще поддерживается и тема Arc).

vim на фоне ковр^Wобоев: https://i.imgur.com/UofINj4.png

обязательный скрин лора: https://i.imgur.com/r6byFGf.png

тот же скрин пару дней назад, но с темой Arc: https://i.redd.it/3s1oh843qvq11.png

ШГ: Source Sans Pro

даже не знаю, что еще можно допилить, может, только сделать в виджете cpu и ram такие же прогресс-бары как в nemo в Home и File System

UPD: вот, попробовал с прогрессбарами: https://i.imgur.com/p71lXdm.png

 , , xst

actionless
()

Релиз gtk-темы Lounge 3.28.0

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

Состоялся релиз gtk-темы Lounge (в комплекте идет оформление для gtk2, gtk3, gnome-shell и вспомогательная тема иконок), основанной на оригинальной Adwaita. Тема создана под впечатлением от Absoulte, распространяется по лицензии GPLv3+.

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

Скриншоты: первый, второй, третий, четвертый, пятый.

>>> GitHub

 , ,

monday
()