Aurora over the mountains: ink-navy nights and polar-dawn days, periwinkle and aurora-teal accents, frosted 12 px surfaces and pill-shaped titlebar buttons. Built for Fedora 44 / Plasma 6.7.
| Borealis Dark | Borealis Light |
|---|---|
![]() |
![]() |
| Alt+Tab switcher | Kate / KWrite |
|---|---|
![]() |
![]() |
| Borealis Tweaks | Firefox |
|---|---|
![]() |
![]() |
| The dock | Quick Settings |
|---|---|
![]() |
![]() |
| Component | Name(s) | Notes |
|---|---|---|
| Global Themes | Borealis Dark, Borealis Light | A pair for Plasma's automatic day/night switching |
| Color schemes | BorealisDark, BorealisLight | Every text color meets WCAG AA (4.5:1) — tools/contrast.py checks it |
| Plasma Style | Borealis | Frosted (≈80 % + blur), 12 px corners, pill task indicators, Borealis checkboxes, radios, switches, aurora progress bars and spinner |
| Window decoration | Borealis-Dark / -Light (Aurorae) | Teal · periwinkle · rose pills; glyphs appear on hover |
| Task switcher | built into each Global Theme | Frosted card of rounded window previews (Alt+Tab) |
| Wallpaper | Borealis | Procedural aurora: night (dark) and dawn (light) |
| Animated wallpaper | Borealis Aurora | GPU-shader aurora + twinkling stars, for desktop and lock screen; pauses behind maximized windows, eases off on battery, and can follow the real aurora |
| Cursors | Borealis Snow (dark), Borealis Ink (light) | SVG cursors + Xcursor fallbacks, aurora spinner |
| Icons | Borealis-Dark / -Light | Aurora-gradient folders, squircle icons for common apps, Borealis logo — on top of Tela |
| Sounds | Borealis | Soft glassy chimes (E-major pentatonic) for login, notifications, devices, battery… |
| Fonts | Inter + JetBrains Mono | Set by the Global Themes (install the fonts first, see below) |
| Splash screen | built into each Global Theme | Logo, wordmark and an aurora progress bar |
| Boot splash | Borealis (Plymouth) | Same logo and aurora spinner from power-on |
| Desktop layout | built into each Global Theme | Floating top bar (launcher, global menu, centered clock, tray) + floating dock |
| Konsole / Kate | Borealis Dark / Light | Terminal schemes + profiles, editor themes |
| Dock | Borealis Dock | A standalone macOS-style dock: icons swell above the shelf, running dots, pinned ┆ open ┆ trash, drag to reorder or pull off to unpin, three hide modes, any screen edge, live window previews, Launchpad, Stacks, clock/battery/now-playing widgets and shareable presets (--dock; a panel-widget version remains as the fallback) |
| Top bar | Borealis Bar | A standalone top bar: the Borealis menu, the app's menus, a centred clock with notifications and a calendar, tray icons, USB drives and a Control Center (--bar; a Plasma panel remains the fallback) |
| Quick Settings | Borealis Quick Settings | Wi-Fi, Bluetooth, Night Light, power profile, light/dark, animated wallpaper, brightness and volume in one popup |
| Tweaks app | Borealis Tweaks | Switch variant, remix the palette onto any colour, toggle the animated aurora, undo |
| Firefox | borealis-userChrome.css |
Toolbars, tabs, address bar and menus in Borealis (--firefox) |
| GRUB menu | Borealis | Aurora boot menu, so power-on to desktop is one look (--grub) |
| Command line | bat, tmux, git, ls, fzf, bash prompt |
One palette for the terminal's contents too (--terminal) |
| GTK4 / libadwaita | borealis-libadwaita.css |
Borealis surfaces and the exact accent for GNOME apps, light/dark live (GTK3 apps already follow via Breeze-GTK) |
sudo dnf install rsms-inter-fonts jetbrains-mono-fonts # optional but intended
./install.sh./install.sh copies everything into ~/.local/share without changing your
current look. Then choose Borealis Dark or Borealis Light in System
Settings › Colors & Themes › Global Theme. Tick Desktop and window layout
only if you want the top bar + dock (it replaces your current panels).
Or apply from the terminal — it backs up your settings first and prints the undo command:
./install.sh --apply dark --liveOption (with --apply) |
Effect |
|---|---|
--layout |
also use the Borealis panels |
--auto |
Borealis Light by day, Borealis Dark at night |
--live |
animated aurora on the desktop and lock screen |
--konsole |
make the Borealis profile Konsole's default |
--gtk |
Borealis colors for GTK4/libadwaita apps |
--flatpak |
same for Flatpak apps (implies --gtk; gives every Flatpak read-only access to ~/.config/gtk-4.0) |
--terminal |
bat, tmux, git, ls, fzf and prompt colors (adds one line to ~/.bashrc) |
--firefox |
Borealis chrome for Firefox (writes into your Firefox profile) |
--panels |
put the dock and Quick Settings into the panels you already have |
--dock |
switch to the standalone Borealis Dock (runs now and at login; your pins come along) |
--dock-revert |
back to the panel dock |
--dock-merge |
--dock, and fold the rest of your bottom panel (tray, clock) into the top bar |
--apply also sets the Borealis wallpaper on the lock screen (Fedora otherwise
pins its own) and switches to the Borealis sound theme.
To undo: ./uninstall.sh --restore ~/.local/state/borealis-backup/<timestamp>.
To remove the files: switch to another Global Theme, then ./uninstall.sh --remove.
Desktop › Configure Desktop and Wallpaper › Wallpaper type › Borealis Aurora (and the same under Screen Locking › Appearance). Settings: sky (follow the color scheme / always night / always dawn), speed, brightness, twinkling, frame rate, and the power savers. It renders the aurora at half resolution and ~24 fps, stops completely behind maximized/fullscreen windows and when animations are turned off, and on battery slows to 10 fps (or pauses, or keeps going — your choice). On the lock screen it runs at most 15 fps, because Plasma re-renders the wallpaper through a blur there.
Wallpaper settings › Real aurora › Follow tonight's actual activity. The wallpaper then asks NOAA's space weather service for the planetary K-index every 20 minutes and scales the aurora to match: barely there on a quiet night, blazing during a storm. It can also notify you when the index reaches 5, which is roughly when an aurora becomes visible at mid latitudes. This is the only part of Borealis that uses the network, it is off by default, and it sends nothing but the request.
Global Theme › Switch to Dark Mode at Night (Light: Borealis Light, Dark:
Borealis Dark) and Configure Day/Night Cycle… — or ./install.sh --apply dark --auto.
sudo ./install-system.sh # system-wide copies for the login screen
sudo ./install-system.sh --plymouth # also the Borealis boot splash (rebuilds the initramfs)
sudo ./install-system.sh --grub # and the GRUB menu (rewrites grub.cfg)Then System Settings › Login Screen › Apply Plasma Settings… and, under
Configure Appearance…, pick an image from /usr/local/share/wallpapers/Borealis/.
sudo ./install-system.sh --remove undoes the copies;
sudo ./install-system.sh --plymouth-revert restores the previous boot splash,
--grub-revert puts the plain text boot menu back.
tools/grub_mock.py previews the boot menu without rebooting.
- Konsole: Settings › Manage Profiles › Borealis Dark › Set as Default (or
--konsole). - Kate/KWrite: Settings › Configure › Appearance › Color Theme › Borealis Dark / Borealis Light.
- Window borders follow Window Decorations › Border size (4 px at Normal). Bottom corners stay nearly square: KWin doesn't round window contents.
- Icons need Tela (in
~/.local/share/icons); without it Borealis falls back to Breeze and keeps its folders, app icons and logo. - Lock screen: Plasma 6.7 doesn't let Global Themes replace its layout;
Borealis styles it through colors, Plasma Style and the (animated) wallpaper.
Plasma always draws the lock-screen clock in white, so the light variant uses
a dimmed copy of the dawn wallpaper (
Borealis-Lock) to keep it readable.
Everything is generated from Python (PIL, pycairo, librsvg via GObject; Qt's
qsb compiles the shaders; ffmpeg encodes the sounds):
./build.py # everything → build/share
./build.py plasmastyle # or one step: colors apps cursors wallpaper plasmastyle
# aurorae icons sounds live plymouth gtk terminal lnf
tools/check.py # QML, SVG, JSON, package, Plymouth and WCAG checks
tools/contrast.py # just the WCAG audit, pair by pair
tools/tweakscheck.py # every Borealis Tweaks page, narrow and wide, off-screen
tools/barcheck.py # the bar's Control Center, every page and edit mode, with stand-in backends
tools/plasmacheck.py # what each Plasma settings page and desktop preset writes, into a throwaway config
tools/testsession.py dark # screenshots from an isolated, off-screen Plasma session
tools/package.py # KDE Store archives → dist/ (see STORE.md)With make installed, make, make check, make test, make package and
make apply wrap the same scripts.
Palette, radii and translucency live in src/tokens.py.
Borealis Bar takes the place of the top Plasma panel with a bar drawn like the dock: a floating frosted strip that turns flush and solid while a window is maximized.
./install.sh --bar # start it, keep it at login, retire the top panel (backed up)
./install.sh --bar-revert # back to a Plasma top panel- The Borealis menu at the left: About This Computer, System Settings, Borealis Tweaks, Force Quit the app in front, Sleep, Restart, Shut Down, Lock Screen and Log Out.
- The name of the app in front and its menus (File, Edit, View…), the way Plasma's global menu shows them. With one open, move along the titles to switch menus.
- The clock in the middle. Click it for your notifications beside a calendar, with Do Not Disturb; a dot by the time means something new arrived. The bar is the desktop's notification server, so new notifications (and file copy progress) show up as banners under it, buttons and all.
- Apps' tray icons: click, right-click for their menu, middle-click, scroll.
- A drive icon while a USB stick or memory card is plugged in: open it, or remove it safely.
- The Control Center: battery and session buttons, sliders (screen
brightness, volume, microphone, keyboard light), what's playing, and round
toggles for Wi-Fi, Bluetooth, Night Light, the power mode, dark style, Do Not
Disturb, the animated aurora and Stay Awake, with Airplane Mode, Hotspot,
Microphone, Keyboard Light, Screenshot and Record Screen a click away.
- A toggle's arrow opens its page: join a Wi-Fi network (typing a new one's password right there), connect or disconnect a Bluetooth device, pick where sound plays and set each app's volume, choose a power mode, silence notifications for an hour or until morning, share the connection as a hotspot, or capture a region, a window or the screen.
- The pencil turns on edit mode: drag toggles into the order you like, take one out with −, add another from the list below.
Everything is on the Bar and Control Center pages of Borealis Tweaks
and applies as you change it: the look, which items sit left, middle or right,
the clock, where banners appear, which tray icons show, and the Control
Center's toggles, sliders and the icons on its button. The pages write
~/.config/borealis/bar.json, which the bar watches: screen, height,
floating, gap, radius, opacity, blur, border, flush, left,
center, right, clockDate, clockWeekday, clockSeconds, clockHours,
banners, bannerPosition, pills, sliders, media, glyphs,
batteryPercent, trayHidden.
How it fits together: KWin shares its list of windows (which is where the menu
of the app in front comes from) only with programs it trusts by their
.desktop entry. The bar runs under a private copy of the Python interpreter
(~/.local/share/borealis-bar/bin/borealis-bar) that its entry names, so only
that copy gets the list, not every Python program. Plasma's own libraries do
the rest: notifications, network, Bluetooth, sound and brightness. The bar runs
as a systemd user service (systemctl --user status borealis-bar).
Borealis Dock is its own small app rather than a panel widget, so nothing caps it: icons swell above the shelf the way a Mac dock's do, with the icon under the pointer staying put while its neighbours make room.
./install.sh --dock # start it, keep it at login, retire the panel dock
./install.sh --dock-revert # back to the panel dock- Pinned apps, a divider, apps that are open but not pinned, another divider, the trash. A dot marks running apps; the front app's dot takes the accent.
- Click an app to bring it forward; click the front app to minimise it (or to step through its windows); middle-click for a new window; scroll over an icon to cycle windows. Launching apps bounce until their window appears.
- Drag icons to reorder them, drag one off the dock to unpin it, drop an app from the launcher onto the dock to pin it, drop files on an app to open them with it, or on the trash to throw them away.
- Right-click an icon for its windows, its own actions (a browser's "New Private Window"), New Window, Keep in Dock / Remove from Dock and Quit; right-click the shelf to open Launchpad, pick a preset, or turn hiding or magnification on and off.
- Hide modes: always visible (windows keep clear of it), dodge windows, or auto-hide; push the pointer against the screen edge to bring it back. Bottom, left or right edge; primary screen, every screen, or the one with the pointer.
- Click the app in front when it has several windows and they spread out (KWin's Window View) so you can pick one; "Show All Windows" in its menu does the same.
- Badges and progress: unread counts and download or copy progress that apps publish for their launcher icon (the Unity LauncherEntry API) appear on the icon.
- Meta+1…9 open or switch to the dock's first nine apps. Plasma keeps those keys for a task manager even when there is none, so the dock sets Plasma's to "none" while its own are on, and hands them back when you turn them off.
- Stacks: folders next to the trash (Downloads to begin with) show their newest files piled on the icon. Click to fan them out, or see a grid when there are more; click a file to open it, drag it out to use it elsewhere. Right-click a stack to sort it, choose fan or grid, or show the plain folder icon; drop any folder on the dock to add it.
- Window previews: rest the pointer on an open app and live pictures of its windows appear beside the icon (KWin draws them, so they're live). Move up into them and click one to switch to that window; middle-click or × closes it.
- Launchpad: the grid icon at the start of the dock, or Meta+Space, lays every app out on a frosted full-screen sheet, a page at a time. Type to search: apps first, then System Settings pages, sums, unit conversions and files from Plasma's runners. Arrows and Return launch, Escape leaves, and dragging an app onto the dock pins it. To open it by tapping Meta on its own, give Meta to "Borealis Dock: Launchpad" in System Settings › Keyboard › Shortcuts (KWin), after taking it off whatever holds it now (by default Plasma's application launcher).
- Widgets sit before the Stacks: a clock (analog or digital; click it for a calendar), the battery (click for power modes) and now playing (click to play or pause, right-click to skip or switch players). The battery and now playing appear only when there is one.
- Presets: Borealis, macOS and Minimal from the shelf's menu or the Tweaks page, plus your own. A preset changes the look and behaviour; your apps, Stacks and widgets stay yours unless you save or pick a preset "with apps". Export one to a file to share it, and import files others share.
borealis-dock --list-presets # * marks the one in use
borealis-dock --preset macos # or a name you saved, or a shared .json file
borealis-dock --export-preset ~/my-dock.json --with-apps
borealis-dock --launchpad # bind this to any key or gesture you likeEverything is on the Dock page of Borealis Tweaks (right-click the shelf
→ Dock Settings… opens it), and applies as you change it. The page writes
~/.config/borealis/dock.json, which the dock watches, so hand edits work too:
position, screen, iconSize, zoom, reach, spacing, padding,
margin, radius, opacity, blur, border, hide, hideDelay,
indicator, labels, bounce, divider, showTrash, animation,
clickAction, badges, shortcuts, previews, previewDelay, launchpad,
widgets, stacks, pinned. Saved presets live beside it
in ~/.config/borealis/dock-presets/.
How it fits together: KWin shares its window list only with plasmashell, so a
tiny KWin script (the "Borealis Dock bridge", enabled by --dock) reports the
open windows to the dock over D-Bus and carries out its window commands. The
dock runs as a systemd user service (systemctl --user status borealis-dock)
and needs PySide6 and layer-shell-qt (sudo dnf install python3-pyside6 layer-shell-qt); BOREALIS_DOCK_DEBUG=1 traces both halves.
The panel widget version is still built: the Global Themes' layout uses it
whenever the standalone dock isn't installed, and ./install.sh --panels
drops it (with Quick Settings) into panels you already have.
Borealis Quick Settings sits in the top bar and opens a popup with Wi-Fi, Bluetooth, Night Light, the power profile, light/dark, the animated wallpaper, and brightness and volume sliders.
install.sh also installs a small app — look for Borealis Tweaks in your
launcher. The first time it opens, a short welcome tour goes through the
choices that shape the desktop most: Dark, Light or day and night, the accent
colour, a desktop preset, the dock's size, the Control Center's toggles, and the
touchpad and Meta key. Each applies as you pick it, and any can be skipped. Its
sidebar has a page for each part of Borealis:
- Presets set the whole desktop at once: the dock, the bar and its Control Center, the title bar, window corners and effects, and the hot corners. Borealis, Mac-like and Minimal are built in; save your own (they keep the theme and its palette too), import and export them as files, and undo the last one. Your apps, fonts, touchpad and shortcuts are never part of a preset.
- Theme switches between Dark, Light and day/night, turns the animated aurora on or off, and rebuilds the whole theme around a colour you pick (seven presets or a custom colour).
- Bar and Control Center set up the Borealis Bar (see above).
- Dock has every setting of the standalone dock, with presets you can save, import and export. Sliders show their value as you drag.
- Windows: which title bar buttons show and on which side, how round the window corners are (just the decoration is rebuilt, in a few seconds), the blur and grain behind glass, and how fast things animate.
- Text & Pointer: each of Plasma's fonts and its size, smoothing, hinting and sub-pixel order, the pointer theme and size, and icon sizes in KDE apps.
- Touchpad & Keys: tap to click, tap and drag, what a two-finger tap does, right-clicking by the corner or with two fingers, pointer and scroll speed, natural scrolling and staying off while you type; and the shortcuts for Launchpad (a lone Meta too), Overview, the desktop grid, peeking at the desktop, search, locking, screenshots and switching desktops.
- Desktop: how many virtual desktops, their rows and names; what each hot corner does and whether screen edges switch desktops; night light (sunset to sunrise, at set times or always, and how warm); single or double click.
- System covers what lives outside Plasma: copying the theme system-wide for the login screen, the boot splash and boot menu, the Inter and JetBrains Mono fonts, GTK and Flatpak apps, Konsole's profile, the command-line colours, Firefox, and restoring any earlier backup.
The Plasma pages write the same settings Plasma's own settings pages do and
apply them at once; each section's Reset button returns to the Borealis
defaults. The heavy lifting elsewhere is the same build.py, install.sh and
install-system.sh used here, so anything it does can be undone from the
terminal. Switching between Dark and Light, here or in the Control Center, keeps
the fonts and pointer theme you chose yourself, which a Global Theme would
otherwise put back. Open it on a page with --page presets (or welcome,
theme, bar, controls, dock, windows, text, input, desktop,
system), or on the tour with --welcome. It needs PySide6
(sudo dnf install python3-pyside6).
Saved and imported presets are JSON files in ~/.config/borealis/desktop-presets/
(format borealis-desktop-preset), with a section for each part they set:
theme, dock, dockApps, bar, controls, windows and desktop. A part
a preset leaves out stays as it is. The desktop from before each preset is also
written to ~/.local/state/borealis/presets-undo/.
--konsole, --gtk, --flatpak, --terminal and --firefox also work
without --apply; they then style the variant you already use:
./install.sh --terminal --gtk./build.py --accent "#ff8a5b" --name "Borealis Ember" --out ~/ember/share
./install.sh --from ~/ember/shareEvery colour — surfaces, decorations, icons, cursors, both wallpapers, the
animated aurora, splash, boot splash, terminal kit and GTK CSS — is rotated
around the colour wheel by the angle between your accent and Borealis's
periwinkle, and the accent itself appears exactly as given (nudged only if it
would fail contrast). Red, amber and green keep their meaning. The remix gets
its own package names, so it installs next to the original and both show up in
the Global Theme list. --saturation 1.2 makes everything more vivid.
Source: https://github.com/CoJoA13/borealis · Store listing kit: STORE.md
GPL-3.0-or-later (see LICENSE). Artwork (wallpapers, logo, icons, cursors,
sounds) is original and generated by the scripts in src/. Folder shapes are
recolored from the Tela icon theme
(GPL-3.0); the splash and switcher QML build on KDE's (GPL-2.0-or-later).









