What's the Easy to Use MacOs Like Dock

Just installed Kubuntu 26.04. Tried running both Plank dock and Cairo dock from the discover software centre, but none running.

Plank installs and after that even if I try to launch it, nothing appears on screen. Null, nada.

Cairo installs and when I try to launch it, it flashes a message saying it crashed. Here is a stacktrace.

Any idea what’s missing and whether there is any alternative to these two that is easy to set up and not too resource hungry?

           PID: 6234 (cairo-dock)
           UID: 1000 (barmanroys)
           GID: 1000 (barmanroys)
        Signal: 11 (SEGV)
     Timestamp: Fri 2026-05-01 11:16:55 +08 (5s ago)
  Command Line: /usr/bin/cairo-dock
    Executable: /usr/bin/cairo-dock
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-cairo\x2ddock@65520c4ec164454ca732d775d1d0c4f7.service
          Unit: user@1000.service
     User Unit: app-cairo\x2ddock@65520c4ec164454ca732d775d1d0c4f7.service
         Slice: user-1000.slice
     Owner UID: 1000 (barmanroys)
       Boot ID: a530f36e04304632ab6114c95e8ac8c1
    Machine ID: 294d84fb26ac4dcc97f6dfc05ef966a8
      Hostname: clevo-laptop
       Storage: /var/lib/systemd/coredump/core.cairo-dock.1000.a530f36e04304632ab6114c95e8ac8c1.6234.1777605415000000.zst (present)
  Size on Disk: 1.3M
       Package: cairo-dock/3.5.1-2.1
      build-id: 74d2efdd54b73125f223e07ad4f9fffa6838d917
       Message: Process 6234 (cairo-dock) of user 1000 dumped core.
                
                Module /usr/bin/cairo-dock from deb cairo-dock-3.5.1-2.1.amd64
                Module linux-vdso.so.1 from deb linux-7.0.0-14.14.amd64
                Module libdconfsettings.so from deb dconf-0.49.0-4.amd64
                Module libkeyutils.so.1 from deb keyutils-1.6.3-6ubuntu3.amd64
                Module libbrotlicommon.so.1 from deb brotli-1.2.0-3build1.amd64
                Module libkrb5support.so.0 from deb krb5-1.22.1-2ubuntu4.amd64
                Module libcom_err.so.2 from deb e2fsprogs-1.47.2-3ubuntu4.amd64
                Module libk5crypto.so.3 from deb krb5-1.22.1-2ubuntu4.amd64
                Module libkrb5.so.3 from deb krb5-1.22.1-2ubuntu4.amd64
                Module libtasn1.so.6 from deb libtasn1-6-4.21.0-2.amd64
                Module libp11-kit.so.0 from deb p11-kit-0.26.2-2.amd64
                Module libcrypto.so.3 from deb openssl-3.5.5-1ubuntu3.amd64
                Module libssl.so.3 from deb openssl-3.5.5-1ubuntu3.amd64
                Module libsasl2.so.2 from deb cyrus-sasl2-2.1.28+dfsg1-9ubuntu3.amd64
                Module libgmp.so.10 from deb gmp-2:6.3.0+dfsg-5ubuntu2.amd64
                Module libhogweed.so.6 from deb nettle-3.10.2-1.amd64
                Module libunistring.so.5 from deb libunistring-1.3-2build1.amd64
                Module libXRes.so.1 from deb libxres-2:1.2.1-1build2.amd64
                Module libXdmcp.so.6 from deb libxdmcp-1:1.1.5-2.amd64
                Module libXau.so.6 from deb libxau-1:1.0.11-1build2.amd64
                Module libbz2.so.1.0 from deb bzip2-1.0.8-6build2.amd64
                Module libdatrie.so.1 from deb libdatrie-0.2.14-1.amd64
                Module libblkid.so.1 from deb util-linux-2.41.3-3ubuntu2.amd64
                Module libbrotlidec.so.1 from deb brotli-1.2.0-3build1.amd64
                Module libzstd.so.1 from deb libzstd-1.5.7+dfsg-3.amd64
                Module libgssapi_krb5.so.2 from deb krb5-1.22.1-2ubuntu4.amd64
                Module libgnutls.so.30 from deb gnutls28-3.8.12-2ubuntu1.amd64
                Module libnettle.so.8 from deb nettle-3.10.2-1.amd64
                Module libpsl.so.5 from deb libpsl-0.21.2-1.1build2.amd64
                Module libssh2.so.1 from deb libssh2-1.11.1-1build2.amd64
                Module liblber.so.2 from deb openldap-2.6.10+dfsg-1ubuntu5.amd64
                Module libldap.so.2 from deb openldap-2.6.10+dfsg-1ubuntu5.amd64
                Module librtmp.so.1 from deb rtmpdump-2.4+20151223.gitfa8646d.1-3.amd64
                Module libidn2.so.0 from deb libidn2-2.3.8-4build1.amd64
                Module libnghttp2.so.14 from deb nghttp2-1.68.0-2.amd64
                Module libstdc++.so.6 from deb gcc-16-16-20260322-1ubuntu1.amd64
                Module libOpenGL.so.0 from deb libglvnd-1.7.0-3.amd64
                Module libGLX.so.0 from deb libglvnd-1.7.0-3.amd64
                Module libGLdispatch.so.0 from deb libglvnd-1.7.0-3.amd64
                Module libatspi.so.0 from deb at-spi2-core-2.60.0-1.amd64
                Module libexpat.so.1 from deb expat-2.7.4-1.amd64
                Module libgraphite2.so.3 from deb graphite2-1.3.14-11ubuntu1.amd64
                Module libpixman-1.so.0 from deb pixman-0.46.4-1.amd64
                Module libxcb-shm.so.0 from deb libxcb-1.17.0-2ubuntu1.amd64
                Module libxcb-render.so.0 from deb libxcb-1.17.0-2ubuntu1.amd64
                Module libxcb.so.1 from deb libxcb-1.17.0-2ubuntu1.amd64
                Module libfreetype.so.6 from deb freetype-2.14.2+dfsg-1.amd64
                Module libpng16.so.16 from deb libpng1.6-1.6.57-1.amd64
                Module libthai.so.0 from deb libthai-0.1.30-1.amd64
                Module libsystemd.so.0 from deb systemd-259.5-0ubuntu3.amd64
                Module libgcc_s.so.1 from deb gcc-16-16-20260322-1ubuntu1.amd64
                Module libseccomp.so.2 from deb libseccomp-2.6.0-2ubuntu5.amd64
                Module liblcms2.so.2 from deb lcms2-2.17-1ubuntu0.1.amd64
                Module libselinux.so.1 from deb libselinux-3.9-4build1.amd64
                Module libmount.so.1 from deb util-linux-2.41.3-3ubuntu2.amd64
                Module libXrender.so.1 from deb libxrender-1:0.9.12-1build1.amd64
                Module libXtst.so.6 from deb libxtst-2:1.2.5-1build1.amd64
                Module libcurl-gnutls.so.4 from deb curl-8.18.0-1ubuntu2.amd64
                Module libGLU.so.1 from deb libglu-9.0.2-1.1build2.amd64
                Module libGL.so.1 from deb libglvnd-1.7.0-3.amd64
                Module librsvg-2.so.2 from deb librsvg-2.61.3+dfsg-3.amd64
                Module libXinerama.so.1 from deb libxinerama-2:1.1.4-3build2.amd64
                Module libXrandr.so.2 from deb libxrandr-2:1.5.4-1build1.amd64
                Module libXcomposite.so.1 from deb libxcomposite-1:0.4.6-1build1.amd64
                Module libXdamage.so.1 from deb libxdamage-1:1.1.7-1.amd64
                Module libXcursor.so.1 from deb libxcursor-1:1.2.3-1build1.amd64
                Module libXext.so.6 from deb libxext-2:1.3.4-1build3.amd64
                Module libwayland-egl.so.1 from deb wayland-1.24.0-2.amd64
                Module libwayland-cursor.so.0 from deb wayland-1.24.0-2.amd64
                Module libwayland-client.so.0 from deb wayland-1.24.0-2.amd64
                Module libxkbcommon.so.0 from deb libxkbcommon-1.13.1-1.amd64
                Module libXfixes.so.3 from deb libxfixes-1:6.0.0-2build2.amd64
                Module libatk-bridge-2.0.so.0 from deb at-spi2-core-2.60.0-1.amd64
                Module libX11.so.6 from deb libx11-2:1.8.13-1.amd64
                Module libXi.so.6 from deb libxi-2:1.8.2-2.amd64
                Module libepoxy.so.0 from deb libepoxy-1.5.10-2build1.amd64
                Module libatk-1.0.so.0 from deb at-spi2-core-2.60.0-1.amd64
                Module libcairo-gobject.so.2 from deb cairo-1.18.4-3.amd64
                Module libfribidi.so.0 from deb fribidi-1.0.16-5.amd64
                Module libfontconfig.so.1 from deb fontconfig-2.17.1-3ubuntu1.amd64
                Module libpangoft2-1.0.so.0 from deb pango1.0-1.57.0-1.amd64
                Module libharfbuzz.so.0 from deb harfbuzz-12.3.2-2.amd64
                Module libcairo.so.2 from deb cairo-1.18.4-3.amd64
                Module libpango-1.0.so.0 from deb pango1.0-1.57.0-1.amd64
                Module libpangocairo-1.0.so.0 from deb pango1.0-1.57.0-1.amd64
                Module libz.so.1 from deb zlib-1:1.3.dfsg+really1.3.1-1ubuntu3.amd64
                Module libffi.so.8 from deb libffi-3.5.2-4.amd64
                Module libdbus-1.so.3 from deb dbus-1.16.2-2ubuntu4.amd64
                Module libglycin-2.so.0 from deb glycin-2.1.1+ds-0ubuntu1.amd64
                Module libgio-2.0.so.0 from deb glib2.0-2.88.0-1.amd64
                Module libgmodule-2.0.so.0 from deb glib2.0-2.88.0-1.amd64
                Module libpcre2-8.so.0 from deb pcre2-10.46-1build1.amd64
                Module libatomic.so.1 from deb gcc-16-16-20260322-1ubuntu1.amd64
                Module libgldi.so.3 from deb cairo-dock-3.5.1-2.1.amd64
                Module libgdk-3.so.0 from deb gtk+3.0-3.24.52-0ubuntu1.amd64
                Module libgtk-3.so.0 from deb gtk+3.0-3.24.52-0ubuntu1.amd64
                Module libxml2.so.16 from deb libxml2-2.15.2+dfsg-0.1.amd64
                Module libgobject-2.0.so.0 from deb glib2.0-2.88.0-1.amd64
                Module libdbus-glib-1.so.2 from deb dbus-glib-0.114-2.amd64
                Module libgdk_pixbuf-2.0.so.0 from deb gdk-pixbuf-2.44.5+dfsg-4ubuntu1.amd64
                Module libglib-2.0.so.0 from deb glib2.0-2.88.0-1.amd64
                Stack trace of thread 6234:
                #0  0x00007adf9b5d1134 n/a (libgldi.so.3 + 0x9f134)
                #1  0x00007adf9bd2f056 n/a (libffi.so.8 + 0xa056)
                #2  0x00007adf9bd2ad16 n/a (libffi.so.8 + 0x5d16)
                #3  0x00007adf9bd2d7ae ffi_call (libffi.so.8 + 0x87ae)
                #4  0x00007adf9a45098b n/a (libwayland-client.so.0 + 0x798b)
                #5  0x00007adf9a4517c9 n/a (libwayland-client.so.0 + 0x87c9)
                #6  0x00007adf9a451bc3 wl_display_dispatch_queue_pending (libwayland-client.so.0 + 0x8bc3)
                #7  0x00007adf9a45533a wl_display_dispatch_queue_timeout (libwayland-client.so.0 + 0xc33a)
                #8  0x00007adf9a45540f wl_display_dispatch_queue (libwayland-client.so.0 + 0xc40f)
                #9  0x00007adf9a4554eb wl_display_roundtrip_queue (libwayland-client.so.0 + 0xc4eb)
                #10 0x00007adf9b5d1006 n/a (libgldi.so.3 + 0x9f006)
                #11 0x00007adf9b55afc1 gldi_managers_init (libgldi.so.3 + 0x28fc1)
                #12 0x00007adf9b55b0b9 gldi_init (libgldi.so.3 + 0x290b9)
                #13 0x0000601ed1751699 n/a (/usr/bin/cairo-dock + 0xf699)
                #14 0x00007adf9b22a601 __libc_start_call_main (libc.so.6 + 0x2a601)
                #15 0x00007adf9b22a718 __libc_start_main_impl (libc.so.6 + 0x2a718)
                #16 0x0000601ed1752b35 n/a (/usr/bin/cairo-dock + 0x10b35)
                
                Stack trace of thread 6235:
                #0  0x00007adf9b334d0d syscall (libc.so.6 + 0x134d0d)
                #1  0x00007adf9c160eab g_cond_wait (libglib-2.0.so.0 + 0x8deab)
                #2  0x00007adf9c0fbf6c n/a (libglib-2.0.so.0 + 0x28f6c)
                #3  0x00007adf9c0fbfdc g_async_queue_pop (libglib-2.0.so.0 + 0x28fdc)
                #4  0x00007adf9b445dcb n/a (libpangoft2-1.0.so.0 + 0xedcb)
                #5  0x00007adf9c16a279 n/a (libglib-2.0.so.0 + 0x97279)
                #6  0x00007adf9b2a40da start_thread (libc.so.6 + 0xa40da)
                #7  0x00007adf9b3377ac __clone3 (libc.so.6 + 0x1377ac)
                
                Stack trace of thread 6236:
                #0  0x00007adf9b334d0d syscall (libc.so.6 + 0x134d0d)
                #1  0x00007adf9c160eab g_cond_wait (libglib-2.0.so.0 + 0x8deab)
                #2  0x00007adf9c0fbf6c n/a (libglib-2.0.so.0 + 0x28f6c)
                #3  0x00007adf9c16a714 n/a (libglib-2.0.so.0 + 0x97714)
                #4  0x00007adf9c16a279 n/a (libglib-2.0.so.0 + 0x97279)
                #5  0x00007adf9b2a40da start_thread (libc.so.6 + 0xa40da)
                #6  0x00007adf9b3377ac __clone3 (libc.so.6 + 0x1377ac)
                
                Stack trace of thread 6237:
                #0  0x00007adf9b2acae2 __syscall_cancel_arch (libc.so.6 + 0xacae2)
                #1  0x00007adf9b2a067c __internal_syscall_cancel (libc.so.6 + 0xa067c)
                #2  0x00007adf9b328376 __GI_ppoll (libc.so.6 + 0x128376)
                #3  0x00007adf9c1352f1 n/a (libglib-2.0.so.0 + 0x622f1)
                #4  0x00007adf9c1353c3 g_main_context_iteration (libglib-2.0.so.0 + 0x623c3)
                #5  0x00007adf9c135411 n/a (libglib-2.0.so.0 + 0x62411)
                #6  0x00007adf9c16a279 n/a (libglib-2.0.so.0 + 0x97279)
                #7  0x00007adf9b2a40da start_thread (libc.so.6 + 0xa40da)
                #8  0x00007adf9b3377ac __clone3 (libc.so.6 + 0x1377ac)
                
                Stack trace of thread 6238:
                #0  0x00007adf9b334d0d syscall (libc.so.6 + 0x134d0d)
                #1  0x00007adf9c161c0b g_cond_wait_until (libglib-2.0.so.0 + 0x8ec0b)
                #2  0x00007adf9c0fbf2d n/a (libglib-2.0.so.0 + 0x28f2d)
                #3  0x00007adf9c16b50a n/a (libglib-2.0.so.0 + 0x9850a)
                #4  0x00007adf9c16a279 n/a (libglib-2.0.so.0 + 0x97279)
                #5  0x00007adf9b2a40da start_thread (libc.so.6 + 0xa40da)
                #6  0x00007adf9b3377ac __clone3 (libc.so.6 + 0x1377ac)
                
                Stack trace of thread 6240:
                #0  0x00007adf9b2acae2 __syscall_cancel_arch (libc.so.6 + 0xacae2)
                #1  0x00007adf9b2a067c __internal_syscall_cancel (libc.so.6 + 0xa067c)
                #2  0x00007adf9b328376 __GI_ppoll (libc.so.6 + 0x128376)
                #3  0x00007adf9c1352f1 n/a (libglib-2.0.so.0 + 0x622f1)
                #4  0x00007adf9c1353c3 g_main_context_iteration (libglib-2.0.so.0 + 0x623c3)
                #5  0x00007adf9815297d n/a (libdconfsettings.so + 0x897d)
                #6  0x00007adf9c16a279 n/a (libglib-2.0.so.0 + 0x97279)
                #7  0x00007adf9b2a40da start_thread (libc.so.6 + 0xa40da)
                #8  0x00007adf9b3377ac __clone3 (libc.so.6 + 0x1377ac)
                
                Stack trace of thread 6239:
                #0  0x00007adf9b2acae2 __syscall_cancel_arch (libc.so.6 + 0xacae2)
                #1  0x00007adf9b2a067c __internal_syscall_cancel (libc.so.6 + 0xa067c)
                #2  0x00007adf9b328376 __GI_ppoll (libc.so.6 + 0x128376)
                #3  0x00007adf9c1352f1 n/a (libglib-2.0.so.0 + 0x622f1)
                #4  0x00007adf9c135577 g_main_loop_run (libglib-2.0.so.0 + 0x62577)
                #5  0x00007adf9b022012 n/a (libgio-2.0.so.0 + 0x125012)
                #6  0x00007adf9c16a279 n/a (libglib-2.0.so.0 + 0x97279)
                #7  0x00007adf9b2a40da start_thread (libc.so.6 + 0xa40da)
                #8  0x00007adf9b3377ac __clone3 (libc.so.6 + 0x1377ac)
                ELF object binary architecture: AMD x86-64

Plasma panel can be set up very similar to the MacOS dock, but none are a complete replacement.

The ‘icons-only Task Manager’ is the best option.

The benefits of Plasma panel are many, not the least of which is proper and reliable maintenance…

Even in the days of Latte (which brought some useful functions that weren’t then present in Plasma panel, though most useful functions ARE now present… including a floating mode and a decent window dodge as well as multiple instances on the same screen edge being possible).

The last releaase 3.6.2 for Cairo was 2025, it’s a bit of a relic of days gone by I think.

Have you tried Crystal Dock?

Some has tried making Icons-Only Task Manager behave like MacOS Dock: macOS Dock - KDE Store
So, creating an empty KDE panel, and then adding that plasmoid as well as a couple of more might do, when also used in combination with a Plasma theme that provides the required level of panel transparency (or you might prefer the Panel Colorizer - KDE Store for even more features than MacOS Dock.

i would stick with the native plasma panels and widgets which offer quite a bit.

if you need more, you can add the panel colorizer 3rd party package which offers some “dock” like enhancements.

the rollover animation you get from a mac os doc is likely the last piece to make it super “dock” like, and i know that is being worked on by someone (can’t locate the link atm).

I really like Cairo-Dock, it’s still the “prettiest” dock imho, but it’s simply not good for multiple desktops if you want to replicate your task manager across them all. If you have one display, I would totally use that, but I tend to have 3 or 4 so I mostly use the icon-only task manager with plasma that allows me to add it to each display.

Shame ubuntu managed to break it somehow, it works fine for me on arch since they fixed wayland support. Maybe try to just pull from github and compile it yourself? Probably no one really tested it much on ubuntu since it’s only recently in the past 6mo become usable with the wayland fix anyways, might work better with a clean compile in your environment until they fix their binary packages.

Chatgpt sez (should be close at least):

Try this first:

cairo-dock -X
cairo-dock -L
cairo-dock -L -c

If -X works and -L crashes, it is the Wayland path. If -L -c works, it is likely OpenGL/EGL-related.

For a source build, the key is not just “compile Cairo-Dock”; it needs Wayland features enabled:

sudo apt install git build-essential cmake pkg-config gettext libgtk-3-dev libcairo2-dev libglib2.0-dev libgdk-pixbuf-2.0-dev libxml2-dev libdbus-glib-1-dev libx11-dev libxtst-dev libxrandr-dev libwayland-dev libgtk-layer-shell-dev extra-cmake-modules wayland-protocols libegl1-mesa-dev libgl1-mesa-dev libglu1-mesa-dev

Then build core:

git clone 
cd cairo-dock-core
mkdir build
cd build

cmake .. 
-Denable-gtk-layer-shell=ON 
-Denable-wayland-support=ON 
-Denable-x11-support=ON 
-Denable-glitz=no

make -j"$(nproc)"
sudo make install
sudo ldconfig

Then test explicitly:

/usr/local/bin/cairo-dock -L -c
/usr/local/bin/cairo-dock -L
/usr/local/bin/cairo-dock -X

What are your needs and wants for being a “MacOS-like dock”?

Installed it. Seems like I cannot add any thing to the dock that was not already there.

Example: RustRover is an IDE I use often, even when I fire it up, it does not show up in the dock. Even if I drag it from the start menu/elsewhere to drop in the dock, the dock refuses to accommodate it. Not sure what’s wrong.

Then, the dock has an icon for the start menu, which I hate, but I cannot unpin it either.

There are many folks reading this who have extensive experience, and no truly interesting responses have arisen which aren’t already pretty much known and dismissed by the majority already.

History

There is a reason that just about ALL of the alternative panel/dock softwares were completely eclipsed when Latte came along.

Latte offered all the features folks wanted that were missing in Plasma… and then many of those features were implemented in Plasma.

Now, the most important features ARE in the plasma dock/panel (using either/or word is misleading - folks usually say ‘dock’ to mean ‘like a Mac’ and panel to mean ‘like windows’ - whilst Plasma now incorporates features which significantly blur the lines.

So the discussion is pretty much dead in it’s tracks, because you have pretty much failed to express what your needs and wants actually are.

XY Problem

Your mission statement is completely pointless unless you can say what you actually need or want. You’re trying to solve an issue that doesn’t appear to exist, as we’re already using the best option in Plasma.

If they don’t want to, I’ll take you up for some plasma bar/dock feedback. :smiley:

My biggest frustration with icon-only task manager is any highlighting of icons with notifications are so subtle that I never notice when applications like signal or slack want attention for a message. Cairo-dock was great that I could make the icon bounce, spin, catch on fire, or whatever number of effects that show me something wants attention.

What cairo-dock wasn’t good at is allowing multiple of the same thing on different docks, and managing the different docks was clunky. Latte solved a lot of this with a decent placement and management UI, allowing for copy/cloning, quickly changing between layouts for display arrangements, etc.

Another frustration with plasma’s taskbars are they are not at all multi-monitor aware. Since there is still no template/clone functionality in the current task-managers, with 3 displays each tends to differ slightly as I add something to one and not another, and then every time I restart plasmashell (which is a lot when building your own), they tend to reorder randomly, and all I can do is restart until they end up in the right spot, or add whatever was missing when it moved.

Notifications also randomly move between displays unpredictably, usually to my frustration, choosing to show up on my 15" laptop screen instead of either of the 50" TV’s I normally use/look at, so I never even actually see notifications because I can’t get them to a specific display I look at, or mirror across all even. There’s a number of bug reports around this in some flavor, and is left pending other work so never gets done, leaving it still highly maddening. I’ve thought to use kde connect to send them to my phone even just so I would get them, but it’s too much noise, particularly when I set at a computer most of a day anyways, if only it would show them in a useful place…

I hate using any apple/mac/ios, but the dock was one thing I have always taken from it since I moved to linux full-time ~2006 (kde4 ftw), finding cairo-dock a few years later, and finally latte until moving to plasma6. The current plama6 dock is adequate, but I still feel it’ll remain inferior until it at least incorporates a management system like latte dock to manage/template/clone/switch dock layouts. Adding even some basic animations just to improve on broken/non-existent notifications alone would be tremendous.