Установка dwm arch linux

DWM: Suckless переход с GNOME. Часть 1

В этой статье речь пойдет о настройке DWM (Dynamic Window Manager). Это простой тайловый оконный менеджер от сообщества suckless.org, который отличается от своих аналогов простотой и легковесностью. И пусть вас не пугает факт того, что настройка DWM происходит путем редактирования исходного кода — для этого не требуется никаких навыков программирования (но потребуется немножко усидчивости и желание вникнуть).

Статья будет разбита на две части. В первой (этой) речь пойдет о базовой установке и настройке DWM и Xorg до состояния «юзабельно», во второй пойдет речь о цветной строке статуса, хоткеях, скриптах, а так же решении частых проблем. В процессе чтения статьи вы углубите свои знания про Xorg и про внутренности Linux. Однако, эта статья может не подойти пользователям, «которые только что поставили Ubuntu».

Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. Кстати, в данной статье настройка будет происходить на дистрибутиве Archlinux, поэтому пользователям apt/rpm-based дистров нужно будет поискать упомянутные в статье пакеты под свои дистры.

Установка
DWM распространяется в виде исходников, поэтому просто клонируем репозиторий https://git.suckless.org/dwm. Убедитесь, что у вас установлена группа пакетов base-devel.
Собираем пакет

Запуск
Есть два способа запуска DWM: с помощью startx и с помощью Display Manager. Мы будем использовать первый способ, т.к. это позволит нам запустить дополнительные скрипты и определить переменные окружения
Создадим файл ~/.xinitrc

теперь запустим startx из tty. По умолчанию, DWM имеет только статусбар вверху, с 9 рабочими столами (они называются «теги», и их отличие от рабочих столов в том, что одно окно может быть помечено сразу несколькими тегами), а так же надписью dwm-%версия% справа. Позднее, мы заменим эту надпись на красивый статусбар с цветными иконками-эмодзи.
Основная идея тайлового оконного менеджера в том, что в нем окна расположены в стеке, и окно на вершине стека является основным, master окном, и оно занимает наибольшее пространство. На самом деле, это зависит от раскладки (оконного менеджера, не клавиатуры ), но в дефолтной раскладке DWM все именно так. И полезное сочетание клавиш, которое вам сейчас понадобится — alt+Shift+q, чтобы выйти из dwm и открыть терминал в tty (по дефолту, DWM использует st в качестве терминала, и если у вас его нет, то вы не сможете перейти к настройке)

Настройка
Настрока производится путем редактирования файла config.h. Откройте его в вашем любимом редакторе vim .

Первое что мы сделаем — увеличим размер рамки окна, чтобы было видно какое окно сейчас активно. за это отвечает переменная borderpx, по умолчанию равна 1. Я использую 4 (здесь и далее я буду приводить значения, которые использую сам, вы можете использовать подходящие вам).

Читайте также:  Hp designjet t930 linux

Массив colors[] отвечает за цвета рамок окон. Сейчас нам это не так важно, разбор пойдет во второй части

Массив tags[] отвечает за названия тегов. По-умолчанию, теги называются цифрами от 1 до 9, и их можно тут переименовать. Например, < "web", "media", "dev", "term", . >;

Массив rules[] отвечает за правила, на каком теге какое окно должно появляться. Примеры для Gimp и Firefox уже есть в коде. Обратите внимание на столбец tags mask. Чтобы окно запускалось на i-ом теге, туда нужно вписать 1

и нажмите мышкой на нужное окно. У меня, например, Firefox называется firefox, поэтому пример в исходном коде не работает, нужно переименовать

Прокрутите до строчки /* key definitions */. Замените в строчке

1 на 4, чтобы в качестве клавиши-модификатора для комбинаций использовать super (win) вместо alt.

Далее, под комментарием /* commands */ указаны команды, на которые позже мы повесим хоткеи. Команды — это массив char (массив строк), в которой последний аргумент должен быть всегда NULL. Массив представляет собой саму программу (первым элементом), и аргументы, передаваемые программе. Обратите внимание: аргументы передаются не в bash, поэтому вот такая конструкция

то есть, ~ на $HOME не будет заменено. Если вам нужна эта фича — вы можете закинуть в $PATH скрипты и указать их уже в config.h.
Замените в переменной termcmd st на ваш терминал (кстати, во второй части я буду использовать xterm).
Кроме того, вы можете объявить тут свои команды, просто добавив свои переменные. Например:

Далее идет самое интересное — массив keys[], в котором можно назначить хоткеи на указанные выше команды.
Первым аргументом идет модификатор. Например, MODKEY (super), 0 (без модификатора), MODKEY|ShiftMask (super+shift)
вторым аргументом идет кнопка. С буквами понятно — XK_b, XK_j, XK_e. Для более сложных кнопок (регулировка громкости, яркости и т.д) вам перед массивом keys нужно подключить библиотеку из пакета xorgproto:

Чтобы узнать названия кнопок, посмотрите содержимое /usr/include/X11/XF86keysym.h . Либо запустите xev (пакет xorg-xev) и нажмите нужную вам кнопку, и посмотрите вывод.
кроме функции spawn, которая запускает команду, есть и другие (как они работают, можно узнать, понажимав соответствующие хоткеи).
togglebar — скрывает/показывает верхнюю панель
focusstack — i=+1 делает активным следующее окно, i=-1 — предыдущее
setmfact — увеличивает/уменьшает размер активного окна
zoom — ставит текущее окно на вершину стека
view — переключает между 2 последними тегами
killclient — отправляет текущему окну SIGTERM
quit — закрывает DWM и все окошки без предупреждения
еще тут же описаны хоткеи для переключения между тегами. Опишу их тут понятным языком
mod+8 — переключение на соответствующий тег
mod+0 — просмотр всех тегов (показать все окна)
mod+shift+2 — отправить текущее окно на тег
mod+ctrl+9 — просмотр текущего тега и еще нескольких. Например, mod+ctrl+2, mod+ctrl+3 покажет текущий тег, а еще второй и третий.
mod+shift+0 — поставить все теги на текущее окно. То есть, это окно будет отображаться на всех тегах!
mod+shift+ctrl+1 — пометить окно несколькими тегами (частный случай предыдущего пункта
Таким образом, в отличие от рабочих столов, вы можете как отображать окна на нескольких тегах, так и просматривать все окна, принадлежащие отмеченным тегам! .
mod+, и mod+. — переключение между мониторами
mod+shift+, и mod+shift+. — перекинуть текущее окно на следующий/предыдущий монитор
Кстати, каждый монитор имеет свое пространство тегов, и переключение тегов происходит только на активном мониторе!
Не спешите захламлять config.h хоткеями на все подряд! . Во второй части статьи мы настроим sxhkd для этой цели. Однако, пару вещей мы все же поменяем.

Читайте также:  Usb тюнер dvb t2 linux

Rofi (рофи, а не рофл, если у кого-то шрифт кривой )
rofi — хороший аналог dmenu (панельки для запуска команд). В отличие от dmenu, rofi имеет больше возможностей для кастомизации, имеет темы, и умеет сканнировать .dekstop файлы из /usr/share/applications и .local/share/applications. dmenu же умеет исполнять файлы только из $PATH. А еще оно умеет переключать окна. Не очень полезная фича, но вдруг нужно.
Установим пакет rofi, создадим конфиг

Отредактируйте этот файлик на свое усмотрение. Я изменил только строчки modi (список режимов и их порядок), и width (25 хватит всем), а еще включил иконки приложений. Не забудьте раскомментировать.

drun — режим выбора .desktop приложений. run — аналог dmenu, запуск приложений из $PATH. window — переключение между окнами. Запустите rofi-theme-selector и выберите тему, которая вам нравится. Я использую тему dmenu, в этом случае rofi отображается поверх статусбара DWM

Xterm
Это стандартный терминал для Xorg. Однако, по-умолчанию у него белый фон и черный шрифт, все очень мелкое, и не работает копирование через ctrl+insert. Исправим:
Открываем/создаем файл ~/.Xresources. Мой конфиг выглядит так:

Источник

ArchPKGs

A Complete Guide on dwm Installation on Arch Linux, Manjaro and ArcoLinux

Quoting from dwm ‘s definition, it’s «A dynamic window manager for X». To install or remove this package ( dwm ) from AUR (Arch User Repository) on Arch Linux and Arch-based distros (e.g. Manjaro, EndeavourOS, Parabola, ArcoLinux) is relatively uncomplicated. This tutorial will be covering how to install, update and remove the package with either the default package manager pacman or an AUR helper like yay .

Table of Contents

Two common approaches are used to install dwm from AUR. pacman is the way to go if you’re an experienced Linux user and know the concept of how packages are built. If not, yay is a common alternative to install packages without the need to review PKGBUILD and build packages with makepkg on your own.

sudo pacman -S --needed git && git clone https://aur.archlinux.org/dwm.git && cd dwm && makepkg -si
  1. Install git if it’s not on your system.
  2. clone the package’s git repository from AUR.
  3. cd into the directory of the repository.
  4. Use makepkg to build the package, then install it with pacman .

Just like installing AUR packages, updating them is basically the same. All you have to do is pull it from AUR then re-build it. Nonetheless, it is still recommended to upgrade your whole system first with sudo pacman -Syu before updating any packages to avoid dependency issues, since Arch is a rolling-release Linux distribution.

git pull && makepkg -si
  1. pull from the package’s git repository.
  2. Use makepkg to build the package, then update it with pacman .

Removing packages is the easiest of these three,just choose whether to remove the dependencies that no longer required by other packages and the configuration files generated by the package.

Читайте также:  Linux загрузка процессора памяти
sudo pacman -R dwm
sudo pacman -Rs dwm
sudo pacman -Rns dwm

Learn more information about AUR packages installation or how to install yay , please refer to Two Ways to Install Packages from AUR on Arch Linux/Manjaro.

Beginner’s Tutorial on ttf-abkai Installation on Arch Linux (Manjaro/BlackArch)

ttf-abkai is «Abkai Xanyan TTF font for Manchu, Sibe and Daur scripts» according to its own profile. To install or uninstall ttf-abkai from AUR (Arch User Repository) on Arch Linux and Arch-based distributions (e.g. Manjaro, EndeavourOS, BlackArch, Anarchy) is comparatively uncomplicated. This guide will be covering how to install/update/uninstall the package with either the built-in package manager pacman or an AUR helper (e.g. yay).

Installing botan2 (Complete Guide) on Arch Linux (Manjaro/Garuda)

Quoting from botan2’s outline, it is «Crypto library written in C++ (legacy version)». To get botan2 from Arch official repository (Extra) on Arch Linux, Manjaro, EndeavourOS and Garuda is fairly straightforward. This guide will taught you how to install/update/uninstall the package with either the default package manager pacman or an AUR helper (e.g. yay).

Installing r-chemminer in One Command on Arch Linux, Manjaro and Garuda

r-chemminer is «Cheminformatics Toolkit for R» based on its own description. To install or uninstall r-chemminer from AUR (Arch User Repository) on Arch Linux, Manjaro, EndeavourOS and Garuda is pretty straightforward. This tutorial will taught you how to install, update and uninstall the package with either the default package manager pacman or an AUR helper (e.g. yay).

How to Install gnome-shell-extension-windowisready_remover with CLI on Arch Linux/Manjaro/Artix

«GNOME shell extension that removes the annoying «Windows is Ready» notification.» is the maintainer’s description of gnome-shell-extension-windowisready_remover. To install gnome-shell-extension-windowisready_remover from AUR (Arch User Repository) on Arch Linux and Arch-based Linux distros (e.g. Manjaro, EndeavourOS, Artix, Anarchy, BlackArch, Parabola) is quite straightforward. This guide will show you step-by-step how to install, update and uninstall the package with either the built-in package manager pacman or an AUR helper like yay.

How to Install (Update, Remove) ktikz-git on Arch Linux, Manjaro and RebornOS

ktikz-git is «Small application helping you to create TikZ diagrams – KDE version» based on its profile. To get this package (ktikz-git) from AUR (Arch User Repository) on Arch Linux and Arch-based distributions (e.g. Manjaro, EndeavourOS, ArcoLinux, BlackArch, RebornOS) is fairly easy. This tutorial will show you step-by-step how to install/update/uninstall the package with either the default package manager pacman or an AUR helper (e.g. yay).

Guide on Install/Update/Uninstall pldget on Arch Linux (Manjaro/Anarchy)

«A gemini terminal client» is the maintainer’s gist of pldget. To install and update this package (pldget) from AUR (Arch User Repository) on Arch Linux, Manjaro, EndeavourOS, ArcoLinux, Garuda, Anarchy and Artix is rather simple. This tutorial will cover how to install/update/uninstall the package with either the default package manager pacman or an AUR helper (e.g. yay).

More guides… copyright 2023 ArchPKGs. All Rights Reserved.

Источник

Оцените статью
Adblock
detector