Title : OpenBSD - лёгкий тюнинг DWM и xterm

Author: Толстоевский

Date : 20 May 2022

OpenBSD - лёгкий тюнинг DWM xterm

i3, присутствующий в репозиториях, безусловно прекрасен, но душа моя жаждала dwm, присутствующего в портах Опёнка. Характерная для него аскетичность дефолта, конечно хороша, но удобств мне тоже хотелось, а именно: базовой информации в статусбаре, симпатичных цветов и регулировки громкости с клавиатуры. Собирал я его из портов, все изменения вносились в config.h.

Штош.

Цветовая схема

Тут банально - взял схему dracula из ентих вашых интернетов:

static const char col_gray1[]       = "#282a36";
static const char col_gray2[]       = "#ffb86c";
static const char col_gray3[]       = "#ff79c6";
static const char col_gray4[]       = "#ffb86c";
static const char col_cyan[]        = "#282a36";
static const char *colors[][3]      = {
/*               fg         bg         border   */
	[SchemeNorm] = { col_gray3, col_gray1, col_cyan },
	[SchemeSel]  = { col_gray4, col_cyan,  col_gray2  },
					};

Регулировка громкости

OpenBSD использует sndio для управления звуком. Решил так и оставить - не нужен нам пшшшаудио ваш.

Изменяем тот же config.h дальше:

Вначале импортируем поддержку мультимедиа-клавиш:

#include <X11/XF86keysym.h>

Я поместил в самом начале файла, так кошернее.

Дальше добавим команды, дёргающие интерфейс sndio (логичнее разместить там же, где termcmd:

static const char *raisevolume[] = {"sndioctl output.level=+0.1", NULL };
static const char *lowervolume[] = {"sndioctl output.level=-0.1", NULL };

И объявим вызов этих команд с помошью нужных клавиш (само собой в блоке с клавиатурными сокращениями):

        { 0,                       XF86XK_AudioLowerVolume, spawn, {.v = lowervolume } },
	{ 0,                       XF86XK_AudioRaiseVolume, spawn, {.v = raisevolume   } },

That's all, folks! make&&make install

(ну разве что я лично предпочитаю использовать Super вместо Alt для упарвления окнами - для этого всё там же надо заменить Mod1Mask на Mod4Mask).

Статусбар

Товарищи из suckless предлагают пихать всю нужную информацию через xsetroot, а кто я такой, чтоб с ними спорить?

Создаём файлик ~/.local/bin/dwmstatus (ах, да, я использую bash - он есть в репозитории - с родным для Опёнка ksh я не подружился) :

	#!/usr/local/bin/bash
	while true; do
	datee=$(date +"%a, %Y-%m-%d")
	timee=$(date +"%H:%M")
	getvolume=$(sndioctl | grep output.level | cut -d "=" -f2)
	temp=$(sysctl hw.sensors.lm1.temp1 | cut -d "=" -f2 | awk '{print $1}')
	xsetroot -name "📆 $datee 🕖 $timee | 🔊 $getvolume |  $temp "
	sleep 2
	done

Теперь просто допишем запуск dwm и dwmstatus в ~/.xsession:

	.local/bin/dwmstat&
	exec dwm

Готовенько, можно заходить в красивый DWM. Но минуточку, к красивому оконному манагеру должен прилагаться симпатичный терминал, а в коробке у нас только xterm, по умолчанию выглядящий как соседова тёща с похмелья.

Xterm

В файле ~/.Xresources достаточно проделать что-то подобное (в приведённом примере, опять же, цветовая схема Dracula):


xterm*faceName:Noto Mono:style=Regular:size=12

Вот теперь - точно всё, перезаходим в X11 и наслаждаемся ^_^

---

Гостевая книга