Я часто использую гарнитуру, чтобы выбрать, использовать ли гарнитуру или обычную звуковую карту, я использую переменную среды благодаря этому коду в ~/.asound.rc:
@args.CARD {
type string
default {
@func getenv
vars {
0 ALSA_CARD
}
default {
@func refer
name 'defaults.pcm.card'
}
}
}
К сожалению, новая гарнитура (hw:Set) перепутала каналы, поэтому я создал PCM для исправления, добавив эти строки в ~/.asoundrc:
pcm.swapped {
type route
slave {
pcm "hw:Set"
}
ttable.0.1 1
ttable.1.0 1
}
pcm.HeadsetSwapped {
type plug
slave {
pcm "pcm.swapped"
}
}
PCM работает, но как я могу использовать его через переменную среды? На данный момент переменная env принимает только имена карт. Вероятно, это что-то около -- name 'defaults.pcm.card' -- строки, но я не могу это исправить.
Я знаю, что могу изменить pcm.HeadsetSwapped на pcm.!default, но мне не хотелось бы редактировать файл каждый раз, когда я хочу запустить программу...