У меня уведомления выводятся, кликаются, по тайм-ауту убираются, цветовая дифференциация присутствует, вот только хромом я не пользуюсь и не вкурсе как там выводятся уведомления.
Ничего сверхъестественного не делал, в общем УМВР.
Вы можете всяко изгаляться, но более минималистичного и при этом юзабельного wm нету. Просто пропатчил как душе угодно, собрал в /usr/local и забыл. Без всяких пакетов, автотулзов, скриптовых язычков, системд и т.д. и т.п.
Странно, называется suckless, а выглядит полным отстоем. И неудобно (нет превьюшек окон в переключалке столов например), и некрасиво (давно столь поганой подсветки сишного кода не видел), и неэргономично (что за бессмысленные пустоты тут и там?).
В некоторых случаях оно и правда не нужно и даже вредно.
Аргументируй, будь добр.
WM на локалхосте – вполне себе такой случай.
Тем более аргументируй, а то я решительно не вижу, чего такого не нужного (и даже вредного) в том, чтобы читать содержимое https://git.suckless.org/dwm/file/config.def.h.html из параметров командной строки (не говоря уже про переменные среды или там X resources).
Лишняя сложность – вредна, она может добавлять баги и уязвимости (в хелловорлде скорее важнее то, что на неё будут потрачены усилия программиста). Если что-то можно сделать на этапе компиляции, почему бы не сделать это вместо чтения конфигов, переменных окружения и XResources?
WM на локалхосте – вполне себе такой случай.
Тем более аргументируй
WM на локалхосте не требует абстракций или масштабирования, ему не надо обновлять конфиг раз в день, исходники компилируются примерно за то же время, за которое мы сохраняем файл (с точностью до секунды), так что не вижу особых проблем с подходом «всё вкомпилим внутрь».
Согласен, лишняя сложность в использовании (например, необходимость перекомпиляции на каждый чих) — вредна. Программисту, не способному обеспечить хотя бы разбор параметров командной строки без багов и уязвимостей, следует сменить род деятельности или хотя бы перестать патетически заявлять, что его ПО "sucks less".
Если что-то можно сделать на этапе компиляции, почему бы не сделать это вместо чтения конфигов, переменных окружения и XResources?
Например, потому, что перекомпиляция на каждый чих заметно менее удобна, чем модификация среды либо конфигов.
WM на локалхосте не требует абстракций или масштабирования,
Вообще-то требует — локалхост локалхосту рознь по характеристикам «железа» и классам решаемых задач.
ему не надо обновлять конфиг раз в день,
Перекомпиляция даже раз в год (а я конфиг своего WM примерно с такой частотой меняю) — это уже слишком часто.
исходники компилируются примерно за то же время, за которое мы сохраняем файл (с точностью до секунды),
Во-первых, на разном «железе» по-разному. Во-вторых, исходники для начала нужно найти и скачать. В-третьих, нужно установить компилятор и сборочные зависимости (причем чтобы выяснить состав этих зависимостей в случае именно dwm придется либо смотреть в Makefile, либо итеративно запускать компиляцию и читать ругань). В-четвертых, если локалхостов больше одного (а конкретно у меня их — четыре: два своих и два на работе), то придется либо повторять процесс на каждом, либо тем или иным образом класть собранный бинарник на каждый, и не дай фон Нейман разную разрядность (а тем более разную архитектуру) у разных локалхостов! В случае же с конфигом задействуем VCS, на худой конец на каждом локалхосте правим конфиг ручками — это хотя бы возможно, в отличие от бинарника.
Как пользователь (и почти разработчик) nix, заявляю: IMHO, перекомпилирование на каждый чих – вообще не парит.
DWM я пользовался некоторое время, в основном как раз из-за осознания крутости nix (ибо просто указываем в home-configuration.nix набор патчей и конфиг, как будто это «нормальный» WM, всё остальное происходит автоматически, так что разница с моим текущим sway только в количестве и качестве настроек, а не в удобстве применения этих самых настроек). На sway перешел, потому что надоело искать патчи, включающие всякие полезные штуки вроде sticky floating, scratchpad или альтернативное расположение окон, а не потому что «настраивать неудобно». Свой, самописный софт для локалхоста пишу с похожим подходом к конфигурации, потому что так больше времени можно уделить удобству использования (которое к удобству конфигурации имеет посредственное отношение) и количеству функций софта, а не скучному и неинтересному разбору конфигов и флагов. Пусть этим занимается компилятор, а я в это время попью чай и почитаю книжку (хотя на самом деле время там околонулевое чаще всего).
Перекомпиляция даже раз в год (а я конфиг своего WM примерно с такой частотой меняю) — это уже слишком часто.
«Перекомпилирую» некоторую часть своей системы раз в неделю, когда приходят свеженькие обновления безопасности. Особых затруднений не испытываю, ибо нормальное железо. Если бы не было денег/желания комфортно работать, то тогда не использовал бы NixOS.
Систему использую для работы, а не для того, чтобы дрочить на «классный WM» или «зарайсеный dwm/i3/…» или «не компилирую софт никогда» или «собираю из исходников всё». Просто иду по пути «думать об ОС на всех устройствах меньше всего», и nixos позволяет делать именно это. То, что она там компилирует что-то или занимает много места или тратит траффика больше, чем нужно – пофиг, всё равно это копейки по сравнению с рабочими инструментами.
П.С.
модификация среды
Заставляет думать гораздо больше, чем независимые от состояния среды конфиги.
на каждом локалхосте правим конфиг ручками
Брррррр
Перекомпилировать с помощью nix куда проще, чем «править ручками»
Интересно, пользуешься ли ты сам dwm’ом?
А ты? Сколько он вот лично у тебя занимает времени на компиляцию?
$ time nix build nixpkgs.dwm --no-substitute
[2 built]
nix build nixpkgs.dwm --no-substitute 0.19s user 0.03s system 14% cpu 1.444 total
Это сборка, включая скачивание исходников. Правда без патчей. Неужели «изменить конфиг (~5 минут) -> сохранить (~1 секунда) -> пересобрать (~1 секунда) -> перезапустить (~5 секунд, если с приложениями)» сильно дольше, чем то же самое, но без «пересобрать»?
И при этом со своим набором патчей привязался к единственной версии, правильно я понимаю? А если вдруг тебе понадобилась новая, то ты пердолишься, накладывая на нее патчи и перенося свою конфигурацию.
Тогда зачем это ваше DWM развивается в принципе? Или это ограниченная часть пользователей (вроде тебя) нацелена на использование фиксированной версии всю жизнь, а остальные без продыху пердолятся? Пока все патчи и прочее перенесешь на новую версию - уже и следующая подоспела. Мне просто правда интересно, никогда этого не понимал.
Чот ты путаешь. Предпоследняя версия вышла 5 лет назад, развиваться там особо некуда. Меня вообще версии не интересуют. Я взял сорцы, пару патчей накатил, кое-что добавил сам (нужный мне лейаут), и пользуюсь на ноутах. Больше таких wm, где я мог бы не надрывая попу залезть в код, разобраться и поменять что-то, я не знаю. Ну awesome разве, но это глюкодром и вечный напилинг.
Ну, это была проба пера :) Потом хотел наложить какой-то другой патч (сейчас не помню какой), был конфликт, и тогда я понял, что патчи не нужны, хотя. как я уже писал выше, dwm годная штука.
Верю на слово. Я сам как-то еще с поступлением в ВУЗ отошел от этого юникспрона - вот эти все допиливания WM до эстетического максимума, и теперь мой потолок кастомайзинга - настроить шрифты и цветовую схему в редакторе/IDE. Хотя недавно я все же завел себе JWM на генте, который неспешно пилю в этом направлении - всякий там минимализм, игры шрифтами, гармоничная цветовая схема, хитровыделанные коньки с lua-скриптами. Приживется - залью в репу с дотфайлами и буду пользоваться на всех машинах, может быть, даже сюда выложу. Но в общем-то, это у меня такая форма медитации уровня стрижки бонсая.
Когда-то от скуки я все патчи с сайта просмотрел и наложил штук 15 разгребая конфликты ручками. Было прикольно, код dwm очень простой. Но потом стало ясно, что из этого мне мало что нужно, а кому нужно — идут в awesome, который и был фичастым форком dwm, но потом они уехали в скриптоту и напиливание конфигов. У dwm имхо идеальный конфиг в хидере. Вроде простой и декларативный, но при этом там доступны все функции. И почему то не тянет туда лезть и что-то костылять.
Но потом стало ясно, что из этого мне мало что нужно, а кому нужно — идут в awesome, который и был фичастым форком dwm
Именно так и есть. Так же и у меня было. Тоже игрался с этими патчами, пока не понял, что они практически не нужны. Скачал сорцы dwm, скопировал cp config.def.h config.h, что-то по минимуму поправил, собрал, закинул в /usr/local/bin, и пользуйся.
Я тут недавно написал status bar для dwm. Больше для себя, но мож кому еще пригодиться. Умеет обновляться по USR1, не нужно больше находить и килять sleep в скрипте.