Skip to content
P3DROVFX edited this page Oct 12, 2026 · 1 revision

Dock

A macOS-style app dock for Hyprland, with the shell's twist: it isn't only icons. Pinned apps, running apps (grouped or not), folders, app groups, live widgets (media, weather, sports, tasks, a live window preview, a phone mirror) and twenty small utility widgets share one strip that you can reorder by dragging, magnify like macOS, style five ways — and save as presets you flip through by scrolling.

The dock is off by default (dock.enable). Turn it on in Settings → Dock. For the tablet's own Android-style taskbar, see Tablet Family.

Quick start

  1. Settings → Dock → Turn on the dock. Choose where it lives (Bottom / Top / Left / Right edge, or Opposite the bar with position: auto) and a Style.
  2. Right-click an icon for the app menu (pin/unpin, new window, close, add to a group); drag icons to reorder; drag an app onto another to make a group; drop a folder or file on it to pin it.
  3. Open Edit Mode (Super + Shift + E) to rearrange the dock in place and add widgets from a sheet.

Styles

dock.dockStyle:

Style Look
Floating (default) A rounded tray floating just off the edge
Islands Apps, widgets and buttons each on an island of their own (islandSpacing)
Hug Sits on the edge, rounding only the corners away from it
Dynamic Island A notch that flares out of the edge, with concave corners
Transparent Only the icons, straight on the wallpaper
Full width Spans the whole edge, flat against it, with concave fillets on the two inner corners so the silhouette hugs the screen edge (drawn as a single path, so there's no seam)
Full width · rounded Spans the edge and curves the screen into it

Other looks: Mask shape (crop icons with a Material shape — circle, pill, diamond, pentagon, heart, cookies, clovers, bursts, flower, puffy, pixel circle, bun…), Tint dock icons (monochrome, themed) or full colour, Dim inactive icons, Icon spacing, Dock height, Corner radius and Widget corner radius, and launch / notification animations (Bounce, Hop, Pulse, Wiggle, Ripple, None) that play on the icon when an app opens or calls for you (choosing one previews it).

Magnification

Off by default (enableMagnification). When on, icons swell as the pointer passes over them: scale (1.5× default), influence radius (in icon widths), a curve (cosine, etc.), motion (Still, Smooth, Balanced, Fast — the lens is two springs, so it feels physical rather than animated) and dynamic spacing (neighbours make room). Widgets magnify with their own body scaled less than their content; the lens is computed in the un-magnified space, so hit-testing stays exact while icons grow.

Behaviour

  • Auto-hide. Hover to reveal (hoverToReveal) brings the dock back when the pointer reaches its edge (hoverRegionHeight px); Pinned on startup keeps it on screen at login; Block hover in fullscreen prevents it popping over a fullscreen window or video.
  • Monitors. One monitor only (monitor, falling back to all if it's unplugged), Show only on focused monitor, Isolate monitors (each dock lists only its own monitor's windows).
  • Running apps appear next to pinned ones; Smart grouping (smartGrouping) sorts the dock by app category while anything you placed by hand stays put (manualOrder are the anchors).
  • Window previews over running apps (enablePreview) and name tooltips (enableAppTooltip) are mutually exclusive — pick one. Previews capture on demand and use a stable geometry while open.
  • Notification badges (showNotificationBadges) on icons.
  • Lock arrangement (lockReorder) stops everything from being dragged.

What goes on the dock

Folders and files. pinnedFiles: add them in Settings (a folder chooser) or by dragging; the settings list and the dock order stay in sync both ways.

App groups (enableAppGroups, on by default). Drag an app onto another app to make a group of up to six; drag onto a group to add. The tile shows the first four in a 2×2 grid with a +N badge; a click opens a 3×3 popup with every member. Right-click an app in the popup to remove it, or the group tile to dissolve it. With groups off your apps reappear individually — nothing is lost.

Widgets (each a toggle; positions are keys in dock.order):

Widget Shows
Media The current track with transport
Weather Current conditions
Sports A horizontal scoreboard; click to cycle games ([[Sports Scores
Tasks Your To Do list, completable ([[To-Do and Tasks
Live preview A live view of a chosen app's window (livePreviewAppId, number of slots, optional cursor, capture mode)
Phone A tile that starts/stops mirroring your phone ([[Phone Integration
Pin / Overview / Trash buttons Pin the dock, open the overview, open Trash

Widget stack (enableWidgetStack): several widgets (media, weather, tasks by default) share one slot and turn with the mouse wheel.

Utility widgets (Edit Mode → Add, or Settings → Widgets & buttons): twenty compact tiles, each a small square or a wide bar:

  • Time: Stopwatch, Timer, Pomodoro, Clock (Clock App)
  • System: Calendar, Battery, AI usage, Disk
  • Files: Files (a folder's recent files — Downloads by default), Shelf (a drag-and-drop tray), Send (to a phone by KDE Connect or LocalSend), Screenshots
  • Tools: Search, Favorites (sites), Color picker, Clipboard, Water (a glass counter), Tools (screen snip, record, color picker, wallpaper, dark mode…), Live Draw (Live Draw), Unit converter

Each has its own options under dock.utilities.<kind>.

Presets: flip through setups by scrolling

Save the current dock — style, widgets, order, folders — as a Dock preset in Settings → Dock (stored in ~/.config/illogical-impulse/dock-presets.json). With two or more presets, scroll the mouse wheel over the dock to switch (switchPresetsOnScroll, on by default): the dock dips off-screen, applies the next preset, and rises again, with an OSD naming it. A mouse notch is one switch; touchpad deltas add up to a notch and a short timer forgets the remainder so one flick doesn't run through the whole list. If the strip is too long to fit and can scroll, wheel scrolls it, and only at its ends does the gesture switch presets.

Configuration (Config.options.dock)

Key Default
enable false
dockStyle floating (floating, islands, hug, dynamic_island, transparent, full_width, full_width_concave)
position auto (also bottom, top, left, right)
height, iconSpacing, dockRadius, widgetRadius 56, auto, auto, auto
enableMagnification, magnificationScale, magnificationInfluenceRadius, magnificationCurve, magnificationMotion, magnificationDynamicSpacing off, 1.5, 2.35, cosine, balanced, on
hoverToReveal, pinnedOnStartup, blockHoverInFullscreen, hoverRegionHeight on, off, on, 2
enablePreview / enableAppTooltip on / off
enableAppGroups, appGroups, smartGrouping, isolateMonitors, monitor on, [], off, off, ""
enableMediaWidget, enableWeatherWidget, enableSportsWidget, enableTasksWidget, enableLivePreviewWidget, showPhoneButton all off
enableWidgetStack, widgetStackItems off, [media, weather, tasks]
utilityWidgets, utilities.* []
pinnedApps, pinnedFiles, order, manualOrder dolphin + kitty, [], see source
enableShapeMask, shapeMask on, Circle
monochromeIcons, dimInactiveIcons off, off
launchAnimation, notificationAnimation bounce, bounce
switchPresetsOnScroll on
overviewButton.* icon file, symbol, shape (SoftBurst), whether the plate stays up

Under the hood

Piece Role
modules/ii/dock/Dock.qml The layer-shell window per monitor: sizes, surface, shadows, reveal logic
modules/ii/dock/DockContent.qml The strip: ordering, drag-to-reorder, groups, magnification (_getSlotMagScale), wheel handling
DockAppButton, DockAppGroupButton, DockFileButton, DockMediaWidget, DockSportsWidget, DockTasksWidget, DockWeatherWidget, DockPhoneWidget, DockLivePreviewWidget, DockUtilityWidget, DockWidgetStack Items
modules/ii/dock/utilities/ The twenty utility tiles and panels, DockUtilityCatalog.js
modules/ii/dock/widgets/ Popups: group, preview, tooltip, sports, full-width surface
DockEdit*.qml Edit Mode integration
services/TaskbarApps.qml Pinned, running and grouped apps; folder slots
services/DockPresets.qml, DockLivePreviewService.qml Presets; on-demand window capture
modules/settings/configs/DockConfig.qml Settings

Expensive widgets (live preview, utility panels) are loaded only while they are on the dock and visible, and popups are created on demand and released after their fade.


Related pages

← Back to Home

Clone this wiki locally