В связи с тем, что я плавно переезжаю на wayland и hyprland, встал вопрос о том чтобы сделать маленькие удобства для себя(возможно это пригодится не только мне).
Хочу сделать следующее, в waybar выводить кастомным модулем значок используемого в данный момент выхода(Sink) и его громкость. И если с громкостью проблем никаких нет, то вот распарсить на баше то что выдает wpctl, для меня довольно сложно оказалось.
Audio
├─ Devices:
│ 40. HDA NVidia [alsa]
│ 41. Webcam C310 [alsa]
│ 42. Jabra EVOLVE 20 MS [alsa]
│ 43. Starship/Matisse HD Audio Controller [alsa]
│
├─ Sinks:
│ 50. Jabra EVOLVE 20 MS Аналоговый стерео [vol: 0.80]
│ * 52. Starship/Matisse HD Audio Controller Цифровой стерео (IEC958) [vol: 1.00]
│
├─ Sink endpoints:
│
├─ Sources:
│ * 51. Jabra EVOLVE 20 MS Моно [vol: 0.76]
│
├─ Source endpoints:
│
└─ Streams:
Вот из приведенного выше куска, хочу достать во-первых оба синка, хотя бы до первого пробела(Jabra и Starship/Matisse), айдишник каждого(для переключения между ними по клику), ну и пометку какой из них активный в данный момент. Тогда я смогу по синку выводить значок соответствующий(колонка или наушники), а также по клику смогу их переключать между собой.
Подскажите, как это лучше на баше сделать? Я конечно могу сам, но получится лютый говнокод на пару страниц, а я верю, что тут какая-нибудь магия может помочь однострочная.
PS: В принципе можно и на питоне, но текущая версия на баше, поэтому думал так и продолжать.