LINUX.ORG.RU

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

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
()

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

Статьи — Desktop

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

В этой части мы разберем задачу на «низком» уровне CLI-утилит. На этой базе несложно сделать любой GUI-фронтенд, который позволит управлять параметрами уже из GUI.

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

 , ,

James_Holden
()

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

Статьи — Desktop

ВСТУПЛЕНИЕ

Звуковая система PipeWire принесла, без преувеличения, революцию в мир десктопно-мультимедийного Linux. Наконец то эта ОС получила продуманную, сделанную по уму понимающими в теме людьми, и сделанную качественно звуковую систему. Многие ее возможности присутствовали и раньше, в других более старых звуковых системах, но в PipeWire они собраны воедино и сформировали целую единую платформу, на которой можно реализовать огромное количество самых разных задач.

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

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

 , ,

James_Holden
()

Минималистичные анимированные обои для X (под wayland возможно тоже..не знаю)

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

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

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

Если коротко: берем видео, режем на кадры. Берем Feh. Делаем скрипт смены кадров бесконечным циклом. Ставим на автозагрузку.

Background.

Сижу под Линуксом 1.5 года, что, наверное, считается еще новичком. В общем, не судите строго, пожалуйста.

Мотивация

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

Начнем!

Требования:

  • feh (утилита минималистичная, полагаю, есть на всех дистрах; в общем-то, она нам обойки и рисует;

  • приложение, чтобы разбить видео на отдельные кадры (лично я использовал web, такие приложения гуглятся 10 секунд);

  • в общем то все…

Опционально

  • я лично запускал все из под X и DWM, но лично я не вижу препятствий реализовать это на других DE

Этапы:

  1. Находим видео, режем на короткую, но цикличную версию(в моем случае 7 сек).

  2. Гуглим «Разбивка видео на кадры» у нас получается несколько скриншотов (в моем случае 70; важно и удобно чтоб кадры были пронумерованы по очереди).

  3. открываем VIMVIMwq (любой текстовый редактор) и пишем:

!#/bin/bash
while :
do 
feh --bg-fill(тут параметры фона) /путь/до/картинки1
sleep 0.03
feh --bg-fill(тут параметры фона) /путь/до/картинки2
sleep 0.03
.....
feh --bg-fill(тут параметры фона) /путь/до/последней_картинки
sleep 0.03
done

Сделали бесконечный цикл, который раз в 0.03 секунды меняет кадры (открываем консоль, пробуем)

./путь/до/вашего_скрипта.sh & (& делает исполнение цикла фоновым)

  1. Находим способ сделать скрипт фоновым (данных способов много..очень; один из вариантов – добавить скрипт в ваш .xinitrc);
  • vim ~/.xinitrc
{текс..текс..текс..}
exec dwm & slstatus & nohup /home/$USER/путь/до/вашего_скрипта.sh

В моем случае dwm & slstatus, но у вас может быть другое!

Например, i3 & nohup /home/$USER/путь/до/вашего_скрипта.sh)

В целом, наверное, все. Спасибо за внимание

 ,

Blabado
()

Выпуск Intel Low Power Mode Daemon версии 0.0.4

Новости — Linux General
Выпуск Intel Low Power Mode Daemon версии 0.0.4
Группа Linux General

12 июня инженерами Intel был выпущен Intel Low Power Mode Daemon версии 0.0.4 с «LPMD» — демон с открытым исходным кодом для оптимизации активного энергопотребления в режиме ожидания для современных гибридных процессоров Core под Linux, которые имеют комбинацию ядер E и P.

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

>>> Загрузка демона и подробности на странице проекта в github

 ,

NeTC
()

Осваиваем STM32 снизу: часть 1 - подключаем и исследуем плату

Статьи — Разработка

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Все файлы можно взять тут.

В данной серии статей мы попробуем поработать с процессором STM32 с помощью GNU утилит, немного познакомимся с ассемблером и отладкой.

Примеры написаны для популярной платы blue pill, построенной на микроконтроллере STM32F103C8T6.

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

 ,

vbr
()

Ничего особенного,просто Fallout 2 на движке Doom

Форум — Games

https://jonasz-o.itch.io/fallout2remake3d

Проект фанатский,и активно развивается. По ссылке можно поиграть прямо в браузере,там же скачать. В том числе, под линукс (у меня правда не завелось). Что приятно - есть рус. перевод. Правда,кривоватый - в меню навыков все перепутано,так что на дверь надо делать «скрытность» вместо «взлом». Полчаса тупил в храме,пока дошло) Как по мне - это уже лучше Фоллаутов от Беседки.

 

Dog
()

Debian + PIXEL Desktop = ...

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

Меня окончательно доконали глюки и тормознутость Ubuntu, монструозность KDE и неадекватность GNOME. И такая тоска меня, взяла, что решил я сбежать на какой-нибудь wm. Однако, пугало меня то, что любое wm требует много трудо- и времене- затрат для того, чтобы сделать что-то удобоваримое и более менее красивое. И тут, я вспомнил про Raspberry Pi OS, про их прекрасный PIXEL Desktop, про их кофигурялки, типа Raspberry Pi Configuration, про отменно настроенный LXDE.

К сожалению, Raspberry Pi OS есть только для ARM и для x86, но не для x64. Что-же, пришлось сделать всё самому. Установил Debian, подключил репозиторий https://archive.raspberrypi.org/debian/ bullseye main. Сделал sudo apt install raspberrypi-ui-mods. И всё заверте…

Показывать особенно нечего, на скрине стандартный Raspberry Pi OS PIXEL Desktop, установленный поверх Debian 11. Но как же он удобен, как молниеносен, как безглючен и как красив…

Вот так, спустя больше 15 лет после знакомства с Linux, я вернулся к тому дистрибутиву, с которого всё началось.

Все недостатки, которые отпугнули меня тогда, нивелировались. Свежий софт легко ставится из Flatpak, Snap или AppImage. Свежее ядро из backports. Скорость работы и стабильность, как глоток свежего воздуха после Ubuntu и компании. Я остаюсь здесь надолго. Я вернулся домой.

 , , ,

Axios
()

Загрузка Windows с раздела, используя вируализацию

Форум — General

Идея такая: не выключая линукса, загружать винду 10 с помощью qemu, отдать ей некоторую часть мощности. Гуглил возможные способы, но рабочего не нашел. Нашел вот такую конфигурацию:

sudo qemu-system-x86_64 -enable-kvm -L Win10/ --bios bios.bin -m 4G -cpu host -drive file=/dev/nvme0n1p4,format=raw,media=disk -smp 4

(bios.bin скопирован из /usr/share/ovmf/OVMF.fd) На что он пишет:

Nothing to boot: no such file or directory

и строки вида

BdsDxe: failed to load Boot0001 "UEFI QEMU HARDDISK QM00001" from PciRoot(0x0)/Pci(0x1,0x1)/Ata(primary, masetr, 0x0): Not found

А потом отправляет в Shell. (Что-то мне подсказывает, что я просто чего-то не настроил, а надо было) Есть идеи?

 , , ,

Yarosvet
()

Intel выпилил S3 (suspend-to-ram) в 11 поколении

Форум — Desktop

Привет, ЛОР!
Решил рассказать о своей истории узбека сношения с ноутбками на Intel 11 поколения.

Конкретнее — сегодня поговорим о засыпании (suspend, suspend-to-ram, S3).
Если вкратце — засыпания в ноутбуках больше не будет. Вообще. Совсем.

Ссылка: https://www.reddit.com/r/System76/comments/k7xrtz/ill_have_whatever_intel_was...

Вместо Ъ-засыпания S3 (с обесточиванием всей периферии, кроме оперативной памяти) — теперь некий S0iX.
Это значит, что процессор теперь не будет обесточиваться и будет работать всегда.
Кроме очевидных минусов вроде уменьшения времени автономной работы в режиме засыпания, есть ещё и неочевидные — вроде тех, что из-за того, что CPU (и, вроде как, некоторая периферия) будет включена всегда — за нами будут следить ещё лучше и тщательнее.

Ну и, конечно же, в Linux ближайшее время это будет поддерживаться через жопу.
Например, на последнем лаптопе от Fujitsu (Lifebook U7311) засыпание не работает вовсе, потому что BIOS лаптопа бодро рапортует о поддержке S3, которое CPU, естественно, не поддерживает, с предсказуемым результатом.

А ещё сегодня мы поговорим о том, чем заменить S3 (точнее, об альтернативе б-мерзкому S0iX, накостыленной шаловливыми ручонками линуксоида).
fakesleep.sh — скрипт, который делает примерно то же самое — «усыпляет» пользовательские процессы (kill -STOP), усыпляет USB-девайсы, отключает указанные ядра процессора и выключает дисплей (и, конечно же, «вертает всё взад» при «пробуждении»).
Использовать его очень просто: нам понадобится acpid и пара нехитрых скриптов:

/etc/acpi/events/laptop-lid

event=button/lid.*
action=/etc/acpi/laptop-lid.sh

/etc/acpi/laptop-lid.sh
#!/bin/sh

FAKESLEEP=/home/ann/.bin/fakesleep
ACTION=$(grep -q closed /proc/acpi/button/lid/LID/state && echo sleep || echo resume)

$FAKESLEEP $ACTION

Естественно, нужно подправить несколько переменных в скрипте и путь до этого скрипта в laptop-lid.sh.

Как результат — ноутбук при закрытой крышке не засыпает полностью (как и в S0iX), но при этом мы можем контролировать процессы, которые мы останавливаем/не останавливаем, при этом время автономной работы в режиме «спячки» такое же (фиговое, но терпимое):
ann.: ~ ➤  acpi                                                                                                                                                                                                                                      
Battery 0: Discharging, 86%, 25:17:22 remaining

(проверено по SSH, которое остаётся доступным как раз благодаря тому, что мы контролируем, какие процессы мы усыпляем, а какие нет)

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

sudo cast i-rinat (на всякий случай)

 , ,

annerleen
()

Ventoy 1.0.67 с поддержкой загрузки образов с локальных накопителей

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

В утилите Ventoy, предназначенной для загрузки ОС ПК и ноутбуков с файлов образов различных дистрибутивов, добавлена полноценная поддержка загрузки файлов ISO/WIM/IMG/VHDx/EFI напрямую с локальных накопителей без необходимости их копирования на загрузочную флешку (клавиша F2 на загрузочном экране Ventoy).

Инструкция по локальной загрузке с использованием специально подготовленных vlink-файлов

Ventoy — это кроссплатформенная утилита для Linux и Windows, созданная с целью заменить такие утилиты как Rufus, UNetbootin, balenaEtcher, ROSA Image Writter, Mac Linux USB Loader, mintstick и прочие проекты, часть из которых заброшена. Поддерживается загрузка образов Windows, WinPE, Linux, ChromeOS, Unix, VMware, и другие. Программа распространяется по лицензии GPLv3.

Ventoy поддерживает таблицы разделов MBR и GPT, Legacy Bios Boot, UEFI, Secure Boot, автоустановочные сценарии для Ubuntu, Debian, RedHat, SUSE и Windows.

В случае, когда необходимо часто создавать загрузочные флешки для различных ОС, использование Ventoy вместо традиционных утилит «Image Writer», поставляемых в составе многих популярных дистрибутивов, продлевает срок службы носителей, так как требует однократной установки, без необходимости постоянного затирания начальных секторов устройства и/или пересоздания таблицы разделов. Для установки Ventoy на флешку предлагается графический интерфейс на GTK3/Qt5. В процессе установки создается раздел exFAT с максимальным размером устройства, на который достаточно просто скопировать ISO файл ОС (НЕ используя утилиты вроде dd, cat). Этим же разделом можно продолжать пользоваться как обычно для хранения/копирования данных без повреждения работоспособности установленной на флешку Ventoy.

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

 , , ,

bhfq
()

arm компьютеры. прошу совет

Форум — Linux-hardware

здрасьте здрасьте люди добрые...

начитался тем нашего замечательного форума связанных с arm и тоже захотел приобрести такой.

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

 

Assembler
()

Рабочее место эмигранта

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

В 2018 году в октябре месяце я эмигрировал в Киев из ЛНР. С начала всех этих событий я сначала поехал в Москву, потом пришлось вернуться по некоторым причинам. Пожил 1.5 года в ЛРН и понял, что нужно оттуда уезжать. Луганская область и до войны была унылейшим местом, по специальности не было не одной вакансии. А после и подавно. Все друзья поразъезжались кто куда. Кто в РФ, кто в Украину. Круг общения потерялся. Вот, я уже в Киеве второй год. Впечатления? Климат лучше, чем в Москве. В Москве с 918мм ртутного столба и постоянными дождями и пасмурной погодой ощущал себя как на вершине Эвереста. В Киеве климат +- такой же, как дома. Чуть мягче(минус 5-7градусов от Донбасса). Живу недалеко от Днепра(кстати, нужно будет в июле ходить купаться. До набережной 700м.).

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

Компьютер брал с собой(внутренности системного блока + монитор + клавиатура + мышь + отвертки и мелочевка типа переходников). Как приехал и снял квартиру - купил корпус за 150грн cooler master и стол. Стол мне нравится небольшого размера ака парта, чтобы на нём было только нужное и ничего лишнего. Чтобы не было бардака. Колонки купил за 100грн б\у, они у меня озвучивают фильмы(телевизора нет). Роутера нет. У меня wifi раздает сетевуха в компьютере на телефон(пожалел денег на роутер). Монитор старый philips 200ws. Брал старый, т.к не знал, он доедет в Киев или не доедет(дома стоит dell 2412). Стул купил самый дешевый офисный. У которого проекает газлифт и приходится постоянно его поднимать. Дома остался ikea markus.

По ПО: с того времени, когда я первый раз постил в галерею - ничего не поменялось. Всё тот же dwm. Патчи следующие:

1-dwm-autostart-20161205-bb3bd6f.diff
2-dwm-systray-20180314-3bd8466.diff
3-dwm-noborder-20170207-bb3bd6f.diff
4.dwm-pertag-20170513-ceac8c9.diff
5-dwm-cfacts-6.1.diff
6-dwm-cyclelayouts-20180524-6.2.diff

В панель пишет python скрипт, который имеет конфиг

тип команды sh\function
таймаут
имя команды\функции

Т.е каждые данные в панельке пишутся с разными таймаутами, что есть удобно. Если sh командой невозможно вывести данные, тогда делаю функцию(как например W(weather), которая что-то откуда-то берет и выводит в панельку

Были попытки найти что-то лучше, но все эти телодвижения не увенчались успехом. fvwm - не умеет тайлинг на несколько мониторов. xmonad не запускает из трея keepassx. awesomewm - вечное изменение api. i3 не смог понять как настроить в нем обычный тайлинг и мне не понравился i3-status. Bspwm не прижился, Notion хорош, но там нужно серьезно вникать в него. Qtile никак не приедет в stable(debian). Stumpwm - manual tiling - мне больше нравится dynamic tiling. Остановился на dwm, потому что:

  1. простое как топор
  2. стабильно работает
  3. стабильно работает

Тот же awesome, который на debian’e работает(пару часов настраивал), не запустился на gentoo. Что опять намекает на стабильность этого продукта. Иногда хочется в wm иметь возможность поскриптить, но сталкиваясь с xmonad и awesome - сразу улетучивается это желание.

Запуск всех скриптов при старте делает dwm из

~/.dwm/scripts/startup/daemon/
~/.dwm/scripts/startup/client/

Музыку перестал слушать на компьютере, слушаю на плеере fiio x1 2gen. Музыка лежит вся локально

du -sh /mnt/d/audio/

184G    /mnt/d/audio/

Экспорт в плеер делаю через bash скрипт посредством rsync. Фильтрую музыку на компьютере. Rsync’ом прилетают изменения на плеер. Наушники yamaha mt-8, akg k452

Есть своё меню на dmenu, с помощью которого делаю shutdown\reboot\standby и запускаю всякие свои аплекухи, которых нет в стандартном меню dmenu

Три пустых терминала и mc тут –> https://postimg.cc/gallery/w3H6nKX

Шрифт в панели dwm - terminus, в консоли Consolas

С прошлого года переехал с соплями и слезами с vim на emacs. Пришлось попейсать на elisp, чтобы были удобности. Переехал с ycmd на lsp. В принципе работает, доволен. Изучил java + kotlin. Потихоньку разбираюсь с девелопом под android(вы могли видеть всякие топики, связанные с kotlin). Перехал с mplayer2 на mpv. Прикрутил shader’ы всякие и пару скриптов на lua. Всё удобно и не нужен smplayer в качестве гуёв.

В dwm особо изменений не вносил, окроме

        // change layout in tags
        if(i == 1 || i == 4) {
          // set monocle
          m->pertag->ltidxs[i][0] = m->lt[1];
        } else {
          m->pertag->ltidxs[i][0] = m->lt[0];
        }
        m->pertag->ltidxs[i][1] = m->lt[1];

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

Клавиатуру подсвечивает лампочка. Печатаю не глядя на клавиатуру, но в shortcut’ы(в основном в emacs) иногда можно промахнуться. Чтобы это не допустить, нужно подсвечивать клавиатуру.

В последнее время начали чесаться руки перейти с debian stable на что-то другое(с 2014 переехал с gentoo на debian). Centos на десктопе врядли получится т.е там упор на стабильность и сервера, поставил недавно gentoo. Визуально быстрее, но мелких косяков, которые надо исправлять - масса. Начиная от неработающего backspace в emacs, сглаживания шрифтов и всяких линтеров. Всё решаемо, но на это надо пару недель. Написать несколько ебилдов, детально просмотреть use флаги на нужные аплекухи. Решил заняться этим со следующего года. Так же были телодвижения в nixos. На прошлом релизе собрал минимальный конфиг(в котором так и не смог поднять hostapd + dnsmasq, чтобы раздавать wifi на телефон - а это важно). Недавно апнулся новый релиз nixos, на виртуалке поднял, подсунул свой рабочий конфиг с прошлого релиза и конфиг не поднялся :). В общем, решил остаться пока что на debian

Клавиатура kv300h. Считаю ее безальтернативным вариантом. На фото есть грязь на боковых гранях. Не отмывается. При попытке чистить боковые грани - клавиши нажимаются. Эта клавиатура живет 5 год. Прошлая сдохла от…влаги. Боится она этого очень. Имейте ввиду. С мокрыми руками лучше не работать на ней. Есть потертости на возле клавиш вверх и вбок. Это я на баше пролистывал команды и перемещался по тексту, пока не перешел на emacs и не узнал про C-f/b M-f/b + C-p/b. На следующей клавиатуре таких потертостей не будет :)

Так же переехал с deluge на rtorrent(опять, 4 года назад на deluge перешел). Посмотрел ps_mem и ужаснулся, что потребление у deluge до 8гб. У rtorrent: sudo ps_mem |grep rtorrent

191.2 MiB + 920.5 KiB = 192.1 MiB       rtorrent main

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

В общем, как-то так и живем :)

 

bryak
()

Эмулятор Android на Linux

Форум — General

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

 ,

Maxsize
()

Брать ли новый трекбол?

Форум — Linux-hardware

Довольно долгое время работаю с Logitech Marble Mouse. В последнее время замечаю, что шарик ходит довольно туго, силиконовая смазка не спасает, точно позиционировать курсор стало неудобно. Шарик ронялся.

Что лучше делать в сложившейся ситуации?

 

gedisdone
()

Syncthing v1.2.1

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

Syncthing – это программа для синхронизации файлов между двумя или более устройствами.

В последней версии исправлены следующие ошибки:

  • При создании нового файла не генерировалось fs событие.
  • Закрытие nil-канала при передаче клиенту сигнала stop.
  • Веб-интерфейс показывал неверное описание RC сборки, когда обновления отключены.
  • Значение состояния изменялось, когда папка ещё не была запущена.
  • Приостановление папки выдавало ошибку.
  • Ошибка времени выполнения: значение int(offset) выходит за пределы диапазона recheckFile.
  • Невозможность объединить внешние версии шаблонов переменных ("% FOLDER_PATH% /% FILE_PATH%").
  • Ошибка времени выполнения: неверный адрес памяти или разыменование nil-указателя в loadIgnoreFile.

Улучшения:

  • Прогресс загрузки папок в UI теперь обновляется чаще.

Другое:

  • Добавлена поддержка вызовов на jobQueue.Jobs.
  • Исправлены потенциальные ошибки на старых версиях ядра, а именно использование 64-битных функций sync/atomic.
  • Исправлена непоследовательная обработка пути к пустой папке.

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

 

anonymous
()

Хочу тайлинг как dwm, но с динамичными лейаутами на каждый тэг

Форум — Desktop

Собственно сабж. Мне нравится двм своей минималистичностью и неперегруженностью, но мне прям как воздуха не хватает динамичных лейаутов. Среди патчей не нашел такого, вот теперь ищу куда перекатится. и3 и авесом не нравятся, слишком много лишнего. Что лоровец может посоветовать?

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

 ,

Mirwnn
()

Информация по t440p

Форум — Linux-hardware

Нашёл отличную документацию по покупке и апгрейду Lenovo Thinkpad T440p, который до сих пор ещё даст прикурить многим моделям по соотношению цена/качество.

https://octoperf.com/blog/2018/11/07/thinkpad-t440p-buyers-guide/

 , ,

Deleted
()

Syncthing v1.0.0

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

Состоялся первый мажорный релиз Syncthing – открытого кроссплатформенного средства, созданного для замены проприетарных облаков и средств синхронизации чем-то открытым, доверенным и децентрализованным. Syncthing написан на языке Go и распространяется на условиях Mozilla Public License 2.0.

Особенности

Безопасность && приватность

  • Приватность – пользовательские данные хранятся только на устройствах пользователя.

  • Децентрализованность – отсутствие центрального сервера исключает возможность компрометации данных его владельцем.

  • Шифрование – защита передачи данных основана на широко известных и проверенных протоколах, с поддержкой perfect forward secrecy.

  • Аутентификация – каждый узел идентифицируется по криптографическому сертификату, при этом только явно доверенные сторонние узлы могут подсоединяться к вашему кластеру.

Использование

  • Графический интерфейс на основе Web GUI.

  • Кроссплатформенность – в рамках единой кодовой базы поддерживаются GNU/Linux, Android, FreeBSD, Solaris, OpenBSD, macOS, Windows, а также все остальные операционные системы и архитектуры, поддержка которых включена в Go.

  • Простота – Syncthing не требует длительной настройки, он просто работает, как в рамках локальной сети, так и глобальной.

  • Каждое устройство имеет уникальный идентификатор, передавая который возможно давать доступ к файлам и директориям.

Изменения с прошлого выпуска

Исправления ошибок

  • Исправлено некорректное предупреждение в случае одинакого префикса у параметра –home и указанного пути.
  • Ошибка в нормализации пути файла больше не приводит к некорректному протоколированию имени файла.
  • Исправлена обработка некоторых системных событий, приводивших к некорректным состояниям обработчика событий.

Улучшения

  • Добавлена опция для ограничения количества одновременных сканирований директорий.

  • Добавлены опции усиления безопасности при работе с systemd.

  • В графическом интерфейсе теперь отображаются ограничения скорости.

  • Возможность отображения локально измененных файлов для директорий, настроенных только для приема файлов.

>>> Страница проекта

>>> Исходные коды

>>> Анонс

 , , ,

Deleted
()

Посоветуйте программу зачитывалку текста.

Форум — Desktop

Посоветуйте есть ли качественные зачитывалки текста на русском из текстового формата. Для Ubuntu.

 

victor79
()