LINUX.ORG.RU

Сообщения nuxster

 

Источники звука в pipewire/pulseaudio

Форум — Desktop

Доброго времени суток, народ! Продолжаю ковырять Pipewire и наткнулся на интересную особенность связанную с тем, что источники звука ведут себя неожиданным образом. Заранее прошу прощения, я не очень хорошо ориентируюсь в терминологии. Если у нас есть выход (наушники или монитор с динамиком), то у нас есть такая сущность как @DEFAULT_AUDIO_SINK@. Мы можем упоминать ее в различных командах для изменения уровня громкости звука.

pamixer --source @DEFAULT_AUDIO_SINK@ -i 1
pamixer --source @DEFAULT_AUDIO_SINK@ -d 1
wpctl get-volume @DEFAULT_AUDIO_SINK@

Такая же история с @DEFAULT_AUDIO_SOURCE@ если у нас есть микрофон:

pamixer --source @DEFAULT_AUDIO_SOURCE@ -i 1
pamixer --source @DEFAULT_AUDIO_SOURCE@ -d 1
wpctl get-volume @DEFAULT_AUDIO_SOURCE@

А вот если у нас нет микрофоно, но есть монитор с динамиком, подключенный по HDMI, то @DEFAULT_AUDIO_SINK@ == @DEFAULT_AUDIO_SOURCE@ и если выолнить команды:

wpctl get-volume @DEFAULT_AUDIO_SINK@
wpctl get-volume @DEFAULT_AUDIO_SOURCE@

то мы получим результат соответствующий данным с @DEFAULT_AUDIO_SINK@:

➜  wpctl get-volume @DEFAULT_AUDIO_SINK@
Volume: 0.49

~
➜  wpctl get-volume @DEFAULT_AUDIO_SOURCE@
Volume: 0.49

А команда:

wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0

отключает динамик.

Как можно отключать\запрещать @DEFAULT_AUDIO_SOURCE@ при его реальном отсутствии?

 debian pipewire pulseaudio

nuxster
()

Правила для Wireplumber/Pipewire

Форум — Desktop

Доброго времени суток! Расскажите пожалуйста, кто знает, как создавать правила для Pipewire. Знаю, что там очень широкий спектры возможностей, мне нужно для всех api.alsa.pcm.source сделать мьют и задать определенный уровинь громкости по умолчанию. Пробовал разное, что-то вроде:

table.insert(alsa_monitor.rules, {
  matches = {
    {
      { "factory.name", "equals", "api.alsa.pcm.source" },
    },
  },
   actions = {
     update-props = {
       node.param.Props = { channelVolumes = [ 0.5 0.5 ] }
     }
   }
  },
})

В файле ~/.config/wireplumber/main.lua.d/80-main.lua Не работает. А вот:

  apply_properties = {
   ["priority.driver"] = 800,
  },

Работает. Не пойму как добраться до нужных мне параметров.

 wireplumber pipewire

nuxster
()

Настройка уровня громкости в pipewire

Форум — Desktop

Доброго времени суток, уважаемые! Долго боролся с pulseaudio и решил попробовать pipewire. Но тут натыкаюсь на ровно такие же проблемы. После перезагрузки системы или перезагрузки юнита wireplumber настройки уровня громкости сбрасываются, выключенный микрофон включается, при подключении bluetooth гарнитуры уровень громкости улетает в 100%. Как установить значения по умолчанию я не нашел, так же как и подгрузку ранее установленных параметров. Может кто-то погружен достаточно хорошо в эту тему и сможет подсказать как подкрутить эти параметры?

  • Debian 12.5
  • kernel 6.1.0-20-amd64
  • sway 1.7-6
  • pipewire 0.3.65-3+deb12u1
  • pipewire-alsa 0.3.65-3+deb12u1
  • pipewire-audio 0.3.65-3+deb12u1
  • pipewire-bin 0.3.65-3+deb12u1
  • pipewire-pulse 0.3.65-3+deb12u1
  • libpipewire-0.3-0 0.3.65-3+deb12u1
  • libpipewire-0.3-modules 0.3.65-3+deb12u1
  • wireplumber 0.4.13-1
  • bluez 5.66-1+deb12u1

В Интернетах народ предлагает:

sleep 10 && alsactl --file ~/.config/asound.state restore

Можно ли задать правило для wireplumber или pipewire что бы каждый микрофон был по умолчанию в мьюте и при включении микрофон имел определенный уровень громкости?

 debian pipewire sway

nuxster
()

Громкость в pulseaudio для bluetooth гарнитур

Форум — Desktop

Доброго времени суток, уважаемые! Может кто-то из присутствующих погружен глубоко в тонкости настройки pulseaudio? Проблема следующая: при подключении bluetooth наушников или гарнитуры (пробовал разные) уровень громкости подскакивает до 100%, при отключении возвращается к исходному. С проводными девайсами такой проблемы не наблюдается. Можно ли синхронизировать уровень громкости звука для всех устройств или запоминать уровень для разных устройств?

ПО:

  • kernel: 6.5.0-0.deb12.4-amd64
  • sway 1.7-6
  • pulseaudio 16.1+dfsg1-2+b1
  • pulseaudio-module-bluetooth 16.1+dfsg1-2+b1
  • bluez 5.66-1+deb12u1
  • pavucontrol 5.0-2

 debian bluetooth pulseaudio

nuxster
()

XLink Kai на Raspberry Pi

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

Доброго времени суток, уважаемые!

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

Проект называется XLink Kai. Для меня он интересен тем, что ПО может работать на Linux и на одноплатниках типа Raspberry PI. Для быстрого старта есть инструкция на сайте. Я протестировал Xlink Kai, устанавливая на Raspberry Pi от первой B+ до 3-й B+ и XBox Original в качестве игровой консоли. Использовал различные варианты подключения (описаны на сайте) и разные носители. Стабильной и качественной работы добился на Raspberry Pi 3B+ c SD-картой U3 и проводной сеткой. Поддерживается работа с XBox Original/360/One, Playstation 2/3/4/PSP/Vita и т.д, полный список консолей и игр есть на сайте. Данный проект помимо «железных» игровых консолей позволяет играть по сети на некоторых эмуляторах игровых приставок. Я попытался протестировать Xemu, но данный эмулятор у меня работает нестабильно, буду еще копаться в этом направлении.

На скрине:

  • Debian 12 + Sway + Waybar
  • Xbox Original подключен через карту видеозахвата (картинка со звуком выводится через MPV)
  • Raspberry Pi с установленной на ней DietPi и XLink Kai
  • Игра Halo 2
  • Web-интерфейс XLink Kai

Веб-интерфейс XLink Kai доступен на localhost и на порту 34522 по умолчанию. Если вы будете устанавливать XLink на отдельном ПК или одноплатнике, как это делал я, самый простой и быстрый способ получить доступ к веб-интерфейсу - пробросить его порт себе на localhost:


ssh -L 34522:localhost:34522 nuxster@192.168.1.27 

Думаю, вебку можно просто перенастроить на нужный интерфейс, но я не стал в это вникать.

Так же, думаю, будет полезно запускать XLink Kai через systemd:

apt install dnsutils 

cat > /etc/systemd/system/xlink.service<<EOF 
[Unit] 
Description=XLink Kai 
StartLimitBurst=5 
StartLimitIntervalSec=200 
 
[Service] 
StandardError=journal 
StandardOutput=tty 
ExecStartPre=/bin/sh -c "until host google.com; do sleep 1; done" 
ExecStart=/usr/bin/kaiengine 
Restart=on-failure 
RestartSec=1 
Nice=-5 
 
[Install] 
WantedBy=network.target 
EOF 
 
systemctl daemon-reload 
systemctl enable xlink 
systemctl restart xlink 

Уверен, что можно сделать лучше\правильнее, мне просто нужно было его запустить.

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

>>> Просмотр (1918x3237, 978 Kb)

 , , , xlink

nuxster
()

Debian Stable + SwayWM + Systemd

Форум — Desktop

Доброго времени суток, уважаемые! Использую стабильный Debian 12, запускаю swaywm как unit systemd. Периодически получаю перезагрузку swaywm и в логах вижу следующие ошибки:

-- Boot 585a550b3f0e442e9530636e1f212371 --
Oct 25 17:48:40 localhost sway[65485]: wl_display_dispatch: Broken pipe
-- Boot adcd59965aa44ef2b0a1af42f85d0e5e --
Oct 25 20:10:18 localhost sway[1439]: The provided value is outside of the valid range
-- Boot 4166d524c0f145a0aaaf4c60f0cf9f49 --
Oct 26 08:50:28 localhost sway[1433]: The provided value is outside of the valid range

Сам юнит /etc/systemd/system/sway@7.service:

[Unit]
Description=Sway compositor
StartLimitBurst=5
StartLimitIntervalSec=200

[Service]
StandardError=journal
StandardOutput=journal
ExecStartPre=/usr/bin/chvt %I
ExecStart=/usr/bin/sway
TTYPath=/dev/tty%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
PAMName=login
User=nuxster
WorkingDirectory=/home/nuxster
EnvironmentFile=/home/nuxster/.config/sway/env
Restart=on-failure
RestartSec=1
StandardInput=tty
Nice=-5

[Install]
WantedBy=graphical.target

/home/nuxster/.config/sway/env

PATH=/home/nuxster/bin:/usr/bin
TERM=

XDG_CURRENT_DESKTOP=sway
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_HOME=/home/nuxster/.local/share
XDG_CONFIG_HOME=/home/nuxster/.config

#FZF_DEFAULT_COMMAND="rg --files"

# Disable client-side Qt decorations
QT_WAYLAND_DISABLE_WINDOWDECORATION=1

# Requires that qt5ct package is installed
#QT_QPA_PLATFORMTHEME=qt5ct

KITTY_ENABLE_WAYLAND=1
MOZ_ENABLE_WAYLAND=1
MOZ_USE_XINPUT2=1

# Required for IntelliJ
_JAVA_AWT_WM_NONREPARENTING=1

QT_QPA_PLATFORM=wayland
GDK_BACKEND=wayland
GTK_USE_PORTAL=0

# For Waybar
LC_TIME=en_US.UTF-8
# For qalc
LC_NUMERIC=en_US.UTF-8

Версии ПО такие:

  • kernel: 6.1.0-13-amd64
  • swaywm: 1.7-6
  • systemd: 252.17-1~deb12u1

 , ,

nuxster
()

Debian 12 Qemu amdgpu Permission denied

Форум — General

Доброго времени суток, уважаемые!

Есть машинка с Debian 12, минимальная установка + sway, все пакеты ставились с опцией –no-install-recommends.

Железо:

  • CPU: AMD Ryzen 9 7940HS
  • GPU: Radeon 780M Graphics

Софт:

  • kernel: 6.1.0-13-amd64
  • libdrm-amdgpu1: 2.4.114-1+b1
  • firmware-amd-graphics: 20230210-5
  • qemu: 1.7.2
  • virt-manager: 1:4.1.0-2

Через virt-manager создаю VM, выбираю:

  • Video: Virtio + галочка 3D acceleration
  • Display: Type - Spice server, Listen type - None, галочка OpenGL

При старте получаю ошибку:

Error starting domain: internal error: qemu unexpectedly closed the monitor: /usr/share/libdrm/amdgpu.ids: Permission denied

2023-10-18T08:29:40.189364Z qemu-system-x86_64: -device {"driver":"virtio-vga-gl","id":"video0","max_outputs":1,"bus":"pcie.0","addr":"0x1"}: missing object type 'virtio-gpu-gl-device'

Без OpenGL и 3D acceleration виртуалка запускается нормально.

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

 , debian12, ,

nuxster
()

Micro-NAS на RPI

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

Завалялась у меня Raspberry Pi 3B+ и SSD в непонятном состоянии. Решил собрать сетевой мини dlna/ftp/smb-сервер. Можно быстренько закинуть фото/видео с любого устройства и посмотреть на телике. Помрет - не жалко. Для быстрого накатывания нужного софта и конфигов написал небольшой скрипт. Теперь думаю доработать его чтобы он скачивал последнюю версию DietPi, разворачивал на sd-карту и через chroot устанавливал софт и подтягивал конфиги, например, с гита. Еще думаю попробовать сразу собирать образ packer’ом со всем необходимым мне содержимым.

В конструкции используется:

Hard

  • Raspberry Pi 3B+
  • FAN 5V
  • SSD ADATA SU800
  • Корпус напечатанный на 3D-принтере: link

Soft

  • DietPi
  • minidlna
  • samba
  • vsftpd

На моем ПК (с прошлых скринов ничего не изменилось):

  • Debian trixie/sid
  • swaywm
  • waybar
  • wofi
  • fish
  • kitty
  • rangerfm
  • tmux

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

 , dietpi,

nuxster
()

Моё текущее рабочее место

Галерея — Рабочие места

Моё рабочее место в данный момент выглядит так. На фото можно увидеть:

  • Ноут Lenovo ThinkPad x230 (Core i7);
  • Ноут Lenovo ThinkPad T14 (Core i7);
  • Монитор Acer KG271;
  • Клавиатура Lotus 58;
  • Трекбол Logitech MX Ergo;
  • Часы Huawei Watch GT-2;
  • Asus Tinkerboard в качестве мини-NAS’а.

На ноутах:

  • Debian Sid (Bookworm);
  • SwayWM;
  • Waybar;
  • Wofi;
  • Kitty;
  • Fish;
  • RangerFM;
  • DevilutionX.

>>> Просмотр (4608x3072, 1259 Kb)

 , , , ,

nuxster
()

Debian Sid + SwayWM

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

Планирую переход на Sway. Постепенно пилю удобное мне окружение, но многий нужный мне софт работает не в полном объеме, частично решается установкой xwayland.

ПО которое можно наблюдать:

  • Debian bookworm/sid
  • SwayWM
  • Waybar
  • tofi
  • mako-notifier
  • wob
  • thunar
  • ranger
  • du
  • udiskie
  • cmus
  • galendae

Шрифты:

  • Sans Regular
  • Source Code Pro Medium

Оформление:

  • GTK+: Midnight-GrayNight
  • Icons: Qogir-ubuntu-dark
  • Cursor: DMZ-Black

Ищу замену привычному софту, кое-где перехожу на консольные решения. Без xwayland пока не работает gimp (версия из официального репозитория) и vscodium. Thunar в основном использую для удобного хождения по smb шарам, если есть консольная альтернатива - подскажите.

>>> Просмотр (1920x3240, 523 Kb)

 , ,

nuxster
()

Debian Sid + Awesome WM

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

Какое-то время пилю это окружение, пытаюсь сделать его минималистичным и лаконичным (в рамках своих критериев), при этом не утратить юзабилити. Возможно кто-то из пользователей Awesome WM поделится своими секретами или наработками.

ПО которое можно наблюдать:

  • Debian bookworm/sid
  • awesome 4.3
  • thunar 4.16.10
  • ranger 1.9.3
  • rofi 1.7.3
  • fish 3.5.1
  • kitty 0.21.2
  • blueman 2.3.1
  • duf 0.8.1
  • gnome-disk-utility 42.0

Шрифты:

  • SauceCodePro Nerd Font
  • Sans Regular
  • fonts-font-awesome 5.0.10

Оформление:

  • GTK+: Midnight-GrayNight
  • Icons: Qogir-ubuntu-dark
  • Cursor: DMZ-Black

>>> Просмотр (1921x3240, 784 Kb)

 , ,

nuxster
()

OpenVPN один пользователь и несколько устройств

Форум — Admin

Доброго времени суток, уважаемые! Возможно-ли для нескольких устройств одного пользователя задать разные статические ip? Например, если прописать в /etc/openvpn/ccd/username:

ifconfig-push 10.13.0.25 10.13.0.26

то мы задаем статический ip конкретной учетной записи, а как задать разные статические ip, например, для ноутбука и домашнего ПК? Может быть как-то по мак-адресу устройства это можно сделать? В документации я ни чего не нашел.

 

nuxster
()

Цветовые схемы для MC

Форум — General

Доброго времени суток, народ! Посоветуйте цветовую схему для MC в темных тонах. Пытался сам наваять, но с дизайном у меня беда. :-(

 ,

nuxster
()

Python/Django обработка doc,docx,xls,odt,ods-файлов

Форум — Development

Приветствую, уважаемые! Подскажите пожалуйста имел ли кто дело с обработкой документов Оффиса в python, задача в том, что бы поместить значение переменной (текст в utf-8) в определенное место в отформатированном документе (что то вроде шаблонных переменных {{ var }})? Попробовал такие вещи как Appy.Dot и django-appypod, но не заработали они у меня. Подскажите пожалуйста куда копать.

 , ,

nuxster
()

Glade Gtk.Assistant

Форум — Development

Народ подскажите пожалуйста есть ли какой нибудь туториал по работе с Gtk.Assistant или руководство по работе с ним в GLADE?

 ,

nuxster
()

Gtk.Paned циклическое переключение панелей по клавише TAB

Форум — Development

Доброго времени суток! Подскажите пожалуйста как реализовать переключение между панелями Gtk.Paned клавишей Tab, таким образом, что бы фокус не уходил на другие элементы формы, например кнопки, т.е. клавиша TAB в программе использовалась как цикличное переключение между панелями. Есть там такой сигнал cycle-child-focus, я так понимаю он как раз для этого предназначен?

 

nuxster
()

PyGTK двойной клик мышкой

Форум — Development

Доброго времени суток! Перерыл весь гугл но так и не нашел подходящего рецепта. Почему то Gdk.EventType._2BUTTON_PRESS возвращает аж 3 события вместо одного. Подскажите пожалуйста как отловить даблклик левой кнопки мышки.

 pygyk,

nuxster
()

Python проверка символов в Gtk.Entry

Форум — Development

Доброго времени суток! Подскажите пожалуйста, как можно произвести проверку вводимых символов в Gtk.Entry в процессе хи ввода? Пробовал вешать функцию на сигнал changed, но как то тормознуто получается, может есть способ ускорить этот процесс?

Еще подскажите пожалуйста, как можно поменять свойство Gtk.Label, сделать шрифт жирным и изменить его цвет?

nuxster
()

Python Gtk.TreeView и Popup Menu

Форум — Development

Доброго времени суток! Не могу разобраться вот с такой штукой: У меня есть Gtk.Tree View в котором есть какая то информация и есть Gtk.Popup Menu, которое выпадает при щелчке правой кнопки мышки на каком нибудь элементе TreeView. Я могу клацать по пунктам меню и запускать функции. Но у меня не получается передать информацию из строки TreeView на которой я вызвал меню в мои функции. Подскажите пожалуйста как это сделать. Вот так вот я вызываю меню:

 self.treeviewR_popup = builder.get_object('treeviewR_popup')
        if event.button == 3:
            x = int(event.x)
            y = int(event.y)
            timez = event.time
            pthinfo = treeView_right.get_path_at_pos(x, y)
            if pthinfo is not None:
                path, col, cellx, celly = pthinfo
                treeView_right.grab_focus()
                treeView_right.set_cursor(path, col, 0)
                self.treeviewR_popup.popup(None, None, None, None, event.button, event.time)

 , , , ,

nuxster
()

Glade + python = приложение с поддержкой плагинов

Форум — Development

Доброго времени суток! Пишу программу, функционал которой, необходимо расширять по средствам плагинов. Функции реализованные в плагинах необходимо отображать на главном окне программы. Приемлемо было бы это сделать либо на вкладках, либо при выборе плагина из списка слева, а отображение функционала в области справа (по типу как это сделано MMC). В общем я хочу понять как сделать следующее:

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

 , , ,

nuxster
()

RSS подписка на новые темы