LINUX.ORG.RU

Тройное не нужно

 


3

3

Даже будучи фанатом консольных программ, «ковбоем клавиатуры» :], нельзя отрицать удобство графического интерфейса, как например браузер или файловый менеджер. Программы есть, а управлять окнами кто будет? Вешать все на хоткеи, и прыгать с клавиатуры на мышку не комильфо. С этой целью изобретаю свой велосипед, универсальный тулбар для управления окнами и запуска программ, но начну с начала...

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

DestroyFunc FuncFvwmDesktop
AddToFunc FuncFvwmDesktop
+ I DestroyModuleConfig FvwmDesktop$0: *
+ I *FvwmDesktop$0: Geometry $1
+ I *FvwmDesktop$0: Font "Shadow=0 0 BottomRight:StringEncoding=UTF-8:xft:Sans:Medium:Roman:size=8:minspace=False;fixed"
+ I *FvwmDesktop$0: Colorset 2
+ I *FvwmDesktop$0: (Container, Frame 1, Colorset 9)
+ I *FvwmDesktop$0: (Container(Frame 0, Padding 10 10, Colorset 2, Columns $3, Rows $4))
+ I PipeRead '$./desktop.sh $0 $2'
+ I *FvwmDesktop$0: (End)
+ I *FvwmDesktop$0: (End)
+ I Module FvwmButtons FvwmDesktop$0
После чего уже вызовом этой функции рисуем окна со значками, указывая нужные директории, расположение и количество колонок/строчек. Function FuncFvwmDesktop 0 576x192+192+24 $[HOME]/Desktop 8 2. Кедами не пользовался, какую функцию на самом деле выполняют эти «рабочие столы в окнах» не знаю, поэтому это первая не нужность. Но десктоп в целом хорошая и уже привычная людям задумка, если не своей функциональностью, то хотя бы как украшение :) поэтому его я переделаю в обычный классический вид, - один десктоп со значками, никаких окон. И будет в FVWM свой десктоп...

Внизу находится тулбар с иконками, закос под хфсе, и по порядку. Первая иконка слева статична, просто сворачивает/восстанавливает все окна.

Следующие 4 иконки (на самом деле их 13) прокручиваются, то есть, наводишь на них мышку, крутишь колесико, и они крутятся списком влево/вправо, - удобно, что их может быть сколько угодно, но при этом чтобы не разводить зоопарк иконок, сохранить минималистичный вид, они просто листаются влево/вправо, а и еще, не нужно совершать лишних кликов, - крутить колесико легче.
При клике на иконку запускается программа.
При повторном нажатии на иконку активируется окно уже запущенной программы - закос под «оффтопик максимальный».
При двойном клике на иконку запустится еще одна копия программы. И уже тогда, при простом клике на иконку, окна данной программы будут активироваться по очереди (типа как Alt + Tab, но только для конкретно данной программы).
По нажатию правой кнопки мышки всплывает закос под максимальную - миниатюры всех окон данной программы, можно кликнуть на любую и сразу переключиться на нужное окно. :)

И самая крайняя иконка справа тоже является списком иконок, который прокручивается колесиком, но на ней забиндены различные директории (корень /, хомяк ~, /tmp, все директории в /mnt/* и /media/*), а не программы. И просто клик по ней вызывает менюшку-директорию, по которой можно быстро зайти в нужную директорию и находясь в ней запустить файловый менеджер или консоль.

И все это: интерфейс FVWM со вставками bash-пайпов (скриптов) для описания логики поведения элементов. Тулбар еще в процессе допиливания, и думаю чего бы еще удобного и нескучного к нему прикрутить, поэтому если вас как и меня не устраивают уже существующие панельки, то можно заделать свою, супер-мега-удобную в FVWM.
За что мне нравится ковырять FVWM, что это как конструктор (а кто-то просто играет в майнкрафт), и что реализовать здесь любую мегафичу делов на пару дней, в то время как умы мелкософта трудились над ней месяцами. :)

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

>>> Просмотр (1024x768, 366 Kb)

★★★★★

Проверено: JB ()

IMHO удобнее сделать так, чтобы окна не перекрывались, тогда и управлять ими особо не надо. Если же забыл на каком из виртуальных экранов что находится (между экранами переключаюсь по Alt-цифра), то достаточно списка по левому клику.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от Evgueni

IMHO удобнее сделать так, чтобы окна не перекрывались, тогда и управлять ими особо не надо.

К сожалению, экраны у нас пока не резиновые. Все окна сразу видеть, как правило, не нужно, а лишние окна занимают на экране драгоценное место. Соответственно, их нужно время от времени прятать/показывать, и в тайловых WM эти действия требуют гораздо больше усилий, чем в классических.

Axon ★★★★★ ()

а мне понравилось.

версия FVWM и дистрибутив имеет значение?

irton ★★★★★ ()

Мужик!

Но возникает вопрос, если тебе это не нужно, зачем пилишь? Настолько нечем заняться?

geekless ★★ ()
Ответ на: комментарий от Axon

Не нужно просто все окна на один воркспейс пихать.
Переключаться между воркспейсами в тайловом вм удобней чем сворачивать/разворачивать.

vyazovoi ★★ ()
Ответ на: комментарий от irton

Версия точно имеет(минимум 2.5.7, у автора 2.6.5, возможно патченная), дистриб - пофиг.

брызжу слюнями за конфиг ^_^, правда смотреть его пока некогда, своё ещё вычищаю и отлаживаю...

А идея мне нравится, думал запилить чтото похожее, но как всегда fvwm можно пилить вечность и ещё чуть чуть :)

Lwulf ()
Ответ на: комментарий от Axon

и в тайловых WM эти действия требуют гораздо больше усилий, чем в классических.

С моим набором софта, по крайней мере, всё противоположно. Десяток виртуальных рабочих столов с более-менее жёстко закреплённым назначением спасут отца любой демократии.

dmfd ()

На макоси сделана прикольная фича, называется кажется Towers. Как и здесь все запущенные программы обозначаются одним значком, но при нажатии на значок вылезает вертикальный список в котором можно выбрать конкретное окно.

Интересно также обозначить на углу значка количество открытых окон.

leonidko ★★★ ()
Ответ на: комментарий от vyazovoi

Не нужно просто все окна на один воркспейс пихать. Переключаться между воркспейсами в тайловом вм удобней чем сворачивать/разворачивать.

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

Axon ★★★★★ ()
Ответ на: комментарий от dmfd

Десяток виртуальных рабочих столов с более-менее жёстко закреплённым назначением спасут отца любой демократии.

Я не знаю, что у вас за задачи, но для большинства моих задач необходимо несколько приложений одновременно, при этом, на виду нужны не все сразу. Я смотрел как работают мои знакомые, у большинства из них, как правило, то же самое. В таком режиме тайловые WM просто неюзабельны.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

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

даже в общем случае двумя можно: выбрал окно из списка и кинул на нужный воркспейс, если подкрутить, то и одним.

А ещё в некоторых есть скрэтчпады

lazyklimm ★★★★★ ()
Ответ на: комментарий от Axon

но для большинства моих задач необходимо несколько приложений одновременно, при этом, на виду нужны не все сразу.

Да, это идеальный юзкейз для того, о чём я писал выше.

dmfd ()

хорошо, только шрефты у миниатюр нечитабельные на таком фоне

lazyklimm ★★★★★ ()
Ответ на: комментарий от lazyklimm

даже в общем случае двумя можно: выбрал окно из списка и кинул на нужный воркспейс

Не-а. Вспомнил на каком оно воркспейсе, перешёл туда, выбрал нужное окно, перекинул на нужный воркспейс, вернулся на него. Пока всё это провернёшь, забудешь, зачем оно тебе нужно было.

Axon ★★★★★ ()
Ответ на: комментарий от dmfd

Да, это идеальный юзкейз для того, о чём я писал выше.

Каким местом?

Axon ★★★★★ ()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

Не очень понял зачем окно перекидывать на другой воркспейс.

winlook38 ★★ ()
Ответ на: комментарий от Axon

Вспомнил на каком оно воркспейсе, перешёл туда, выбрал нужное окно, перекинул на нужный воркспейс, вернулся на него.

находясь на нужном воркспейсе нажал шорткат, интерактивно выбрал окно из списка, enter, и оно уже у тебя, например в активном фрейме.

lazyklimm ★★★★★ ()
Ответ на: комментарий от winlook38

Не очень понял зачем окно перекидывать на другой воркспейс.

Потому что там другие окна, рядом с которыми его надо поместить.

Axon ★★★★★ ()
Ответ на: комментарий от lazyklimm

находясь на нужном воркспейсе нажал шорткат, интерактивно выбрал окно из списка, enter, и оно уже у тебя, например в активном фрейме.

Это лучше, не знал, что так можно. А какой WM такое позволяет?

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Когда на активном воркспейсе окажутся нужные для работы приложения, проделывать эту операцию больше не потребуется.

winlook38 ★★ ()
Ответ на: комментарий от winlook38

Когда на активном воркспейсе окажутся нужные для работы приложения, проделывать эту операцию больше не потребуется.

Вы читать умеете? Они не нужны все сразу. Скажем, их четыре, а нужны одновременно всё время только одно или два из них, при чём всё время разные. В классическом WM лишние можно просто свернуть, или заслонить нужными, а в тайловом придётся долбиться с лишними воркспейсами/скретчпадами.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Дата регистрации: 10.11.2008 17:16:28

Да стаж достаточный, чтобы стать настоящим лоровцем: нелюбопытным, не разбирающимся, но имеющим своё веское.

dmfd ()
Ответ на: комментарий от dmfd

Да стаж достаточный, чтобы стать настоящим лоровцем: нелюбопытным, не разбирающимся, но имеющим своё веское.

Я свои доводы высказал, вы свои - нет. Если у вас есть что сказать, я слушаю. Я пробовал использовать i3 недельку. Бросил, как раз, после первой попытки сделать работу посерьёзнее, чем постинг на ЛОРе.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

А какой WM такое позволяет?

с wmctrl/dmenu(xwinmosaic, или любая другая такая обертка) - практически любой с поддержкой EWMH

lazyklimm ★★★★★ ()
Ответ на: комментарий от lazyklimm

А... Я думал, это где-то уже реализовано.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Я прочитал твои доводы перед тем, как писать пост. Опровергать мне их лень, настолько они далеки от реальности.

dmfd ()
Ответ на: комментарий от dmfd

Опровергать мне их лень, настолько они далеки от реальности.

И эти люди запрещают мне ковыряться в носу...

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Ты сам людей в RTFM посылал (один раз, судя по поиску), значит и мне можно.

dmfd ()
Ответ на: комментарий от Axon

Во-первых, могу. Смотря что подразумевать под одним движением. Двинуть мышкой и кликнуть - это грубо говоря уже два движения.
Во-вторых, мы же все-таки про удобство говорим. Я у себя не узрел ситуации, в которой мне нужно постоянно то видеть два окна одновременно, то не видеть. При желании можно реализовать функцию «переместить окно на текущий workspace» и в качестве селектора окон сделать что-то типа xwinmosaic. В конце концов я могу разместить два окна на текущем воркспейсе и периодически делать split-unsplit, тогда два окна будут или друг за другом, или пополам. Так вот с точки зрения удобства - традиционный wm как раз может быть удобным если окон на одном воркспейсе мало, т.к. тайлинг и придумали для того, чтобы не мучаться с перекрывающими окнами. Сворачивание-разворачивание окон на панели когда их дофига в традиционном вм как раз неудобно.

vyazovoi ★★ ()
Ответ на: комментарий от Axon

Если ты долго будешь работать с тайлингом и операции по управлению окнами не будут тебя заставлять думать и вспоминать «как это делается», тогда тайлинг тоже по-своему удобен. Можно творить всякую магию. Лично у меня претензия к тайлингу только одна - тайловый вм управляется преимущественно с клавиатуры, а приложение может быть заточено под мышь - напрягает бегать от мыши к клаве.

vyazovoi ★★ ()
Ответ на: комментарий от dmfd

Ты сам людей в RTFM посылал (один раз, судя по поиску), значит и мне можно.

При чём тут какие-то мануалы, вообще?

Axon ★★★★★ ()
Ответ на: комментарий от vyazovoi

Смотря что подразумевать под одним движением.

Alt-Tab.

Я у себя не узрел ситуации, в которой мне нужно постоянно то видеть два окна одновременно, то не видеть.

Рад за вас. Но таких людей немного, поэтому большинство пользуется классическими WM.

Так вот с точки зрения удобства - традиционный wm как раз может быть удобным если окон на одном воркспейсе мало, т.к. тайлинг и придумали для того, чтобы не мучаться с перекрывающими окнами. Сворачивание-разворачивание окон на панели когда их дофига в традиционном вм как раз неудобно.

Традиционный WM, вообще-то, не обязан иметь панель. Он оперирует списком окон, их относительным расположением, и состояниями «свёрнуто-развёрнуто». Для навигации может использоваться большой арсенал средств, от старого доброго alt-tab, до всяких expose и поиска по окнам.

Если ты долго будешь работать с тайлингом и операции по управлению окнами не будут тебя заставлять думать и вспоминать «как это делается», тогда тайлинг тоже по-своему удобен. Можно творить всякую магию.

Магию, при желании, можно творить и во многих классических WM. Там и правила есть, и wmctl.

Axon ★★★★★ ()
Последнее исправление: Axon (всего исправлений: 2)
Ответ на: комментарий от Axon

Alt-Tab.

Это одно? O_o Циклический alt-tab (например как в ubuntu из коробки) это худший из популярных способ переключать окно. Годится только переключаться между двумя последними окнами. Сейчас у меня из тайловых wm есть только dswm, в нем два последних окна удобно переключаются. А вместо alt-tab в данный момент xwinmosaic.

Рад за вас. Но таких людей немного, поэтому большинство пользуется классическими WM.

Как раз наоборот, это у тебя частный случай. Обычно количество окон, которые нужно видеть одновременно на одном воркспейсе - постоянно. Я открываю много новых окон во время работы (то pgadmin запустить, то keepassx, то терминалов парочку), но их всегда можно открыть на другом воркспейсе. А у тебя прям стечение обстоятельств какое-то.

Традиционный WM, вообще-то, не обязан иметь панель. Он оперирует списком окон, их относительным расположением, и состояниями «свёрнуто-развёрнуто». Для навигации может использоваться большой арсенал средств, от старого доброго alt-tab, до всяких expose и поиска по окнам.

Expose это конечно прикольно (кстати, в awesome и xmonad есть готовые расширения для этого), но все равно эффективней всего использовать воркспейсы и неперекрывающиеся окна. Судя по тому что ты написал - ты не долго пытался сидеть в одном только i3. А ты попробуй статический тайлинг ещё, или там awesome например. Я то знаю о чем говорю - я тайлингом довольно долго пользовался, обычными wm тоже. Везде есть свои минусы. Тайлинг рулит и дает сбой только на некоторых use-case'ах.

Магию, при желании, можно творить и во многих классических WM. Там и правила есть, и wmctl.

Это не та магия. Это магия в управлении окнами. Точно также, как в emacs можно творить магию с редактированием текста. Просто вся магия ломается если в самом приложении тебе нужно тыкать мышью. Но если ты просто редактируешь код в emacs, vim или IDE, то тут всё окей.

vyazovoi ★★ ()
Ответ на: комментарий от vyazovoi

Циклический alt-tab (например как в ubuntu из коробки) это худший из популярных способ переключать окно.

А по-моему, очень удобно. А какой лучший?

Как раз наоборот, это у тебя частный случай.

Я же писал, что наблюдал за людьми. У всех так.

Судя по тому что ты написал - ты не долго пытался сидеть в одном только i3. А ты попробуй статический тайлинг ещё, или там awesome например.

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

Это не та магия. Это магия в управлении окнами.

А я про какую говорю?

Но если ты просто редактируешь код в emacs, vim или IDE, то тут всё окей.

Вооот. Так выглядит работа только очень малого числа людей, и я к ним не отношусь.

Axon ★★★★★ ()

Вот это здорово, видно, что мужик, а не школоло. Накатим за FVWM!

KERNEL_PANIC ★★★ ()
Ответ на: комментарий от Axon

А по-моему, очень удобно. А какой лучший?

Что в windows, что в нынешней ubuntu - оно как-то неудобно сделано. Да и когда куча окон - это же надо alt-tab много раз нажимать. Какой лучший - не знаю. Знаю что expose удобней чем alt-tab, особенно если тыкать мышкой. А xwinmosaic удобней, если с клавиатуры - там можно, например, сделать фильтр текстом или просто emacs-like хоткеями выбрать нужное окно в четырех направлениях.

Я же писал, что наблюдал за людьми. У всех так.

Я работал на разных работах, делал разные задачи. Мне не нужно наблюдать за людьми, чтобы представить работу программиста или админа (работал и тем и тем).

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

Тогда ты не можешь утверждать что тайлинг менее удобен. Как минимум есть разные виды тайлинга, статический гораздо ближе к тому, что ты хочешь, чем i3. Кроме того есть awesome, в котором из коробки вполне приличный флоатинг и на всех воркспейсах такой режим по-умолчанию.

А я про какую говорю?

Я говорю про те действия, которые ты выполняешь руками. А не про правила.

Вооот. Так выглядит работа только очень малого числа людей, и я к ним не отношусь.

Мы же на лоре, тут программисты да админы. Если ты работаешь в фотошопе или гимпе, то тут я не спорю - если для работы постоянно в руках надо держать мышку или перо, то лучше и управление окнами заточить на такие вещи. Например я когда с планшетом работаю в ubuntu - у меня настроен жест в easystroke для expose.

vyazovoi ★★ ()
Ответ на: комментарий от vyazovoi

Что в windows, что в нынешней ubuntu - оно как-то неудобно сделано.

Это да. В винде я не помню, чем оно мне не нравилось, а в убунте вообще теперь приложения вместо окон переключаются. В квине и опенбоксе, которыми я пользуюсь, всё удобно.

Какой лучший - не знаю. Знаю что expose удобней чем alt-tab, особенно если тыкать мышкой.

Если окно много, и они всё время одни и те же, то да. Я использую и то и другое, в зависимости от ситуации.

Я работал на разных работах, делал разные задачи. Мне не нужно наблюдать за людьми, чтобы представить работу программиста или админа (работал и тем и тем).

Я вам уже три часа толкую, что есть и другие профессии, кроме программистов и админов.

Тогда ты не можешь утверждать что тайлинг менее удобен.

Если что-то неудобно только потому, что непривычно, это чувствуется сразу. В этом случае я готов потратить время на освоение, потому что понимаю, зачем это нужно. Тайлинг же мне показался неудобным в принципе.

Как минимум есть разные виды тайлинга, статический гораздо ближе к тому, что ты хочешь, чем i3

Как я понимаю, статический тайлинг вообще не подходит для постоянно меняющихся задач.

Кроме того есть awesome, в котором из коробки вполне приличный флоатинг и на всех воркспейсах такой режим по-умолчанию.

Зачем ставить тайловый WM и использовать его во floating-режиме?

Я говорю про те действия, которые ты выполняешь руками. А не про правила.

Я и про них тоже говорил. Скрипты с wmctl, развешенные по хоткеям, дают схожий эффект.

Мы же на лоре, тут программисты да админы.

Далеко не только. :-) Я, вот, например, нейрофизиолог.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Зачем ставить тайловый WM и использовать его во floating-режиме?

Например, чтобы использовать floating для основных сценариев и применять тайлинг на определенных воркспейсах. Нечто подобное делает pytyle. Если не пробовал - советую посмотреть. Можно включить тайлинг на любом wm, но до awesome ему имхо далеко.

по остальным вопросам возражений не имею

vyazovoi ★★ ()
Ответ на: комментарий от Axon

их нужно время от времени прятать/показывать

Тэги же! Включил нужные тэги — показались нужные окна, выключил тэг — ненужные окна спрятались.

OldManClone ★★ ()
Ответ на: комментарий от vyazovoi

Например, чтобы использовать floating для основных сценариев и применять тайлинг на определенных воркспейсах. Нечто подобное делает pytyle. Если не пробовал - советую посмотреть.

Да, слышал про него. Думаю, каким-нибудь свободным вечерком доберусь.

Axon ★★★★★ ()
Ответ на: комментарий от OldManClone

Тэги же! Включил нужные тэги — показались нужные окна, выключил тэг — ненужные окна спрятались.

Придётся каждому окну давать свой тег. Получим сворачивание-разворачивание тегов вместо сворачивания-разворачивания окон, с той разницей, что окно можно просто заслонить другим, а тег обязательно придётся скрывать. Ну и в чём смысл?

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Если не пробовал awesome - попробуй тоже. И при этом посмотри его вики на предмет сколько всего можно к нему прикрутить, тот же expose есть в готовой реализации. Я когда метался между floating vs tiling подумал взять awesome, как вариант, удовлетворяющий обе потребности. А так, я ещё KDE жутко уважаю и kwin тоже торт.

vyazovoi ★★ ()
Ответ на: комментарий от vyazovoi

Если не пробовал awesome - попробуй тоже. И при этом посмотри его вики на предмет сколько всего можно к нему прикрутить, тот же expose есть в готовой реализации.

Awesome меня отпугивает конфигом на lua, который, вдобавок, приходится регулярно переписывать.

Axon ★★★★★ ()

Следующие 4 иконки (на самом деле их 13) прокручиваются, то есть, наводишь на них мышку, крутишь колесико, и они крутятся списком влево/вправо
чего бы еще удобного к нему прикрутить

Типа фичреквест:

1) Почему именно 13? Добавлять/выбрасывать иконки можно?

2) Нужны небольшие кнопочки со стрелками слева и справа от «списка» иконок (как у табов в фаерфоксе, примерно) для прокрутки по ЛКМ. А то вдруг у мышки нет колеса, мало ли? :) Кнопочки должно быть видно только тогда, когда есть куда листать список в эту сторону: долистываем до упора — кнопка исчезает.

3) Второй режим (и, соответственно, переключатель режимов): ширина «списка» иконок фиксирована, видны все иконки. Если иконок становится больше, их размер уменьшается. Как в макоси.

4) Переключатель режима «кольцевая/линейная прокрутка». Это на любителя. Я, например, кольцевую не терплю, мне нужны упоры на краях.

OldManClone ★★ ()
Ответ на: комментарий от Axon

окно можно просто заслонить другим,

Float-окна в tiling-wm никто не отменял...

а тег обязательно придётся скрывать. Ну и в чём смысл?

Смысл в том, что у приложения может быть больше одного окна, и смотреть/скрывать их хочется вместе.

OldManClone ★★ ()
Ответ на: комментарий от Axon

Я не знаю lua, когда пробовал - все было или копипастой, или интуиитивно. Вот с xmonad сложнее, там haskell во все поля и это не lua в плане интуитивного восприятия.

vyazovoi ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.