LINUX.ORG.RU

Dwm и свистелки

 , ,


2

1

Прошло прилично времени. Что-то добавлено, что-то перепилено.

На панель навешаны разные события мыши (так, например, символ в левом верхнем углу [ x ] — левая кнопка: F11 для firefox-а, средняя: закрыть окно, правая: удалить пустые теги, колесико: добавить-убрать окна в master и т.д). Окна перетаскиваются средней кнопкой. Это к вопросу о том, что в тайлинге якобы неудобно мышевозить.

Есть свистоперделок чутка — pijulius/picom ага, чтоб не скучно было.

Скринкаст (за качество извиняюсь, не OBS-ом писано, лень мне в нем разбираться).

В остальном: гента, vifm, bottom (вместо speedometer, который всё), alacritty, tmux, zsh.

>>> Просмотр (1600x900, 306 Kb)

★★★★

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

Ответ на: комментарий от emorozov

Со временем понял, что той функциональности, что есть в dwm (±1-2 патча) вполне достаточно, и добавлять ничего не надо

Со старта достаточно и 1-2, а потом начинает хотеться функциональности. Один патч поставил, второй, третий. И в итоге минимум 7-10. А потом нужна какая-то функциональность, а 8 патч наложить не получается т.к он с 3-мя конфликтует. Сходу это не решить, комьюнити - какеры, помогать отказываются. На ЛОРе темы без ответов висят. Тут варианта три:

  1. Отказаться от этого функционала
  2. Вникать в код и решать проблему
  3. Переходить на что-то архитектурно функциональное(awesome)

Если бы товарищи какеры(а по факту хипстеры), перестали ими быть и переписали бы из процедурного стиля в ООП этот продукт -то он был бы похож на awesome, только без привязки к lua. Но этого не произойдет никогда, поэтому имеем то, что имеет

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

В репе gentoo есть

[ebuild  N     ] sys-process/bottom-0.6.8::gentoo  USE="battery -debug" 15,208 KiB
Total: 1 package (1 new), Size of downloads: 15,208 KiB

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

Совершенно ведь негуглибельное название!

Это да ). Я о нем тоже совершенно случайно узнал. Bottom — в некотором роде альтернатива htop. Хорош тем, что показывает всякие наглядные графики.

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

И интерфейс модульный, можно расположить модули так, как хочется, парой строчек в конфиге. Все знают про перегруженный btop (или как он сейчас называется?), но отчего-то никто особо не знает про bottom, из которого легко можно сделать хоть htop с наглядными графиками, хоть мономонитор (например, чисто интернет-трафика). Хотя, может, дело действительно в негуглящемся названии.

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

Я сначала думал, что захочу все эти патчи. А получилось, что использую dwm уже около 8-10 лет практически без патчей (только systray).

Да и код dwm оченно простой даже без ООП. Менять его не пытался, но периодически смотрел на него - очень лаконично и понятно написан.

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

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

К тому же, хочу подчеркнуть, что работа с интерфейсом WM намного проще, чем работа с низкоуровневыми апи и языком си. И да, если на каждый продукт нужно выучить яп и анализировать код - всей жизни не хватит. Проще другой продукт взять, который под реалии больше подходит. И так да, если устраивает то, что есть - можно на dwm сидеть, если хочется функционала - или разбирайся с кодом dwm и патчей или бери нормально написанный продукт и разбирайся с ним. Но да, там тоже придётся разобраться с каким-нибудь lua, но lua - это вечер посидеть, а си и недокументированный код с x,y, hx, hy - это немного другое

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

Я начинал с awesome. В dwm мне нравится то, что можно взять его и использовать без изменений годами.

Например, только сегодня обновил dwm впервые лет за 5 до последней версии. Захотелось позаимстовать пару идей у автора скрина (особенно, scratchpad).

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

Поэтому - каждому своё. Меня функциональность dwm из коробки устраивает полностью, менять ничего не хочется.

Что, в общем, можно поменять в функциональности WM? По молодости всё время чё-то мудришь, твикаешь, перебираешь эти WM и/или среды по кругу. Потом понимаешь, что всё это бесполезная суета, которая ничего не даёт.

До dwm я нашёл идеальную среду для себя после долгих поисков - KDE 3. Приноровился к нему, всё устраивало, всё идеально настроил под себя. Но ушлёпки из KDE решили всё сломать и выдумать идиотскую «плазму», которую писали много лет, а когда выкатили - оказалось, что это полусырое забагованое гуано, и с тех пор они продолжают болеть своим токсоплазмомзом - пишут всё новые плазмоиды - а старые баги висят без исправлений едва ли не десятилетиями.

Но нет худа без добра - когда я понял, что KDE 3 умер, и надеяться на возрождение бессмысленно, поэкспериментировал с тайловыми, и в итоге остановился на dwm.

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

У меня такая же история. Когда выкатили кде4 в портаже и убрали кде3, именно тогда я призадумался :). Только история была xfce –> fluxbox –> openbox –> fluxbox –> awesome –> xmonad –> ВСЕ доступные tilingWM(включая разные catWM и monsterwm и даже Stumpwm) –> dwm. Последний пробовал менять много раз на awesome/xmonad, но последний отпал после того, как у него бага с keepassx\c не фиксилась >пол года

Я отвечу ты и прав и не прав одновременно! С одной стороны все эти свистелки даром не нужны, а с другой стороны есть штуки, которые влияют на эффективность. Я могу отчистаться по каждому патчу:

без комментариев

1.dwm-autostart-20200610-cb3f58a.diff

Несмотря на то, что многие маргиналы кричат «нинужно», это один из самых эффективных средств коммуникации программ с пользователем и сокрытия работающих программ в фоне

2.dwm-systray-6.2.diff

Когда одно окно открыто, зачем мне видеть border?

3.dwm-noborder-6.2.diff

9 тег - броузер. Иногда их несколько. Иногда нужно запустить что-то еще. Броузер педпочтительно должен работать в монокле, потому как в в tile неудобно сёрфать. К тому же я на отдельных тегах держу М, а на отдельных Т. Мне общее поведение не нужно на разных тегах. А переключать постоянно Т-М и обратно - накладно

4.dwm-pertag-6.2.diff

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

5.dwm-cfacts-6.2-1.diff

Очень часто надо переключаться с текущего на предыдущий тег. Еще бы можно было переключаться(циклить 3 тега - вообще было бы супер(отдельный кейс - проекты))

6.dwm-cyclelayouts-20180524-6.2.diff

Когда несколько окон в стеке, я беру какое-то окно из стека в мастер, потом нажимаю MODKEY-Return и это окно перемещается строго туда, где оно было. Эффективно же

7.dwm-zoomswap-6.2.diff

Это всё не свистелки, а вполне нужный функционал. И еще бы подобного хотелось поднакинуть. Но начинаешь накручивать(тот же gaps) и всё ломается. Надо идти и вникать во всё это. А очень не хочется :’(. И не хочется превращать это всё в какой-то культ. Обновился и пошел править сорсы и чинить ненакладывающиеся патчи. И чем это всё отличается от awesome, которое ломалось при смене версии(ломалось даже при минорной). Но сейчас awesome переписали и оно 3 года уже не ломается. Зато там есть кошерная панель с виджетами, аналоговнет в dwm. Я виджет помидор нашел для awesome, а программки(standalone) с таким же функционалом нет. В итоге как какер юзаю баш скрипт и через нотифи вывожу в панельку сообщения. Юзабилити хочется!!!11 Повышать эффективность!!!11 :)

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

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

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

Но применять 4 и более патчей - это будет, конечно, головная боль. Единственное, что спасает - надо это делать где-то единожды в 5-10 лет.

Ну или в принципе можно отказаться от dwm и использовать тайлинг, где всё можно настраивать без изменения исходного кода. Мир не сходится на dwm, существует ещё минимум 5-10 тайлинговых WM, большинство из которых я даже не пробовал.

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

Ну вот, смотри: Независимая раскладка для каждого окна

Бага с xxkb не пофиксили с 2008 года, а kbdd при standby глючит. Пнул автора патча xkb в dwm(последняя версия 6.1), но думаю, что что нового патча не будет

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

Я попробовал портировать этот патч на 6.4: https://gist.github.com/emorozov/c34d68c318f089840e8d223f79539fbd

Компилируется, но не проверял, работает ли, т.к. сам использую самолично патченый dwm-status на Rust, в который добавил отображение раскладки: https://github.com/emorozov/dwm-status

(автор не принял мой pull request, т.к. я в Rust новичок, и не всё сделал, как ему нравится, а обновить под его требования в тот момент не было времени).

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

У меня есть скрипт на питоне, который статус рисует. Могу поделиться

Я попробовал портировать этот патч на 6.4: https://gist.github.com/emorozov/c34d68c318f089840e8d223f79539fbd

С автором патча не пробовал связаться? Отправь ему, пусть прочекает;). Я на 6.4 не могу апнуться, всех патчей 6.4 версии нет. Я привык только версионное юзать, даже если от 6.3 будет работать

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

С автором патча не пробовал связаться? Отправь ему, пусть прочекает;). Я на 6.4 не могу апнуться, всех патчей 6.4 версии нет. Я привык только версионное юзать, даже если от 6.3 будет работать

Прочекал - вроде бы работает (нашёл и исправил одну ошибку, обновил gist). Рисует индикатор клавиатуры.

Попробуй на 6.3 применить - авось сработает. Мне лень, и так уже много времени потратил на обновление и исправление ошибок. :)

Сам патч попробую напрямую на suckless отправить.

У меня есть скрипт на питоне, который статус рисует. Могу поделиться

Поделись. Хотя меня и мой dwm-status устраивает, в нём есть всё, что мне нужно, и архитектура мне нравится, хотя Rust я недоизучал, но на достаточном уровне знаю, чтобы грязно похакать dwm-status, если ещё что-то понадобится.

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

Попробовал подписаться на список рассылки, чтобы заслать патч - не получаю ответа от робота. Может быть, не работают они больше?.. Хотя какие-то письма там в архивах есть…

P.S. На 6.3 патч применяется с одним реджектом в config.def.h, который тривиально вручную исправить.

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

Давно уже из рассылки ничего не получал на почту. По какой причине - не ясно. Может просто новых писем там нет

Поделись

Почту проверь, ту, которая на гитхабе указана

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

Я не ставлю патчи другой версии. Только под версию. Уже вручную наобновлялся при изменении версий

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

после каждого обновления приходилось переписывать конфиг

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

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

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

Создание среды вокруг сабжа не бесполезная суета? А потом хакиры сидят там в фулскрине почти всё время. Потому что тайлинг такой годится только для скриншотов, а на деле нужно постоянно следить за количеством клиентов и жонглировать пачкой тегов, иначе будет бардак на экране. Зато окна не перекрываются! Квадратно-гнездовой бардак.

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

У меня как правило один клиент на тег, много лет не меняется расположение. Броузер, терминал, IDE, мессенджеры.

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