Знакомые с моим блогом знают, что в последнее время я использую MX Linux в качестве основной операционной системы, как в любом другом линуксе, мне пришлось исправлять огромное множество проблем, просто чтобы дистрибутивом можно было хоть как-то пользоваться, и к текущему моменту многое уже исправлено, а значит пришло время закрепить труды создав свой дистрибутив Linux.
За основу возьму MX Linux 23.1 x64 AHS, то есть с более свежим ядром, чем в обычных версиях дистрибутива, которое поддерживает более новые компьютерные комплектующие, чем более старое ядро... И зачем это объясняю, даже не знаю:
Работать над дистрибутивом буду в виртуальной машине, просто потому что при любой ошибке можно будет всё легко вернуть в зад, а с линуксами ошибка может выпрыгнуть вообще из ниоткуда:
С чего же начать? Пожалуй начну с загрузки зависимостей, чтобы пользователям не приходилось постоянно танцевать с бубном вокруг косяков связанных с отсутствующими зависимостями, в первую очередь решу проблему запуска 32 битного софта:
Это довольно скучный процесс, потому не буду сильно заострять внимание, просто скачиваю библиотеки, которые точно нужны для нормального использования системы исходя из личного опыта, обычные пользователи и понятия не имеют что и как качать, именно потому эту всю линуксоидную работу делаю я, тем более сам буду пользоваться этим дистрибутивом, а я очень не люблю, когда начинается пердолинг по вине отсутствующих базовых библиотек в дистрибутиве:
Итого получилось чуть больше 600 МиБ пакетов для установки, но часть из них будет сокращена, ведь каждый пакет с зависимостями загружался по отдельности, там наверняка есть повторяющиеся зависимости, сейчас просто разложил всё по своим местам:
Эти все загруженные пакеты отложу в сторонку, они прямо сейчас не нужны, ибо есть более важная задача... Нужно сделать нескучные обои! Следовало поубавить максимальную экспозицию во время фотографирования, ну да ладно, и так понятно что обои будут нескучные:
Дальше нужно найти замену для жуткого стандартного диспетчера задач:
Сначала хотел скачать "Mission Center", выглядит хорошо, функционал на месте, почему бы не установить именно его?
Но есть проблема, у этого диспетчера задач нет адекватного установочного файла, только отвратительный репозиторий Flatpak, из которого невозможно скачать по-человечески автономный установочный пакет... Ну и конечно есть ещё исходный код, мол берите, компилируйте:
Само собой я решил скомпилировать, собрал всё необходимое для компиляции в своём дистрибутиве, словил охапку проблем с зависимостями, так как скачивал всё необходимое в виртуальной машине с MX Linux 23.1, а устанавливать пытался в MX Linux 23, в итоге пришлось немного переделывать всё, ад зависимостей, классика линуксов:
В общем всё дерьмо собрано воедино, прямо как завещали документации, но при попытке скомпилировать приложение внезапно начали насасываться какие-то зависимости из интернета, да, просто скачать исходный код и по-человечески скомпилировать невозможно, помимо мегатонны зависимостей ранее загруженных, скрипты качают дополнительные зависимости из интернета во время компиляции, короче про компиляцию в автономном режиме вообще можно забыть:
Ну ладно, насосало оно зависимостей, начало компилировать, думаете всё прошло гладко? А хрен там плавал, сначала понос предупреждений, а после и ошибок, наверное каких-то зависимостей не хватает, или неправильные зависимости, а какие именно хрен знает, или сами исходники приложения кривые, короче берите бубен в руки и гадайте, это вам не Windows, где каждую ошибку давно обсосали со всех сторон, нет, это линуксы, а в линуксах принято страдать на ровном месте при попытке что-либо сделать:
Я несколько раз перепроверил все необходимые для компиляции зависимости указанные разработчиками, но у меня всё установлено, в общем пошёл он лесом этот линуксоидный кривой софт:
В итоге мой взор пал на действительно адекватный диспетчер задач, называется System Monitoring Center:
https://github.com/hakandundar34coding/system-monitoring-center
Именно его и сделаю стандартным диспетчером задач в своём дистрибутиве:
Так, что дальше...
Правильно, нужно накопленные пакеты в одну папку сбросить, но устанавливать сейчас не буду:
Мало просто взять, и набросать пакетов в дистрибутив, кому сдался обвешанный пакетами дистрибутив, если у него интерфейс как говно мамонта кривой? Да и планировщик заданий нужно почистить от мусора, что без разрешения пользователя проверяет "обновления":
Короче начинаем с нуля, так как я наверняка буду отвлекаться в процессе установки дистрибутива, сразу же настраиваю и закрываю MX Updater, ибо в настройках нельзя полностью отказаться от проверки обновлений... А после вовсе блокирую дистрибутиву доступ к интернету, ведь закладки в планировщике задач никто не отменял, спустя некоторое время они сработают, и дистрибутив благополучно начнёт насасывать списки репозиториев без моего разрешения, а оно мне не надо, и даже вредно для системы в целом:
В общем устанавливаю дистрибутив с нуля, чтобы максимально чистый был, это важно, ну и выключаю после завершения установки:
Для чего столько сложностей? Достаточно ведь просто набросать всякого в систему, кое-как накрутить всяких настроек и собрать установочный образ! Но что если что-то пойдёт не так? Правильно, тогда не смогу откатить всё в зад, потому делаю точку отката для виртуальной машины:
На этом постараюсь поубавить подробности, не хотелось бы разбивать статью на несколько частей, хотя кто знает...
Возвращаемся к настройке системы, первым делом нужно поработать над панелью задач, ведь это одна из базовых вещей, с которой пользователь постоянно взаимодействует, и меня, как пользователя, очень напрягает странное "нечто" вместо панели задач, исправляю:
На скриншотах выше не видно, но я так же заменил Docklike панель классическим вариантом с полноценными кнопками. Это вам не Windows, здесь док панель неуместна, как минимум потому что выглядит паршиво когда много запущенных приложений, да и понять какой значок за что отвечает весьма проблематично при стандартной панели задач, скажите спасибо неполноценным исполняемым файлам в линуксах, которые не способны адекватно хранить иконки приложений в себе:
Угадайте, что за приложения под иконкой шестерёнки? Одно Krita, а второе я и сам уже не помню...
Идём дальше, в трёх разных местах настраиваю параметры автоматического отключения монитора и спящего режима при бездействии... Сначала отключаю затемнение экрана в настройках LightDM, потом отключаю затемнение экрана в параметрах электропитания, и там же отключаю спящий режим при бездействии, после отключаю "хранитель экрана", просто чтобы лишних проблем не возникало, если пользователю надо - пусть сам включит:
Единственное, что я не отключал, это выключение монитора спустя 15 минут бездействия, ибо это действительно полезный функционал, и обычно не приводит к разнообразным проблемам на ровном месте... Теперь можно спокойно оставить виртуальную машину и не бояться того, что дистрибутив сам себя поломает перейдя в спящий режим, хотя именно за MX Linux такого лютого косяка вроде не замечал.
Теперь рабочий стол, убираю здоровенные часы с рабочего стола, вывожу ярлыки проводника и корзины, настраиваю размер иконок, ибо они даже для разрешения 1024x768 неадекватно маленькие были, ковыряю настройки чтобы элементы рабочего стола открывались по двойному клику вместо одинарного, ибо большинство привыкло именно к двойному клику для открытия файлов и папок, как и я сам...
Заодно исправляю формат времени в часах на панели задач, вроде вот мелочи, но именно из таких мелочей и получается удобство, либо сущий кошмар для пользователя, когда приходиться каждую такую загогулинку исправлять вручную:
Точно, раз уж взялся за настройку рабочего стола, значит пора установить нескучные обои:
Раз уж запустил проводник, значит и его нужно настроить, в обязательном порядке настраиваю открытие файлов и папок по двойному клику вместо одинарного, а так же исправляю поведение проводника при изменении прав доступа папкам, по умолчанию оно изменяет права только на папку, а должно изменять права как на папку, так и на всё что внутри, как минимум потому что это логично:
Аналогично настраиваю и проводник запущенный под учётной записью пользователя, ибо сейчас настроил только проводник для "root"...
Будет очень неприятно, если пользователь поменяет права доступа на папку, думая что меняет права и на всё что внутри папки, а на самом деле линукс поменял права только на папку, но не на содержимое внутри папки, а потом будет танцевать с бубном думая какого хрена происходит в вечно кривых линуксах...
Да, я не волшебник, и абсолютно все проблемы исправить никак не смогу, но настолько элементарные косяки мне под силу исправить, чтобы это не приходилось делать другим пользователям, да и мне самому когда переустановлю систему.
И ещё, не знаю почему это по умолчанию было отключено, но так же включил временные файлы при копировании, проще говоря, когда копируется файл, под него сразу выделяется место на диске, и только после завершения процесса копирования он переименовывается в копируемый файл, это позволяет избегать фрагментации файлов в файловой системе:
Ещё можно было включить проверку контрольной суммы файлов, если вдруг что-то скопировано с ошибками, то это сразу выявится, но такой функционал тратит много ресурсов и времени на проверку, потому включать нецелесообразно.
Так же необходимо ещё одну "мелочь" исправить, а именно формат даты в проводнике... Очень неприятно, когда вместо конкретной даты и времени в стандартном международном формате ISO8601 пишут "Today", это даже не столько неприятно, сколько бесит, ибо никто без необходимости обычно не смотрит на дату создания или модификации файла:
В целом проводник настроен, теперь им действительно можно пользоваться.
Эх, я думал в одну статью размещу процесс создания дистрибутива, но столько косяков нужно исправлять, что в одной статьи явно недостаточно... Хотя в этом есть и плюсы, так как работы над дистрибутивом ещё не завершены, адекватные люди всегда могут внести свои предложения по работе над дистрибутивом, чтобы сделать его не очередным линуксоидным мусором, а действительно адекватной операционной системой, которую можно сразу начать использовать без лишнего пердолинга по мелочам.
Наверняка я не всё смогу реализовать и исправить, чтобы дистрибутив был идеальным, нет, он не будет идеальным для всех, даже не мечтайте, особенно ярые приверженцы Linux привыкшие к вечно кривым линуксами, убедив себя в том, что проблем якобы нет.
На этом завершу данную часть.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.