Устранение одного неприятного дефекта polybar

Опубликовано 12.11.2024 в OpenBSD

С некоторых пор (подозреваю, что с тех самых, как я начал использовать в polybar модуль i3 вместо xworkspaces, о чем писал тут), стал я замечать раздражающую багулю: стоит мне, расположив курсор мыши поверх этого самого polybar, изобразить, пусть даже случайно, "двухпальцевый скролл" на тачпаде - и polybar немедленно превращался в тыкву. В смысле, в статичную картинку, ничего уже актуального не отображающую. И хорошо так фризился: приходилось делать всякий раз pkill -9 polybar, чтоб прибить зависший экземпляр, а потом запускать новый.

Такое происходило весьма нечасто - я вообще не имею привычки переключать рабочие столы в i3 скроллом на тачпаде, по мне куда удобнее хоткеи (особенно я проникся опцией workspace_auto_back_and_forth yes, которую прописал в ~/.config/i3/config и истинно наслаждаюсь: положим, открыт у меня текстовой редактор на четвертом рабочем столе, а браузер со справочной информацией на втором, и нужно мне что-то подсмотреть в браузере - я нажимаю $mod+2 чтобы переключиться на браузер, а потом... снова $mod+2 чтобы вернуться на предыдущий рабочий стол, каким бы он ни был, и это вот настолько удобно, что мгновенно въелось в мышечную память).

Не, ну если уж очень обламывает тянуться к клавиатуре и силы есть лишь на то, чтоб на последнем издыхании пальчиком по тачпаду возюкать - то всегда ведь можно просто дотянуться до индикатора этого самого нужного рабочего стола в том самом polybar и тапнуть пальчиком, по нажатию-то он переключает исправно. Именно скроллиться между рабочими столами мне и не нужно особо.

Но как же оно раздражает, пусть и редко происходящее! Вот вам доводилось ехать, например, за рулем автомобиля, немножечко не вполне исправного? Ну, колесо, допустим, вчера чуть спускало: ты подкачал, и сегодня вроде уже и не спускает. И вот вроде головой понимаешь, что ничего страшного, что пустяк, что шиномонтажек, если что, по пути тьма, и докатка в багажнике есть, и заметишь ведь ты совершенно точно, если оно вдруг на ходу совсем спустит и начнет жевать резину... И всё равно, всю дорогу едешь как на иголках: прислушиваешься постоянно, ждешь подлянки, всё проверяешь - не ведет ли машину в сторону? Нет ли звуков посторонних? И пальцы аж белеют от напряжения на руле, и спина каменная... Вот так и тут: редко проявляющийся и вообще не критичный глюк, но неприятно, нервно, нарушает, понимаете ли, феншуй идеально заточенного под себя рабочего окружения, и благотворная энергия Цы истекает от этого совсем не в ту сторону.

Короче. В причинах этого неприятного бага я не разобрался, но вылечил его с успехом, следующими несложными заклятьями:

Прежде всего, в конфиге ~/.config/polybar/config.ini в секции модуля i3 отключаем его родной, модулевый, скроллинг:

[module/i3]
;...
enable-scroll = false
;...

а затем в настройках, собственно, бара прописываем следующее для восстановления работоспособности скроллинга:

[bar/mybar]
;...
scroll-up = i3-msg workspace next_on_output
scroll-down = i3-msg workspace prev_on_output
;...

Всё, polybar больше не фризится, скроллинг рабочих столов с тачпада работает (а вот просто чтобы было), вселенская гармония восстановлена.

Рецепт сохраняю тут на долгую память.