Repository navigation
yami 2.5.1
- Fix: a fresh install got a shorter bar: the settings file the installer writes was taken for the pre-2.0 format, so the right side lost the battery, the power profile and the separators, and a
barRightwritten by hand into such a file was dropped. Now only a file with the old keys is converted - Fix: skwd-wall videos and Wallpaper Engine scenes (#3): yami now sees that skwd-wall draws them (its
skwd-wall-vklayer) and no longer draws its own picture on that screen, which after a shell restart could cover the live wallpaper - Docs in Russian: CHANGELOG, docs/CONFIG, docs/SECURITY and fork/README have Russian twins (
*.ru.md), linked at the top of each file and from README.ru.md (which also gets back its missing «building the shell by hand» part);tools/check.shkeeps every pair in step (the same structure, code, links and anchors), so neither falls behind. With a Russian interface, settings → updates shows the release notes in Russian - Media and sound are two popups (#10): the
mediamodule opens the player alone (cover, buttons, the equalizer, time; drag the position bar to seek, also in the media widget),volthe sound settings alone, with a choice of the microphone as well as the output when there are several; without amediamodule or a media widget (as on the default bar) the player stays at the bottom of the sound popup. Right click on the track pauses or plays, middle click skips to the next one;yami open mediaopens it from a key or the terminal - Wallpaper picker (#11): settings → wallpaper → «pick an image…» opens a grid of thumbnails of your wallpaper folder (
~/Pictures/Wallpapersby default,wallDir, «folder…» to change it), the palette's pixel wallpaper first; a click sets it and goes back to the settings, arrows and Enter work too. Thumbnails are made in the background only for the rows on screen and share yami-files' cache. «another file…» keeps the old file dialog;yami open walls(or a key you bind in settings → keys) opens the picker on its own - Tray behind an arrow (#11): settings → bar → look → tray:
arrow(trayMode) shows one arrow on the bar instead of every icon; it opens the tray apps as a list with their names, where clicks work as on the bar and an app's menu opens under its row. A dot on the arrow when an app asks for attention - Compact temperature (#11): settings → bar → look → temperature:
compact(tempStyle) draws thetempmodule as a small thermometer column and the number, about a third of its usual width - Less work while idle: a panel whose new frame is the same as the last one is not sent to niri again (the bar redraws every second, its picture changes about once a minute), the sound state asks PipeWire only about what changed, the equalizer thread sleeps while nobody sees it and computes the spectrum once per frame, the settings file is compared only when the settings changed, font files are mapped once per process, and theme.py runs at a lower priority.
- Desk mode behaves like a desktop: a window gets focus on click and comes to the front with it (focus follows the mouse only in tiling now), so a title bar of a window behind no longer shows over the window in front, and every floating window has a resize corner at the bottom right (with niri's
prefer-no-csdmost apps had no edge to drag). - Lite mode for weak and virtual machines (from a review: «extremely slow in a VM», a 15-year-old laptop locking up at login). Settings → look → «lite mode» (
lite) turns off blur, the shell's and niri's animations and the translucency of inactive windows in one switch and leaves your settings as they were. A fresh install turns it on by itself in a VM, without GPU acceleration, on pre-2011 Intel graphics or with ≤ 4 GB of memory and ≤ 4 threads;yami doctortells why it suggests it. - One «pixel look» slider (asked in the same review: «a slider to set my pixelation lower»). Settings → look: smooth, softer, yami only, all pixel: the fonts of the shell, the apps and GTK/Qt, pixel icons and the cursor move together; the separate keys stay for fine tuning.
- The installer asks for the administrator password once: every root step goes through one root shell opened at the start (sudo or doas), with no credential cache left for build scripts. Packages missing from the distro's repositories are dropped from the batch instead of installing the rest one by one (on Alpine with doas that meant a password prompt per package). On a machine with less than 6 GB of memory or 4 threads the niri fork is off by default and cargo builds with as many jobs as the memory allows.
- yami-files looks for new drives, phones and network mounts only when the system's list of them changes (it used to start
lsblkandgioevery 4 seconds while a window was open), and an idle window ticks once a second; the D-Bus helper threads of the shell and yami-files no longer wake twice a second forever (zbus'sblockingpool, held at 1.6). - Caches tidy themselves: the thumbnail cache shared by yami-files and the wallpaper picker drops thumbnails not opened for 120 days and stays under 512 MB, and yami-play forgets resume positions of files not played for a year.
- Notification and OSD position (#8): settings → system → notifications: the cards go to any corner or the middle of the top or bottom edge (
notifPos), the volume and brightness OSD to the bottom, the top or the centre (osdPos); cards keep clear of the bar and the dock. - yami-view and yami-play tick once a second while nothing on screen is about to change (four times a second only while their panels are about to hide, faster only while something moves).
- Fix:
glassset below 0.15 by hand (the slider stops there) made panels all but invisible, so their shadow and blur looked like broken frames (#8); lower values are raised to 0.15. - The settings window moves by its header (#8): drag it anywhere on the screen; it opens in the middle again next time.
- Fix: Mod+F did nothing in desk mode (#8): it was
maximize-column, which leaves floating windows alone; on the desk it now maximizes the window to the screen edges, and in tiling it still maximizes the column. - On a weak machine (less than 6 GB of memory or 4 threads) the installer and
yami updatebuild the apps with thin LTO: the compiler's peak memory is about half (1.3 GB instead of 2.4 GB with two jobs), so a 4 GB laptop no longer swaps through the build. - Fix: after an update OBS and other recorders could find no screen to capture until the next login: the update stopped the screen-sharing and file-dialog backend (
yami-files --portal) and nothing started it again in time. Nowyami-files --portal-reloadhands over to the new binary in the same process (the portal keeps talking to it), waits while a recording or a file dialog is open, and starts the backend when none runs; the installer,yami updateandtools/deploy.shuse it. - The installer puts each program into place in one step (a running copy never sees a half-written file) and stops when the apps fail to build, on a first install and on
yami updatealike: it used to go on writing configs for programs that were not there, and to build the compositor fork anyway. - Fix:
fork/yami-niri.sh offleft the fork's keys (allow-tearing,show-only-in,hide-from) inyami-fx.kdl, so at the next login the packaged niri refused the config and started with its own, without the shell.offnow strips them the waysession.shdoes, and the shell writes them only while the next login runs the fork too. - Less memory: each yami program gives the kernel back the pages of its own code it has stopped running (start-up, the settings window half a minute after it closes, a finished recording or file dialog in the portal backend). The shell idles at about 12 MB instead of 14.5, the portal backend at under 1 MB instead of 5.5, a file manager window at 19 MB instead of 23.
- yami-view keeps one copy of a big picture while it fits the window (the full-size copy for zooming in is made when you zoom), drops a picture that finished decoding after you moved on, and holds only the current picture and its neighbours: a 4K picture takes 107 MB instead of 140.
- yami-files keeps at most 32 MB of thumbnails in memory: a folder with thousands of pictures no longer grows the window by hundreds of megabytes; the thumbnails on screen stay, the oldest of the rest are dropped and come back from the disk cache when you scroll to them.
- yami-play at a fractional scale no longer clears and redraws its controls layer for every video frame while the controls are hidden.
- The shell measures its own memory (settings → about) only while the settings window is open, as PSS like
yami status, and the address in the network module comes from the kernel instead of a run ofipon the drawing thread. - yami-files copies through the kernel (
copy_file_range): on btrfs and xfs a copy inside one disk is a reflink, so a 4 GB video copies at once and takes no space until one of the two is changed; between disks the data no longer passes through the program. Phones, network shares and other FUSE mounts still copy the old way. - Screenshots without the confirm step (#13): settings → screenshots → «take the shot»:
instant(shotConfirm) takes the shot as soon as the mouse is released after selecting an area or clicking a window, and a full-screen shot (Ctrl+Print) at once, without the overlay; copy and save follow the same settings. Fix: a second Space or Enter (or a held key repeating) while the shot was being taken made a second copy, file and notification. - The music popup has four views (#13), switched by the button in its header or in settings → bar → look (
mediaView): the cover with the equalizer, the cover with lyrics, lyrics alone and a short one (title and buttons). Lyrics come from the player, from a.lrcor.txtnext to the track, or from lrclib.net (settings → services,lyricsNet; asked only while the popup shows lyrics, cached); with timestamps the sung line is lit and kept in view. No lyrics: the popup shows the cover. The equalizer of the popup and of themediamodule can be turned off or given another style (mediaViz); off, nothing captures audio for it. - Notification and OSD distance from the edge (#8): settings → system → notifications → «from the edge» under each position (
notifOffset,osdOffset); next to the bar it is counted from the bar. - Bar modules
gpuanddisk(#8): graphics load (amdgpu, ornvidia-smievery 3 s; a sleeping laptop card is not woken) and how full/is, in thecpuStyleofcpuandram; settings → bar → add. - Fix: tray icons (#8): an app whose icon name is missing from the icon theme (Steam, Electron apps such as Discord) showed three grey dots instead of its own picture; icons from the app's own folder are found in its theme subfolders too, and an icon given as a file path works. Icon changes (Discord's unread mark) were ignored for apps registered under a well-known name, and with another tray watcher running they added a second icon. The
netmodule is a Wi-Fi or wired glyph instead of a dot, so it no longer reads as one more tray icon. - The
glassslider is called «panel opacity» (#8): 0.15 is the most transparent, 100 % solid. «settings file» (settings → system) closes settings first, so the editor does not open under them. - Fix: yami-files: a double click on the header maximized the window but never restored it (#8).
- The bar on chosen screens only (#8): settings → screens → «bar on this screen» (
barOutputs); when none of the chosen screens is connected, every screen gets the bar. - Your own themes (#8): settings → color → themes keeps the current look with one button and applies a saved one with a click (× removes it); they live in
~/.config/yami/themesin theyami theme exportformat, wallpaper included. In the terminal:yami theme save [NAME],list,apply NAME,remove NAME;yami theme importalso takes an https link and keeps what it applies among your themes. A link may only bring a theme, never a full settings file. - Fewer fixed paths (#1): the polkit helper is also found as NixOS's setuid wrapper (
/run/wrappers/bin) and inPATH, the phone backend of gvfs throughXDG_DATA_DIRS(and next to it, and inPATH), the login theme in the firstsddm/themes/yamiofXDG_DATA_DIRS; the old paths stay as fallbacks. - Weather (#6): the
weatherbar module (icon and temperature), its popup (now, feels like, humidity, wind, five days) and a desktop widget in three sizes. Data from Open-Meteo, no key: set a city orlatitude, longitudein settings → services → network (weatherCity,weatherUnitsfor °F); asked every 20 minutes and only while the module or the widget is shown. - Script widget (#6): any bar-module script from
~/.config/yami/modulescan also be a desktop widget (settings → widgets → add «script»): its icon and text, several lines when the JSONtexthas\n, its click; the script runs once even when it is on the bar too, and only while shown. - Fix:
install.sh --uninstallleft the login screen behind (#14): the yami SDDM theme, its config file and the login cursor stayed in the system. The uninstall now removes them (asking for the password once) and turns the login manager the theme replaced (GDM, LightDM…) back on from the next boot; SDDM itself stays with its own theme. The installer leaves the login screen off by default when SDDM already has another theme (KDE's Breeze), names it in the component list, writes its file aszz-yami.confso a chosen yami theme is not overridden by KDE's settings file, says at the end when/etc/sddm.confstill sets another theme, and skips the theme on an SDDM without a Qt 6 greeter (older than 0.21) instead of leaving a broken login screen. - Fix: a font or cursor changed outside the settings window (a saved theme,
yami config set, a hand edit of the settings file) reached GTK, Qt, kitty and the cursor only with the next palette change; now at once. - Fix: an instant screenshot (#15) opened the overview when the selection ended in a corner of the screen: niri's hot corner is dead while the screenshot overlay is under the pointer and fired on the first move after it closed. The overlay now stays, invisible, until the pointer leaves the corner (4 seconds at most). The dock is no longer taken away and brought back around a screenshot, which moved the windows when it reserves space.
- Fix: lyrics in the music popup (#15): an empty line (an instrumental break) took two rows, several breaks in a row added more; they are one row now, and the playing break shows «…». A search on lrclib.net no longer takes the lyrics of another song: only results with the same title (and artist, when known) and a similar length.
- Fix: glass panels (#16): the hard shadow was drawn under the whole panel and showed through it as a second frame shifted by 6 pixels (the launcher, the wallpaper picker, settings, the clipboard, popups); it is drawn only outside the panel now.
- Pictures in the clipboard have a preview (#16): a copied image shows as a thumbnail with its format, size and weight instead of «binary data». Thumbnails are made one at a time in the background while the clipboard is open and kept only in memory, never on disk, so a wiped clipboard leaves no copies.
- The tray no longer shows a network applet (
nm-appletand the like) when the bar has thenetmodule (#16): that was a second network icon next to it. - Security: the file dialog of sandboxed apps (the portal) took file names from the app as they were, so a name like
../../.bashrcin «save several files» or the suggested name of «save» pointed outside the chosen folder and gave the app write access there; only the bare name is used now. yami-files passed the names of the files it compresses tobsdtarwithout--, so a file named like an option (--use-compress-program=…) could run a command. The notification server sent replies typed into a notification, pressed actions and closing to every program on the session bus; now only to the program that sent the notification, which alone can also replace or close it, and the text of a notification is capped (a flood can no longer grow the history by hundreds of megabytes). Pinned clipboard entries live in a folder only you can read (~/.local/share/yami-clip, 0700). A command with a line break incustomBindsno longer breaks the whole niri config. - The installer closes its root shell before anything is compiled: the login screen, the last step that needs the password, now comes before the build, so the build scripts of the crates never run while the root shell is open.
install.sh --uninstallwarns when another SDDM file still setsCurrent=yami.
По-русски
- Исправлено: после новой установки бар был короче: файл настроек от установщика принимался за формат до 2.0, и справа пропадали батарея, профиль питания и разделители, а
barRight, вписанный в такой файл руками, терялся. Теперь переделывается только файл со старыми ключами - Исправлено: видео и сцены Wallpaper Engine из skwd-wall (#3): yami видит, что их рисует skwd-wall (его слой
skwd-wall-vk), и больше не рисует на этом экране свою картинку, которая после перезапуска шелла могла закрыть живые обои - Документация по-русски: у CHANGELOG, docs/CONFIG, docs/SECURITY и fork/README есть русские двойники (
*.ru.md), ссылки на них — в начале каждого файла и в README.ru.md (туда же вернулся пропущенный раздел «сборка шелла вручную»);tools/check.shдержит каждую пару в одном виде (та же структура, код, ссылки и якоря), так что ни одна не отстаёт. При русском интерфейсе настройки → обновления показывают заметки к выпуску по-русски - Музыка и звук — две разные всплывашки (#10): модуль
mediaоткрывает только плеер (обложка, кнопки, эквалайзер, время; полосу позиции можно тянуть — перемотка, и в виджете музыки тоже),vol— только настройки звука, где теперь можно выбрать не только выход, но и микрофон, если их несколько; без модуляmediaи виджета музыки (как в баре по умолчанию) плеер остаётся внизу всплывашки звука. ПКМ по треку ставит на паузу или запускает, СКМ включает следующий;yami open mediaоткрывает плеер с клавиши или из терминала - Выбор обоев (#11): настройки → обои → «выбрать картинку…» открывает сетку миниатюр папки обоев (по умолчанию
~/Pictures/Wallpapers,wallDir, сменить — «папка…»), первыми — пиксельные обои из палитры; щелчок ставит обои и возвращает в настройки, стрелки и Enter тоже работают. Миниатюры делаются в фоне только для видимых строк, кеш общий с yami-files. «другой файл…» — прежнее окно выбора файла;yami open walls(или клавиша, назначенная в настройках → клавиши) открывает выбор сам по себе - Трей за стрелкой (#11): настройки → бар → вид → трей:
arrow(trayMode) показывает в баре одну стрелку вместо всех значков; по ней программы трея открываются списком с именами, щелчки — как в баре, меню программы открывается под её строкой. Точка на стрелке, когда программа зовёт - Короткая температура (#11): настройки → бар → вид → температура:
compact(tempStyle) рисует модульtempстолбиком-градусником и числом, примерно в треть обычной ширины - Меньше работы в простое: панель, чей новый кадр такой же, как прошлый, не отправляется niri заново (бар перерисовывается раз в секунду, а картинка меняется примерно раз в минуту), состояние звука спрашивает у PipeWire только то, что изменилось, нить эквалайзера спит, пока его никто не видит, и считает спектр раз в кадр, файл настроек сверяется только после изменения настроек, файлы шрифтов отображаются в память один раз на процесс, а theme.py работает с пониженным приоритетом.
- Режим «стол» ведёт себя как рабочий стол: окно получает фокус по щелчку и вместе с ним выходит вперёд (фокус за мышью теперь только в ленте), поэтому заголовок окна сзади больше не виден поверх переднего, а у каждого плавающего окна есть уголок размера справа внизу (с
prefer-no-csdу niri у большинства программ не было края, за который тянуть). - Лёгкий режим для слабых и виртуальных машин (из отзыва: «очень медленно в виртуалке», 15-летний ноутбук зависал на входе). Настройки → вид → «лёгкий режим» (
lite) одним переключателем убирает размытие, анимации шелла и niri и полупрозрачность неактивных окон, не трогая твои настройки. Чистая установка включает его сама в виртуалке, без ускорения графики, на графике Intel до 2011 года или при ≤ 4 ГБ памяти и ≤ 4 потоках;yami doctorговорит, почему его советует. - Один ползунок «пиксельность» (просили в том же отзыве: «ползунок, чтобы убавить пиксельность»). Настройки → вид: гладко, мягче, только yami, всё пиксельное: шрифты шелла, программ yami и GTK/Qt, пиксельные значки и курсор меняются вместе; отдельные ключи остаются для тонкой настройки.
- Установщик спрашивает пароль администратора один раз: все шаги от root идут через одну root-оболочку, открытую в начале (sudo или doas), и сценариям сборки не остаётся кеша прав. Пакеты, которых нет в репозиториях дистрибутива, убираются из общей установки, а не ставят остальное по одному (на Alpine с doas это был запрос пароля на каждый пакет). На машине с памятью меньше 6 ГБ или меньше 4 потоков форк niri по умолчанию выключен, а cargo собирает в столько потоков, сколько позволяет память.
- yami-files ищет новые диски, телефоны и сетевые подключения, только когда их список в системе меняется (раньше запускал
lsblkиgioкаждые 4 секунды, пока открыто окно), а окно в простое тикает раз в секунду; вспомогательные нити D-Bus у шелла и yami-files больше не просыпаются дважды в секунду навсегда (пулblockingу zbus закреплён на 1.6). - Кеши убираются сами: кеш миниатюр, общий у yami-files и выбора обоев, выбрасывает миниатюры, которые не открывали 120 дней, и держится меньше 512 МБ, а yami-play забывает места остановки файлов, которые не включали год.
- Место уведомлений и OSD (#8): настройки → система → уведомления: карточки — в любой угол или в середину верхнего или нижнего края (
notifPos), OSD громкости и яркости — снизу, сверху или по центру (osdPos); бар и док карточки не закрывают. - yami-view и yami-play тикают раз в секунду, пока на экране ничему не пора меняться (четыре раза в секунду — только пока панели вот-вот спрячутся, чаще — только пока что-то движется).
- Исправлено:
glassниже 0.15, заданный руками (ползунок там и останавливается), делал панели почти невидимыми, и их тень с размытием выглядели битыми рамками (#8); меньшее значение поднимается до 0.15. - Окно настроек двигается за заголовок (#8): его можно утащить в любое место экрана; в следующий раз оно снова откроется посередине.
- Исправлено: Mod+F ничего не делал в режиме «стол» (#8): это был
maximize-column, который плавающие окна не трогает; на «столе» он теперь разворачивает окно до краёв экрана, а в ленте по-прежнему разворачивает колонку. - На слабой машине (памяти меньше 6 ГБ или меньше 4 потоков) установщик и
yami updateсобирают программы с thin LTO: пик памяти компилятора примерно вдвое ниже (1.3 ГБ вместо 2.4 ГБ при двух потоках), и ноутбук с 4 ГБ больше не уходит в своп на сборке. - Исправлено: после обновления OBS и другие программы записи могли не найти экран для захвата до следующего входа: обновление останавливало бэкенд показа экрана и диалога файлов (
yami-files --portal), и вовремя его никто не запускал. Теперьyami-files --portal-reloadпередаёт работу новому бинарнику в том же процессе (портал продолжает говорить с ним), ждёт, пока идёт запись или открыт диалог файлов, и запускает бэкенд, если он не работает; это делают установщик,yami updateиtools/deploy.sh. - Установщик ставит каждую программу на место одним шагом (работающая копия не увидит недописанный файл) и останавливается, если программы не собрались, и при первой установке, и при
yami update: раньше он шёл дальше, писал конфиги для программ, которых нет, и всё равно собирал форк композитора. - Исправлено:
fork/yami-niri.sh offоставлял ключи форка (allow-tearing,show-only-in,hide-from) вyami-fx.kdl, и при следующем входе пакетный niri отвергал конфиг и стартовал со своим, без шелла. Теперьoffвырезает их так же, какsession.sh, а шелл пишет их, только пока и следующий вход запустит форк. - Меньше памяти: каждая программа yami отдаёт ядру страницы своего кода, который больше не исполняет (старт, окно настроек через полминуты после закрытия, законченная запись или диалог файлов в бэкенде портала). Шелл в простое занимает около 12 МБ вместо 14.5, бэкенд портала меньше 1 МБ вместо 5.5, окно файлового менеджера 19 МБ вместо 23.
- yami-view держит одну копию большой картинки, пока она помещается в окно (полноразмерная для увеличения делается, когда увеличиваешь), выбрасывает картинку, декод которой кончился, когда ты уже перелистнул, и хранит только текущую и соседние: картинка 4K занимает 107 МБ вместо 140.
- yami-files держит в памяти не больше 32 МБ миниатюр: папка с тысячами картинок больше не раздувает окно на сотни мегабайт; миниатюры на экране остаются, самые старые из прочих выбрасываются и возвращаются из кеша на диске, когда до них долистаешь.
- yami-play при дробном масштабе больше не очищает и не перерисовывает слой кнопок на каждом кадре видео, пока кнопки скрыты.
- Шелл меряет свою память (настройки → о шелле) только пока открыто окно настроек, как PSS, как и
yami status, а адрес в модуле сети берёт у ядра, а не запускомipв потоке отрисовки. - yami-files копирует через ядро (
copy_file_range): на btrfs и xfs копия внутри одного диска — reflink, видео в 4 ГБ копируется сразу и не занимает места, пока одну из копий не изменят; между дисками данные больше не идут через программу. Телефоны, сетевые папки и другие FUSE-монтирования копируются по-старому. - Скриншоты без подтверждения (#13): настройки → скриншоты → «снимок»:
instant(shotConfirm) делает снимок, как только отпущена мышь после выделения области или щелчка по окну, а снимок экрана (Ctrl+Print) — сразу, без оверлея; копирование и сохранение — по тем же настройкам. Исправлено: второй пробел или Enter (или зажатая клавиша с автоповтором), пока снимок делался, давали вторую копию, файл и уведомление. - У всплывашки музыки четыре вида (#13), переключаются кнопкой в её шапке или в настройках → бар → вид (
mediaView): обложка с эквалайзером, обложка с текстом песни, только текст и коротко (название и кнопки). Текст берётся у плеера, из файла.lrcили.txtрядом с треком или с lrclib.net (настройки → службы,lyricsNet; спрашивается, только пока всплывашка показывает текст, ответ кешируется); с метками времени звучащая строка подсвечена и держится на виду. Текста нет — всплывашка показывает обложку. Эквалайзер всплывашки и модуляmediaможно выключить или сменить ему стиль (mediaViz); выключенный — звук для него не захватывается. - Отступ уведомлений и OSD от края (#8): настройки → система → уведомления → «от края» под каждым местом (
notifOffset,osdOffset); у края с баром — от бара. - Модули бара
gpuиdisk(#8): загрузка видеокарты (amdgpu илиnvidia-smiраз в 3 с; спящую дискретку ноутбука не будят) и заполненность/, в стилеcpuStyle, какcpuиram; настройки → бар → добавить. - Исправлено: значки трея (#8): программа, чьего значка нет в теме (Steam, программы на Electron вроде Discord), показывалась тремя серыми точками вместо своей картинки; значки из папки самой программы находятся и в подпапках её темы, а значок, заданный путём к файлу, работает. Смена значка (отметка непрочитанного у Discord) терялась у программ, зарегистрированных общеизвестным именем, а при другом наблюдателе трея давала второй значок. Модуль
net— значок Wi-Fi или кабеля вместо точки и больше не читается как ещё один значок трея. - Ползунок
glassназывается «плотность панелей» (#8): 0.15 — прозрачнее всего, 100 % — сплошные. «Файл настроек» (настройки → система) сначала закрывает настройки, и редактор не открывается под ними. - Исправлено: yami-files: двойной щелчок по шапке разворачивал окно, но не возвращал обратно (#8).
- Бар только на выбранных экранах (#8): настройки → экраны → «бар на этом экране» (
barOutputs); если ни один из выбранных экранов не подключён, бар на всех. - Свои темы (#8): настройки → цвет → темы сохраняют текущий вид одной кнопкой и применяют сохранённый одним щелчком (× удаляет); лежат в
~/.config/yami/themesв форматеyami theme export, вместе с обоями. В терминале:yami theme save [ИМЯ],list,apply ИМЯ,remove ИМЯ;yami theme importпринимает и https-ссылку и оставляет применённое в твоих темах. По ссылке приходит только тема, никогда — полный файл настроек. - Меньше жёстких путей (#1): помощник polkit находится и как setuid-обёртка NixOS (
/run/wrappers/bin), и вPATH, бэкенд телефонов gvfs — черезXDG_DATA_DIRS(и рядом с ними, и вPATH), тема экрана входа — в первойsddm/themes/yamiизXDG_DATA_DIRS; прежние пути остаются запасными. - Погода (#6): модуль бара
weather(значок и температура), его всплывашка (сейчас, ощущается, влажность, ветер, пять дней) и виджет на столе трёх размеров. Данные Open-Meteo, без ключа: город илиширота, долгота— в настройках → службы → сеть (weatherCity,weatherUnitsдля °F); спрашивается раз в 20 минут и только пока модуль или виджет виден. - Виджет-скрипт (#6): любой скрипт модуля бара из
~/.config/yami/modulesможет быть и виджетом на столе (настройки → виджеты → добавить «скрипт»): его значок и текст, несколько строк, если в JSONtextесть\n, его щелчок; скрипт запускается один раз, даже если он ещё и в баре, и только пока виден. - Исправлено:
install.sh --uninstallоставлял экран входа (#14): тема SDDM от yami, её файл настроек и курсор входа оставались в системе. Теперь удаление убирает их (пароль спрашивается один раз) и со следующей загрузки снова включает менеджер входа, который тема заменила (GDM, LightDM…); сам SDDM остаётся со своей темой. Установщик по умолчанию не трогает экран входа, если у SDDM уже выбрана другая тема (Breeze от KDE), называет её в списке компонентов, пишет свой файл какzz-yami.conf, чтобы файл настроек KDE не перебивал выбранную тему yami, в конце говорит, если/etc/sddm.confвсё ещё задаёт другую тему, и пропускает тему на SDDM без Qt 6 (старше 0.21), а не оставляет сломанный экран входа. - Исправлено: шрифт или курсор, изменённые не в окне настроек (своя тема,
yami config set, правка файла настроек руками), доходили до GTK, Qt, kitty и курсора только со следующей сменой палитры; теперь сразу. - Исправлено: мгновенный скриншот (#15) открывал обзор, если выделение заканчивалось в углу экрана: горячий угол niri не работает, пока под курсором оверлей скриншота, и срабатывал от первого движения после его закрытия. Теперь оверлей остаётся, невидимый, пока курсор не уйдёт из угла (не дольше 4 секунд). Док больше не убирается и не возвращается вокруг снимка: когда он занимает место, это двигало окна.
- Исправлено: текст песни во всплывашке музыки (#15): пустая строка (проигрыш) занимала два ряда, несколько проигрышей подряд — ещё больше; теперь один ряд, а звучащий проигрыш показан «…». Поиск на lrclib.net больше не берёт текст чужой песни: только с тем же названием (и исполнителем, если он известен) и похожей длительностью.
- Исправлено: стеклянные панели (#16): жёсткая тень рисовалась под всей панелью и просвечивала сквозь неё второй рамкой со сдвигом на 6 пикселей (лаунчер, выбор обоев, настройки, буфер обмена, всплывашки); теперь она только снаружи панели.
- Картинки в буфере обмена с превью (#16): скопированная картинка видна миниатюрой с форматом, размером и весом вместо «binary data». Миниатюры делаются по одной в фоне, пока буфер открыт, и живут только в памяти, не на диске: после очистки буфера копий не остаётся.
- Трей больше не показывает апплет сети (
nm-appletи подобные), если в баре есть модульnet(#16): это был второй значок сети рядом с ним. - Безопасность: окно выбора файлов для программ из песочницы (портал) брало имена файлов у программы как есть, и имя вроде
../../.bashrcв «сохранить несколько файлов» или предложенное имя в «сохранить» указывало мимо выбранной папки и давало программе право писать туда; теперь берётся только само имя. yami-files передавалbsdtarимена сжимаемых файлов без--, и файл с именем-ключом (--use-compress-program=…) мог запустить команду. Сервер уведомлений рассылал набранный в уведомлении ответ, нажатые действия и закрытие всем программам на шине сеанса; теперь только программе, приславшей уведомление, и только она может его заменить или закрыть, а текст уведомления ограничен (поток уведомлений больше не раздует историю на сотни мегабайт). Закреплённое в буфере обмена лежит в папке, которую читаешь только ты (~/.local/share/yami-clip, 0700). Команда с переводом строки вcustomBindsбольше не ломает весь конфиг niri. - Установщик закрывает свой root-сеанс до того, как что-либо собирается: экран входа, последний шаг с паролем, теперь идёт до сборки, и сборочные скрипты крейтов никогда не работают при открытом root-сеансе.
install.sh --uninstallпредупреждает, если другой файл SDDM всё ещё ставитCurrent=yami.
Install
bash <(curl -fsSL https://raw.githubusercontent.com/Trendorin/yami/v2.5.1/install.sh)Already on yami: settings → updates → update, or yami update apply.
Built from source on your machine (Arch, Fedora, Debian/Ubuntu, openSUSE, Void, Alpine, Gentoo, NixOS). The tag is signed; check it with
git -c gpg.ssh.allowedSignersFile=keys/allowed_signers verify-tag v2.5.1.
Описание и установка по-русски: README.ru.md.