A Caelestia-inspired shell for GNOME: one rounded frame, your own bars and docks, and drawers that join the desktop.
Bezel draws panels, docks, and popouts over GNOME Shell. Workspaces, apps, audio, session actions, and window space stay GNOME’s. The look is inspired by Caelestia.
- Desktop frame with a rounded opening, drawer joins, and a shadow that follows the palette.
- Layouts for a left rail, a bottom panel, a dock, or a top bar plus dock. Save your own and undo a preset.
- Bars and docks on any edge, floating or reserved, with pins, running apps, and modules you can reorder.
- Launcher on Super+Space. Fuzzy-search apps, open windows, Bezel settings, themes and layouts. Visible Actions (
>), Files (/), Web (?) and Commands ($) modes also support file paths, URLs, calculations, conversions and web bangs such as!gand!yt. Existing apps switch to their latest window; New window is a separate action. - App feedback per bar: highlight, lift or both on hover, optional press animation, and separate running/focused indicators.
- Quick controls for volume, network, and Bluetooth, using GNOME’s own device lists.
- Dashboard for the calendar, media, performance, and workspaces.
- Extension icons hosted on a Bezel bar, with size, spacing, and order.
- Palettes including Catppuccin, Rosé Pine, Nord, Bezel’s own colours, a custom palette, and colours derived automatically from your wallpaper.
This installs Bezel, and it also replaces a copy that is already installed. Saved bars, pins, and palettes stay in GNOME. Only the extension files are replaced.
git clone --depth 1 https://github.com/DeLuca21/Bezel.git /tmp/bezel-install
mkdir -p ~/.local/share/gnome-shell/extensions
rm -rf ~/.local/share/gnome-shell/extensions/bezel@deluca21
cp -a /tmp/bezel-install/bezel@deluca21 ~/.local/share/gnome-shell/extensions/
glib-compile-schemas --strict ~/.local/share/gnome-shell/extensions/bezel@deluca21/schemas
rm -rf /tmp/bezel-installLog out and back in. The first time, enable Bezel in Extensions. Wayland loads extension JavaScript at login, so an update needs that logout too. About in Bezel settings can run these commands after showing them for confirmation.
Bezel settings open in a dedicated custom app, from the dashboard, launcher, Extensions app, or a bar’s right-click menu. Its palette, rounded cards and visual editor match Bezel. It runs as a real window with normal stacking, resizing and Super-dragging.
In Opening & motion > Session animations, enable login, lock, and unlock independently. All three share the selected animation style and speed. Lock uses a temporary decorative frame over GNOME’s lock screen; unlock reveals the desktop and bars after the lock screen disappears. The new lock and unlock options default to off and respect reduced motion.
In Opening & motion, Off, Fade, or Retreat runs for layout, preset, and palette changes. New installs use Retreat at 500 ms. Transitions respect GNOME’s reduced-motion preference.
Preset cards and saved-layout chips sit above an interactive desktop preview and independently scrollable editor. Click a bar to select it, then use Contents, Size & space, or Apps & logo. Modules appear as chips inside sections and groups. Palettes show swatch cards; custom colours use GNOME’s picker. Switching layouts with unsaved changes offers Cancel, Discard, or Save and switch.
In Appearance > Palette, choose Wallpaper to follow your current background. Pick Automatic or a source swatch, choose muted, vibrant or monochrome colours, and follow the system light/dark style or choose one explicitly. Unreadable backgrounds retain the previous palette. Bars with their own colours keep those overrides.
In Appearance > Glass & blur, enable Live window blur to blur windows behind shell surfaces. Glass uses the shared desktop scene for panels, docks, screen-border tiles, notifications and opening drawers. With live blur off, shell surfaces use wallpaper-only glass.
Notification banner animation is independent of drawer motion: Default keeps the native slide, while Grow, Drip, Drip then grow, Drop then expand and Unfold reuse drawer motion. Highlight app edges controls the app rim separately from shell glass highlights and is available with the Glass finish.
Enable glass switches all selected glass surfaces off and on without resetting their choices. Application Glass finish uses the shared tint, brightness, contrast and edge highlights; turning glass off makes these apps opaque. Plain application blur remains independent.
Application blur caches a blurred scene beneath foreground app content. Dynamic backdrop includes lower windows; Static wallpaper includes wallpaper only. The scene spans the desktop so moving between monitors does not switch backdrop sources. Sigma controls blur strength (radius is twice Sigma), brightness adjusts the backdrop, and opacity (0–255) controls foreground content independently. Tint and contrast remain shell-glass controls. Opaque focused window, blur on overview and unblur when fullscreen control visibility. Corner radius shapes the backdrop unless the window actor already supplies rounded clipping.
App blur defaults to off, Dynamic, Sigma 12, brightness 100%, and opacity 200. Choose only whitelisted apps or all apps except the blacklist; only the selected list is displayed and applied. Use Add Window, then click an outlined app window. Each app has an expandable row with a picker and editable class name. Press Esc to cancel or use the remove button to delete an entry. App IDs and wildcard rules remain supported.
Right-click a bar for settings, edit mode, panel or dock, floating, autohide, and remove. Edit mode outlines the bars, puts + on empty screen edges and on each section, and lets you drag what is already there. Edit mode never opens settings automatically. Right-click a module while editing to remove it, create a group, or move it into an existing group. Groups can contain any modules and empty spaces; removing a group keeps its contents. Resize spaces from their edit menu or click their chip in settings for an exact pixel size. App pins stay on the app’s right-click menu.
Launcher search settings live under Your shortcuts: choose a web engine and search folders (separated by semicolons). File search excludes hidden folders and does not descend into symlinks, node_modules or vendor; each search covers up to six directory levels and 15,000 entries. Use /claire or / claire to search filenames in Files mode. A full path such as /home/jamie/Pictures/ searches that directory directly; use //name for an item directly under the filesystem root. Press Shift+Enter for a result’s secondary action. Matching apps show their windows directly underneath; select a window with Up/Down and Enter, or click it. Use the window-count button to expand or collapse the list. Commands run installed programs with arguments from your home folder: Enter uses a terminal, Shift+Enter runs in the background. Shell syntax requires an explicit shell such as sh -c.
In Desktop > Overview background, choose Off, Dimmed wallpaper, Blurred wallpaper, or Gradient. Wallpaper styles have a dimming control; blur adds a radius control, and the palette gradient has a colour-strength control. The background fills all monitors behind workspace previews, including when a window is fullscreen. Off keeps GNOME’s standard background.
App feedback settings are under the selected bar’s Apps tab. Cycle windows is the default for bars without a saved click preference; existing preferences are preserved. Click actions include Cycle windows (focus the app, then cycle on repeated clicks), Minimize / restore (the current workspace’s window group), Activate, and Window list. Focus indicators can combine an accent line and background. Minimise/restore animations target the app’s icon, including after moving a bar. Lift points toward the desktop on each edge and respects GNOME’s motion preference. Applying a layout from the launcher exposes an Undo layout change action to restore the previous setup.
- Found a bug? Report it via GitHub Issues.
- Have a feature request? Feel free to suggest improvements.
- Pull requests are welcome!
If you enjoy Bezel, consider supporting development:
Bezel is not Caelestia, and it is not part of the GNOME project. It is a shell extension that uses GNOME’s own services. Some Caelestia pieces, including its full launcher providers, wallpaper browser, and stacked toasts, are not in this extension.







