[Beta] Layout Switcher for Parrot XFCE

  1. What is this project about?
    This project is a fork of zorin-appearance project. This will allow you to change desktop layout by 1 simple click. For now the project only supports XFCE desktop environment
  2. How does it work?
    It sends configurations to dbus server to change panel settings, plugins on panels, … and restart xfce4-panel
  3. How can you run it?
    You’ll need python3 and python3-dbus, and gtk for python3. You just need to clone this project at packages / parrot / parrot-layout-switcher · GitLab and then run it with python3
  4. Does it support Mate or KDE?
    I’ll research and work with Mate later. KDE is lower priority platform but I’ll try as well.
  5. How many layouts does this project support?
    For XFCE, we are having 12 different layouts:
  • The default of Parrot XFCE 4.11
  • The default of Parrot XFCE which was used for 4.10
  • Simple bottom panel with whisker menu, task list, system tray, clock
  • Bottom modern: Similar to bottom but with system-load plugin (which shows system monitor)
  • Top left and top right: Vertical panel at left or right with whisker menu on top
  • Windows 10 and Windows 11: For Windows 10, layout have big bottom panel, launchers, task list and system tray. And this layout will change your theme to Windows 10 theme. For Windows 11, no themes is changed.
  • Dock and Top (XFCE): Similar to XFCE default layout. Top bar: Application menu, task list, workspace switcher, system tray and clock. Bottom panel is a dock style panel with whisker menu, launchers, system load plugin
  • Dock and top: Top panel: applications menu, places menu, clock, system tray. Bottom panel: whisker menu, Launchers, task list
  • Dock: Bottom dock bar with whisker menu, launchers, task list, system tray and clock
  • Top panel: Top panel with whisker menu, places plugin, launchers, workspace switcher, task list, system tray and clock
  1. Do you have any problem when run this application?
    Program is under beta testing. Bugs and errors are expected. For now this project is having at least 2 issues on XFCE:
  • xfce4-panel crashes randomly. You just need to run xfce4-panel& on terminal to start it again. Any help to debug / fix this bug will be awesome. Crash log gi.repository.GLib.Error: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.xfce.Panel was not provided by any .service files (2)
  • Top panel overlay. Seems like this is problem of XFCE and settings can’t do anything to fix this problem

If you are having custom layout, your settings will be removed. There is no backup and restore backup support. I’m having idea for this and basic code but I need some more time to test and add this feature.
7. You don’t like current layout, you want new layout, you found some bug, what can you do?
Feel free to comment here or create pull requests


A big update comes

  1. Support multiple monitors. All non-primary monitors now have bottom panel with task list plugin
  2. Completely rewrite the xfconf generation. Now the values are generated from list of dictionary. Plugin ids, panel ids are generated automatically. No need for hard-coded values (pain in the arse)

New hotfix was pushed to gitlab to fix wrong last_panel_id calculation cause broken layouts that have 2 panels in the same monitor (primary monitor). Meanwhile, the bug XFCE panel crashes randomly is still there. Possible logs:

(xfce4-panel:523822): garcon-CRITICAL **: 08:59:17.144: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

(xfce4-panel:523822): garcon-CRITICAL **: 08:59:17.147: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed

(xfce4-panel:523822): garcon-CRITICAL **: 08:59:17.147: garcon_gtk_menu_get_desktop_actions_menu: assertion 'actions != NULL' failed
xfce4-panel: Restarting...

(xfce4-panel:523846): xfce4-panel-CRITICAL **: 08:59:17.163: Name org.xfce.Panel lost on the message dbus, exiting.

The bug looks similar to Xfce4-panel/lxpanel won't start in bullseye Openbox session / BL & General Linux Discussion / BunsenLabs Linux Forums
The bug could be fixed. Issue potential bogus warning from garcon_gtk_menu_get_desktop_actions_menu if action is missing. (#17) · Issues · Xfce / garcon · GitLab, commit: https://gitlab.xfce.org/xfce/xfce4-panel/-/commit/3d0f972069192d45a472d3b04b2255bd3fbd5562

New patch fix arrived:

  • Fix UnboundLocalError for a variable.
  • Fix missing whiskermenu and systemload configurations after debian packaging
  • Fix wrong panel id on 1 monitor system.

A new small release with: Update new icon’s name for “Applications menu”


Support for Mate is real. The first testing code with dconf worked very well. I’m going to work with Mate layout. Likely I can do the same thing in KDE.
p/s: update: it is impossible. Fuck Gnome and their dconf


After months of researching and preparing, 2 days of hardworking (and a lot of bugs + depression), Mate layout switcher technically works. Now it’s time for designing layouts, fixing applet types and applet locations

1 Like