Dwm linux консольные команды

Обновлено: 02.07.2024

Когда то в давние времена, когда не было ещё ноутбуков (т е когда они были не по карману) стоял у меня дома комп — 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.

  1. тайлинг (modkey+t) и плавающий (Floating) режимы (modkey+f)
  2. в режиме тайлинг — увеличение/уменьшение количества клиентов мастер окна (modkey+i, modkey+d)
  3. изменения размеров областей (modkey+h, +l)
  4. и другие стандартные фичи тайлинг медеджеров.

Т е имеем минимум необходимого функционала тайлинг менеджера.

Кастомные клавиши настраиваются просто. Если это вызов внешней программы, вначале надо определить переменную с её вызовом, а затем вызвать. Вот допустим как я переопределил клавиши регулировки звука:

Для быстрого запуска программ — я установил 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, при этом предоставляя всё, что мне необходимо для успешной и продуктивной работы.

  1. 10 пре-конфигурённых workspaces по кнопкам modkey+n
  2. 3 режима — тайлинг, floating, monocle
  3. полный заголовок окна
  4. индикация заряда батареи, дата+время, sysload
  5. работа в тайлинг режиме: открытие новых окон, размеры областей, увеличение/уменьшение количества клиентов мастера
  6. задание floating и расположения для определённых приложений. gimp как пример.
  7. dmenu — быстрое динамическое меню
  8. мои скрипты — конфигурация дисплеев, 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.

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

заключительных замечаниях

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

Скриншот - 290714 - 13-11-28

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

Полный путь к статье: Из Linux » Внешний вид / Персонализация » DWM, один из самых эффективных оконных менеджеров

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

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

Где взять?

Здесь поменяем каталог /var/abs на какой-нибудь другой. Можно оставить по-умолчанию, но тогда все исходники лягут в директорию /var , что не есть хорошо, если под содержащий её раздел выделено мало места.

Синхронизируем дерево abs:

Если вам не нужна вся коллекция abs , можно получить только dwm:

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

Вносим нужные правки (об этом ниже) и собираем пакет для установки. Но постойте-ка! Мы ведь нарушим целостность файла, изменив его, соответственно, не пройдём проверку на контрольные суммы. Что ж, давайте отключим эту проверку. Итак, установка:

Добавьте в ваш .xinitrc запись

И входите по startx - добро пожаловать!

Можно приступать к настройке, но. прежде позвольте разжечь ваш аппетит. Давайте посмотрим, что мы можем получить в итоге. Прежде всего тайловые wm проповедуют принцип "ничего лишнего":

dwm

Как настроить ?

Посмотрим, что можно изменить в файле 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 отображается плиточный режим окон. Чтобы поставить вместо него свой любимый режим, просто найдите нижеуказанные строки и поставьте нужный режим на первое место:

dwm tiling manager

Сочетание горячих клавиш с модификацией 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].):

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

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

Читайте также: