LINUX.ORG.RU

Сообщения wandrien

 

Пропатченный GVFS

Сегодня мне вдруг надоело мозолить глаза о неинформативные названия томов файловой системы, которые отображаются в боковой панели файловых менеджеров и в диалогах «Открыть/Сохранить». И я решил докопаться до кода, который эти имена выводит:

  • Прикладным интерфейсом, через который приложения получают эти имена, является библиотека GIO.
  • Непосредственно перечислением устройств, монтированием, размонтированием и т.п. занимается демон udisksd из пакета udisks2. Прикладной код с ним может общаться через dbus.
  • Промежуточным звеном, которое от учётной записи пользователя общается с udisks2 и предоставляет информацию для интерфейса gio, является gvfs. Точнее, один из нескольких специализированных демонов в составе этого пакета.

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

Результат вы видите на изображении - Было/Стало:

  • Больше не отображается бесполезных надписей «Том XXX ГБ» («XXX GB Volume» в английской локализации).
  • Для всех томов отображается название устройства в каталоге /dev, метка и размер.
  • У всех LVM-томов будут вменяемые имена, а не просто dm-1, dm-2…
  • Список томов сортируется по названию устройства. Так что все sda* будут раньше всех sdb* и так далее.

Так как патч действует на уровне демона платформы, он действует на любые приложения, использующие API gio. Как минимум, это:

  • большинство файловых менеджеров на GTK, таких как thunar, caja, pcmanfm и т.п.;
  • диалоги «Открыть/Сохранить» в приложениях на gtk.
  • диалоги «Открыть/Сохранить» в приложениях на qt, когда включена интеграция с платформой gtk.

Ссылки:

>>> Просмотр (1045x1768, 194 Kb)

 , , , ,

wandrien
()

Arch Linux Live-USB

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

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

Операционная система установлена на флешке Sandisk Ultra Flair объёмом 32 ГБ. В таком виде живёт уже около трёх лет, полёт нормальный. Используется эпизодически на самых разных железках.

В данный момент ОС запущена на Samsung NP300E5Z с процессором Intel Celeron B800 (2 ядра, 1.5 ГГц) и 8 ГБ DDR3 1333 МГц.

В качестве основной ОС использована Arch Linux. Сначала стояла только она одна, потом при помощи Bedrock Linux была преобразована в микс из трёх ОС. Bedrock Linux - это прослойка, позволяющая почти прозрачно миксовать софт из разных дистрибутивов Линукса, установленных в разные префиксы. Например, вы можете использовать для загрузки ядро от одного дистрибутива, инит и системные службы от второго, а прикладные программы - от третьего. Разумеется, не всякое сочетание компонент работает безглючно или вообще работает. Но гибкость достаточно большая.

На уровне so-файлов установленные дистрибутивы никак не смешиваются, каждый бинарник видит только динамические библиотеки от своего дистрибутива.

В дополнение к Арчу сюда были добавлены Debian 12 и Alpine. Чисто из любопытства, чтобы посмотреть, как это работает, ну и чтобы был Debian под рукой, если что-то пойдёт не так. В Debian установлен самый минимум консольного софта + XFCE.

Весь основной софт стоит под Арчем. Софт преимущественно на gtk2 и gtk3. Из софта на Qt - только qBitTorrent. Из относительно крупных программ сюда поместились Libre Office, Firefox, SeaMonkey. Остальное мелкое, но его много.

Арч обновляю нерегулярно, иногда по 3-4 месяца без обновлений. Как и со всеми прочими моими установками Арча, никаких проблем с обновлениями, о которых рассказывают древние городские легенды родом из 00-х, тут нет.

Флешка в основном используется для несложной работы с документами, работы онлайн, а также как аварийно-спасательная система, если где-либо слетела или отсутствует ОС.

Занимает всё вот столько, нужно еще вычесть отсюда 4 ГБ, которые занимает хомяк:

df -h /
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sdb3           28G          19G  8,3G           69% /

Подробнее про конфигурацию.

Чтобы система могла запуститься на разном железе без пересборки initramfs, нужно внести правки в файл /etc/mkinitcpio.conf. Из переменной HOOKS нужно убрать autodetect и добавить нужное по необходимости:

HOOKS="base udev modconf block lvm2 filesystems keyboard"

Теперь хуки для mkinitcpio будут собирать универсальную initramfs, схожую с той, что используется в iso-образе с установщиком системы. А не урезаную версию, которая может загрузиться только на данном конкретном железе.

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

Вот размеры универсального образа:

$ du -h /boot/initramfs*
38M	/boot/initramfs-linux-fallback.img
38M	/boot/initramfs-linux.img
36M	/boot/initramfs-linux-lts-fallback.img
36M	/boot/initramfs-linux-lts.img
39M	/boot/initramfs-linux-zen-fallback.img
39M	/boot/initramfs-linux-zen.img

Проблема, связанная с легендарным 12309. Нужно ограничить размер окна отложеной записи в страничном кэше. Это необходимо, чтобы ОС не вставала колом при интенсивных операциях ввода-вывода на медленных накопителях, таких как флешки. Делается вот так:

$ cat /etc/sysctl.d/99-my-sysctl.conf 
vm.dirty_bytes = 4000000
vm.dirty_background_bytes = 2000000

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

Так как система предназначена для запуска «где придётся», в том числе на системах с ограниченным объёмом ОЗУ, то настраиваем своп в ZRAM. Это позволит более-менее нормально пользоваться браузером на системах с 2-3 гигабайтами ОЗУ.

Проще всего это сделать установкой пакета systemd-swap из AUR. Вопреки названию, он не имеет никакого отношений к разработчикам systemd, да и к самому systemd практически никакого отношения не имеет. Это довольно простой скрипт на питоне, который настраивает устройства подкачки по конфигу.

В конфиге /etc/systemd/swap.conf настраиваем ZRAM. В моём случае под сжатый своп может использоваться до половины ОЗУ:

$ grep '^[^#]' /etc/systemd/swap.conf
zram_enabled=1
zram_size=$(( RAM_SIZE / 2 ))
zram_count=${NCPU}
zram_streams=${NCPU}
zram_alg=zstd
zram_prio=32767

Также из AUR я поставил пакет preload.

preload is an adaptive readahead daemon. It monitors applications that users run, and by analyzing this data, predicts what applications users might run, and fetches those binaries and their dependencies into memory for faster startup times.

Ну типа вы поняли, мне лень переводить.

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

Установлено несколько DKMS-модулей с дополнительными драйверами, которых нет в базовой поставке. В моём случае это драйвера на WiFi от Broadcom и на RTL8188eus. Есть в AUR.

В качестве оболочки у меня используется мой форк LXDE.

Внизу - панель waterline. На основной машине у меня она сконфигурирована в довольно уникальном варианте, не имитирующем никакой другой ОС. А тут я решил оставить её в стиле Windows-like.

Цветовое кодирование кнопок на панели в тон иконке приложения - обожаю эту фичу.

В трее с иконкой от parcellite - мой форк parcellite, в котором я выкинул половину кода, а оставшееся переписал так, чтобы оно работало без глюков.

Н/Д рядом с часами - это индикатор заряда батерии, а батареи в ноутбуке не установлено. Подумал вот сейчас, надо бы как-то чуть более очевидно это подписывать.

Иконка дома открывает рекурсивное меню с содержимым хомяка, откуда можно открывать файлы.

WM - openbox с околодефолтным конфигом.

В общем, всё довольно стандартно.

Потребление ОЗУ системой после логина на рабочий стол - около 400 МБ.

>>> Просмотр (1366x768, 165 Kb)

 , , , ,

wandrien
()

Сборка XFCE GTK2 на свежем Арче для древнего ноутбука

В продолжение предыдущей темы: Acer Extensa 4220. Еще в строю. Железо то же, ОС та же. На этот раз ОС поставлена на родной 80-гиговый HDD. Который работает на удивление тихо, кстати. Не слышно гула и щелчков, в отличие от более нового 1-терабайтного HDD в ноуте, что стоит рядом на столе.

Я решил выяснить, насколько сложно будет собрать GTK2-версию XFCE на свежем Арче. В AUR нашлась бОльшая часть пакетов. Но некоторых зависимостей не хватало. Я добавил нужное и внёс некоторые правки в имеющееся. Залил сюда: https://github.com/sde-gui/PKGBUILDs-xfce4-gtk2

Кому надо, пользуйтесь, репортите баги и отправляйте пул-реквесты. В AUR запиливать откровенно лень. Это всё еще не максимальный комплект того, что входит в XFCE со всеми допами. Если что-то нужно добавить в сборку, пишите.

На скриншоте видно потребление памяти. XFCE ест больше, чем LXDE/SDE. Для сравнения потребление под SDE: https://ibb.co/HYmnm9r

Еще раз проговорю некоторые моменты относительно потребления памяти и использования Арча на старых машинах:

  • Я не проводил никаких оптимизаций и специальных настроек системы. Это Арч как есть + куча разного софта, установленного за годы на исходной машине, откуда он был скопирован (что-то я почистил, но далеко не всё). Задача данной серии экспериментов - посмотреть, насколько пригоден ванильный Арч без тюнинга для работы на Core 2 Duo. Получается, что абсолютно пригоден.
  • Это 64-битная ОС. На системах с < 4 ГБ ОЗУ имеет смысл поставить Arch Linux 32, так что потребление памяти еще снизится.
  • ОС запущена в контейнере Bedrock-а, и там работают демоны Bedrock-а. Это тоже дополнительные расходы.

И немного личных выводов:

Половину дня провёл за этим ноутом, слушал музыку с ютуба, открывал кучу вкладок с разных сайтов. Правил файлы, работал с git и компилировал пакеты. Производительности машины в целом хватает, но запас по ОЗУ не очень большой. Компиляция кода на Си упирается не столько в CPU, сколько в IO на HDD. Вот если SSD поставлю, там уже в CPU упрусь. GUI не тормозит, работает отзывчиво. Памяти на какой-то из линковок потребовалось много, и около гига улетело в своп. В общем, 3 гига пока всё еще нормально для задач печатной машинки и веб-терминала. Думаю, на 2-х было бы уже сложновато.

P.S. Hobbit, верни тег gtk2 в БД!!!

>>> Просмотр (1280x800, 392 Kb)

 , , , ,

wandrien
()

Acer Extensa 4220. Еще в строю

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

На HDD там установлена старая версия Void Linux, которую вряд ли получится без бубна обновить до актуального состояния. Ядро, вроде как, 4.19, и в видеодрайвере там есть баг — при переключении видеорежимов система фризится секунд на 30-40.

Поэтому грузимся с флешки. А на флешке стоит Arch Linux, обёрнутый в Bedrock. Без каких-либо оптимизаций под старое железо и прочих уловок. Обычный актуальный Арч.

Внезапно. Всё работает. Firefox воспроизводит музло с ютуба, LO Writer открывает документы. И даже ушла бага с фризом на переключении видеорежимов.

О системе:

Ядро 6.3.2 в пачсетом zen. Настроен swap в ZRAM. В качестве DE - стек программ на gtk2: LXDE + моя SDE. Терминал — Lilyterm. Параллельно в Бедроке установлен Debian Bookworm с XFCE. Просто чтобы был. Всё это стоит на флешке SanDisk Ultra Flair, которую я таскаю с собой в качестве переносной офисной системы.

О железке:

Экран: 14.1', 1280x800
Чипсет: GL960, Socket P
Процессор:
    Заводской: Intel Celeron 550 @ 2.00GHz; 1 core; Mark 514/626
    Текущий:   Intel Core 2 Duo T6570 @ 2.10GHz; 2 cores; Mark 1254/820
Память:
    Тип: 2 x DDR2 533/667/800* MHz; 3GB Max (2GB в верхний слот + 1GB в нижний слот)
    Заводская: 512MB 667 MHz
    Текущая:   2GB + 1GB 800 MHz (работает на 667 MHz; почему?)

Этот чипсет официально поддерживает только 2 гига. Но может работать и с тремя, если сувать двухгиговую планку в нужный слот. На 4-х уже никак не заводится, что-то там в диапазоне адресов с чем-то конфликтует.

CPU по нынешним меркам дрова полнейшие, так же как и пропуская способность ОЗУ. Честно сказать, я ожидал слайдшоу везде и невозможность пользоваться интернетом в актуальной версии браузера. Но ноутбук 2008-го года выпуска всё еще пригоден для современной ОС и современного веба.

Обвес машинки такой, что на боковых стенках почти нет пустого места: https://www.notebook-center.ru/catalog_acer_1684.html. Теперь так не делают. (На самом деле делают, но где-то 1 модель из сотни.)

>>> Просмотр (1240x930, 185 Kb)

 , , , ,

wandrien
()

Выживание на Lubuntu 10.04 в 2023 году

Ну что, пришло время накатить. Накатить Ubuntu 10.04, господа.

Вспомнив глюки панели в GNOME 2.30, которые меня в то время бесили (виджеты время от времени съезжают со своих мест, и панель превращается в беспорядочное нагромождение иконок), в качестве отправной точки я выбрал не ванильный установочный образ Убунты, а Lubuntu. LXDE в Lubuntu 10.04 однако тоже не сахар, версия 0.5.0 очень древняя и куцая, не умеет практически ничего. А то, что умеет — то не работает.

  1. Скачиваем установочный образ. Устанавливаем в виртуалку. Устанавливается система быстро и без заморочек.

  2. При установке система делала вид, что проверяет обновления, на самом деле она ничего не проверила, так как адреса репозиториев протухли. Так что в первую очередь нужно восстановить доступ к репозиториям. В файле /etc/apt/sources.list надо заменить домен archive.ubuntu.com на old-releases.ubuntu.com.

  3. apt-get update && apt-get upgrade. Будет установлено несколько сотен мегабайт обновлений. Перезагружаемся.

  4. Раскладка в иксах настраивается как-то так: setxkbmap -model pc104 -layout 'us(basic),ru:2' -option grp:shift_caps_switch. Я это пишу на случай, если кто-то пойдёт по моим стопам и обнаружит, что через GUI тут раскладку не настроить. Да, LXDE настолько куцая. Поэтому сразу фигачим файл в автозагрузку:

[Desktop Entry]
Type=Application
Exec=setxkbmap -model pc104 -layout  'us(basic),ru:2' -option grp:shift_caps_switch
Hidden=false
Name=setxkbmap
  1. Индикатор переключения раскладки в LXDE — да, но нет. Он как бы есть, но как бы в большей части случаев бесполезен. Он не отслеживает момент, когда setxkbmap загрузила новые параметры раскладки. И поэтому вместо надписи RU показывает пустое место. А иногда показывает как надо. Прокачивайте удачу.

  2. Дальше возникла задача сменить разрешение экрана. Я запускал систему в виртуалке, и иксы по умолчанию автодетектировали разрешение 800x600. В lxrand сменить разрешение можно, но эта версия еще не умеет запоминать настройки и восстанавливать их при входе в сеанс. Поэтому фигачим еще один файл в автозагрузку:

[Desktop Entry]
Type=Application
Exec=xrandr --size 1280x1024
Hidden=false
Name=xrandr
  1. После этого вылазит 2 новые проблемы. Первая — pcmanfm не умеет реагировать на изменение разрешения. Поэтому он занимает собой только кусок рабочего стола 800x600. Вторая — приложения теперь работают с неправильным DPI:
$ xdpyinfo | grep -B1 resol
  dimensions:    1280x1024 pixels (212x159 millimeters)
  resolution:    153x164 dots per inch

На скриншоте обе проблемы: ссылка.

На попытку выставить DPI через xrandr приложения почему-то не реагируют. Поэтому пишем в ~/.Xresources:

Xft.dpi: 96

Ну а глюк с рабочим столом я подпирать костылём не буду вообще. Скоро этот pcmanfm сменится на другой.

  1. После обновления версия Хромиума – 25.0.1364.160. Не то что б это сильно помогло в показе современного веба. В gmail и google-диск не зайти. Хостинги картинок не работают. С горем пополам он может отобразить ЛОР: ссылка. Но зато этот синий заголовок и вменяемые симпатичные вкладки! Ностальгия…

  2. Поддержка запуска консольных программ в меню приложений тоже да, но нет. При попытке запустить htop из списка приложений окно терминала не появляется.

  3. Запуск системы в виртуалке — мгновенный. (CPU хоста - Core i5-2450m.) После входа в графический сеанс — потребление памяти 62 МБ. Версии софта тут такие: Linux 2.6.32, glibc 2.11.1, gcc 4.4.3, glib2 2.24, gtk2 2.20.0.

На этом пока всё. В следущей серии сериала мы будем пытаться собирать под это дело относительно свежий прикладной софт.

>>> Просмотр (1280x1024, 246 Kb)

 , , ,

wandrien
()

PC-MOS/386

Привет! Это черновик заметки, которая должна была быть опубликована в моём блоге. Но так как блог сейчас сломан, я решил опубликовать её здесь. Кто-то недавно жаловался, что на ЛОРе недостаточно ХАБРа? Ну вот вам пост в стиле хабра. Поехали.

PC-MOS/386 — это многопользовательская и многозадачная операционная система, совместимая с MS-DOS 5. Разрабатывалась компанией The Software Link до 1987-го года.

Операционная система использует защищенный режим 386 для изоляции виртуальных машин с приложениями MS-DOS. Поэтому большинство программ, использующих только документированные API MS-DOS, должны работать без проблем.

В 2017-м году исходный код был перелицензирован под GPL3 и выложен на гитхаб. Кроме исходников, репозиторий содержит образы официальных установочных дисков и сканы оригинальной документации в PDF. Также там была исправлена проблема в обработке даты модификации файлов, которая не давала открыть файлы, созданные после 2012-09-01.

Так что теперь можно вполне законно и не нарушив ни одной EULA запустить эту самобытную ОС в виртуалке или даже на реальном железе.

Я немного погонял её в qemu, и пока вопросов у меня больше, чем ответов. Почитать официальный мануал (довольно длинный и в плохом качестве скана) пока времени не было, так всё методом тыка.

Многозадачность

Многозадачность реализована в виде отдельных контейнеров с приложениями. При запуске системы пользователь попадает в первый контейнер, в котором запущена оболочка COMMAND.COM. Далее командой ADDTASK можно добавить другие задачи, в которых по умолчанию также запускается оболочка COMMAND.COM. Для каждой задачи обязательно указывать количество памяти, которое будет выделено под задачу.

Командой SWITCH можно переключаться между задачами. В справке также были упомянуты хоткеи Alt + цифра для этой же цели, но у меня они не заработали.

Можно активировать TSR-программу MONITOR, после чего через Ctrl + Space можно вызывать интерактивное меню для переключения задач и создания новых.

Правда в каждой новой задаче эту команду нужно повторять заново, чтобы в этой задаче работал хоткей Ctrl + Space. Думаю, нужно команду MONITOR прописать в AUTOEXEC.BAT, чтобы она применялась автоматически.

Команды ОС

В этой ОС команды не отвечают на ключ /? и любые другие варианты справочных ключей, которые я пробовал. Вместо этого есть интерактивная справка по команде HELP. По виду и принципу работы напоминает справку из сред разработки QBasic и Turbo C. По команде HELP .КОМАНДА (с точкой перед командой) можно попасть сразу в нужный раздел справки. (А при чём тут точка, вы можете узнать, набрав HELP .DOT.)

Справочная информация довольно куцая, в основном перечисляет ключи команд. Например для команды ADDTASK не написано, что объем выделяемой памяти нужно вводить в килобайтах. Возможно, для пользователей системы тех лет это было очевидно, но всё же. Описания каких-то общих принципов, важных для понимания работы конкретно этого клона DOS, отсутствуют. Возможно, они есть в бумажном руководстве, которое я не читал.

В командной оболочке работают стрелки влево-вправо, Backspace и Delete. Клавишей Insert можно переключать режим ВСТАВКА/ЗАМЕНА, при этом меняется форма курсора. Режим ввода по умолчанию — ЗАМЕНА, что неудобно. Чтобы ВСТАВКА была по умолчанию, нужно в AUTOEXEC.BAT вписать команду INSERT.

Я также проверил все сочетания Ctrl + буква. Ожидаемо работают Ctrl + H как аналог Backspace и Ctrl + M как аналог Enter. Ctrl + C прерывает ввод текущей команды без выполнения. Остальные сочетания просто выводят на экран символы псевдографики.

Последовательное нажатие Esc + буква в командной оболочке выполняет ту же роль, что и Ctrl + буква, только еще и наводит беспорядок на экране при этом. Сочетания Alt + что угодно или Esc + что угодно, привычные миру Unix, тут , похоже, невозможны. (В других приложениях Esc работает как самостоятельный хоткей. Например в интерактивной справке закрывает текущий раздел справки.)

История команд доступна через стрелку вверх и вниз. Между сеансами история не сохраняется.

ED — простой редактор с двумя режимами: визуальным и командным. В визуальном режиме мало отличается от любого редактора любой ОС: стандартные клавиши навигации, режим вставки и замены, хоткеи на Ctrl + буква.

Переход в командный режим по Esc. Командный режим своей лаконичностью напомнил даже не редактор vi, а редактор в составе Basic из ZX Spectrum.

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

Команда ACU открывает интерактивное меню с настройками системы и встроенной справкой по каждому пункту через F1. Справка пытается быть информативной, но без мануала я всё равно не разобрался во всех настройках полностью. Выбранные настройки записываются в CONFIG.SYS.

Команды MOS и MOSADM позволяют просматривать и изменять различные параметры системы. Синтаксис команд использует подкоманды аналогично как в современных программах git, docker и т.п. Помню, что MS использовала такой же подход уже в NT-based системах для команд настройки сети, а вот были ли подобные команды с подкомандами в MS-DOS, не припомню.

Проблемы

Почему-то не работают стрелки на основном блоке клавиатуры. Стрелки на блоке NumLock работают, но пользоваться ими неудобно, так как в свою очередь на этом блоке не работает Enter. Возможно, это какая-то проблема совместимости с QEMU. Нужно будет попробовать в другой виртуалке.

Позже заметил, что кроме стрелок, такая же проблема с клавишами Insert и Delete. Они работают с Num-блока и неработают с основной части клавиатуры.

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

Упомянутые ALT + цифра для переключения между задачами не работают. Или я делаю что-то не так, или опять проблема с обработкой ввода, и система не распознаёт ALT.

Впрочем, все перечисленные проблемы и сложности могут быть связаны с тем, что я использовал версию, скачанную с какого-то сайта с коллекцией старых программ, а не чистую установку из официального образа.

Еще одна проблема — не столько даже проблема системы, сколько особенность эпохи. Ни одно из приложений системы не уводит процессор в сон между прерываниями даже когда ничего делать не нужно. (Уж хотя бы COMMAND.COM мог бы это делать по умолчанию.) Из-за этого одно ядро постоянно нагружено на 100%, и мой ноутбук показывает температуру 82 градуса. И поэтому все эксперименты с PC-MOS сопровождаются отчётливым звуком П-Ш-Ш-Ш-Ш из вентиляционной решетки.

Что дальше

Было бы интересно поэкспериментировать с этой системой, разобраться в документации и в её устройстве и, возможно, найти все куски тулчейна для сборки и покопаться в исходниках.

Учитывая, что GEM 3.13 теперь тоже опенсорсный, можно попробовать запустить на ней GUI.

Где-то мне попадалась подборка утилит наподобие grep для MS-DOS, которую было бы неплохо добавить.

Еще один интересный вопрос — установка на один раздел с FreeDOS в разные каталоги с возможностью выбора операционной системы при старте. (FreeDOS с большим уровнем совместимости с софтом или PS-MOS с меньшим уровнем совместимости, зато многозадачная.)

>>> Просмотр (724x453, 15 Kb)

 , , ,

wandrien
()

FOX Desktop (Ловите наркомана!)

Есть такой FOX Toolkit, очень давний кроссплатформенный тулкит на C++, который разрабатывается единственным разработчиком-энтузиастом. Тулкит не заброшен, хотя и не разрабатывается в активном темпе.

С самим тулкитом поставляются:

  • Файловый менеджер PathFinder.
  • Текстовый редактор Adie с простой подсветкой синтаксиса.
  • Инженерный калькулятор FOX Calculator.
  • Скриншотилка shutterbug. Вроде что особенного ждать от скриншотилки, но довольно удобная. Можно, например, с экрана анимацию записывать в gif.
  • И утилита ControlCenter, отвечающая за некоторые базовые настройки тулкита.

Есть еще двухпанельный ФМ XFE на этом тулките. Он укомплектован просмотрщиком изображений и еще одним простым редактором.

Раньше был еще проект fxdesktop — попытка сделать на этом тулките DE. Не знаю, насколько глобальные были планы у автора, но удалось сделать только часть базовых функций экранной панели, и проект был заброшен. Всё это умерло где-то к концу 00-х.

Еще есть fxprocessview — диспетчер процессов в полуработающем состоянии, тоже заброшен.

На самом деле я вспомнил о fxdesktop только потому, что у меня на машине остался неудаленный пакет с ним еще со времен до миграции с 32-битного на 64-битный Арч. (Я без переустановки ОС мигрировал; через принудительную переустановку всех системных пакетов.) Ну и тут я решил упороться, и понеслось…

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

Пока что было сделано:

У ControlCenter исправил цветовую схему, чтобы она точно имитировала цвета Windows. Потом на этом не остановился и запилил все варианты:

  • Redmond 95 (цветовая схема Windows 95, 98)
  • Redmond 2000 (цветовая схема Windows ME, 2000, а также классических стилей XP и 7)
  • Redmond XP (эта цветовая схема соответствует той, какую выбирает XP-ха, когда в ней настроена Luna, а приложение умеет только в классику.)
  • Redmond XP Olive, Redmond XP Silver (аналогично для этих вариантов оформления)
  • Redmond 7 (аналогично — если в семерке настроена Аэро, а приложение умеет только в классику, то семерка ставит такой набор цветов — вот его и имитируем)

Следом добавил цветовые схемы для классических стилей gtk2: Raleigh, Crux, Clearlooks, Industrial, ThinIce. То есть в сами эти стили FOX, разумеется, не умеет. Но при выборе соответствующих цветовых схем он, по крайней мере, использует такие же опорные цвета для окон и текста. Для Adwaita тоже добавил.

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

Кстати говоря, бесполезный факт, но внешний вид элементов управления практически с попиксельной точностью воспроизводит классическую Windows. Так вот по скрину окна (без рамок openbox-а) даже не знаю, можно ли отличить от Винды. Например, стиль Redmond в gtk2 сразу палится, что не винда — он совсем не pixel perfect.

Дальше я поржал с русской локализации XFE с опечатками типа «Измененять» и «Сравнитель файлов» и сел её править. Потом уперся в то, что часть бреда исправить не могу, потому что бред также в английском оригинале. (Разработчик из Франции, возможно, в этом дело.) Тут нужно будет писать письма в апстрим, ладно, это потом…

Ну и наконец я взялся за fxdesktop. Сам код компилируется без проблем спустя 10+ лет, пришлось только кривой configure-скрипт переписать. На скриншоте видно рабочий стол (оранжевый фон без ничего) и панель вверху — это всё, что есть в этой программе. Иконки на рабочем столе программа рисовать не умеет, но умеет меню по ПКМ, где планировалось что-то полезное, но почти ничего нет. На панели слева направо видно:

  • Кнопка вызова меню приложений. Не работает. С современной организацией меню приложений не пашет.
  • Кнопка «Свернуть все окна». На сворачивание работает. На разворачивание обратно ­— нет.
  • 4 кнопки-лаунчера. Вот над лаунчером сейчас работаю. Научил его отображать иконку каталога, если лаунчер ведет на каталог. Научил отображать специальные иконку каталогов, если лаунчер ведет на специальный каталог (HOME, XDG_DESKTOP_DIR, XDG_DOCUMENTS_DIR, XDG_DOWNLOAD_DIR и т.п.). Научил лаунчер распознавать и подставлять соответствующие специальные переменные окружения в путях. Научил примитивной логике загрузки иконок по имени. Пока без полной поддержки тем иконок.
  • Переключатель рабочих столов. Работает.
  • Шестеренка — выпадающее меню со списком открытых окон. Работает.
  • Часы. Работают, никаких настроек формата времени не имеют.
  • Сама панель должна быть гибко конфигурируемой (в плане добавления/удаления виджетов), но это недоделано.

Что еще видно на скриншоте. «FOX Desktop Setup» — это утилита ControlCenter. А «FOX Desktop Settings» — это настройки самого fxdesktop. Надо их какое-то более очевидно переименовать, что ли. Для скриншота открыл калькулятор и PathFinder. Текстовый редактор в композицию на мой монитор уже не влез.

PathFinder вот так по хардкору имитирует иконки то ли от 95-й винды, то ли вообще от 3.11-й. XFE пытается выглядеть чуть современнее и в свежем релизе даже обещали поддержку HiDPI.

Это никакое не DE, разумеется. Но некий смысл в этом сборнике недописанных программ всё же есть. Во-первых, их интересно дописывать. :D Во-вторых, на старом компе это должно летать. Кто-то тут у нас коллекционировал старые пни и всё такое?..

P.S. Дорогой движок форума, да какие я метки сюда поставлю? Тега «fox toolkit» у тебя, к сожалению, нет, а добавить его мне число звезд не даёт. Тега «практическая некромантия» тоже не подвезли.

>>> Просмотр (1280x1024, 210 Kb)

 , , ,

wandrien
()

Безмятежность

Эти вечные вопросы, что тревожат умы… Что ставить? GNOME, KDE или Xfce? А может Mate или Cinnamon? И в каком дистрибутиве лучше готовят KDE? И что делать, когда что-нибудь отваливается? Не было печали — апдетов накачали…

Мой лаптоп под управлением Arch Linux обитает вдали от этих бурь. При обновлениях системы ничего не отваливается уже очень давно. А когда отваливалось, то чинилось элементарно.

Недавно пытался вспомнить, сколько лет я пользуюсь этой копией установленной системы. Так и не вспомнил точно. По одним прикидкам получается 9 лет, по другим больше 10-ти. И ни разу за эти годы система не была в состоянии «не загружается» или «не логинится». Хотя отдельные косяки, разумеется, случались.

При этом я наживую, без переустановок, мигрировал с 32 бита на 64, с grub-legacy на grub2, со скриптов на systemd. Два раза переносил запущенную систему с одного накопителя на другой. Не обновлялся по 8 месяцев, игнорируя городские легенды, что Арч не любит долгих пауз в обновлениях. И ставил кучу программ из AUR, которые согласно тем же легендам должны было непременно угробить систему.

Так что на основе многолетнего опыта эксплуатации могу сказать уверенно, что чтобы развалить Арч нужно иметь исключительно кривые лапки.

Ну а DE… А что DE?… Она не ломается, если её нет.

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

Да, я так и не сделал релиза SDE. Не реализовал половину запланированных фич. И не добавил половину программ, которые должны быть в составе оболочки рабочего стола.

Но использование этого компьютера настолько не вызывает тревог, что у меня практически не было стимула что-то доделывать. Все предыдущие 5 лет я уделял много внимания чему угодно, только не проекту SDE, потому что я практически не вспоминаю о его существовании: он просто работает, выполняет свои функции, просто не мешает мне заниматься на компьютере своими делами.

На скриншоте:

Панель виджетов waterline. Сбоку настроена классическая панель задач с часами, треем, регулятором громкости и т.п. Свёрнутые окна рисуются затенёнными иконками. Также можно включить показ реального изображения окна вместо иконок. Снизу меню приложений, меню доступа к каталогам, переключатель воркспейсов и плагин multiload. В правом верхнем углу напоминание о memento mori. Убавляется каждый день. Просто напоминает, что мои шансы увидеть там «0» очень невелики. Оно реализовано shell-скриптом, потому что на панели можно создавать виджеты, управляемые внешней программой.

На рабочем столе два линка на списки дел. Больше ничего на рабочем столе обычно не держу. Если же всё-таки кладу туда что-то, то специально, чтобы оно было на глазах – чтобы не забыть. Рабочий стол управляется программой stuurman-desktop. Двойным щелчком по рабочему столу можно скрыть или показать иконки. Обои меняются в случайном порядке скриптом каждые две минуты.

В трее менеджер буфера обмена rainbow-cm. Это бывший Parcellite, из которого выкинуто процентов 60 кода, а оставшийся переписан так, чтобы всё-таки работать.

Окнами управляет openbox. Тема оформления для него составлена вручную. Всё управление окнами на хоткеях.

За глобальные хоткеи (не относящиеся к openbox) отвечает xbindkeys.

За кадром остался lilyterm — лучший из всего семейства эмуляторов терминала на базе библиотеки vte. И классика — urxvt, который я недавно наконец-то настроил, и он оказался хорош.

Запуск сеанса обеспечивается старой версией lxsession, когда её еще не успели переписать на vala. Всё никак не найду времени форкнуть её и добавить немного нужных мне фич. Видимо, не слишком они и нужны.

Больше скриншотов:

  • https://ibb.co/yBBjMvy — меню приложений классическое, по категориям.
  • https://ibb.co/tpP6cyH — рекурсивное меню каталогов и файлов, быстрый доступ ко всему нужному. Можно сразу открыть терминал в каталоге проекта и начать работу. Или открыть файловый менеджер в каталоге. Или сразу открыть файл.
  • https://ibb.co/BPqmbft — текстовый редактор qk, форк medit. Мой основной редактор.
  • https://ibb.co/cFdTykT — это редактор SynWrite, который разрабатывался by @Alexey_Tor. Редактор под оффтопик. Но прекрасно работает под wine. Поставил в качестве эксперимента. И в целом, да. Ведь почему бы и нет: если под Windows разработан софт под свободными лицензиями, то почему бы им не пользоваться?

>>> Просмотр (1366x768, 1183 Kb)

 , , , ,

wandrien
()

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