KDE Plasma + Brave on Debian

 

This is the “how do I make Brave do what I want” note --- especially when Brave profile UI is broken and KDE is strict about .desktop launchers.

1) Know what you’re running.

Check where Brave comes from.

which brave-browser

If it returns /usr/bin/brave-browser, you’re on the APT-installed build (good, predictable).

Also note that on Debian you often have both commands available.

  • brave-browser is commonly a wrapper.

  • brave-browser-stable is commonly the actual binary.


2) Where Brave stores its data.

Default Brave user-data root (APT install).

~/.config/BraveSoftware/Brave-Browser/

If you only see Default/, then you effectively have a single Brave “profile” in that directory.


3) Multiple isolated Brave sessions without Brave profiles.

This is the clean workaround: run separate user-data directories.

Create a new isolated environment.

mkdir -p ~/.config/BraveSoftware/Brave-RDT

Launch Brave using that directory.

brave-browser-stable --user-data-dir="$HOME/.config/BraveSoftware/Brave-RDT"

Optional but useful for KDE taskbar separation (different window class).

brave-browser-stable \ --user-data-dir="$HOME/.config/BraveSoftware/Brave-RDT" \ --class=BraveRDT \ --name=Brave-RDT

Repeat with other directories for other “sessions”.

mkdir -p ~/.config/BraveSoftware/Brave-Personal brave-browser-stable --user-data-dir="$HOME/.config/BraveSoftware/Brave-Personal" --class=BravePersonal --name=Brave-Personal

4) Make KDE icons (launchers) for each session.

KDE reads user launchers from here.

~/.local/share/applications/

4.1 The file must end with .desktop.

KDE will ignore files without the .desktop extension.

4.2 The file should be executable.

chmod +x ~/.local/share/applications/brave-rdt.desktop

4.3 KDE often requires Categories= to index the launcher.

Without Categories=, KDE may silently ignore it in the application menu.

4.4 A working example.

Create the file.

nano ~/.local/share/applications/brave-rdt.desktop

Paste this.

[Desktop Entry] Name=Brave --- RDT Exec=brave-browser-stable --user-data-dir=%h/.config/BraveSoftware/Brave-RDT --class=BraveRDT --name=Brave-RDT %U Icon=brave-browser Type=Application Categories=Network;WebBrowser; StartupNotify=true Terminal=false

Make it executable.

chmod +x ~/.local/share/applications/brave-rdt.desktop

Refresh KDE’s application cache.

kbuildsycoca5 --noincremental

Now it should appear in the KDE menu and in KRunner (Alt+Space).


5) Edit the standard Brave icon to run brave-browser-stable.

Goal: clicking the normal Brave launcher should execute stable (and optionally your preferred flags).

5.1 KDE GUI method (cleanest).

Open KDE menu editor.

kmenuedit

Find Brave entry (usually under Internet).

  • Change the Command to brave-browser-stable.

  • Save.

This creates a user override automatically.

5.2 Manual override method (precise and update-safe).

Find the system launcher.

ls /usr/share/applications | grep -i brave

Commonly you’ll find brave-browser.desktop.

Copy it to your user directory (user overrides system).

cp /usr/share/applications/brave-browser.desktop ~/.local/share/applications/brave-browser.desktop

Edit the copied file.

nano ~/.local/share/applications/brave-browser.desktop

Find the Exec= line and change it.

From something like.

Exec=brave-browser %U

To.

Exec=brave-browser-stable %U

Optional: add flags, but keep %U at the end for URL handling.

Exec=brave-browser-stable --some-flag %U

Refresh KDE cache.

kbuildsycoca5 --noincremental

6) Quick troubleshooting checklist.

  • The file is named something.desktop.

  • The file is in ~/.local/share/applications/.

  • The file has Categories=Network;WebBrowser;.

  • The file is executable via chmod +x.

  • You refreshed KDE with kbuildsycoca5 --noincremental.

  • Avoid quotes in Exec= if KDE is being picky.

  • Keep %U at the end of Exec= for proper URL opening.


7) Why this is better than Brave profiles on Debian right now.

  • It bypasses Brave profile UI issues entirely.

  • It gives hard isolation at the filesystem level (cookies, extensions, caches).

  • It integrates nicely with KDE (separate launchers, separate taskbar grouping via --class).

Comments