Виджеты на рабочем столе
По умолчанию показаны большие часы и монитор процессора, памяти и диска. По правой кнопке добавляются календарь и записки, которые сохраняются обычным текстом по мере ввода.
Что входит в образ и почему именно это.
Ни у одной другой основы для Linux нет такого обширного репозитория и такой широкой поддержки оборудования. Один только пакет linux-firmware закрывает подавляющее большинство встречающихся адаптеров Wi-Fi и Bluetooth, видеокарт и чипсетов, а ubuntu-drivers-common как следует управляется с картами NVIDIA. Secure Boot работает сразу: подписанные shim и GRUB от Canonical лежат в репозитории, ядро тоже подписано. Вдобавок у самой основы двенадцать лет поддержки безопасности.
Рабочий стол — как раз та часть Ubuntu, которую стоило заменить: он тяжёлый, и в нём нет ни кнопки «Пуск», ни значков на рабочем столе, ни панели задач. В Cinnamon есть и то, и другое, и третье. Поэтому MoonLightOS начинает с минимальной основы и строит рабочий стол сам. Ни один компонент рабочего стола Ubuntu не устанавливается, и ничто из того, что видит пользователь, об основе не напоминает.
Одно оставлено как было намеренно: кодовое имя выпуска, которое видит apt, по-прежнему «resolute» — от него зависят PPA и всё, что обращается к lsb_release. То, что видят люди, берётся из /etc/os-release.
Одна панель внизу, высотой 52 пикселя. Слева — кнопка «Пуск» и поле поиска, в центре — запущенные приложения с самыми крупными значками на панели, справа — область состояния. В меню — ваша фотография, имя и отметка о том, можете ли вы управлять компьютером; поле поиска в нём находит приложения, параметры, файлы и результаты из интернета.
Одна панель внизу. В доке лежат и избранные приложения, так что второй ряд значков не нужен.
Тонкая полоса сверху — часы и значки состояния, внизу — док, который прячется сам.
Одна тонкая полоса сверху. Занимает меньше всего места на экране и меньше всего требует от старой графики.
Обе темы создаёт один скрипт из одной цветовой палитры — и для GTK 2, 3 и 4, и для оболочки Cinnamon, и для рамок окон. Темы GTK подключают Adwaita и меняют только её цвета, поэтому новые элементы интерфейса и исправления из апстрима появляются сами. Тема значков основана на Papirus: заменены лишь те значки, по которым узнаётся дистрибутив. Акцентный цвет меняется на странице «Рабочий стол и док».
По умолчанию светлая с 07:00, тёмная с 19:00. Небольшая фоновая служба следит, чтобы тема не отставала от расписания.
По умолчанию показаны большие часы и монитор процессора, памяти и диска. По правой кнопке добавляются календарь и записки, которые сохраняются обычным текстом по мере ввода.
Логотип стоит на месте, а свет вокруг него пульсирует. Два изображения гало с периодами 2,6 и 3,1 секунды постепенно расходятся по фазе, поэтому свечение никогда не выглядит механическим. Оба создаются из исходной графики при сборке, и тот же логотип с гало встречается в меню GRUB, на экране входа в систему, в установщике, на странице «О MoonLightOS» и в обзоре «Добро пожаловать».
Inter для интерфейса, JetBrains Mono для кода и Noto для всего остального, включая китайский, японский, корейский и цветные эмодзи.
Пять фотографических сюжетов — пингвин, озеро и серп луны — плюс сгенерированная пара «день и ночь». В выпуске по умолчанию стоит «Закат над озером».
Почти для всего в Windows и macOS приняты разные сочетания клавиш. Друг с другом они почти никогда не конфликтуют, поэтому MoonLightOS понимает и те и другие: за клавишей Super — привычки Windows, за Ctrl — привычки macOS.
| Действие | Как в Windows | Как в macOS |
|---|---|---|
| Открыть меню | Super | Super |
| Поиск | Super+Space | Super+Space |
| Файловый менеджер | Super+E | — |
| Заблокировать экран | Super+L | Ctrl+Super+Q |
| Показать рабочий стол | Super+D | Ctrl+Super+D |
| Окно на половину экрана | Super+Left / Right | — |
| Развернуть / восстановить | Super+Up / Super+Down | Alt+F10 / Alt+F5 |
| Свернуть | Super+H | Alt+F9 |
| Закрыть окно | Alt+F4 | Super+Q |
| Во весь экран | Super+F | Ctrl+Super+F |
| Переключение между окнами | Alt+Tab, Super+Tab | Alt+Tab |
| Следующее окно этой программы | Alt+` | Super+` |
| Все окна | Super+W | Ctrl+Up |
| Все рабочие столы | Super+S | Ctrl+Down |
| Сменить рабочий стол | Ctrl+Alt+Left / Right | Ctrl+Left / Right |
| Перенести окно на другой рабочий стол | Ctrl+Shift+Alt+Left / Right | Ctrl+Shift+Left / Right |
| Параметры | Super+I | Super+, |
| Системный монитор | Ctrl+Shift+Esc | — |
| Выполнить команду | Super+R, Alt+F2 | — |
| Терминал | Ctrl+Alt+T | Ctrl+Alt+T |
| Браузер | Super+B | Super+B |
| Калькулятор | Super+C | Super+C |
| Микшер и эквалайзер | Super+A | Super+A |
| История буфера обмена | Super+V | Super+V |
| Заметки | Super+N | Super+N |
| Преобразовать файлы | Super+Shift+C | Super+Shift+C |
| Снимок всего экрана | Shift+Super+3 | |
| Снимок области | Shift+Print | Shift+Super+4 |
| Снимок окна | Alt+Print | — |
| Панель снимков и записи | Ctrl+Shift+Print | Shift+Super+5 |
| Выйти из системы | Ctrl+Alt+Delete | — |
Если подвести указатель к левому верхнему углу, откроется обзор окон. Одна клавиша Super открывает меню, а Super+Space открывает его сразу с курсором в поле поиска.
Все три — apt, snap и Flatpak — установлены, и GNOME Software показывает их вместе: сначала snap, затем пакеты из репозитория Ubuntu, затем Flathub. Пакет .deb всегда самый экономный вариант, а Flathub закрывает всё остальное.
Само приложение Snap Store — это snap, зависимости которого занимают около гигабайта: слишком много для образа, рассчитанного на компьютеры с 2 ГБ оперативной памяти. Поэтому магазин приложений показывает и устанавливает snap-пакеты с первого запуска, а само приложение Snap Store догружает отдельная служба, как только появится соединение.
Страница параметров «Приложения» показывает, что установлено, из какого из трёх форматов пришло каждое приложение и не стоит ли что-нибудь дважды.
Подобраны так, чтобы обычный рабочий стол был готов к работе с первого запуска — даже без интернета.
Firefox (сборка Mozilla, с uBlock Origin в виде локального расширения, поэтому он доступен и без сети), Thunderbird, Geary, Transmission
LibreOffice Writer, Calc, Impress и Draw; Evince; текстовый редактор GNOME; Xournal++; PDF Arranger; MoonLight PDF; «Календарь»; «Часы»; «Погода»; «Карты»; «Калькулятор»
VLC; Celluloid; Rhythmbox; GStreamer с libav, наборами плагинов «bad» и «ugly» и VA-API, поэтому H.264, H.265 и AAC воспроизводятся в любой программе
GIMP; «Рисование»; Eye of GNOME; MoonLight Export; Simple Scan; просмотр шрифтов; «Снимок экрана»
GNOME Software; системный монитор; «Диски»; GParted; анализатор использования диска; Timeshift; Redshift; File Roller; Seahorse; Blueman; «Принтеры»; MoonLight Tweaks
NetworkManager с поддержкой OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH и встроенного WireGuard
Visual Studio Code; gcc, g++, make, gdb; git, git-lfs; cmake, meson, ninja; Python 3 с pip, venv, NumPy и OpenCV; Node.js и npm; Rust и Cargo; Go; OpenJDK 21 с Maven и Gradle; Docker Engine, Compose v2 и Buildx; SQLite
GNOME Terminal; bash, zsh и fish; tmux, screen; Neovim, nano; ripgrep, fd, jq, yq, htop, btop, ncdu, tree; nmap, dig, whois, traceroute, httpie, socat; rsync, rclone, aria2; shellcheck; inxi, fastfetch
Wine с поддержкой 32-битных программ, winetricks, DXVK (Direct3D с 9 по 11) и VKD3D (Direct3D 12)
Полный набор linux-firmware, микрокод Intel и AMD, а также fwupd для обновления прошивок.
Mesa с Vulkan, VA-API и VDPAU для Intel и AMD. Драйвер NVIDIA лежит на самом ISO, поэтому его можно включить на странице «Драйверы» даже без интернета.
Больше пятидесяти драйверов беспроводных адаптеров в ядре, плюс собранные через DKMS broadcom-sta и r8168 — для чипов, с которыми штатные драйверы справляются плохо.
CUPS с полным набором драйверов, печать в PDF, SANE и Simple Scan.
BlueZ, Blueman и кодеки Bluetooth из PipeWire, а страница параметров прямо говорит, если модуля Bluetooth в компьютере нет.
PipeWire с WirePlumber, совместимость с PulseAudio и встроенный десятиполосный эквалайзер.
power-profiles-daemon, thermald, заряд батареи в панели, включённые по умолчанию нажатие касанием и естественная прокрутка, поддержка устройств ввода Wacom и Synaptics.
В образ входят гостевые дополнения для VirtualBox, QEMU/SPICE и VMware, поэтому экран подстраивается под размер окна, а буфер обмена становится общим.
fprintd, libfprint и загрузчик TOD установлены и связаны с PAM. MoonLight Fingerprint определяет сенсор и проводит через регистрацию отпечатка.
Работает на OpenCV — на экране входа в систему, на заблокированном экране и в sudo. По умолчанию выключена, пока вы сами её не включите.
В установленной системе MoonLightOS всё перечисленное ниже включено по умолчанию.
Прошивка → shim от Canonical → подписанный GRUB → подписанное ядро. Включён ли он на вашем компьютере, видно в «Параметры» → «О MoonLightOS».
Шифрование всего диска LUKS2 — одна галочка в установщике.
ufw включён: входящие соединения блокируются, исходящие разрешены.
Принудительный режим, в том числе для snap-пакетов.
Из репозитория безопасности Ubuntu и с packages.mozilla.org, каждый день. Ненужные ядра и зависимости удаляются, а компьютер никогда не перезагружается сам.
Первая учётная запись управляет компьютером через sudo. Пароль root не задаётся никогда.
Не меньше восьми символов из двух разных групп. После восьми неверных попыток учётная запись блокируется на пятнадцать минут.
Ядро настроено так, чтобы программы без прав узнавали о системе и друг о друге как можно меньше: указатели ядра и сообщения загрузки скрыты, отладка чужого процесса запрещена, а подменить ядро во время работы нельзя. Сетевой стек усилен против подделанных маршрутов и шквала соединений, адреса IPv6 регулярно меняются.
FireWire и набор редко нужных модулей файловых систем и сетевых протоколов не могут загружаться автоматически, поэтому подключённое устройство или пришедший пакет не подтянут код, которым этот компьютер никогда не пользуется.
Идентификатор машины и ключи хоста SSH создаются на установленном компьютере. Если бы ключ хоста был один на все установки, проверять подлинность хоста было бы незачем.
Служб отправки отчётов об ошибках и статистики использования в образе нет. Телеметрия Firefox, исследования, Pocket и спонсируемое содержимое отключены политикой, а защита от слежения включена.
USBGuard установлен, поэтому устройство, подключённое при заблокированном экране, доверия не получает. По умолчанию выключен — включается одной кнопкой на странице «Безопасность».
Второй пароль, который делает что угодно, кроме входа в систему. В режиме стирания он уничтожает ключи LUKS на диске и выключает компьютер, в подставном режиме — открывает пустой сеанс и через пять минут его замораживает. По умолчанию отключён, для настройки нужен ваш настоящий пароль, и совпадать с ним он не может.
Предлагается на странице «Безопасность»: иначе любой, кто способен перезагрузить компьютер, поправит меню загрузки и получит оболочку root.
У каждой служебной программы MoonLight есть своё именованное действие polkit, поэтому в запросе пароля написано, на что именно вы соглашаетесь.
| Сжатая память (zram) | Половина оперативной памяти, но не больше 8 ГБ, сжатие zstd, приоритет 100. На страницах памяти рабочего стола сжатие выходит около 3:1. |
|---|---|
| Настройка подкачки | По умолчанию ядро ставит 60, исходя из того, что подкачка — это обращение к диску. С zram это копирование в памяти. |
| Защита от нехватки памяти | Вступает в дело при 4 % свободной памяти и отправляет SIGKILL при 2 %. Никогда не трогает Cinnamon, Xorg, LightDM и Nemo; первыми останавливает Firefox, Thunderbird, Code, LibreOffice и компиляторы. |
| Без индексатора | Ни tracker, ни фоновое сканирование диска. |
| Автонастройка графики | При входе в систему проверяется отрисовщик OpenGL. Если это llvmpipe или другая программная отрисовка, анимации выключаются. Если потом вы настроите иначе, система ваш выбор не отменит. |
| GRUB | Запрашивает скромный графический режим и держит запасные варианты, поэтому меню появляется даже в виртуальной машине с небольшой видеопамятью. |
| Squashfs | Сжат zstd, поэтому live-сеанс быстро загружается с флешки. |
В окне первоначальной настройки коротким списком предложены английский (США и Великобритания), итальянский, французский, немецкий, испанский, португальский (Бразилия), нидерландский, польский и русский, а все остальные локали — в пункте «Другие языки». Раскладка клавиатуры подставляется по выбранному языку, поэтому на втором шаге обычно достаточно нажать «Далее».
Все MoonTools — 774 строки — переведены на эти восемь языков, не считая английского, и сборка прерывается, если в программе найдётся видимая непереведённая строка. Итальянский языковой пакет и словари LibreOffice лежат в образе, поэтому установка без сети в Италии сразу полностью переведена; остальные языковые пакеты скачиваются одним нажатием.
Программы для командной строки намеренно оставлены на английском: их вывод читают рядом с документацией и вставляют в сообщения об ошибках, а это проще делать на одном языке.
Тема, написанная руками, ломается при каждом новом элементе интерфейса в GTK. Эта наследует исправления апстрима.
Обновление Cinnamon не сможет втихую вернуть её рядом с нашей, а если удалить пакеты MoonLightOS, она аккуратно вернётся на место.
Установщик копирует на диск именно этот squashfs. Убрать из него /boot — и установится система, которой нечем запускаться.
В пакете desktop-base из Debian уже есть тема Plymouth с именем moonlight, и обновление молча подменило бы анимацию.
Политика, указывающая на addons.mozilla.org, установит расширение только при первом запуске Firefox с работающим соединением. Расширение лежит в образе, и удалить его вы по-прежнему можете.
В Linux Docker Desktop запускает движок внутри своей виртуальной машины, то есть добавляет на ноутбуке второе ядро и второй расход памяти.
Виртуальные машины, PHP с базами данных и LaTeX ставятся одним нажатием в «Добро пожаловать», вместо гигабайта, который иначе тащила бы за собой каждая установка.