LINUX.ORG.RU

История изменений

Исправление dissident, (текущая версия) :

ты можешь получить список окон с лэйаута, можно получить список и вообще всех окон. привязка, группировка - что за детский сад - это xmonad, там всё есть :) вот твой фокус на лэйауте. биндишь на нужный кей и всё

https://pastebin.com/cyQ02VU5

Вполне возможно. Я более-менее одупляю (ну не считая там какой-нибудь scala) только ocaml. Но даже по названиям не понимаю, как это делает то, что я наговнокодил. Мне надо было по Shift-Fn переключиться на окно, репрезентованное n-тым прямоугольником на taskbar’е. Тут же есть focusByClass принимающая (или как там правильно в функциональных языках currying - whatever) n. Т.е. я так понимаю мне надо повесить на Shift-F1 focusByClass 1, на Shift-F2 focusByClass 2 и т.д.? Затем есть какое-то w.index и кажется это на самом деле в него должны мапиться n-ы из Shift-Fn-ов, но зачем тогда вовсе n? Да и где в findByQuery вообще что-то о workspace’ах? О screen’ах? Ну т.е., я не вижу как findByQuery ограничивает мои Shift-Fn до переключения между «закладками» (читай программами (в awesome called client)) только внутри выбранного workspace’а (в awesome called tag) только на в данный момент «фокуснутый» монитор (в awesome called screen). В этом и был весь смысл. В awesome полно shortcut’ов, чтобы переключаться между скринами, между тагами, а вот между клиентами в данный момент выбранного тага в данный момент «фокусного» скрина - не было, я добавил по аналогии. IMHO findByQuery просто проходится по всем программам, пофигу на workspace’ы, monitor’ы. Ну, и да, я понимаю, что этот код суперкороче, даже останется суперкороче, если сделать его 100% идентичным по назначению, но не уверен, что его быстрее/легче написать. Понять, конечно, да, если одупляешь haskell. Кстати, ты обрати внимание, что в моей пасте то на самом деле больше всего места занимают маппинги (вот эти awful.key), а если из selected_tag_number_of_clients() и client_taskbar_idx() общую часть вынести в отдельную функцию, то будет не сильно длиннее. Anyway, я смотрю https://www.youtube.com/watch?v=3noK4GTmyMw, может стану одуплять лучше.

Исходная версия dissident, :

ты можешь получить список окон с лэйаута, можно получить список и вообще всех окон. привязка, группировка - что за детский сад - это xmonad, там всё есть :) вот твой фокус на лэйауте. биндишь на нужный кей и всё

https://pastebin.com/cyQ02VU5

Вполне возможно. Я более-менее одупляю (ну не считая там какой-нибудь scala) только ocaml. Но даже по названиям не понимаю, как это делает то, что я наговнокодил. Мне надо было по Shift-Fn переключиться на окно, репрезентованное n-тым прямоугольником на taskbar’е. Тут же есть focusByClass принимающая (или как там правильно в функциональных языках currying - whatever) n. Т.е. я так понимаю мне надо повесить на Shift-F1 focusByClass 1, на Shift-F2 focusByClass 2 и т.д.? Затем есть какое-то w.index и кажется это на самом деле в него должны мапиться n-ы из Shift-Fn-ов, но зачем тогда вовсе n? Да и все в findByQuery вообще что-то о workspace’ах? О screen’ах? Ну т.е., я не вижу как findByQuery ограничивает мои Shift-Fn до переключения между «закладками» (читай программами (в awesome called client)) только внутри выбранного workspace’а (в awesome called tag) только на в данный момент «фокуснутый» монитор (в awesome called screen). В этом и был весь смысл. В awesome полно скринов, чтобы переключаться между скринами, между тагами, а вот между клиентами - не было, я добавил по аналогии. IMHO findByQuery просто проходится по всем программам. Ну, и я понимаю, что этот код суперкороче, останется суперкороче, если сделать 100% идентичным назначение, но не уверен, что его быстрее/легче написать. Понять, конечно, да. Кстати, ты обрати внимание, что в моей пасте то на самом деле больше всего места занимают маппинги (вот эти awful.key), а если из selected_tag_number_of_clients() и client_taskbar_idx() общую часть вынести в отдельную функцию, то будет не сильно длиннее. Anyway, я смотрю https://www.youtube.com/watch?v=3noK4GTmyMw, может стану одуплять лучше.