Dwm linux консольные команды
Когда то в давние времена, когда не было ещё ноутбуков (т е когда они были не по карману) стоял у меня дома комп — Pentium чего то там, 64Mb оперативки, 2Gb HDD, дисплей 14".
KDE и Gnome упорно не смогли бы (даже если бы и захотели) запуститься на таком железе. А почту почитать хотелось да и в интернет погоду посмотреть, книжку почитать — тоже очень хотелось. Порывшись в сети, настроил IceWM, который на этом оборудовании вполне прилично работал, запускался Firefox и почта
Так началось моё увлечение быстрыми и функциональными средами, не проходит и года чтобы я не затестил что то новое. Сегодня вот хочу рассказать о DWM
Помимо работы в DWM есть небольшой опыт работы с awesome (сложный конфиг), xmonad (тоже непросто настроить первый минимум, default конфиг совсем уж простой), scrotwm (не нравиться концепция поддержки нескольких мониторов). Из «быстрых» сред достаточно долго работал с IceWM, Fluxbox.
Плюсы DWM — Быстродействие. Надёжность. Простота.
Имея минимум бинарных зависимостей и не используя ничего постороннего, даже отсутствие читаемого во время выполнения файла конфигурации может быть плюсом: это повышает надёжность системы в целом.
Выигрыш в скорости прорисовки и запуска приложений реально определить на глаз. Появляется ощущение того что комп «летает» в то время как на KDE тот же комп в лучшем случае «нормально функционирует».
По поводу же простоты хочу сказать следующее. Возможно это крайность — редактирование конфига в config.h, но изучение Lua (как в awesome), или haskell (как в xmonad) — это тоже крайности: пытаться построить нормальный
конфиг с помощью copy-paste в xmonad и awesome долгое и нудное дело,
учить новый язык программирования тем более.
На мой взгляд, из всех минималистичных сред DWM один из самых простых менеджеров окон.
Представляет собой один бинарный файл, без файла конфигурации и каких либо опций запуска. Конфигурация осуществляется путём редактирования файла include языка C.
- тайлинг (modkey+t) и плавающий (Floating) режимы (modkey+f)
- в режиме тайлинг — увеличение/уменьшение количества клиентов мастер окна (modkey+i, modkey+d)
- изменения размеров областей (modkey+h, +l)
- и другие стандартные фичи тайлинг медеджеров.
Т е имеем минимум необходимого функционала тайлинг менеджера.
Кастомные клавиши настраиваются просто. Если это вызов внешней программы, вначале надо определить переменную с её вызовом, а затем вызвать. Вот допустим как я переопределил клавиши регулировки звука:
Для быстрого запуска программ — я установил dmenu.
Немного о моих предпочтениях и требованиях к среде
Работа программистом предполагает несколько существенных моментов конфигурации среды разработки.
В общем говоря, работать конечно можно в любой среде и без изменения базовых настроек…
… но тогда неизбежны километры бега мыши по столу и часто (подсознательное) раздражение от скучного множественного выполнения однотипных действий.
Тема интенсификации работы и улучшения функциональности средств разработки очень широкая
и затрагивает массу аспектов и существуют миллионы возможных конфигураций.
Мне лично нужно следующее (по крайней мере не представляю как можно работать
этих фич):
- Быстрое открытие по Hot Key наиболее часто используемых программ: текстового редактора, терминала, браузера: настроено как dmenu, modkey+S+Enter, modkey+c
- Быстрый переброс этих окон вправо/влево, с экрана на экран: настроено как modkey+o
- Возможность запуска других программ, желательно с авто-подсказками и без тормозов (как, например, в KDE по Alt+F2): Alt+f2, Modkey+r
- Запуск программ при старте оконного менеджера: через .xinitrc
- Вывод текущих даты и времени где то чтобы было видно на экране: через xsetroot в цикле
- sys tray — место на экране где будут находиться иконки от всяких мессенжеров типа скайпа, конфигурации сети и т п: внешняя программа stalonetray
- множество десктопов, чтобы хватило места разместить все мои работающие программы: в комплекте поставки
- русификация: средства xorg
- текущая индикация загрузки процессора (sysload): свой скрипт+xsetroot
- индикация разряда бататеи, текущее время: свой скрипт+xsetroot
Что такое tiling-wm
Для меня же лично, кратко сформулирую как: Tiling это когда не придется искать скрытое окно при большом их количестве, или когда не требуется тратить время на перетаскивание окон мышой туда сюда. Управление приложениями и их расположением на экране происходит преимущественно с клавиатуры. Нет необходимости долго жать Alt+Tab — все окна на виду.
Чтобы повеселить вас расскажу произошедшую недавнюю историю о «видимости окон».
Работал я в KDE… У меня два моника — тот что на лаптопе и тот что на столе.
Работая в Skype+Tmux удалённой сессии с коллегой я случайно как то не так сдвинул окно и потом: __не смог его найти__!?
У меня уже бывало такое в KDE когда двигая окно оно «проваливалось» на соседний desktop, но такого чтобы после этого я его не нашёл ещё не было!
В общем странная вышла ситуация, пришлось прервать наш митинг, благо мы почти всё обсудили. А что с окном? Оно нашлось. Случайно… Через
2 часа — я его обнаружил в «невидимой» области между мониторами, которая образовалась от того, что мониторы разного размера а виртуальный экран в KDE прямоугольный. Закатилось оно короче в правый нижний угол, там «мёртвая» зона в 432 пикселя в высоту. Вот такая вот история.
Мораль: такого бы никогда не произошло в Tiling режиме так как все окна на виду.
Конкретика:
DWM представляет собой минималистичный WM, при этом предоставляя всё, что мне необходимо для успешной и продуктивной работы.
- 10 пре-конфигурённых workspaces по кнопкам modkey+n
- 3 режима — тайлинг, floating, monocle
- полный заголовок окна
- индикация заряда батареи, дата+время, sysload
- работа в тайлинг режиме: открытие новых окон, размеры областей, увеличение/уменьшение количества клиентов мастера
- задание floating и расположения для определённых приложений. gimp как пример.
- dmenu — быстрое динамическое меню
- мои скрипты — конфигурация дисплеев, sleep, set-desktop-wallpaper
По пунктам 1-8 смотрите моё видео. Я специально загнал монитор в режим с меньшим разрешением, чтобы на небольших мониторах было хорошо видно:
Минусы & недоработки:
Выводы
Возможно для многих DWM будет уж чересчур минималистичным для повседневной работы. Но могу порекомендовать одно — установив единожды и подстроив его под себя, DWM будет очень надёжным помощником в тех ситуациях когда KDE или что то другое отказывается работать правильно (длинная и муторная пересборка пакетов в Gentoo это самый яркий пример такого форс-мажора).
Я использую очень легкие оконные менеджеры уже несколько лет. Я начал с Fluxboxто OpenBox при установке раздачи CrunchBang, от этого я пошел в Xmonad и наконец, DWM, оконный менеджер, на котором основан Xmonad. Фактически, Xmonad - это клон DWM, написанный на Haskell вместо C.
Тем не менее, я думаю, что я пытался довольно много менеджеров прийти к выводу (личному, конечно), что DWM, несомненно, лучший из всех, особенно с точки зрения эффективности и настраиваемости. В этой статье я постараюсь шаг за шагом объяснить, как его установить, и вкратце ознакомлю с его использованием.
Установка
В этом случае DWM не будет установлен обычным способом через склонный, мы напрямую клонируем ваш репозиторий, для этого:
После загрузки попадаем в каталог. Самый важный файл с точки зрения конфигурации - config.def.h. Все изменения будут внесены в указанный файл. Будьте осторожны, это тот файл, который идет по умолчанию, для компиляции необходимо, чтобы файл назывался config.h. Как только мы бежим сделать, он позаботится о его создании, если его не существует.
Прежде чем продолжить, вы можете установить несколько инструментов, например dmenu, что позволит запустить любую программу. Для этого выполняем:
Изменения, которые необходимо внести перед компиляцией
Перед компиляцией было бы идеально хотя бы изменить, какой терминал мы хотим, чтобы DWM запускал при нажатии ALT + Shift + Enter. Для этого модифицируем в файле config.def.h, (или config.h если вы уже создали копию) следующую строку:
По вашему предпочтительному терминалу, в моем случае Терминатор:
Перед установкой нужно еще кое-что сделать. Создайте сеанс DWM, который позволяет нам выполнять его при входе в систему. Нам понадобится файл, который мы назовем dwm.desktop и мы разместим в / USR / доли / xsessions, содержание должно быть следующим:
В свою очередь, мы создадим сценарий, который будет выполняться при входе в этот сеанс, с именем dwm-персонализированный которому мы дадим разрешения на выполнение, и его содержимым будет выполнение всех программ, которые мы хотим выполнить при запуске. Мой, например:
Скрипт следует сохранить в / USR / бен с разрешениями на выполнение:
Сборка и установка
Теперь да, внутри директории, где находится DWM, компилируем и устанавливаем:
После этого выходим из текущего оконного менеджера и входим в DWM.
Руководство по использованию
Оказавшись внутри, с Alt + Shitf + Enter терминал, определенный выше, будет выполнен. Основные команды:
- [Shift] + [Alt] + [Enter] - запускать терминал
- [Alt] + [p] - запустить dmenu
- [Alt] + цифра от 1 до 9 - переходить между разными ярлыками (или рабочими столами)
- [Shift] + [Alt] + число - Переместить окно на указанный номер
- [Alt] + [Shift] + c - закрыть текущее окно
По умолчанию существует 3 типа макета, Плиточный ([Alt] + t), Монокль ([Alt] + m), который показывает окно во весь экран, и мы можем перемещаться между ними с помощью [Alt] + j или [Alt] + k, и, наконец, Плавающий, чтобы переместить и изменить размер окон по своему вкусу.
Все сочетания клавиш находятся в файле config.def.h, и именно здесь мы объявим новые.
Если вы предпочитаете использовать клавишу Windows вместо [Alt], просто измените строку
Изменение DWM по желанию
Чтобы использовать его, вам нужно использовать dwmstatus и отформатируйте состояние следующим образом.
Патч имеет 7 цветов, чтобы указать используемый цвет, вы должны написать символ \ xCL в конце окрашиваемого текста, где CL - это цифра от 01 до 07. Например, используя первые три цвета:
Он будет окрашивать L:% s в цвет 1, L:% s в цвет 2 и U:% s% s в цвет 3.
Если вы хотите узнать подробности программирования патча, вы можете обратиться к Эта статья.
заключительных замечаниях
Надеюсь, вам понравилась статья, и мы рекомендуем вам попробовать этот тип оконного менеджера. С тех пор, как я их обнаружил, я больше не использовал стандартные менеджеры и не скучаю по ним. Оставляю вам скриншот:
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Из Linux » Внешний вид / Персонализация » DWM, один из самых эффективных оконных менеджеров
Чем можно заняться линуксоиду, у которого в системе всё, решительно всё работает? Конечно же, довести до ума свой оконный менеджер. Или попробовать новый.
К примеру, dwm — динамический фреймовый оконный менеджер. Написан на языке C. Настройка производится посредством правки заголовочного файла, для чего необходимо иметь исходники dwm. Если вас не пугает перспектива потратить час-другой на настройку этой штуки под свои нужды, то давайте приступим.
Где взять?
Здесь поменяем каталог /var/abs на какой-нибудь другой. Можно оставить по-умолчанию, но тогда все исходники лягут в директорию /var , что не есть хорошо, если под содержащий её раздел выделено мало места.
Синхронизируем дерево abs:
Если вам не нужна вся коллекция abs , можно получить только dwm:
Отлично. Теперь находим dwm и начинаем разбираться с его настройкой. Перейдите в нужную директорию
Вносим нужные правки (об этом ниже) и собираем пакет для установки. Но постойте-ка! Мы ведь нарушим целостность файла, изменив его, соответственно, не пройдём проверку на контрольные суммы. Что ж, давайте отключим эту проверку. Итак, установка:
Добавьте в ваш .xinitrc запись
И входите по startx - добро пожаловать!
Можно приступать к настройке, но. прежде позвольте разжечь ваш аппетит. Давайте посмотрим, что мы можем получить в итоге. Прежде всего тайловые wm проповедуют принцип "ничего лишнего":
Как настроить ?
Посмотрим, что можно изменить в файле config.h
В первую очередь это шрифт. Здесь нужно чуть изменить настройки, поскольку в противном случае в статус-баре будут забавные "кракозябры" вместо кириллицы.
Для определения поддержки тем или иным шрифтом кириллицы, используйте утилиту xfontsel .
Вам может потребоваться явно указать пути к шрифтам в файле /etc/X11/xorg.conf :
Далее идёт настройка цветов статус-бара:
- normbordercolorp[] = цвет границ окна
- normbgcolor[] = цвет фона
- normfgcolor[] = цвет текста в статус-баре
- selbordercolor[] = цвет границ активного окна
- selbgcolor[] = цвет фона заголовка окна
- selfgcolor[] = цвет текста заголовка окна
- borderpx = ширина границ окна
Настроим как нам нравится наши теги (это что-то вроде рабочих столов в других менеджерах окон)
Теперь вместо цифр мы имеем человекопонятные обозначения для каждого тега.
Настройка горячих клавиш. Из приведённого ниже кода ясно, что нажатие клавиши-модификатора + p вызовет dmenu , нажатие клавиши-модификатора + Return (Enter) вызовет эмулятор терминала, ну и так далее. В принципе, стандартные обозначения вполне даже удобны и вряд ли вам захочется их менять. Мы вернёмся к этому чуть позже, далее будет приведён более полный перечень горячих клавиш.
Настройка правил для приложений
0 - приложение будет запускаться сразу на всех тегах. Это может быть удобно для какого-нибудь док-бара, трея и прочих
- 1 << 0 — запуск на первом теге
- 1 << 2 — запуск на третьем теге
- 1 << 3 — запуск на четвертом теге и так далее
isfloating указывает на то, будут ли окна приложения плавающими
Расположение окон. Горячие клавиши
По умолчанию DWM поддерживает три режима расположения окон:
- плиточный []= ,
- монокль [M] ,
- плавающий ><> .
Как правило, этого достаточно.
По умолчанию при запуске dwm отображается плиточный режим окон. Чтобы поставить вместо него свой любимый режим, просто найдите нижеуказанные строки и поставьте нужный режим на первое место:
Сочетание горячих клавиш с модификацией MODKEY у нас получилось таким:
- Super + M - монокль
- Super + T - плитка
- Super + F - плавающие окна
- Super + N - перейти на тег, N - номер тега
- Super + p - dmenu, если установлено
- Super + Shift + q - выход из dwm
- Super + Shift + N - перенести окно на соответствующий тег
- Super + Shift + C - закрыть окно
- Super + K - переход на неактивное окно
- Super + J - то же самое, в общем перемещение между окнами
- Alt + Tab - переход на следующий/предыдущий тег
Дополнительные плюшки и запуск
У dwm нет каких-либо специальных настроек для запуска приложений. Всё, что запускает openbox из файла autostart , прописывается просто в .xinitrc
Естественно, если вы пожелаете отображать информацию из conky, нужно будет сделать его покороче ;) Так, чтобы он вмещался в статус-бар dwm.
Вот, пожалуй, и всё. Пусть dwm принесёт вам немало радостных минут, позволит забыть о мыши и в целом сделает вашу работу за компьютером удобнее. Настройки wdm автора можно найти на github вместе с инструкцией по применению ;)
Легковесные (lightweight) программы привлекательны по той причине, что, как правило, предсказуемы в работе и бережно относятся к ресурсам компьютера. Исходя из этого, такое программное обеспечение применимо для быстрого решения рутинных вычислительных задач (компьютер --- это вычислитель). Отметим также, что автор этой статьи выбирает исключительно из free/libre software (свободного программного обеспечения). Подробнее о free/libre software см. [ФилософияGNU].
Сегодня опишем пару, ранее не упоминавшихся в литературе, трюков, направленных на быстрое решение рутинных вычислительных задач, средствами оконного менеджера dwm (dynamic window manager), программы для создания меню dmenu , а также текстового редактора vim .
С целью помочь читателю в самообразовании, был составлен раздел "Рекомендуемая литература", находящийся в конце статьи.
Задача: Управление окнами с клавиатуры.
Настройка взаимодействия с клавиатурой в dwm осуществляется через файл config.h (копия config.def.h , которую предлагается изменять пользователю).
В Интернет маловато комментариев по поводу содержания config.h , что мешает быстро разобраться с особенностями управления dwm . Оговоримся, что мы отталкиваемся от исходного кода версии 5.8.
Возьмём, к примеру, строку:
dmenu_run --- это имя сценария для командной оболочки (например, GNU BASH --- GNU is not Unix Bourne-Again Shell), лежащего в /usr/bin/ и задуманного для запуска произвольной программы, создающей меню по команде с клавиатуры от пользователя.
Таким образом, нужно самостоятельно создать сценарий, имя которого указать в config.h .
К примеру, создадим файл с именем /usr/bin/menucmd , разрешим его исполнение ( chmod 0755 /usr/bin/menucmd ) и запишем туда следующий код:
В результате, рассмотренная ранее строка из config.h притерпела изменения:
static const char *menucmd[] = < "menucmd", NULL >;
Осталось организовать запуск сценария menucmd по нажатию <Alt+P>:
Отображение кириллицы в dwm можно настроить через объявление константы font[] :
static const char font[] = "-*-*-medium-*-*-*-20-*-*-*-*-*-iso10646-*";
Подразумевается, что системная локаль --- ru_RU.UTF-8.
dmenu
Задача: Построение меню.
В предыдущем разделе мы организовали запуск программы dmenu по нажатию <Alt+P>. Осталось завести в домашнем каталоге файл c именем menu , из которого и будет осуществляться чтение элементов меню. dmenu , получая со стандартного входа последовательности символов, разделённые знаками новой строки, сопоставляет их с именами файлов, хранящихся в таких каталогах, как /usr/bin . И, в случае совпадения, и наличия соответствующих прав доступа на файл, происходит исполнение файла.
/menu , например, такое:
Лишний символ пробела в строке может сделать элемент меню неработоспособным.
Обычно нет необходимости сочинять сценарии чтения имён файлов из каталога /usr/bin : есть несколько программ с графическим интерфейсом, используемых постоянно, а всё остальное может быть запущено через эмулятор терминала.
Задача: Открытие текстовых файлов в разных кодировках.
/.bashrc следующие строки (Подразумевается использование bash . Подробнее см: [gnu-bash], [Cooper].):
Очевидно, что похожим образом удобно задать все часто используемые кодировки символов.
Итак, нами были рассмотрены пути быстрого решения рутинных вычислительных задач средствами легковесных программ, распространяемых по свободной лицензии.
Читайте также: