LINUX.ORG.RU

Галерея

Активные теги:

 , , , , , , , , , , , ,

StumpWM как вершина ручного тайлинга

 , , ,

StumpWM — это ручной тайловый менеджер, написанный на Common Lisp. Со стороны эта фраза ничего не значит, но на деле это оконный менеджер с огромным потенциалом для превращения его в удобную рабочую среду, альтернатив которой почти нет (если есть вообще).

Прежде всего, что такое ручной тайлинг (или manual tiling, или static tiling). Это тайлинг, где расположением окон управляет пользователь, а не оконный менеджер. В случае со StumpWM, пользователь делает сетку из фреймов (или тайлов), куда будут распологаться окна. Окна распологаются друг над другом и занимают фрейм полностью. Можно привести аналогию с картами, где окно — это карта и эта карта складывается в общую пачку в виде фрейма и, эти несколько пачек, располагающиеся напротив друг друга — это итоговая сетка из фреймов. По опыту, это самое безболезненное решение из всех, если окон очень много.

Сам оконный менеджер написан на Common Lisp и, благодаря этому, позволяет переконфигурировать его на лету через Emacs+SLIME/Sly. Сам конфиг тоже на лиспе, что удобно. У меня, например, накопилось около 2000 строк кода. WM позиционирует себя как Emacs среди оконных менеджеров. Не в плане того, что может полностью зависнуть, если какой-то из плагинов будет долго думать, а в плане способствования хакам.

Кстати об имаксе. Как и у Emacs, у StumpWM хоткеи работают по принципу цепочки аккордов (chord chain). Например, можно реализовать такой хоткей: нажатие Ctrl+C, отпускание и нажатие таба — это может считаться одним хоткеем и быть забиндено на, скажем, вызов терминала. В конфиге выглядеть это будет примерно так:

(set-prefix-key (kbd "C-c"))
(define-key *root-map* (kbd "Tab") "run-shell-command sakura")

Из кода получается, что при нажатии на Ctrl+C оконный менеджер переключит лейаут клавиатуры на root-map и будет ожидать следующей клавиши. А на этом лейауте будет таб, при нажатии на который будет вызываться команда sakura. Мап, по факту, является раскладкой клавиатуры для оконного менеджера, на котором расположены бинды команд для него. И подобных map-ов может быть, в целом, до бесконечности и можно даже подсунуть мап в хоткей другого мапа:

(set-prefix-key (kbd "C-c"))
(register-kmap *layout-map* nil)
(define-key *root-map* (kbd "w") '*layout-map*)

Тут при переходе на рутовый мап мы можем нажать на W и перейти на следующий мап — layout-map.

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

Я использую патченный StumpWM, т.к. мне не удалось найти, можно ли в лиспе в рантайме менять атрибуты класса. Но у патчей есть свои предпосылки. Ванильный StumpWM для перемещения по лейауту предлагает переключение фреймов по принципу «ближайший в заданном направлении», что неудобно и занимает время при переключении (особенно на мультимониторных конфигурациях). Так что мне удалось встроить в StumpWM свой принцип переключения фреймов, который заключается в тегировании фреймов. Схему в общем виде можно наблюдать на второй пикче. Суть в том, что на фрейм накладывается определённый тег, который привязывается к определённому хоткею. И, соответственно, при нажатии будет немедленное переключение на соответствующий тег. Патч был нужен лишь для добавления атрибута тега в класс фрейма. Функции по работе с этим реализованы на уровне конфига. Теги создаются динамически и также динамически привязываются к хоткеям. Они могут по-разному называться и их может быть до бесконечности.

Весь этот текст — фиксация того, что можно найти в StumpWM, т.к. с него я ухожу. Это один из лучших оконных менеджеров, но в нём есть свои проблемы:

  • Плохая поддержка мультимониторной конфигурации. Если в каком-нибудь herbstluftwm на один монитор даётся один воркспейс, то у StumpWM один воркспейс на все мониторы. Это порождает разного рода проблемы, например, если второй монитор служит информационным дисплеем, то при переключении воркспейсов, воркспейс переключается на всех мониторах, соответственно, убирая информацию со второго монитора.

  • Позиционирование а-ля имакс. Субъективщина, но модульность кажется более лучшим решением, чем всё в одном решении.

  • Мне не удалось придумать как решить проблему, если в воркспейсе накопилось слишком много окон. Ты начинаешь в них утопать, переключая в поисках нужного. То, как это всё реализовано в StumpWM сейчас — лучшее из того, что мне доводилось пробовать. Но хочется лучше. У меня была идея делать субворкспейсы — это обычные воркспейсы, но они условно привязаны к какому-либо из воркспейсов. По типу того, что есть воркспейс anyame и мы создаём подворкспейсы: anyame1, anyame2, etc… И все окна раскидываем по ним. Главное тут во всём: переключение подворкспейсов должно быть максимально доступным, как Alt+Tab, только в два хоткея: вперёд по цепочке и обратно. Но вся идея упёрлась в первый пункт проблем. И это стало малоиспользуемым, по итогу.

  • Просто мелкие баги, которые могут доставлять дискомфорт. Например, может быть так, что WM может застрять между двумя воркспейсами и показывать окна с них одновременно — лечится переключением обратно.

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

А так, в плане кастомизации под свои нужды, этот WM — вершина ручного тайлинга.

Дальнейшие ресурсы для изучения:

rhubear
()

Рабочий экран

 ,

Пинайте больно!
Но это жопа!

totalmem=$(echo "$(sysctl -n hw.memsize)" / 1024^2 | bc)

bash прекрасно умеет считать.

ИМХО, именно таким чистым и должно быть рабочее место.

l00p
()

Debuntu (не пытайтесь повторить это дома)

 , franken,

Привет всем! Я решил немного Повеселится и угадайте, что я сделал? Правильно — обновил Ubuntu 22.04 до Debian 12. И знаете, как я это сделал?

Всё очень просто и сложно одновременно. Меняем sources.list, качаем ключи, чтобы apt не орал, как резаная свинья, и ставим их. Дальше делаем магию: sudo apt update. И потом самое сложное — sudo apt dist-upgrade.

Ждём, когда вылезет первая ошибка зависимостей. Делаем sudo apt --fix-broken install. Если ошибка вылезет снова, делаем вручную sudo dpkg --force-all -i или sudo dpkg --force-all -r и снова sudo apt dist-upgrade. И так по очереди.

Когда дойдём до конца, если интернет отвалился, идём в файл /etc/resolv.conf и пишем туда nameserver=8.8.8.8 (точно не помню). И всё — Network Manager починился. Проверяем dist-upgrade и делаем sudo apt install dbus-x11.

Дальше: sudo systemctl stop gdm, потом sudo apt purge gdm и sudo apt install gdm3. После этого делаем sudo apt reinstall gnome-session gnome-shell и ставим Nautilus, так как он «подыхает» из-за обновления. Если возникает ошибка при переустановке Nautilus, удаляем nautilus-data через sudo dpkg -r и делаем sudo apt install nautilus.

И готово! Короче, Повеселился конкретно.

IceFox
()

Trinity DE- несколько кадров компьютерной ностальгии

 ,

На данных фотокарточках я запечатлел еще одно окружение рабочего стола на моем нетбуке Asus eepc 1101 HA. Это Trinity Desktop Environment – оболочка, созданная на базе kde3, в которой есть все соответствующие программы в довольно устаревшем варианте (например здесь работает модуль icq в программе kopete через фанатский сервер каськи). Именно это и изображено на первой фотке.

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

dsalin
()

Обновочка: сенсорный монитор

 ,

Хочу в галерее поделиться своей обновочкой.

Сегодня купил себе и подключил сенсорный монитор Verbatim PMT-14 49591. Им очень удобно выделять что-то на картинке или вообще работать с графикой. Увидел в магазине и очень захотелось попробовать. Пока он не несёт полезной нагрузки как дополняющий монитор, так-как подключён к компьютеру через сплиттер, и компьютер не отличает от другого. Сам компьютер – это ноутбук и пока у него только один порт hdmi. Диагональ экрана –14 дюймов.

Я не ожидал, что без танцев с бубном заведётся тач на убунтe, так как на коробке написано только про Андроид, IOS, Windows, MacOS. Но заработало.

dsalin
()

Debian 13 На старом ноутбуке

 ,

Я смог установить Debian 13 на древний ноутбук, у которого при обычной установке Debian 13 после загрузки — отключенный экран, и всё. Так как же я установил свежий Debian 13 на древний ноутбук? А вот как!

Вариант 1, простой и верный, как молоток: устанавливаем Debian 12, блокируем обновления ядра, и обновляем систему до 13, что, собственно, я и сделал.

Вариант 2, более сложный, для тех, кто любит потанцевать с бубном вокруг терминала: ставим систему в nomodeset режиме, загружаемся в nomodeset режиме, меняем в sources.list trixie на bookworm временно, и ставим старое ядро, потом удаляем новое ядро, снова меняем sources.list bookworm на trixie, и готово.

IceFox
()

Закос под MacOS на RTX ПК

 , ,

В этом году вышел в релиз MacOS Tahoe, который отличился кардинальной переработкой UI под названием Liquid Glass. Для Linux сделали тему офрмления в стиле MacOS Tahoe.

Что использовалось для закоса:
Иконки (курсоры входят в комплект): https://github.com/vinceliuice/MacTahoe-icon-theme
Тема оформления GTK (обои входят в комплект): https://github.com/vinceliuice/MacTahoe-gtk-theme
Шрифт для терминала: https://github.com/be5invis/Iosevka
Шрифт: https://github.com/sahibjotsaggu/San-Francisco-Pro-Fonts

Использован свежий Ubuntu MATE 25.04

ConLenov
()

OpenSUSE 16.0

 , ,

Обновился до OpenSUSE Leap-16.0. Полет нормальный, ресурсов хватает, фсьо что нужно на скриншотах. Яст конечно уже не торт но рабочий. Ноуту уже лет примерно восемь, немного апгрейдил, оперативки добавил и ssd - WD-500 черный. Еще прослужит долго. В дуалбуте еще Перекатиполе (просто слежу за тенденциями). Обои рабочего стола не показываю, что бы не было лишних разговоров про цвет и вкус фломастеров. )))

piwww
()

Моё рабочее место

 

На первом фото общий план: мое рабочее место состоит из двух столов.

На втором – вспомогательный стол. На нем нетбук Asus eepc 1101 HA, о котором я упоминал в публикации о windowmaker и gnustep. Служит он для подключения к трансиверу, в котором тоже компьютер встроен. Хочу скоро сделать из него декодер и кодер морзянки – принимать и отправлять её через комп, а не вручную на слух, передавая через ключ.

На третьем мой основной рабочий стол – засаленный oрганайзер, периферия от логитек, монитор от hp. В коробе под принтером весьма посредственный ноут 2019 года с ЦПУ от Интел Пентиум Сильвер (если память мне не изменяет). На столе также советские часы «Электроника Г-9», выпущенные в Минске в 1979 году. Они неубиваемы.

Принтер на коробе – далеко не только принтер. Это лазерное цветное сетевое МФУ Canon Isensys MF655Cdw. Мне его подарили на день рождения. В нашем доме очень много кому время от времени нужно много распечаток. Кстати, его прекрасно распознал CUPS!

Характеристики ноута по информации fastfetch:

  • CPU: Intel(R) Pentium(R) Silver N5000 (4) @ 2.70 GHz
  • GPU 1: NVIDIA GeForce MX110 [Discrete]
  • GPU 2: Intel UHD Graphics 605 @ 0.75 GHz [Integrated]
  • Memory: 4.73 GiB / 7.58 GiB (62%)

Спасибо за прочтение!

dsalin
()

HL Alyx на ALVR

 , ,

Valve Index это хорошо. Было. Пять лет назад.

С тех пор технологии шагнули, а Valve что-то не торопится обновляться, хотя слухами про Deckard земля просто кишит. Зато добрые китайцы уже всё сделали, и осталось только написать приложение для онтопика.

Оборудование:

  • Pico 4 VR Ultra.

  • AMD Ryzen 7 5700X

  • 64 Гб ОЗУ

  • AMD Radeon RX9060 16Гб

  • Ximper Linux (на базе ALT Sisyphus)

Соединение: ALVR.

( читать дальше... )

Aceler
()

Рабочий офис дома

 , ,

С момента моей последней фотографии в галерее прошло почти 5 лет. Что-то поменялось, что-то осталось неизменным.

Давайте по порядку.

Прежде всего, я искренне считаю, что удалённая работа – это лучшее, что происходило с рынком труда.

За эти 5 лет я окончательно переехал из Уфы в Москву и тратить по 3 часа в день на дорогу (в обе стороны), чтобы выполнить работу, которую я могу с таким же успехом сделать сидя дома – это просто глупость, как по мне. А протирать штаны и создавать иллюзию бурной деятельности можно и в офисе. Наличие в нём сотрудника вовсе не говорит о том, что он делает что-то полезное.

( читать дальше... )

Jefail
()

GNUstep - экзотическое окружение рабочего стола для Лина

 ,

Здравствуйте.

Решил загрузить ещё одно фото рабочего стола, но на другом ноутбуке, который у меня есть. Там я установил весьма экзотическое окружение под названием GNUstep. Оно якобы напоминает интерфейс джобсовской NEXTstep.

Работает на 12 дебиане – он последний поддерживает 32-битные компьютеры, в 13-м уже 32-битную архитектуру выпилили. Устанавливается из дефолтного репозитория дебиана.

Сам ноут очень старый и слабый, ведь это Asus Eee PC на процессоре с частотой 1,33 Ггц. Здесь нет той засранности как на скрине с КДЕ, так как по-моему, здесь невозможно установить просмотр папки «рабочий стол» на самом рабочем столе.

dsalin
()

Debian + Binary Space Partitioning Window Manager (bspwm)

 , ,

Привет!

Сегодня я вам расскажу всё о моем bspwm, а также комментарии предыдущего зеленого Debian bspwm, а также расскажу об моём обновленном конфиге polybar и исправлениях.

Начнём с комментариев предыдущего поста «зеленый debian bspwm».

( читать дальше... )

IceFox
()

Страх и ненависть на Android

 , ,

Добрый вечер, ЛОР!
Я заметил, что многие местные товарищи не умеют в Android.
Поделюсь своим опытом.

Смартфоны – говно, но, к великому сожалению – в 2025 году без них не обойтись. Пару лет назад умер мой последний кнопочный Blackberry, поэтому пришлось соприкоснуться с современными технологиями, так сказать.

Смартфон для меня всегда был КПК с встроенным GSM-модемом, поэтому и отношусь я к нему так же: именно я решаю, какую операционную систему я буду запускать на своем (это важно, мои маленькие любители арендовать устройства у Apple) девайсе.
Поэтому, раз уж Blackberry всё – выбор пал на Pixel 9 Pro с GrapheneOS.

( читать дальше... )

ann_lortemp2
()

Маленький большой n100

 , , , rbdoom3bfg,

У меня есть микро-ПК на базе Intel N100. Я приобрёл его ещё весной для решения специфических рабочих задач, а сейчас он простаивает. Недавний пост об эмуляции старых игровых консолей вдохновил меня проверить его возможности. Вот к каким результатам я пришёл:

( читать дальше... )

nuxster
()

Debian bspwm

 ,

Сегодня я кардинально переделал свой Bspwm, и он стал намного лучше. Вот список:

  1. Polybar

    В нём я поменял цвета на пастельно-зеленый и убрал ненужные модули, по типу «проводная сеть», так как я ей не пользуюсь.

    А ещё я поправил недочёт по типу того, что некоторые части панели вылезают за неё, и получается уродливо. Очень уродливо.

  2. Тема

    Теперь стала fluent-gtk-theme и fluent-icons, и курсор vimix-dark.

    Ничего особенного не поменялась.

  3. Окна

    Как в прошлом посту мне говорили, что оно полукруглое и выглядит ужасно, я с этим согласен, пофиксил. Теперь это просто сглаживание: раньше было corners-radius=10, стало corners-radius=5.

  4. Тема Rofi

    Изначально я её не показывал, но скажу: это была тема rounded-pink-dark (не помню точно). Но сейчас я подобрал такую, чтобы сочеталаcь с фоном и темой.

  5. Htop

    Заменён на btop. Теперь обычный просмотр нагрузки на комп превратился в дата-центр.

И вот, наконец-то, всё. Как думаете, это хороший рабочий стол или нет?

IceFox
()

Monochrome

 , ,

Arch linux + Sway. За год дистрохопа понял что лучше арча ничего нету, есть желание попробовать openbsd и netbsd, но лень, да и времени нету.

mozgoff
()

Тестирование игр PSP на слабом ноутбуке

 , ,

Однажды мне пришла в голову идея: тестировать игры PSP на своём слабом ноутбуке ASUS x54h. Тестирование проводилось в x1 и x3 разрешении, потому что экран ноутбука в три раза больше, чем у PSP (1280х720 у ASUS против 470x272 у PSP). На ноутбуке установлен свежий Q4OS, основанный на Debian 13. Windows не будет по разным причинам, поэтому тестирование игр PSP проходило только на Linux. Я использовал DualShock 4 по проводу, так как ноутбук-сабж не поддерживает Bluetooth, а USB-портов в нём только два.

( читать дальше... )

ConLenov
()

Обновлённое рабочее место

 , ,

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

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

( читать дальше... )

Chiffchaff
()

VMware из 2000 года в современных реалиях

 , ,

Собственно, запустил VMware из 2000-го года на QEMU 10.0 во вложенной виртуализации.

Большинство современных linux’ов в ней не запускается (в лучшем случае ядро уходит в панику с ошибкой «fatal exception in interrupt», ну или же появляется ошибка о том, что процессор остановлен со стороны гостевой ОС).

Также, виртуальная машина, в которой всё это запущено, может в любой момент зависнуть с ошибкой «internal error». В логах QEMU при этом:

( читать дальше... )

Ещё, почему-то, Windows 98 ведёт себя очень странно, если установить её в данную версию VMware на данном дистрибутиве. (Хотя, здесь был опыт запуска Windows 98 в VMware).

Cкриншот с багом данной VMware прилагается.

Всё это дело работает на Mandrake Linux 8.2. На виртуалке, на которой всё это запущено – Alpine Linux 3.22.
А на хосте – Devuan 5 Daedalus.

ne-vlezay
()

RSS подписка на новые темы