Releases: s3rven/silere-shell
Release list
Silere Shell 1.0.0
Upgrading: cover art a player links to on the web is no longer fetched by default.
Turn it back on under Settings › Media › Cover art from the web. Bar tooltips are gone;
the pointer controls they described are listed in the readme.
Added
Sound
- The volume control in the menu expands to Output, Input and Apps: choose a microphone,
set its level, and set the level of each app playing sound. - A microphone widget appears while an app is listening and mutes the input on click. It
stays out of the way of apps recording system output; Widgets › Show & order turns it off. - The expanded volume control names the apps holding the microphone open, and carries a row
that opens Sound settings. - Right-clicking the volume or microphone widget opens Sound settings; middle-clicking moves
the volume widget to the next output and the microphone widget to the next input.
Bar and menu
- Workspaces › Dynamic workspaces lists only the workspaces in use, growing and shrinking
as they come and go. A trailing slot opens the next empty one, and middle-clicking it
moves the focused window there. - The Bluetooth row in the menu shows the icon of the device that is connected.
Media
- Media › Cover art from the web decides whether artwork a player links off-machine is
fetched. Off by default.
System
- Night light runs on
wlsunsetwherehyprsunsetcannot. System › Maintenance chooses
between them. - System › Maintenance chooses the lock program: hyprlock, swaylock, gtklock, or a command
of your own. - Feedback › Notifications › Let critical through decides whether urgent alerts ignore do
not disturb. - Settings older than the current schema migrate through explicit, ordered steps.
Install and updates
silere doctor,status,update,repair,version, anduninstallreach the
maintenance paths from one command;install.sh --checkruns the same read-only doctor.- Signed releases carry a compatibility manifest. The updater rejects a release that needs a
newer Quickshell, or does not support the active compositor, before touching the checkout. silere update --applyvalidates a signed release in an isolated copy of the checkout
before it changes anything live.- The Updates page shows categorized release notes first and keeps raw commits under
Technical details. - Updates names the installation as a managed release or a development checkout, and
disables the self-update controls on a development checkout. - Package-managed installs name their owner in Updates.
scripts/install.sh --dry-runlists the files an install would create or edit and the
autostart line it would add, then exits without writing.- The installer records a receipt of what it created; uninstall reads it before falling
back to searching for its own files.
Performance tooling
scripts/bench.sh --warmsamples after one menu cycle.scripts/bench.sh --jsonwrites one machine-readable object, and--labeltags a run.- The bench report names the state it sampled, the interface font, the machine and the
Quickshell version. - The bench report gives per-second median and worst CPU, and marks a sample taken during
input as noisy. - The bench report names the widgets that were drawing, and says when another Quickshell
instance shared memory with the sample. docs/perf-history.mdrecords per-release numbers against named reference machines.
Changed
Bar and workspaces
- The active workspace marker starts as the dot, and holds still when the menu opens.
Settings
- Settings opens with every category expanded. Interface › Keep groups open still returns to
one group at a time. - The category groups in the settings rail are set as headings over their pages rather than
rows beside them. - Feedback › OSD names its choices in words.
- Restore defaults writes no settings backup first.
Sound and media
- The volume widget shows a headphone glyph while output is on a headset.
- The volume control's tabs move in the direction of the choice, and the tab row holds still
while its contents change. - The media card drops its seek row: position is a bar along the card's bottom edge, with the
elapsed and total times beside the controls. Dragging the bar still scrubs. - Media controls lose their boxes. The glyphs are the buttons, with play carrying the accent.
Appearance
- A wallpaper palette change crosses the whole interface on one curve. The approach is
adapted from Flawedexa's fork. - Sliders and switches drop their white fills: the handle takes the accent, the switch knob
reads as a dark cap, and a filled track sits deeper into its card. High contrast keeps the
brighter fills. - The calendar header runs the width of the card, with today's date at one end and the week
number at the other. The month name now sits over the days it names.
Install and release
silere runis the single launch path for source, compositor, and package installs. It
applies the memory and GPU defaults at every start, and refuses a duplicate instance.- The lock program chosen automatically follows the compositor: hyprlock leads on Hyprland,
swaylock elsewhere. - The installer closes by naming the check script to run when a surface does not appear.
- The installer's optional-tool list names fontconfig, which the font picker and font checks
need. - Releasing a version records cold and warm performance rows before the tag.
Fixed
Bar fixes
- The menu and quick actions open against the workspace indicator on the first open after
the shell starts. Also from OlaoluwaM's fork. - The bar returns to full width after a widget is moved between zones.
- The workspace button opens the menu where the compositor reports no workspaces of its own.
- Tray icons render for apps that ship their own icon directory.
- The Bluetooth widget keeps its generic glyph while the volume widget is already showing the
connected device. - A Bluetooth speaker shows a speaker rather than headphones, and more device types carry
their own icon. - The Bluetooth widget stays out of the bar on a machine with no Bluetooth adapter.
Menu and settings fixes
- Settings category names keep their full width in the rail at the top of the interface scale
range. - Option buttons in settings keep their padding at the largest interface scale.
Media fixes
- Cover art that will not load falls through to the other covers a track offers, including a
cover file beside a local track. - A cover that fails while the menu is closed leaves the card on the cover it was showing.
Notification fixes
- Deleting an old notification-history row keeps the state of a live notification that reused
its id. - Notification ids reused after a server restart leave unrelated persisted history alone.
- Notifications in the menu, and the button that removes one, reach a screen reader.
- The dismiss button on a notification popup sits on the card's content edge, level with the
summary. - Notification history keeps every row the configured limit allows when the shell reloads.
Motion fixes
- One-shot UI motion settles when the display blanks.
- Popups, media art, workspace effects, and notification exits land cleanly when their
animation is interrupted. - Attention pulses no longer age out while idle or reduced motion has paused them.
System fixes
- Settings and calendar marks that could not be written are saved once their folder is
reachable again. - A settings folder the shell cannot create, or whose permissions it cannot set, is reported
as a failure. - Clicking a tray icon, media widget or notification reaches its window on a special
workspace. - The temperature readout finds its sensor after being switched off and straight back on.
- Battery percentages stay bounded while their backend scale is detected, and a direct jump
to critical sends one alert. - A battery or temperature threshold crossed while the session was idle raises its alert on
the next wake. From OlaoluwaM's fork. - Timed-out Matugen repairs remain failures when their process later exits.
- Night Light picks up
hyprsunsetstate changed outside the shell when a control surface
opens, without overriding a toggle you just made.
Install and update fixes
- An update interrupted mid-apply no longer leaves an ambiguous checkout. The next run keeps
a release that finished validating, or restores the previous revision. - Pending settings are written before an update is applied, and an update that cannot save
them stops with an error. - The installer recognises a JetBrainsMono Nerd Font that is already there.
- A downloaded font that fontconfig does not list is reported as missing.
silere doctorchecks every optional tool the installer names.- The package list drops what it was showing and checks again when the package manager or AUR
helper behind it changes. - Package checks keep their last result when an AUR helper fails.
- A package check canceled by a quick off-and-on toggle is discarded, and automatic retries
wait until the session is no longer idle. - The Silere updater surfaces unattended timer failures in Settings, says how long ago one
happened, and reloads its cache and checkout state after timeouts. - A successful Silere install queues its own service restart without blocking inside the
process tree being restarted.
Removed
- Bar tooltips, and the Widgets › Indicators toggle that turned them off. The pointer
controls are listed in the readme.
Silere Shell 0.9.0
Upgrading: nothing to do.
Added
- Hovering a bar widget shows its click, alternate-button and wheel controls, and the full
text of a window title too long to fit. Widgets › Indicators › Bar tooltips turns it off. - Notification popups accept inline replies from applications that offer them.
- Bar › Spacing › Center between widgets balances the middle zone against both sides.
- A Bluetooth widget shows the connected device and its battery. Widgets › Show & order turns it on.
- Theme › Balance accent gives a wallpaper accent the strength of a hand-picked one.
- Widgets › Workspaces turns off the marker pulse that plays when the menu opens.
Changed
Bar
- The window title is a bar widget: put it in any zone, where it takes that zone's alignment,
padding and dividers, and reorder it like the rest. - The window title drops a track name the media widget in its zone already shows, and app
branding its own app name repeats. - The window title stops widening past a readable span on a wide screen.
- Titles from background windows update on a slower pass than the focused one.
- Dragging a bar widget outlines the slot it will drop into.
- The bar underline takes the accent colour.
- Bar effects stop animating after four minutes without input.
- The clock eases in and out as it is switched on and off.
- Hovering the active workspace before clicking it opens the menu without a first-time pause.
Menu and settings
- System › Maintenance opens with a health summary and keeps settings recovery at the end.
- Opening a settings dropdown folds the one already open.
- Reset in Widgets › Show & order uses the same confirm button as the rest of the menu.
- Settings says what Reduce motion pauses, the audio visualiser included.
- The power mode control follows a profile set from outside Silere.
- Theme says when the loaded palette carries no accent colour of its own.
- Widgets › Indicators › App name says where the name appears.
- Wi-Fi rows hold still while the signal drifts inside the tier their icon shows.
- Long Bluetooth, package and release-note lists scroll without hitching.
Notifications
- Runs of notifications from one app share a single header, and each card sizes to its own text.
- Hovering a notification in the menu swaps its timestamp for the remove button; removing one slides it out.
- A notification with more text than it shows carries a chevron.
- Notifications older than today show a clock time.
- A notification that updates in place, such as a progress bar, leaves the rest of the popup stack alone.
- Clear all in a notification popup uses the same button as the notification list.
- A long notification history scrolls smoothly.
Media
- A track playing from a private browser tab shows the browser instead of the hidden details.
Scripting and hooks
- Hooks run at most four at a time, and one still going after 30 seconds is stopped along with anything it started.
- An event that repeats while its turn is pending keeps only its newest arguments.
menu settings <page>andsettings <key>over IPC match a name without case.
Install and updates
- Silere requires Quickshell 0.3.1 or newer, and
bash scripts/check.shfails on anything older. bash scripts/check.shreports whether Silere is set to start on login, from the compositor config or a systemd user unit.- Removing the AUR package names the autostart line and Matugen block it cannot clean up itself.
- The README covers a first run; optional tools, scripting, hooks, performance and troubleshooting each moved to a page under
docs/.
Fixed
Bar fixes
- The window title updates in place while a window keeps its identity, and crossfades when the window changes.
- The window title appears when a title arrives for a window that reported none.
- The window title shows on the focused monitor when the compositor names no output for a window.
- A long window title no longer stretches a narrowed bar, and the widgets beside it ease rather than twitch as it changes length.
- Widgets › Indicators › App name off keeps the app name hidden for a window that reports no title.
- A divider no longer sits beside a window title that has faded out.
- The underline sweep centres on a widget placed in the centre zone.
- Centre-zone widgets keep clear of a crowded side of the bar.
- Bar › Layout keeps the roundness slider reachable while the bar is docked, and stops it where the bar stops rounding.
- Turning off Widgets › Workspaces › Urgent window pulse also stops the off-page urgent dot pulsing.
- Workspace marker and page effects settle when their bar sleeps, the session goes idle, or their setting is turned off.
- The workspace marker keeps its place when a compositor event arrives while the bar is rebuilding.
- Clock digits and the bar's readouts hold still behind the overview and through an idle screen.
- The 12h clock counts one to twelve, with midnight and noon both reading twelve.
- On niri, a workspace counts as occupied whenever it holds windows.
- Bar readings reach a screen reader even where the bar holds values back until hover, and volume says when it is muted.
- The window title reaches a screen reader.
Menu and settings fixes
- A double-click no longer confirms a reset or an update install in one gesture.
- Restore defaults leaves settings unchanged when its safety backup cannot be written.
- Font and display-routing settings ease into the panel when device discovery makes them available.
- Feedback › Notifications says when a quiet-hours range starts and ends on the same hour.
- Widgets › Show & order lines its drag handles up in one column.
- System › Maintenance points at a package to install only when one is missing.
- Settings sliders line up with their row label.
- Accent and Base swatches say which setting they belong to.
- A row scrolled back into a long Bluetooth or update list no longer fades in from the row it replaced.
Notification fixes
- A notification stays expanded while the pointer rests on it.
- A notification body with no spaces, such as a long path or URL, wraps and expands.
- Notification icons fall back to the app's own icon, including on the first notification of a session.
- A notification popup older than an hour stamps its time in the chosen clock format.
- Notification history restamps its times when the clock format changes.
- Scrolling notification history no longer carries one entry's urgency colour onto another.
System fixes
- A background command stopped at its time limit takes its own child processes with it.
- Every background command Silere runs has a time limit, and the optional tool scan reports when it gives up.
- Configuration, palette, update and visualiser paths keep significant whitespace in an
absolute XDG directory. - CPU temperature warnings clear if their sensor disappears or starts returning invalid data.
- The disk tile reads filesystems with long or whitespace-containing device names.
- Malformed timezone coordinates no longer corrupt the night light's solar estimate.
- A removed
nmclino longer leaves a stale VPN indicator behind. - The night light temperature set by hand is kept while Follow sun position is on, and returns when it is turned off.
- The power mode control offers only the profiles the machine supports.
- The battery percentage recovers on hardware that reports charge ambiguously, instead of staying wrong for the session.
- Bluetooth limits a pairing window to one minute even if the shell stops during an attempt.
Install and update fixes
- A fresh install finishes on the latest signed release.
bash scripts/check.shstops reporting failure on an install that is not a Git checkout.bash scripts/check.shfinds user services through the same XDG data fallback as the updater.- Setting a bar widget order over IPC keeps each widget in one zone.
- A stalled update check or install cannot leave the update lock held after it exits.
- Installing an update refuses a newer release than the one shown on the confirmation screen.
Security
- Notification icons, images and album art no longer follow a filesystem path chosen by the
sender. Inline images, local art files, web covers and installed application icons still work.
Silere Shell 0.8.0
Added
- Hooks run a command of your own on battery, notification, theme, update and workspace events.
- Every setting the Settings pages expose can be read and written over IPC.
- A Bluetooth device that refuses to connect or pair says so on its row.
- Quick actions carry Wi-Fi and Bluetooth toggles alongside airplane mode.
- Appearance › Interface sets the size of tray and workspace app icons.
- Maintenance can recheck optional tools without closing the settings page.
Changed
- Theme settings group source, accent and base under Colors, with surface styling in its own card.
- The bundled accent palette uses eight balanced, equal-lightness colours and a clearer Iris default.
- The custom accent mixer keeps two full-width colour rails.
- Buttons, toggles, sliders, rows, navigation, chips and swatches share one visible state hierarchy.
- Interactive controls expose names, states and actions to accessibility tools.
- Failures and warnings keep their semantic colour in Home-page status text.
- Both update cards say how long ago they last checked.
- Disconnecting the current Wi-Fi network takes a second tap to confirm.
- The Mix accent swatch shows a colour wheel.
- Disabled controls dim to one depth, and high contrast lifts them.
- Notification popups widen with the interface scale.
- The notification list grows with the history it holds, up to the room the screen has.
- Services refresh themselves when an optional tool is installed or removed at runtime.
- Workspace models stop rebuilding on Hyprland title churn while the window title is hidden.
- Settings opens one navigation group at a time, and category changes move along the rail.
- Workspace cells dim as the active marker crosses them on a multi-workspace jump.
- Hint lines sit under the row titles they explain.
Fixed
- Animations hold the display's refresh rate when a bar and popup are visible together.
- A docked bar casts a shadow when Shell shadows is on.
- Bar Roundness is reachable while the bar is docked, and named for the widget highlights it shapes there.
- The low-battery and high-temperature thresholds stay reachable with their warnings off.
- Alerts and Underline drop the battery or temperature controls the hardware cannot drive.
- The Opacity slider under Bar › Spacing › Dividers appears while the window title draws a separator.
- The centre visualiser can be aligned without the window title switched on.
- The bar Opacity readout matches what high contrast renders.
- The underline glow line and small rounded outlines hold one weight under fractional scaling.
- Popup borders draw at the same weight on every side.
- Keybinds open the menu, calendar and quick actions under the widget that opens them, not at the screen edge.
- Opening Settings no longer flashes an empty page frame before its controls arrive.
- Turning off multi-group Settings navigation keeps the selected category open.
- Notification history no longer holds read-state for notifications it has already dropped.
- A double-click on a connected Bluetooth device no longer disconnects it in one gesture.
- Bluetooth pairing closes the pairable window when the attempt finishes or is cancelled.
- Turning notification popups off retires the cards already on screen.
- Notifications and the OSD sit at the edge of a monitor whose bar is turned off.
- The Home page's power tile says when the active profile is throttled.
- The power rail's mode value no longer crowds out its label at larger font sizes.
- The AUR toggle in Updates settings stays hidden until the updates widget itself is on.
- OSD settings no longer labels a lone section GENERAL when Feedback isn't shown beside it.
- The OSD cannot revive an entry that was disabled, filtered out or retired.
- Reactive underline effects stop as soon as their own toggle is turned off.
- A track with an unknown length shows --:-- instead of LIVE.
- Switching media players skips a browser session that has already stopped.
- The media card sits evenly in its padding.
- Clicking anywhere on the media art jumps to the player.
- Small slider handles keep the shell's squared-off shape.
- The bar clears the window title on an empty workspace.
- Leaving a fullscreen window for an empty workspace lets notifications through again.
- A Wi-Fi password stays in the field while new scan results arrive.
- The Wi-Fi password field scrolls into view when it opens near the bottom of the list.
- The Wi-Fi list refills after the adapter drops out and comes back.
- Silere Shell says when it has not been checked for an update yet.
- Unreadable or malformed update cache data reads as unverified.
- Active notifications keep their original age and read state across a shell reload.
- Malformed saved notification flags and timestamps no longer disturb card timing or read state.
- A wallpaper palette is reported as retained when its file disappears or Matugen is removed.
- A Matugen repair finishes and reports back even if you leave the Maintenance page.
- A package check that keeps failing raises a warning in the bar.
- AUR packages stay labelled as AUR when a long repository update list is truncated.
- Rechecking optional tools clears a notification-daemon conflict that has gone away.
- Rechecking tools revives screenshot feedback after its target directory is created.
- Bar effects, notification timers and OSD entries settle while the session is idle.
- Menus, the calendar, tray flyouts and quick actions close while the screen is blank or overview is open.
Silere Shell 0.7.0
Upgrading: package update counts cover the repositories only. Turn Include AUR
packages back on under Settings › System › Updates to keep foreign packages in the count.
Added
- Notifications, the calendar, quick actions and tray menus can follow the bar's opacity, under Bar › Layout.
- The reactive underline can light the whole bar, under Bar › Underline.
- Quick actions open over IPC, so Do Not Disturb and airplane mode can take a keybind.
SILERE_ASSUME_YES=1installs without prompts, for dotfiles scripts and containers.- Settings say when reduce motion or a missing libnotify stops a row taking effect.
Changed
- Sliders are built from the same groove and handle as the switches.
- Panels and page swaps settle faster.
- The gem and line workspace markers are flatter, and hold steady when you switch.
- Package update checks cover the repos only; the AUR is opt-in under System › Updates.
Removed
- The OSD volume emphasis tint.
- The red stripe beside critical notifications in history.
Fixed
- Menu and settings icons match the rows they sit on.
- The bar stays put when you turn shell shadows on or off.
- The installer finishes and prints the manual autostart line when a Hyprland config path is wrong.
- Leaving airplane mode brings back the radios that were on, and leaves the rest alone.
- Dot and Bullet dividers keep different sizes at compact spacing.
- Card dividers hold one weight, including under an open Wi-Fi or Bluetooth list.
- A settings section fades in already drawn.
- Keybinds open the menu, calendar, tray and quick actions on a display that has a bar.
- Quick actions show the power mode without the settings menu, and retry it after a failed read.
Silere Shell 0.6.1
Upgrading: nothing to do.
Fixed
- Workspace dots hold steady when you switch workspaces.
- The battery icon draws the charge level it reports.
- Muted audio draws the crossed-out speaker.
- The AUR package ships only the Matugen template under
assets/, not the README images. - The installer points to the uninstall script only where one exists.
Silere Shell 0.6.0
Upgrading: nothing to do. Packaged installs no longer carry Silere's developer
scripts under /usr/share/silere-shell; remove one with your package manager as before.
Added
- With Playback status on, the media visualizer doubles as the progress readout:
the spectrum past the playhead is dimmed. - A dot in the settings rail marks each page holding a value you changed from its
default. A collapsed group carries one for the pages inside it. - Mark changed pages in Settings › Appearance › Interface turns those dots off.
Fixed
- The Now page's memory tile turns amber past 75% and red past 90%.
- Opening Settings from the shell-update pill anchors the panel under it.
- Settings dropdowns draw their choices like the Now page pickers.
- Workspaces no longer offers a visibility switch in Settings › Widgets.
- The Wi-Fi list holds its order between scans.
- The media card's player name lights up under the pointer.
- Glow strength covers only the range that still changes the underline.
- Settings › Bar › Underline says the line keeps its resting glow when no event is on.
- Reordering bar widgets no longer closes the menu, and neither does resetting them.
- The settings rail keeps the current page marked while the pointer is over it.
- Descriptions and hints across the settings pages are brighter.
- Shell shadows and Depth moved to Settings › Appearance › Theme.
- Shell shadows names what it covers while the bar is docked.
- Untracked files no longer block shell updates. When an incoming file genuinely
lands on one, git's reason and the filename are reported. - A blocked update points at
scripts/repair.sh --applyinstead of suggesting
commit or stash. - The repair workflow works from linked Git worktrees and rejects extra arguments.
- Installing from the Updates page checks the same blocked reasons the button does.
- Temporary Cava profiles left in
$XDG_RUNTIME_DIRby dead processes are cleared. - Settings rail: group headers are plain text, only the current group is marked, and
children indent clear of it. - The calendar's today pill grows with the font.
- Settings › Widgets › Show & order no longer claims arrow keys move between lanes.
- The font picker says it lists Nerd Fonts only.
- Keep groups open moved out of Text & accessibility into its own Menu group.
- Floating bar Width, Edge gap and Roundness share one disclosure, so turning it on
plays a single reveal. - Order & visibility is now Show & order, which fits the rail. A check keeps
future nav labels inside the width. - The Wi-Fi row reports a hardware rfkill block ahead of a note about Ethernet.
qs ipc call menu settings <name>falls back to Theme for a renamed section, as
documented, and still reports the unknown name.- The network widget follows the live wired link when Ethernet and Wi-Fi are both
connected. Disconnecting from the Wi-Fi list acts on the Wi-Fi radio, and a late
successful connection clears its earlier timeout error. - Night Light adopts an already-running
hyprsunset, says when it could not check,
and reports external stop or temperature-change failures. - Brightness writes are bounded and keep their timeout error instead of replacing it
with a generic process failure. - Wi-Fi and Airplane Mode no longer offer toggles a hardware rfkill switch refuses.
- Theme and Maintenance report a palette file that could not be read.
- Quick actions no longer show Power Mode as live when no daemon answers.
- Acting on a notification keeps it in history, as dismissing already did. Notifications
a sender withdraws are kept too, and corrupt numeric roles are normalized on restore. - A supervised process no longer retires on a signal sharing a number with a give-up
exit code. - Settings › Bar › Underline reports a missing screenshot folder instead of showing the
control as live. - The AUR package installs only the scripts the shell runs, not the developer tests,
probes anduninstall.sh. - Bundled AUR metadata now reports the current release line.
Silere Shell 0.5.1
Upgrading: nothing to do. If 0.5.0 left your wallpaper colors stuck on the bundled palette, Settings › System › Maintenance now offers a one-tap Repair instead of a full reinstall.
Added
- Repair action on the Matugen row in Settings › System › Maintenance, and a
matchingscripts/install.sh --repair-matugen. Upgrading to 0.5.0 leaves
Matugen writing to the old in-checkout path until the installer is re-run, and
the health card could name that but not fix it. The repair rewrites only
Silere's own template and its marked block inconfig.toml, backs up what it
touches, and refuses a[templates.silere-shell]entry it does not own.
Silere Shell 0.5.0
Upgrading: re-run the installer. Matugen now writes
$XDG_CONFIG_HOME/matugen/silere-shell.json instead of a file inside the checkout,
and until your config.toml points there, wallpaper colours stop changing and the
shell falls back to its bundled palette. If that file has an unpaired
# silere-shell marker the installer declines to touch it and says so; repair the
pair, then re-run.
Added
- Include AUR packages toggle under Settings › System › Updates, counting
updates through paru or yay when one is installed. On by default. Checks stay
read-only and never install anything. - Settings › Theme and Settings › System › Maintenance now name whether Matugen is
missing or has simply not written a palette yet, instead of presenting the
bundled colours as if they came from the wallpaper.
Changed
- Matugen palettes live-reload from a user-writable JSON file, which also makes
read-only packaged installs work. - Text no longer scales on hover or press. A scaled glyph is drawn at one size and
resampled to another, which softened labels on fractionally scaled outputs.
Surfaces still react; the text on them stays put. - Text renders with distance fields rather than snapping to a device pixel grid
that fractional scaling has already resampled away. - Buttons, pills, chips, toggles, media controls and slider handles share one hover
and press response, quicker in than out. - The bundled fallback accent is Silere's own default accent rather than white, so
a system without Matugen looks like a fresh install rather than a stark one. - Renamed the theme Source option from Neutral to Custom, and the accent picker's
custom swatch to Mix, so the two no longer share a name.
Removed
- Keyboard navigation and its accessibility metadata. Tab order, arrow-key
stepping, focus rings, the settings sidebar's keyboard cursor and every
Accessiblerole, name and description are gone; the shell is pointer-driven.
Escape still steps back and closes, scrolling works everywhere it did, and the
Wi-Fi password field still takes typed input. Screen readers can no longer
describe the shell.
Fixed
- A saved Wi-Fi network whose password had changed could not be reconnected. The
row reconnected from the stored key, and once that key was refused, tapping again
only repeated it — there was no way to enter a new one. A refused key now offers
a retype, and the reason NetworkManager gave is no longer discarded, so a wrong
key reads as Wrong password instead of Failed. - The installer refused nothing on an unsupported session: a GNOME, KDE or sway
user could install every file successfully and only find out at the autostart
step, worded as a missing Hyprland config. It now names the compositor it found
and asks before writing. A Hyprland or niri config on disk still counts, so
installing before the compositor is up keeps working. scripts/install.shignored unrecognised arguments and started a real install,
so--helpinstalled instead of explaining. It now prints usage, and an unknown
option exits 2 without writing anything.- The media visualizer and track marquee froze on the only visible bar whenever
focus moved to a monitor with the bar disabled. - The screenshot watcher respawned every 60 seconds forever when no screenshot
directory existed, instead of giving up on a failure restarting cannot fix. - Notification history mislabelled days after a daylight-saving change, where a
23-hour day put every entry one bucket early and produced two Yesterday
headings. - A hung update check, package check or VPN lookup now recovers through one shared
bounded-process timeout instead of three hand-rolled timers. - Optional-tool and font detection refresh cleanly at runtime.
- The workspace and window models no longer rebuild for a compositor event
carrying nothing they read; it fired 420 times in two hours of ordinary use. - Changing the clock's date style, or middle-clicking the clock, wrote the settings
file twice in a row. - The first settings section opened in a session no longer stutters compiling every
shared control before it can draw. - Settings row names keep a readable floor when space runs short; the value
shortens first. - Dropdown options and the Wi-Fi and Bluetooth list placeholders sat 4px shorter
than neighbouring rows above 100% interface scale, putting dividers off the
shared rhythm. - The Wi-Fi password field is marked sensitive to input methods, so an IME or
on-screen keyboard no longer capitalises the first character of a case-sensitive
key or keeps it in predictive-text history. - The settings panel eases to its new height when a category collapses instead of
snapping. - The palette card no longer bulges while switching theme Source between Custom and
Wallpaper. - Corrected the generated Cava profile's smoothing range.
Silere Shell 0.4.0
Upgrading: settings carry over. Git checkouts now receive shell updates from
signed stable releases instead of every commit added to main.
Changed
- Power Mode says when the daemon reports that Performance is being throttled by
hardware, thermals or lap detection. - The media visualizer paints its small canvas directly, reducing its measured CPU
use by about a fifth without changing its appearance. - Slider handles use Silere's narrow rectangular shape, clearer hover and focus
contrast, and consistent Home, End, Page Up and Page Down controls. - Compact widget and tray spacing is tighter, with stronger high-contrast focus
rings.
Fixed
- Power Mode verifies changes against the daemon, retries transient read failures,
and cannot publish a stale throttling reason from a canceled probe. - Session-bus helpers have hard time limits, so a stalled backend cannot leave a
shell control busy indefinitely. - Truncated client labels preserve complete emoji, combining marks, flags and
joined sequences. Missing tray icons use a complete grapheme for their badge. - Urgent workspaces outside the visible page avoid a transient layout binding loop.
- System maintenance reports when configured alerts cannot be delivered because
libnotifyis missing.
Security
- Shell updates require an annotated stable release tag signed by Silere's bundled
public verification key. The signature is checked again immediately before
installation, and unsigned releases are rejected without changing installed
files. - The bar opens the update review instead of installing directly. Pending commits
are shown and installation requires a second confirmation.
Silere Shell 0.3.0
Upgrading: settings carry over. A stored barCornerStyle of "flat" becomes a
Roundness of 0. A custom accent you already set is left exactly as it is. :D
A shadow depth above 160% or a dot opacity below 10% settles onto the new end of
its slider; both drew the same thing there already, so nothing looks different.
Added
- Accent colours can be mixed by hand. A Custom swatch at the end of the accent row
opens a hue strip and an intensity strip. Before this there was only a hue strip,
and it silently reused the saturation of whatever colour was already set, so the
first custom colour anyone picked inherited the palest preset and stayed there. - An AUR package.
packaging/aurcarries the PKGBUILD, and an install with no git
checkout hides the git-backed update controls instead of failing on them. - Edge gap for a floating bar, adjustable from 0 to 24 px.
- Workspace urgent pulse is its own toggle.
- Night Light, the daily update check and Power Mode say why a switch flipped back
rather than failing silently.hyprsunsetexiting on its own reports its last
output line, and a rejectedpowerprofilesctl setreports its own. - Reset backups are stamped with the time, so a second reset no longer overwrites
the record of the first. The five newest are kept. - Hovering a notification stack holds the timer on every card in it. Cards used to
expire out from under the pointer and reflow what you were reading. - The settings category rail draws an edge line when there is more to scroll.
- Notification history animates. Dismissing one entry glides the rest up instead of
snapping them, a newly archived notification fades in, and expanding a truncated
body eases the row open. - Notification history has privacy controls: its size is adjustable, and saved
notification text can be cleared and kept only for the current session. - A workspace app icon falls back to a lettered badge when the application ships no
icon at all. Those windows used to be dropped from the row, so a workspace holding
only unpackaged apps looked empty. - A notification whose app icon is missing or fails to load shows the app's initial,
in the popup and in the history list. The icon slot also keeps its width either
way, so a notification with no icon no longer shifts its own header text.
Changed
- Accent colours are mixed in LCh at a fixed lightness. In HSL, sweeping the hue
swung lightness across 34 points of L* while the built-in presets span 5, so a
hand-picked colour came out either glaring or muddy depending on where you landed.
Every hue now sits at the presets' own lightness and stays inside sRGB. - Choice controls (Source, Date, Position and the rest) are separated chips, and the
selected one carries an accent outline instead of a filled plate. - Bar corner style folded into Roundness, where 0 is flat. The slider appears only
for a floating bar, since a docked bar does not paint its own corners. - Workspace settings are grouped under General, Content and Behavior.
- Marker opacity reads "Number opacity" or "Dot opacity" depending on which the
marker is actually drawing. - The widget arranger follows the interface scale and scrolls the settings page
when a dragged row reaches an edge, so every lane stays reachable at large type. - OSD settings are grouped, and a row that depends on a toggle now sits under it.
- The Battery settings section is hidden on systems with no battery instead of
showing a disabled row. - Base is one row for both theme sources. Switching Source recolours it in place
instead of collapsing one row and expanding a near-identical one. - Every scrolling surface rebounds the same way on a flick. The notification list
and both tray menus had drifted to a hard stop. - The Night Light panel builds when you open it, as the Wi-Fi and Bluetooth panels
already did. - "Fully-charged OSD" is now "Fully charged alert", and the desktop-notification
timeout reads "Dismiss after" like the other two timeout rows. update.shanswers version and status queries on an install with no git checkout
instead of treating it as a failure.- Both "Dismiss after" rows are sliders rather than fixed buttons, and reach the
range the settings file already allowed: 10 s for the OSD, 30 s for notifications.
The button rows stopped at 5 s and 15 s, so most of the range was unreachable. - The media visualizer fades out when playback stops. It holds its last frame for
the length of the fade and drops the cava client immediately; before, it was
destroyed in the same frame the fade began, so the fade played against nothing. - README resource figures re-measured, separating Silere's own memory from the Qt
and GPU driver floor. - Popups stay attached to the widget that opened them. The menu, calendar, quick
actions and a tray menu re-anchor when the bar reflows underneath them, and close
if that widget goes away, rather than hanging off the position it had at open. - Clicking a tray icon whose menu is already open closes it. It used to reopen the
same menu in place, so the icon had no way to put it away. - Every settings slider covers exactly the range its setting accepts, and a lint
keeps the two from drifting again. The temperature warning slider was missing its
bottom 20°, and the top fifth of the shadow depth slider rendered identically.
Fixed
- Moving one accent strip no longer nudges the other. Both axes were read back out
of the stored colour, so each one inherited the other's rounding, and the strip
you were not touching animated the drift. - The hue strip works at zero intensity. Every hue wrote the same grey, so the
thumb snapped straight back and the strip did nothing at all. - A custom colour keeps its hue near grey. An 8-bit near-grey carries no hue to
recover, and the reading it produced was noise. - A setting changed in the last fraction of a second before logout is no longer
lost. Toggles and choices write immediately; sliders still settle first, and
calendar day marks write the same way. - A double-click can no longer arm and confirm a destructive action in one gesture.
Affects the power actions, clearing notification history, and resetting settings. - A row that disables itself while handling its own click no longer comes back
looking keyboard-focused. - Hidden controls stay out of the tab chain, and every control activates from the
keyboard the same way. - A track that reports no length no longer shows one.
- An app or notification whose name begins with an emoji gets a whole character in
its initial badge. Reading the first UTF-16 unit split the pair and drew a blank
box instead of a letter. - "Always show speed" no longer appears underneath a Network speed row that is
disabled for want of NetworkManager. - The bar underline preview no longer reaches for an effect that is not built yet.
- The bar no longer holds width for a window title it is not drawing. With the title
on but no room to draw it, the media text was squeezed and the bar latched into
compact for a title that never appeared — easiest to hit with the visualizer
centred, which competes for the same space. - The OSD shows again while the menu is open on a page with no volume or brightness
row. It was suppressed for the whole menu, not only the page that replaces it. - The workspace missed-notification dot appears while a fullscreen window is
silencing notifications, not only during Do Not Disturb. - Notification popups follow the configured floating-bar edge gap instead of using
the old fixed inset. - Calendar mark read and save failures are shown inside the calendar, and fixing a
malformed marks file re-enables writes without restarting the shell. - The bundled AUR metadata reports a real VCS version and enforces the same
Quickshell 0.3 minimum as the installer documentation. - A track whose cover art goes away stops showing the previous track's cover. MPRIS
sends metadata in separate updates, so the old art is held briefly to cover the
gap, then dropped rather than kept forever. - A tray menu that nests deeper than eight levels stops building submenus instead of
descending without end, and an entry whose signal raises is reported rather than
taking the whole menu down. - The output device falls back to its nickname or node name when PipeWire reports no
description. That row was simply blank before. - A volume, track length or playback position that arrives as NaN or infinity is
normalised at the service instead of reaching a label, an icon threshold or a
progress bar.
Removed
- The "Bar corner style" setting. Roundness 0 is flat.
Security
- Persisted notification history is closed to other local users. Quickshell owns
that state file and creates it with the session umask, commonly leaving
notification text world-readable; its directory is now made0700and the file
0600, which also covers a file written after the shell starts. The packaged
launcher starts with a private umask as well. - Single-line text supplied by clients now drops control and bidirectional
override characters before layout and accessibility consume it. Raw network
and device identifiers remain untouched for backend actions. - The installer creates its config directory as 0700 for the whole path, not only
the last segment. - The updater creates and re-hardens its whole cache path with private permissions.
- Text that arrives from another program is length-bounded before anything binds to
it: window titles and app ids, player metadata, tray labels and tooltips, audio
device names, and updater output. A single enormous string could previously ask
the shell to lay out a label as long as the string. - Icon and image sources are matched against an allowlist — local files and Qt's own
image providers — instead of a list of known-remote schemes. A sender can no
longer hand the shell an unusual URL and make it fetch over the netwo...