Очень простым подходом к этому было бы использование утверждения bash
select
; не нужно ничего устанавливать (еще ). Вот пример, который мне только что попался:
#!/bin/bash
[...]
sourceBranch=
targetBranch=
# Force one option per line
columnsBackup=${COLUMNS}
COLUMNS=40
echo "Select source and target branch:"
select branches in \
"testing -> release-candidate" \
"release-candidate -> stable-release" \
"stable-release -> stable"
do
if [ -z "${branches}" ]; then
echo "Invalid selection"
continue
fi
sourceBranch="${branches%% -> *}"
targetBranch="${branches##* -> }"
break
done
COLUMNS=${columnsBackup}
echo "Releasing from ${sourceBranch} to ${targetBranch}"
[...]
Выход:
Select source and target branch:
1) testing -> release-candidate
2) release-candidate -> stable-release
3) stable-release -> stable
#? 1
Releasing from testing to release-candidate
Вместо этого вы, вероятно, будете выполнять некоторую case... esac
обработку в блоке do... done
.
Соответствующий файл конфигурации — /usr/share/wireplumber/main.lua.d/50-alsa-config.lua
, но не редактируйте его системную версию!
Вам необходимо скопировать его в/etc/wireplumber/main.lua.d/
(глобальную конфигурацию )или~/.config/wireplumber/main.lua.d/
(пользовательскую конфигурацию )и внести необходимые изменения.
Самый простой способ — скопировать его в папку глобальной конфигурации, чтобы он применялся ко всем учетным записям пользователей.:
sudo cp -a /usr/share/wireplumber/main.lua.d/50-alsa-config.lua /etc/wireplumber/main.lua.d/50-alsa-config.lua
sudo nano /etc/wireplumber/main.lua.d/50-alsa-config.lua
Затем вам нужно прокрутить файл вниз до раздела apply_properties
и добавить туда строку с надписью:
["session.suspend-timeout-seconds"] = 0
Я внес гораздо больше изменений и настроил его для своего личного оборудования. Вот моя конфигурация для справки, но эта конфигурация полезна только для моих конкретных устройств. На самом деле вам нужна только строка выше, чтобы отключить автоматическую приостановку -. Добавьте его в свою собственную конфигурацию по умолчанию. Не копировать мой конфиг. Другие внесенные мной изменения не имеют отношения к делу.
alsa_monitor.properties = {
["alsa.jack-device"] = true,
["alsa.reserve"] = true,
["alsa.midi.monitoring"] = true
}
alsa_monitor.rules = {
{
matches = {
{
{ "device.name", "matches", "alsa_card.*" }
}
},
apply_properties = {
["api.alsa.use-acp"] = true,
["api.acp.auto-profile"] = false,
["api.acp.auto-port"] = false
}
},
{
matches = {
{
{ "node.name", "matches", "alsa_output.pci-0000_0c_00.4.iec958-ac3-surround-51" }
}
},
apply_properties = {
["api.alsa.period-size"] = 128,
["api.alsa.headroom"] = 2048,
["session.suspend-timeout-seconds"] = 0
}
},
{
matches = {
{
{ "node.name", "matches", "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-mono" }
}
},
apply_properties = {
["api.alsa.period-size"] = 128
}
}
}
Установка для свойства session.suspend-timeout-seconds
значения 0
предотвращает поведение приостановки/сна. Это полностью отключает поведение, как видно из исходного кода WirePlumber.
WirePlumber необходимо перезапустить, чтобы изменения вступили в силу:
systemctl --user restart wireplumber