sway vs awesome

В целом sway вполне себе замена для awesome, но не то чтобы он awesome.

sway:
+ перезагрузка конфигурации на лету просто работает, и даже перезагружает конфигурацию waybar, очень клево работает. В awesome тоже работало, но оно теряло конфигурацию воркспейсов и надо было снова перераспределять окна. Бесило неимоверное и никогда не хотелось “поменять 1 символ и релоднуть конфигурацию”.
+ может выглядеть почти как awesome что awesome
+ нормальное распределение окон, в awesome сценарии были какой-то хернёй, так и не получилось к ним привыкнуть.
– нет нормального способа избавиться от window header, всегда есть две полоски: waybar + window header. Люди советуют это всё запихнуть в waybar чтобы было как в awesome, но что-то мне пока не хочется пробовать — в стандартной конфигурации окна можно двигать в этом “типа таскбаре” (который на саомм деле просто объедененный window header) и это великолепно.
+- swaybar херня, сразу в утиль, но зато waybar солнышко и лапонька. Стандартные виджеты даже лучше чем в awesome и это awesome!

#linux #x11 #wayland #sway #awesome

2023.12.07 15:16

wayland.sway dropdown console replacement

Как вы все уже знаете у меня не получается найти замену для yeahconsole которая по шорткату падает с небес и всегда доступна.

Спасибо за ваши письма и комментарии, было очень приятно узнать что вы понимаете как мне не хватает консоли которая всегда существует, всегда под рукой и хранит историю с начала времен (с последнего ребута).

Один умный человек мне сказал что в sway нет, конечно, никаких таких droзdown console, но есть некий виртуальный sketchpad который как бы воркспейс который показывается поверх текущего воркспейса. И если кинуть туда обычный терминал то он будет доступен по шорткату.

Это не dropdown console даже рядом, но другого применения этому sketchpad я всё равно не могу придумать так что это может быть альтернативой. А может быть и нет. А может быть и да. А может быть и нет. Неприятно что можно нажать какое-нибудь ctrl+d и случайно закрыть.

А вы что думаете? Оставляйте, пожалуйста, свои комментарии и делитесь своим мением!

#linux #wayland #sway #yeahconsole #dropdownconsole

2023.12.07 15:04

systemd-hwdb thinkpad t490s keyboard buttons remap

Добрый вечер! Начинавем утренний сеанс боли!

У меня на ноутбуке немецкая клавиатура. Мне в целом всё равно какие там значки где нарисованы, но вто то что левый шифт маленький, а справа от него кнопка с <> — это вообще почему как зачем. Я не могу одной рукой нажать прекрасный шорткат <ctrl>+<shift>+<alt>+c!

В пррошлом у меня уже была точно такая же проблема, но это было ещё во время когда systemd не покорил мир и нет даже уверенности что это было не в hal.

Ну а нынче, значит, это даже не udev, а уже systemd-hwdb что какая-то одна и та же херня и непонятно почему зачем для чего.

Этот пост уровень боли один, уровень боли wacom будет позже.

Вам понадобится три консоли, две из них под рутом.

В первой обычной нерутовой вы делаете:

# nvim /usr/lib/udev/hwdb.d/60-keyboard.hwdb

Этот файл будет нашей путеводной звездой.

Во второй рутовой консоли вы делаете:

# true > /etc/udev/hwdb.d/72-tp-t490s-keyboard.hwdb
# nvim /etc/udev/hwdb.d/72-tp-t490s-keyboard.hwdb

В третьей рутовой консоли вы начинаете плакать от жалости к себе.

Для начала нам понадобится узнать как называется клавиатура, понятия не имею как это сделать адекватно, но сделаем это неадекватно (похоже, это и есть адекватно):

# evtest

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:	Sleep Button
/dev/input/event1:	Lid Switch
/dev/input/event10:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event11:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event12:	Elan Touchpad
/dev/input/event13:	Elan TrackPoint
/dev/input/event14:	Keychron Keychron K1 SE
/dev/input/event15:	Keychron Keychron K1 SE
/dev/input/event16:	Logitech Gaming Mouse G402
/dev/input/event17:	Logitech Gaming Mouse G402 Keyboard
/dev/input/event2:	Power Button
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	Video Bus
/dev/input/event5:	PC Speaker
/dev/input/event6:	ThinkPad Extra Buttons
/dev/input/event7:	HDA Intel PCH Mic
/dev/input/event8:	HDA Intel PCH Headphone
/dev/input/event9:	HDA Intel PCH HDMI/DP,pcm=3

Select the device event number [0-17]: 3

Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab54
Input device name: "AT Translated Set 2 keyboard"
Supported events:
...

Смотрим на список доступных устройств, выбираем <3>, оно там что-то пишет про что-т доступное и потом начинает ждать нажимания на кнопки. Нажимаем на эту дурацкую кнопку и получаем:

Properties:
Testing ... (interrupt to exit)
Event: time 1701374575.257013, type 4 (EV_MSC), code 4 (MSC_SCAN), value 56
Event: time 1701374575.257013, type 1 (EV_KEY), code 86 (KEY_102ND), value 1

И вот у нас уже есть всё что у нас есть!

Радостно бежим во вторую консоль (где открыт файл с будущими правилами) и горько плачем от осознания полного неосознания. Но правило надо всё же написать поэтому открываем консоль один и внимательно смотрим на то что на что мы смотреть не хотим. Но ищем там две вещи:
1. Зачем?
2. Почему?
3. За что?

Не найдя, смотрим на вообще формат и как заматчить нашу клавиатуру. Заматчить несложно, в начале этого файла есть:

#  - Input driver device name and DMI data match:
#      evdev:name:<input device name/>:dmi:bvn*:bvr*:bd*:svn:pn*
#    <input device name/> is the name device specified by the
#    driver, </vendor>

Формат файла тоже какое-то говно с оступом правила в один пробел от матча. Это зачем? Почему? За что? (Нашли!!!)

Ищем в этом же файле как называется кнопка которая нам нужна как результат, у меня это leftshift

Собираем наш увеселительный конструктор из запчастей разбросанных выше:

Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab54
Input device name: "AT Translated Set 2 keyboard"

Event: time 1701374575.257013, type 4 (EV_MSC), code 4 (MSC_SCAN), value 56
Event: time 1701374575.257013, type 1 (EV_KEY), code 86 (KEY_102ND), value 1

Нам нужно имя устройства и значения первой строки где MSC_SCAN:

# @link https://hshhhhh.name/2023/12/01/4866/
# thinkpad t490s german keyaboard
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*
 KEYBOARD_KEY_56=leftshift # button on right of the left shift <> -- remap to left shift

Hint: оставляйте крайне избыточниые комментарии потому что в следущий раз вы сюда попадете лет через 6 и будете горько плакать, ибо линукс — это путь боли и отчаяния.

Чтош. Теперь сохраняем файл, идем в третью консоль и делаем там:

# systemd-hwdb update
# udevadm trigger
# udevadm info /dev/input/event3 | grep KEYBOARD_KEY
E: KEYBOARD_KEY_56=leftshift

# evtest 

...

Testing ... (interrupt to exit)

Event: time 1701378948.076153, type 4 (EV_MSC), code 4 (MSC_SCAN), value 56
Event: time 1701378948.076153, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1

Ура волшебство удача победа!

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

У меня не получилось, могу порекомендовать вам горько поплакать! И писать десять тысяч разных тупых других комбинаций на другие любые кнопки постоянно пересоздавая hwdb binary db. Ничем не хочу вам помогать в данном случае! Вас все бросили! Вы наедине с собой! Подумайте, так ли вы хотите переопределять кнопки зачем вам это надо нормально же в целом!

Например, вы можете попробовать (у меня получмилось, но вы пробуйте! (я тоже буду в следущей части пробовать!)) использовать другой формат для матчинга:

# Supported hardware matches are:
#  - Generic input devices match:
#      evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
#    This matches on the kernel modalias of the input-device, mainly:
#    ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
#    WWWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
#    is a variable-length input-modalias describing the device capabilities.
#    The vendor, product and version ID for a device node "eventX" is listed
#    in /sys/class/input/eventX/device/id.

Что, в теории, должно было бы собраться в такое вот правило (вывод evtest вам в помощь), но у меня не заработало:

# @link https://hshhhhh.name/2023/12/01/4866/
# Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab54
# Input device name: "AT Translated Set 2 keyboard"
#
# thinkpad t490s german keyaboard
# evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*
evdev:input:b0011v0001p0001eab54*
 KEYBOARD_KEY_56=leftshift # button on right of the left shift <> -- remap to left shift

Больших слёз, боли и страдания!

#linux #udev #systemd #systemd-hwdb

2023.12.01 00:13

arch pacman database lock

# pacman -Sy my-package
# pacman -Sy my-package
:: Synchronizing package databases...
error: failed to synchronize all databases (unable to lock database)

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

#linux #arch #wtf

2023.11.21 15:43

Arch for newbies!

После генты арч не вызывает паники, но всё же некоторое недоумление:

$ modprobe acpi_call
modprobe: FATAL: Module acpi_call not found in directory /lib/modules/6.5.7-arch1-1

$ uname -a
Linux computer 6.5.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Tue, 10 Oct 2023 21:10:21 +0000 x86_64 GNU/Linux

$ pacman -Ql acpi_call | grep '/modules/'
acpi_call /usr/lib/modules/
acpi_call /usr/lib/modules/6.6.1-arch1-1/
acpi_call /usr/lib/modules/6.6.1-arch1-1/extramodules/
acpi_call /usr/lib/modules/6.6.1-arch1-1/extramodules/acpi_call.ko.xz

Это вообще как и почему произошло? Ну то есть я понимаю почему это произошло и что арч надо полностью обновлять каждые 4 минуты (и перезагружаться), но всё же у меня есть некоторые вопросы.

#linux #arch #wtf

2023.11.19 19:13

gentoo 2 arch

Вообще, переезд оказался на удивление безболезненным. Уж сколько всего изменилось, а так-то никаких проблем. Копирование `/home` — это просто магия как хорошо. Что же изменилось:

gentoo  > arch
X11     > wayland
awesome > sway
openrc  > systemd
bios    > uefi

Арч местами удивляет, например AUR это вообще что такое? Или в swaybar не сделали нормально трей и поэтому иконки не кликаются… Но waybar это чинит и даже немного становится похоже на awesome что awesome!

Но зато каким-то образом в терминале не надо маппить кнопки типа ctrl + r чтобы они делали мне поиск. Suspend to ram просто работает и не надо писать никакие скрипты чтобы перезапускать сервисы. Это просто невероятный уровень искаробочности. Даже в блутузовой гарнитуре заработал микрофон что было совсем непонятно как чинить в генте.

Из непобеденных минусов: не могу найти замену для dropdown console yeahconsole. Ета грусна.

#linux #gentoo2arch #wayland #yeahconsole #dropdownconsole

2023.11.19 14:49

ARCH AUR MAN MAKEPKG

Итак, после того как вы скачали PKGBUILD вы должны запустить MAKEPGK (обожаю общесистемные правила именования!)

# man makepkg
-s/--syncdeps automatically resolves and installs any dependencies with pacman before building. 
              If the package depends on other AUR packages, you will need to manually install them first.

а slackaware LFS arch ничо!

#linux #gentoo2arch #arch

2023.11.01 00:00

ARCH AUR

Захотелось поставить пакет из Arch AUR и это интересный опыт.

Сначала надо вручную склонировать репозиторий, потом собрать пакет, а потом установить пакет через пакман.

ERROR: Running makepkg as root is now allowed as it can cause permanent, catastrophic damage to your system

И вот мне теперь что, вместо того чтобы поставить пакет надо создавать /home, придумывать имя пользователю и ставить из под него?

Я вот ещё не готов к такому шагу, у меня /home ещё даже не монтирутеся, вот почему???77

В генте всё намного проще с левыми пакетами.

Можно, конечно, для Arch AUR поставить второй менеджер пакетов который будет всё это прятать в себя. Но те два на которые мне удалось проверить можно поставить только из Arch AUR.

Потрясающе!

Только для того чтобы разрешило собрать пакет из AUR надо настроить всю систему сначала.

# makepkg -scir
==> ERROR: Cannot find the fakeroot binary,
==> WARNING: Cannot find sudo binary. Will use su to acquire root privileges.

🤌

#linux #gentoo2arch #arch #wtf

2023.10.31 22:56

Arch docs and UEFI bootloader

Как нарисовать сову за 4 простых шага.

#linux #gentoo2arch #arch

2023.10.19 00:36

man nc

Ох, какой дух старой школы в мануле к netcat. Восторг.

COPYRIGHT
       Netcat is entirely my own creation, although plenty of other code was used as examples.
       It  is  freely given away to the Internet community in the hope that it will be useful,
       with no restrictions except giving credit where it is due.   No  GPLs,  Berkeley  copy‐
       rights  or  any  of that nonsense.  The author assumes NO responsibility for how anyone
       uses it.  If netcat makes you rich somehow and  you're  feeling  generous,  mail  me  a
       check.   If  you  are affiliated in any way with Microsoft Network, get a life.  Always
       ski in control.  Comments, questions, and patches to hobbit@avian.org.

NOTES
       Some port names in /etc/services contain hyphens -- netcat assumes dashes are only used
       for  ranges, so you have to escape the hyphens with backslashes (e.g. "netcat localhost
       'ftp\-data'") to use them.

BUGS
       Efforts have been made to have netcat "do the right thing" in all  its  various  modes.
       If  you  believe  that it is doing the wrong thing under whatever circumstances, please
       notify me and tell me how you think it should behave.  If netcat is not able to do some
       task  you think up, minor tweaks to the code will probably fix that.  It provides a ba‐
       sic and easily-modified template for writing other network  applications,  and  I  cer‐
       tainly  encourage  people to make custom mods and send in any improvements they make to
       it. Continued feedback from the Internet community is always welcome!

SEE ALSO
       /usr/share/doc/netcat/README.gz

AUTHOR
       This manual page was written  by  Joey  Hess    and  Robert  Woodcock
       , cribbing heavily from Netcat's README file.

       Netcat was written by a guy we know as the Hobbit .

#linux

2021.10.30 19:41

Прощай, алса :'(

Заканчивается 2021, alsa удалена из системы. Немножко грустно. Слава богам что теперь есть pipewire который выступает фронтом для мерзкого pulseaudio.

#linux

2021.10.03 14:07

ThinkPad battery management in linux

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

Покупка новой батарейки за 50 евро омрачалась воспоминаниями о том как весело умирала старая батарейка с постоянной бесконечной зарядкой 99%-100%. Смерть весёлая, но бессмысленная.

В этих ваших виндоусах леново поставляет фирменную программу которая контролирует заряд батарейки, а в линуксе что делать? А в линуксе добрые и умные люди написали скрипт tpacpi-bat который можно установить через системный менеджер пакетов и добавить в автозагрузку.

Если ваш ноутбук постоянно подключен к адаптеру, то батарейка не начнет заряжаться пока заряд не упадёт ниже 30% и не будет заряжаться больше чем на 85%. В теории это должно продлить жизнь батарейки.

А если вдруг надо начать заряжать батарейку польностью, то можно менять профили зарядки примерно так:

# /etc/init.d/tpacpi-bat low
# /etc/init.d/tpacpi-bat high

Или отредактировать /etc/conf.d/tpacpi-bat и перезапустить сервис. Или прямо из косноли настроить, кто же вам запретит прямо из консоли настраивать то?

#tp #linux

2020.02.03 22:40

alsa + pulseaudio

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

Теперь нужно добавить в ~/.asoundrc следущее:

% cat ~/.asoundrc

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

Пользуясь случаем хочу послать лучи благодарности генте которая оберегает меня от systemd. Не знаю сколько ещё получится держаться, но если не gentoo то только funtoo.

#linux #alsa

2019.10.02 02:45

recover linux from grub

Новая порция новостей про обновление мира! Ура! Дождались! Я знаю что вы переживали получится ли у меня написать ещё один пост на эту тему или конец, мир разрушен?!

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

# rc-update del xdm default

Но удар в спину пришёл от mysql. После смены профиля и переноса библиотек в другие места mysql блокировал загрузку и даже не умирал по ttl. Как вы понимаете загрузочной дискеты нет, а интерактивный режим в openrc не работает.

Интересный факт: оказывается, если у вас есть андроид, otg кабель и usb flash — есть некоторый шанс что у вас получится сделать загрузочную флешку прямо из андроида! Восхитительно!

А мне пришлось через груб грузится прямо в консоль и включать интерактивный режим. В этом раз мне повезло и у меня был доступ к интернету, но на будущее я сохраню этот в файл в корне. На всякий случай.

# loading grub
# press `c` to open internal console
# read content of this file:
ls (hd0,1)/
cat (hd0,1)/recover_how_to

# return to entries list in grub and press `e`
# append to `linux` line `init=/bash/sh`
- linux /boot/grub_vmlinuz_new root=/dev/sda1 acpi_backlight=video
+ linux /boot/grub_vmlinuz_new root=/dev/sda1 acpi_backlight=video init=/bin/sh

# boot to shell and remount root
mount -o remount,rw /dev/sda1 /
mount -t proc none /proc

# do your recovery magic

#linux #recovery #update_world

2019.09.08 20:50

Linux и клавиатурная раскладка

Linux вообще сложно любить потому что он или очень странно почти работает, или приходится красноглазить. Чаще проще игнорировать проблему чем её решать, но иногда в линуксе очень просто решить проблему которую вообще непонятно как решать в других местах.

Совсем недавно был пост про hardware linux way где у меня переодически отгнивали кнопки на клавиатуре и у меня успешно получалось игнорировать эту проблему. Но, внезапно, кнопки внезапно отгнили и перестали работать и пришлось купить новую клавиатуру на ебае. Есстественно, нормальные люди смотрят не только на цену, но и на раскладку, но некоторые люди (я) идиоты и не смотрят на раскладку.

А раскладка оказалась конченная сказочная и вместо длинного левого шифта у меня короткий левый шифт и волшебная кнопка чтобы печатать символы <, >. Это очень неудобно потому что у меня уже есть скобочки на клавиатуре, а рука просто не может нажимать на этот огрызок шифта — я недостаточно осьминог.

Как же решить эту проблему? Как же адоптироваться к новым условия? Что же делать?.. Но ведь это же, простите Боги, линукс! Почему бы просто не сказать этой кнопке вести себя как левый шифт? Ну, будет у меня два коротки левых шифта вместо одного длинного так и это даже хорошо: один шифт сломается — второй запасной будет.

Запускаем xev и находим код этой клавиши. Потом проверяем все ли работает как надо:

$ xmodmap -e 'keycode 94 = Shift_L'

И если всё хорошо и эта кнопка начала работать как левый шифт (!!!!!!!) то добавляем это в ~/.Xmodmap:

$ echo 'keycode 94 = Shift_L' >> ~/.Xmodmap

Можно бесконечно ненавидеть линукс, но разве чем-то ещё можно пользоваться?

#linux #xmodmap #tp

2019.07.16 16:20