Функция Alt-Tab обрабатывается оконным менеджером. В Xfce менеджером окон является xfwm4
, а функция относится к "циклическим окнам" в действиях менеджера окон.
Исходные коды можно посмотреть в организации Xfce GitHub, как описано в этом Xfce Docs. Существует множество репозиториев, связанных с Xfce, которые размещены на GitHub для публичного просмотра.
Посетите соответствующий репозиторий: xfwm4. Затем перейдите в каталог /src
и вы найдете в нем исходные и заголовочные файлы. Скорее всего, соответствующим исходным файлом является cycle.c
.
Хотя я не могу полностью понять исходные коды, я могу предположить, что xfwm4 динамически изменяет размеры всплывающего диалога Alt-Tab. Имеется довольно много библиотек *.h
, а также переменных, таких как ScreenInfo
, передаваемых между функциями.
Одна вещь, которую я заметил, это количество иконок, отображаемых в одном ряду. В вопросе упоминалось "24 значка в одном ряду". Однако на моей машине было только половина от этого количества. Почему? Скорее всего, потому что у моей машины меньший размер дисплея с меньшим разрешением экрана.
На скриншоте ниже показан всплывающий диалог Alt-Tab с 14 открытыми приложениями в Xfce.
В этом случае разрешение экрана 1280 x 800 покажет 12 значков в первом ряду и оставшиеся 2 значка во втором ряду. Кроме того, у меня есть другая машина, работающая с разрешением экрана 1366 x 768, которая покажет 13 значков в первом ряду.
Основываясь на этих наблюдениях, я убежден, что более высокое разрешение экрана позволяет отображать большее количество значков в одном ряду. Следовательно, всплывающий диалог в Xfce имеет динамический размер.
Disclaimer: Я не являюсь ни разработчиком, ни квалифицированным программистом, поэтому не могу точно указать, какую часть кода следует редактировать. Я просто предлагаю соответствующий исходный код в связи с комментарием, оставленным автором вопроса. Поведение цикла было объяснено в рамках понимания вопроса, что также может послужить полезной подсказкой при модификации исходного кода.
Снимок экрана был сделан в Xubuntu 14.04 (Xfce 4.10).