А теперь, собственно, критика и пожелания. По мере обнаружения. Первое -- жаль, что хоткеями фреймы делятся только пополам (оч. нехватает комбинации вроде EMACSовского C-u для задания параметров, если кто подскажет рецепт -- пишите) ; далее -- по dmenu -- нет так полюбившегося мне по zsh перебора TABом и автодополнения ключей и параметров (в т.ч. и пути к файлам) (надеюсь, что это настраиваемо). Также я не нашел, как раскидывать окна по группам при старте (внутри одной группы по фреймам они встают при загрузке файла-дампа этой группы) -- окна запускаются с разной задержкой и все норовят влезть в текущую группу.
Еще, кажется, обнаружил пару небольших багов. Первый -- делим группу на 4 равных фрейма, левый нижний, например, растягиваем немного вправо, правый верхний делим горизонтально, нижнюю часть -- вертикально, нижний правый фрейм удаляем. По идеи, теперь фреймы должны заполнить пустое пространство, но вместо этого только правый нижний кусок правого верхнего изначального фрейма заполняет часть пространства, левый нижний же (изначальный) не изменился, и осталась незаполненная область. Теперь удаляем левую нижнюю часть правого верхнего изначального фрейма -- опять только пустая, незаполняемая фреймами область! Удаляем оставшуюся верхнюю часть изначального левого верхнего фрейма -- его оставшаяся правая нижняя часть заполняет часть пространства, но между ним и оставшимися левыми изначальными фреймами -- пустая область, и переключиться теперь между фреймами штатными хоткеями не выйдет. Пути два -- тыкать мышем, или ресайзить оставшиеся фреймы, чтобы те опять "сцепились". Но это не есть нормально, и если кто знает лекарство от этого -- буду очень благодарен. Если нет -- пишите багрепорт, ибо ваш скромный слуга на буржуйском интернациональном не писатель. Второй баг также незначителен, но может доставлять некоторое неудобство. Пример -- делим группу на 3 фрейма, 2 помечаем как dedicate и catchall соответственно, переходим на третий. Теперь переходим в stack режим и обратно. Все фреймы рисуются по умолчанию, без подсветки режима. Это может ввести в заблуждение, т. к. режимы по-прежниму включены -- чтобы удостовериться, достаточно переключить фокус на неактивные фреймы -- и те вновь подсветятся соответственно режимам. Думаю, об этом также стоит упомянуть в багрэпорте.
Ну, и, на последок, немного помечтаем. Во-первых, я не знаю, какое средство вывода информации сюда подойдёт (умолчательно все сообщения выводятся просто в stdout). Если есть идеи и варианты -- буду рад услышать. Интересно было бы попробовать прикрутить conky или dzen как системный монитор, но отображать его только по нажатию соответствующего хоткея тонкой строчкой вверху или внизу -- выводить дату/время, системный мониторинг, сюда же прикрутить какой-нибудь трэер (trayer или stalonetray) и средство визуализации раскиданных по группам окон. Обычно его называют пейджером и реализовывают в виде маленькой модели окошек в квадратиках воркспейсов. И правда, для пимпочкотыкательных интерфейсов что-то лучше того же ipager придумать сложно. Но я представляю себе это средство визуализации несколько иначе, благо это полность походит к musca. Хотелось бы видеть монитор в текстовом режиме, отображающий информацию примерно в следующем виде:
- Код: Выделить всё
*/term
+urxvt
-mirage
*+emacs
/work
+evince
-tkabber
/music
+snd
где / --перечисленые группы, в группах -- окна, плюсами отмечены видимые во фреймах, * -- означает текущее. Выводить можно в несколько строк во всплывающем меню, либо в ту же строку, экономя место, либо, для удобства восприятия -- в отдельную строку (а по-хорошему, это должно задаваться опционально). Если бы это был еще и активный управляющий элемент (переименовывать группы, перетаскивать окна между ними, менять текущее и отображаемое) -- было бы вообще здорово. Помимо того можно добавить сюда же следующий функционал -- при при выборе одной из групп по нажатии ввода (или, как альтернативный вариант, тыканью мышем) -- загружается и открывается для редактирования дамп текущей группы, по окончании редактирования, сделать возможность загрузить в musca сохранённый дамп, скорректировав текущую группу. Думаю, благодаря командной реализации musca, реалезовать всё это будет несложно, даже написанием простого скрипта. А вывести можно в тот же системный монитор или dmenu.
Также мне кажется неправильной связка с dmenu. Например, совместив функционал родного средства запуска программ dmemu shell с DmenFM (файловый менеджер -- скрипт, работающий через dmenu), можно получить автодополнение/перебор имён файлов, как аргументов запускаемых программ -- то, чего мне так не хватает после Ion3. Но переменная строки запуска dmenu инкапсулирована, и приходится настраивать такой запуск приложений независимо от Musca, отдельно настраивая параметры dmenu. Это не очень хорошо, и, надеюсь, этот архетектурный недочёт исправят.
И еще -- уже просто пожелание -- хотелось бы, чтобы указатель мыша следовал за фокусом окон, как в Ion3, а также исчезал при неактивности мыши, т. к. при работе только с клавиатуры -- приходится изредка тянуться за мышем, чтобы только подвинуть его курсор :-)