Вводная: У меня на работе два монитора и Linux с X’ами (хотя все дальнейшие размышления одинаково справедливы и для других систем). Для простоты предположим один workspace (виртуальный стол).
У типичного переключателя окон (скажем, Static Application Switcher в Compiz’е) есть две клавиши (скажем, Alt+Tab и Alt+Shift+Tab), которые показывают список всех окон, позволяют выбрать из них одно, выносят его наверх (в z-порядке) и переключают на него фокус.
При наличии только одного монитора это точное и однозначное описание всего, что происходит. При двух и больше начинаются вопросы.
- На каком мониторе отображается список? А на каком мониторе он должен отображаться?
- В списке отображаются окна какого монитора? А должны?
Ответ на левую половину первого вопроса мне неясен. То ли на том, где было активное окно, то ли на том, где мышь. В любом случае, в половине случаев оно вылазит не там, где я ожидаю. Представляется, что в идеале список окон должен отображаться на том мониторе, куда я смотрю. А смотрю я, скорее всего, на тот монитор, где находится то окно, в которое я собираюсь переключиться.
По второму вопросу — отображаются все окна, независимо от расположения на том или ином мониторе. Хотя, по всей видимости, если бы была возможность программно определить, какой именно монитор мне нужен, имело бы смысл показывать только его окна.
Поскольку устройства типа «хрустальный шар» ещё относительно ненадёжны и дороги, а камеры для eye tracking’а тоже ещё та головная боль, есть мысль завести два набора переключающих клавиш. Скажем, LAlt+Tab LAlt+LShift+Tab на левой руке для левого монитора, а RAlt+Enter RAlt+RShift+Enter — на правой руке для правого. Каждый набор показывает список на своём мониторе и отображает окна только своего монитора. Если нажимается переключатель того же монитора, на котором (большей частью) находится активное до этого окно, то сразу выбираем следующее окно; если же другого монитора — то сначала выбираем верхнее окно на нём.
Может показаться, что эта схема требует от пользователя помнить, где у него какие окна. По этому поводу гипотеза состоит в том, что он и так это помнит, причём подсознательно. Кроме того, некоторые панели задач (в частности, панель xfce4) умеют показывать кнопки только своего монитора.
Внимание, вопрос. Что не так в этих рассуждениях? Если всё так, то почему нет никаких наработок по этой теме?