The other day, I said I should give Basalt Linux a quick spin. To quote myself:

Basalt Linux (SourceForge) is an XFCE distro based on Debian 13 that, apparently, is very much like Xebian (the Trixie-based variant, not the Sid-based one). Here’s a First Look at Basalt Linux 1.0.

Basalt-1.0-Obsidian was released on 2026-06-07, and Basalt-1.1-Obsidian came on 2026-06-15 to fix, among other small bugs, the regression in XFCE 4.20 that I explained here and which affects Debian and Xebian. Basalt 1.0 listed this known issue: “The custom Basalt wallpaper does not display after a fresh install.” I wonder how exactly did they manage to fix it in 1.1, but I might not find out as long as I don’t install it.

Just make sure you don’t mistake it for the AlmaLinux-based BasaltOS (GitHub), which didn’t release anything yet.

I tried it on an old Acer from 2016 (i5-5200U, 8 GB RAM, upgraded 256 GB + 1 TB SSD) as a live session (using Ventoy). I didn’t intend to install it, but even so, while I’d like to acknowledge its positive parts, I found some aspects I didn’t like, and I’ll highlight them in this blog post.

Initial impressions

I have to admit that I found the default wallpaper literally ugly:

But this isn’t that important. It’s a matter of taste.

But the choice of apps is also a matter of taste. And I very much prefer Xebian’s over Basalt’s, despite Xebian coming without Bluetooth preinstalled.

So I’m going to compare, side by side, Basalt’s menus (left) to Xebian’s menus (right).

① Basalt uses the standard, old-school XFCE menu (applicationsmenu), whereas Xebian uses the highly customizable and search-aware Whisker menu (xfce4-whiskermenu-plugin).

Accessories:

  • I don’t use KeePassXC (Basalt), nor Xfburn (Xebian).
  • I very much prefer Xebian’s choices: Engrampa instead of Xarchiver, MATE Calculator instead of Galculator.
  • In my tests, Basalt had PrnScr associated with xfce4-screenshooter, but the package wasn’t installed. This is strange, as its building script bldbasalt that you’ll find in basalt-linux-source.tar.xz includes xfce4-goodies, which has as dependencies xfce4-screenshooter and xfce4-whiskermenu-plugin, among others. But, guess what, xfce4-goodies was not installed! Maybe that’s the list that Calamares would install, but providing a live system that’s castrated is not great.

② Uncomparable entities: Basalt’s Development menu includes an icon browser. Xebian’s Whisker menu includes a Favorites submenu. Basalt’s standard menu includes some fixed, predefined favorites, of which Mail Reader doesn’t do anything.

Graphics: Basalt is absurd to include here LibreOffice Draw, when XFCE includes an excellent image viewer called Ristretto! There is literally no image viewer in Basalt!

Internet: the bare minimum.

Multimedia: Basalt will please those who love Audacious and VLC; Xebian only includes XFCE’s official video player.

Office: I literally hate when a distro comes with LibreOffice preinstalled, as I prefer to use the latest .deb from LibreOffice.org. I’d rather appreciate Xebian’s use of MATE’s Atril PDF viewer. What’s a distro without a PDF viewer?

System: Basalt is better equipped, but using Timeshift should be a personal choice. Also, GNOME’s Software is a questionable choice for a lightweight XFCE distro!

Note that Basalt comes with Flatpak support and Flathub preinstalled (flatpak and gnome-software-plugin-flatpak).

XFCE’s Settings Manager is differently populated, reflecting each distro’s choices: Basalt comes with Bluetooth preinstalled (blueman, bluez), but seems to be lacking some modules.

Basalt’s goodies

As I said, the building scripts for Basalt can be downloaded as an archive. In the aforementioned bldbasalt, I found the fix to xfdesktop regression in 4.20 that makes it ignore the custom wallpaper:

# Override Xfce 4.20 compiled-in default backdrop (xfdesktop ignores xfconf in 4.20, falls back to this path)
mkdir -p $WKDIR/$BLDDIR/config/includes.chroot/usr/share/backgrounds/xfce/
cp $WKDIR/$FLDIR/backgrounds/basalt-desktop-3-light.jpg $WKDIR/$BLDDIR/config/includes.chroot/usr/share/backgrounds/xfce/xfce-x.svg

On the other hand, a strange comment in the same script:

# VSCodium intentionally omitted — user can install manually if needed

Well, who mentioned VSCodium, anyway? But if they thought of it, why not installing the repo and the GPG key?

The real goodies are some scripts put into /usr/local/bin, and which can be triggered by launching basalt-admin:

There’s actually a tiny problem here: duplication. The main script already includes the full code under these functions: setsudo, optimize, debtesting, iconcache, ytdlpinst, bpkernel.

But then, separate scripts exist to provide the same functionality: setsudo, optimize, gototesting, iconcache, ytdlpinstall, bpkernel.

FWIW, here’s the content of the main script:

#!/bin/bash

# basalt-admin -- Revision: 1.0 -- by Basalt Linux
# (MIT License)

setsudo () {
  clear
  echo " "
  read -p "Type your user name, be exact, and press Enter: " ANS
  usermod -aG sudo $ANS
  clear
  echo " "
  echo "User Added To Sudo Group (logout & login)"
  sleep 3
  clear
}

optimize () {
  clear
  echo " "
  cp /etc/apt/sources.list /etc/apt/sources.list.b4optimize
  cp /usr/share/basalt/sources/sources.basalt /etc/apt/sources.list
  apt-get -y update
  clear
  echo " "
  echo "Optimized sources.list & Updated Repos"
  sleep 3
  clear
}

debtesting () {
  clear
  echo " "
  cp /etc/apt/sources.list /etc/apt/sources.list.b4testing
  cp /usr/share/basalt/sources/sources.testing /etc/apt/sources.list
  apt-get -y update
  apt-get -y dist-upgrade
  clear
  echo " "
  echo "Upgrade to testing, reboot now"
  sleep 3
  clear
}

iconcache () {
  clear
  echo " "
  gtk-update-icon-cache -f /usr/share/icons/breeze/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/breeze-dark/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/ePapirus/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/gnome/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/Papirus/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/Papirus/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/Papirus-Light/ 2>/dev/null
  gtk-update-icon-cache -f /usr/share/icons/Tango/ 2>/dev/null
  clear
  echo " "
  echo "Icon Cache Files Rebuilt (logout & login)"
  sleep 3
  clear
}

ytdlpinst () {
  clear
  echo " "
  curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/bin/yt-dlp
  chmod a+rx /usr/bin/yt-dlp
  clear
  echo " "
  echo "YT-DLP video downloader Installed"
  sleep 3
  clear
}

bpkernel () {
  clear
  echo " "
  apt-get -y install -t trixie-backports linux-image-amd64 linux-headers-amd64
  apt-get -y install -t trixie-backports firmware-linux firmware-linux-nonfree firmware-misc-nonfree
  clear
  echo " "
  echo "Newest Kernel From Backports Installed (Reboot Required)"
  sleep 3
  clear
}

mainmenu () { while true
do
  clear
  echo "------------------------"
  echo " Basalt Admin Menu:"
  echo " 1.1 Xfce Edition"
  echo "------------------------"
  echo ""
  echo " (a) Add Myself to Sudo Group"
  echo " (b) Optimize Sources & Update Repos"
  echo " (c) Rebuild Icon Cache Files"
  echo " (d) Install YT-DLP video downloader"
  echo " (e) Install newest kernel from backports"
  echo " (f) Upgrade to Debian Testing"
  echo ""
  echo " (x) Exit"
  echo
  read -p "Please enter your choice: " choice
  case $choice in
    a|A) setsudo;;
    b|B) optimize;;
    c|C) iconcache;;
    d|D) ytdlpinst;;
    e|E) bpkernel;;
    f|F) debtesting;;
    x|X) exit;;
    *) echo "invalid answer, please try again";;
  esac
done
}

mainmenu

Now, a few notes:

  • optimize doesn’t optimize anything; it just restores the default repos in case you borked them.
  • iconcache has a duplicate line for Papirus; one of them should have read Papirus-Dark.
  • ytdlpinst is a better choice than using Debian’s stale yt-dlp package.
  • bpkernel only installs a kernel from backports once; this kernel won’t be automatically updated! To have it constantly updated, pin it as described here.
  • I hate using the default Debian servers, so I always use a mirror.

Bottom line

This is not a review, and I didn’t install the distro. I’m happy with Xebian (stable), customized.

I already mentioned that I disliked Basalt’s wallpaper(s) and the choice of preinstalled software, and I also prefer yaru-theme-gtk to orchis-gtk-theme.

That said, Basalt Linux might look to some as preferable to Xebian for a couple of reasons:

  • Xebian only advertises its Sid-based edition; most people don’t know that the so-called staging area includes stable-based builds that are of excellent quality. In contrast, Basalt is clearly based on Debian stable, with an option to switch to Debian testing.
  • Basalt comes with Bluetooth, LibreOffice, VLC, Audacious, KeePassXC, Timeshift, Flatpak support, and GNOME Software preinstalled, and some people would appreciate the convenience.
  • While in neither case is the distro maintainer known, and there’s no direct way to contact them, Basalt has at least a Discord channel.

Not bad, but I don’t need Basalt Linux right now; should Xebian die and Basalt still be around, I would probably use it.