LINUX.ORG.RU

DWM 6.4 - минималистичный динамический тайловый WM

 , ,


1

1

DWM — эталон минимализма в мире динамических тайловых менеджеров, создан немецким студентом. Был взят за основу при создании Xmonad. Совместное сотрудничество привело к улучшению функциональности и позволило работать с многомониторной конфигурацией (Xinerama).

DWM написан на C (и конфигурируется на нём же), не требователен к памяти, надёжен, минимален по зависимостям, Следует принципу KISS и является одним из продуктов команды Suckless.

Представленная версия посвящена исправлению ошибок и уменьшению потребления памяти:

  • Теперь в config.def.h все клавиши объявлены как const.
  • Исправлено падение при отрисовке эмодзи с переходом на LibXft 2.3.5.
  • Прекращена подписка на события неуправляемых окон.
  • Добавлена проверка на фиксированность окна перед сменой режима на плавающий (float).
  • Исправлена утечка памяти.
  • Улучшена работа с многомониторной конфигурацией и подключаемыми на время внешними мониторами.
  • Множество мелких исправлений и чистка исходного кода.

DWM расширяется с помощью патчей, созданными и поддерживаемыми сообществом: Pertag, noborder и другие.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

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

А новость есть? Проверил, не нашел. Второе, тут пару значительных изменений по стабилизации. Рекомендую обновить. Ну и напоследок )) город -> там ))

Roy-Batty
() автор топика
Последнее исправление: Roy-Batty (всего исправлений: 1)

Побольше бы таких проектов, может народ бы вернулся к C/C++. Я донатил бы каждому такому проекту по 50р/неделю, чтобы и поддержка была и по карману не било.

xwicked ★★☆
()

До сих пор не понимаю, что мешает добавить поддержку внешнего конфига.

А как оно в том же Дебиане конфигурируется, если там с обновлением должен новый бинарник приезжать?

urxvt ★★★★★
()
  1. Сразу после:
2022-10-04 17:35	bump version to 6.4	Hiltjo Posthuma	1	+1	-1
2022-10-28 14:37	Revert "Remove dmenumon variable"	Hiltjo Posthuma	2	+4	-1
  1. Они бы ветки сделали в репозитории…

  2. Они бы так не торопились версии шлёпать, а то разрабы патчей еще 6.3 не все бампнули

  3. Несмотря на все недостатки этого WM, - он лучший!!!

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

Хм... Топим за контент-орентированные комбайны, а новости пишем про kiss-софт и минималистичные тайловые WM?

kirill_rrr ★★★★★
()
Ответ на: комментарий от Roy-Batty

Что-то не видно твоего описания в галерее. Панель интересно смотрится, да

  1. цвет бордера 100% взят с bspwm))
  2. 2px border не нужен))
serg002 ★★★
()
Ответ на: комментарий от alex1101

Расширение функциональности через наложение патчей - тоже не сахарок

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

А как оно в том же Дебиане конфигурируется, если там с обновлением должен новый бинарник приезжать?

Программа независима (x11-dev и вот это всё), веси меньше, чем мой bookmark для FF. Храню свою патченную и настроенную версию, как backup документов )) Распакованную ))) Весит 200K. ST - 400K )) Поставил любой дистр, нажал под рутом или sudo make install, всё.

Roy-Batty
() автор топика
Ответ на: комментарий от urxvt

В Gentoo есть спец костыль - USE «savedconfig». Как раз для перекомпилируемых программ/настроек. Складывает конфиги вроде по /etc/savedconfig/prorgam-name/config.blah

https://wiki.debian.org/Dwm - тоже смешарики ))

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

Ах! Возможно меня ввело в заблуждение то, что я давно не видел дефолтного dwm =)

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

Я надеюсь, что у тебя в качестве префикса /usr/local

hateWin ★☆
()

Был взят за основу при создании Xmonad.

xmonad с нуля на хаскелле написан, вы наверное имели в виду awesome, который по сути двм со встроенным интерпретатором луа.

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

Я ничего в виду не имею )) Как написал, так и было.
Головастые взяли концепцию.
Расширили функционал, создав новую концепцию многомониторной конфы, что бумерангом была отправлена в Suckless. Know-how того времени. Ну а дальше всё заверте…

Ну а так да, одни на Си и не больше 2000 строк, другие - «А мы тоже прикладные», на Haskell. Главное - прорыв ))

Roy-Batty
() автор топика
Ответ на: комментарий от Roy-Batty

Да ладно, прям make install и всё. Там же зависимости есть. И не только x11-dev

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

Прорыв-то оно прорыв, только расширение функциональности патчами - не очень хорошая идея. Я уже говорил, что dwm лучше было бы оформить в dwmlib, где были бы интерфейсы. А WM был бы отдельно от него. Тогда очень удобно было бы расширять функционал. Но это не будет сделано никогда, к сожелению. Потому что там сидят, все из себя хацкеры, которые всё так же make install делают и 2000 строк придерживаются

PS: лучше бы вы 2000 строк dwmlib сделали, чтобы оно было функциональное из коробки, а не расширять эти интерфейсы патчами

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

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

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

Я не использую патчи ))) Нет задач расставлять окна )) Нет у меня Layouts )))

Зависимости только от исходников Xorg )) Внезапно! А к примеру, Xmonad зависит от GHC (плюс-минус гиг).

Roy-Batty
() автор топика

создан немецким студентом

Не знал, что это один человек писал. Я помню хорошо его предыдущие творения - wmi и wmii - очень крутые тайловые wm с очень удобной настройкой и идеями, взятыми из Plan9.

А потом видимо автора кто-то укусил, так как для него количество строк кода стало важнее функциональности. В итоге wmii был раздербанен на части, выпилено все, что был связано с настройкой и Plan9 и появился dwm и dmenu. Я помню как попробовал после wmii пересесть на dwm, было стойкое ощущение что пересел с современного Jeep’а в УАЗ «буханку»

adn ★★★★
()
Ответ на: комментарий от Roy-Batty
  1. Почему бы и нет?
1.dwm-autostart-20200610-cb3f58a.diff
2.dwm-systray-6.2.diff
3.dwm-noborder-6.2.diff
4.dwm-pertag-6.2.diff
5.dwm-cfacts-6.2-1.diff
6.dwm-cyclelayouts-20180524-6.2.diff
7.dwm-zoomswap-6.2.diff

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

  1. В этом вся беда, в том, что каждый из вас думает, что другие юзают это так же, как и вы
serg002 ★★★
()
Последнее исправление: serg002 (всего исправлений: 3)
Ответ на: комментарий от adn

А потом видимо автора кто-то укусил

Очень удачно, смею заметить )) Мы, перфекционисты, просто счастливы! До него не было идеи. Хаскеллисты добавили шарма и конструктор на простом ЯП, что взбудоражило умы и добавило Lua форк )) Plan9, ИМХО, скорее всего скрыт от обычных работяг вроде нас. И тихо применяется. Идея гениальная.

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

Нет. Есть идея - она озвучена в «философии» проекта. Это сообщество начало «улучшалки» вкручивать. Потому, что мы разные ))

Я как раз и описал по своему разумению основу из плагинов в самой новости ))

Roy-Batty
() автор топика
Ответ на: комментарий от Roy-Batty

Сам по себе dwm не прост, а примитивен. Он жив только потому, что есть патчи, которые его до минимально необходимой функциональности доводят. Без патчей dwm - это catwm(https://github.com/pyknite/catwm). Посмотри, сколько людей его юзают и как он актуализируется

serg002 ★★★
()
Последнее исправление: serg002 (всего исправлений: 3)
Ответ на: комментарий от Roy-Batty
  1. организации внутренней структуры, не позволяющая эффективно расширять функциональность
  2. в функциональных возможностях из коробки
serg002 ★★★
()
Ответ на: комментарий от Roy-Batty

К тому же из-за того, что есть ограничение в 2к строк, оно не может быть функциональным. Это затрудняет написание патчей. Допустим, из коробки нет gaps. И вот ты поставил gaps, а все layout’ы и сfacts упали, потому что они ничего не знают о gaps. Gaps должен быть в коробке, ты его можешь не юзать, но он там должен быть. И таких штук в dwm достаточно. Но это выявлять надо, думать над архитектурой. Проще сделать ограничение на 2к строк. Чтобы не думать.

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

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

Ты смешишь меня ночью )) Дядь, если тебе надо функционал - welcome to Awesome, Xmonad. Вот только запилить ты не сможешь ))) Я что-то кроме Ворона не видел годных скринов на Awesome. Xmonad дядьки вообще поехавшие, они беседу вести без монад не будут, но тут ты сливаешь ))

Ты говоришь, куцый, а DWL пока не может повторить на модной реализации )))

Проще сделать ограничение на 2к строк. Чтобы не думать.

Ей Богу смешишь ))

Roy-Batty
() автор топика
Ответ на: комментарий от urxvt

До сих пор не понимаю, что мешает добавить поддержку внешнего конфига.

Ну так AwesomeWM и вырос из DWM…

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

awesome, который по сути двм со встроенным интерпретатором луа

Уже давно нет. С 2.0 от DWM там уже мало что осталось, а сейчас уже 4.3, переработанный не один десяток раз (изменения 3.4 → 3.5 → 3.6 → 4.0 были ломающими).

mord0d ★★★★★
()
Ответ на: комментарий от Roy-Batty

У меня есть настроенный awesome, настроенный xmonad. Везде есть нюансы(xmonad). Awesome функционал некоторых патчей надо писать свои функции, для этого надо выделять время на изучение, которого не моря разливаны. Но 95% функционала dwm уже есть. Я аскетичен, мне больше функционала, кои указаны в патчах, - не нужно. Поэтому могу хоть на dwm сидеть. Но dwm плох тем, что там какие-то свои хотелки не реализуешь т.к надо вникать в код, который недокументированный и архитектура такая, что там одно что-то зацепил, пол двм переписать надо. А «смешишь» - это очень клёвый аргумент, ага

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

Конечно нет. Dwm архитектурно оч. плохой. Как только в «функциональность» кто-то начинает играть, - сразу весь dwm оказывается ненужным, поэтому awesome кодовую базу dwm выкинули

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

Везде есть нюансы(xmonad).

Какие? Я на Xmonad много лет работал. И вообще уважаю штангистов ))

Но dwm плох тем

да ну? Чем он плох? Какие хотелки? Ты просто меня заставляешь громко вести себя ночью ))) Что ты там переписываешь в DWM? Какие такие плохие вещи? Ахах! Значит, Haskell не зашел? Lua тоже? Понимаю, там как выходит версия, API сломано ))) Awesome такой ))

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

Какие? Я на Xmonad много лет работал. И вообще уважаю штангистов ))

https://github.com/xmonad/xmonad/issues/276

да ну? Чем он плох? Какие хотелки?

Архитектуру поменять, патчи по-нормальному все привести в кондиционный вид

Что ты там переписываешь в DWM? Какие такие плохие вещи? Ахах!

Перечитай мои сообщения, ахах

Значит, Haskell не зашел? Lua тоже? Понимаю, там как выходит версия, API сломано ))) Awesome такой ))

Мне глубоко фиолетово на каком яп писать, в архитектуру «фреймворка» надо вникать. На это надо время и вескую причину. Awesome последние несколько лет перестал ломаться

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

Промолчим )) Лучше бы я не видел конфига.

Мне глубоко фиолетово на каком яп писать, в архитектуру «фреймворка» надо вникать. На это надо время и вескую причину.

Наверное хотелки сделать )) Ой не могу. Это ты ещё не видел Stumpwm, или видел?

А тепрь серьёзно. А то надоело. Ты так и не привёл своих хотелок. Я могу описать немного свои - я не задумываюсь о окнах, мои руки на home row, клавиши все под меня, нет меню, потому, что бессмысленно, а инфо шум я не переношу. У меня или одна программа на весь layout или несколько терминалов. Любая информация вызывается на экран с помощью libnotify. Если я вызываю что-то больше нескольких раз - автоматизирую и вешаю на сочетание. У меня все основные программы прописаны в тегах, я работаю с текстом, который автодополняется шеллом и инструментами, мне не нужных файловые менеджеры. Если мне хочется FM - NNN мой выбор. У меня устоявшийся набор программ и утилит, обрабатывающий информацию, настроенный под моё оборудование и личные предпочтения (глаза). Всё в личной, уникальной цвветовой теме, mouse-theme, icon-theme etc.

Я и с Xmonad ушёл потому, что в определённый момент мне перестал быть так нужен предоставляемый функционал, собирать это добро было сложно, а stack ещё был в головах. На том же Crux это довольно ёмкий процесс.

И что же мне даёт DWM/Xmonad? Комфорт! Стабильность! Максимальную продуктивность! Я вообще не думаю о окнах и режимах )) Если мне надо float - я потянул окно и всё, вернуть в tiled mode? Одной комбинацией! Мне не нужны float-mode, fibonnachi, spiral, fair и так далее. Меня полностью устраивает концепция Master window.

И возникает вопрос, что же тебя, мой неудовлетворённый ночной собеседник, так напрягает в DWM? Что тебе надо всё перекроить? Что тебе мешает жить с данным окружением?

Roy-Batty
() автор топика
Ответ на: комментарий от Roy-Batty

Промолчим )) Лучше бы я не видел конфига

Какая разница, как выглядит конфиг. Главное, на нём можно сделать повторить багу

Stumpwm

Он синхронный. И там что-то с st происходит. Поэтому не юзаю

Что тебе надо всё перекроить? Что тебе мешает жить с данным окружением?

Это у всех так(про описание работы за tiling wm). Насчет layout’ов - у меня тоже не прижились все эти фибоначи, но widescreen вроде неплохая идея. Но думаю, чтобы его заюзать с моим набором патчей - надо самому всё это ручками править

По основному вопросу:

  1. часть функционала должно быть в в самом dwm. Но этого не произойдет никогда. Но без этого патчи всегда будут не накладываться корректно. Всё нужно править вручную и много патчей конфликтуют между собой
  2. патчи не в кондиционном виде. Сейчас версия 6.4, а патчи версии 6.4 есть все? Когда будут?
  3. гит в порядок привести. Неплохо было бы на ветки разбить это, чтобы какие-то мелкие изменения падали в ветку версии, а не в общий мастер
serg002 ★★★
()
Последнее исправление: serg002 (всего исправлений: 1)
Ответ на: комментарий от Roy-Batty

Это не придирки. Я приводил пример. Есть gaps. Штука нужная. Но если наложить gaps, то ломаются любые сторонние layout’ы. Gaps нужен в core. И таких мелочей много. Смотреть надо на это. Должен быть не sloc 2к, а адекватность на внесение функционала в базовый код. Тогда патчи будут более адекватными и будут накладываться, не затрагивая core. Но это думать надо, архитектуру придумывать вменяемую

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

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

Там конфиг и ненужен. Я даже ещё больше его урезал, по сути, не всеми функциями пользуюс. Да, и там же можно цвета указывать в файле ресурсов иксов.

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

Там в функциях посмотри на гитхабе. В главном файле, где-то в нижней половине.

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

А вот тут ты не прав. Я не пользуюсь borders. Я и так вижу, какое окно активно. У меня складываетя впечатление, (сейчас будет аналогия) что ты в vim пытаешься редактировать текст в режиме вставки. Может просто надо сменить WM? Есть совершенно другой подход, не динамика и master/slave, например - i3/Sway. Ты пробовал прибитый гвоздями DWM - не то, Awesome - не то, Xmonad (конфиг показателен) - не то, хотя по секрету - лучший и самый гибкий. Попробуй другое! Их же так много! И все концептуально разные!

Roy-Batty
() автор топика
Ответ на: комментарий от Roy-Batty

Я их все перепробовал. Динамика - самый лучший подход. Вот именно! Функционал показывания borders должен быть в core. Все примитивы работы с окнами. Показать\скрыть бордерс, ресайз вертикальный\горизонтальный окон, отступы от окон. Вообще весь менеджмент(он даже и называется tiling WINDOWS MANAGER). Это должен быть core

Скорей всего, надо заглянуть в последнюю версию awesome и подсмотреть как у них сделано. Скорей всего, сделано оно оптимально архитектурно

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

Показать\скрыть бордерс, ресайз вертикальный\горизонтальный окон,

Это всё есть в конфиге. Скажу даже так. Я ни разу не ресайзил окна по работе, хотя функционал настроен. Не нужно! Если тебе нужно, ты делаешь что-то не так. У меня master window на 65, мне удобно. И да, конфиг xmonad показывает, что ты не врубаешься в концепцию. Я честно говорю, ты делаешь излишние телобвижения, которые в tiledWM неестественны. Это реально бросается в глаза. В i3 статика, там любят расставлять окна и потом по ним бегать. Попробуй, вдруг твоё? Заодно безшовно на Wayland прыгнешь…

Roy-Batty
() автор топика
Ответ на: комментарий от Roy-Batty

Я ни разу не ресайзил окна по работе

Есть такой тест. Ребенку дают воздушный шарик, который раскрашен с двух сторон в два разных цвета. Ребенку дают шарик и показывают двумя сторонами. Потом показывают шарик одной стороной и спрашивают цвет. Ребенок говорит тот цвет, который видит. До определенного возраста ребенок не может посмотреть на что-то объективно. Только субъективно. Обычно это дети до 6 лет

  1. В общем у меня для тебя плохие новости. Да, можно быть технически неплохим специалистом и иметь развитие до 6 лет
  2. Если тебе что-то не нужно(ты думаешь, что шарик исключительно того цвета, который ты видишь), то это не означает, что кому-то не нужно. Весь функционал менеджмена должен быть в core, юзаешь ты его или нет, потому как(в 100500 раз говорю) если его нет, - это плодит кучу патчей, которые конфликтуют между собой т.к расширяют core
serg002 ★★★
()
Последнее исправление: serg002 (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.