diff --git a/scribus/actionsearch.cpp b/scribus/actionsearch.cpp
index 4eca79ba2..a173bff24 100644
--- a/scribus/actionsearch.cpp
+++ b/scribus/actionsearch.cpp
@@ -15,6 +15,7 @@
 #include <QMenuBar>
 #include <QMenu>
 #include <QStringList>
+#include <QRegularExpression>
 
 ActionSearch::ActionSearch(QMenuBar *menuBar)
 	: menuBar{menuBar}
@@ -57,6 +58,9 @@ void ActionSearch::readMenuActions(QMenu* menu)
 	}
 	QString menuName(menus.join(" > "));
 
+	// recent document tend to have a long path: we will try to shorten it a bit
+	// const bool isRecentDocument = menus.last() == QObject::tr("Open &Recent").replace("&", "");
+
 	for (auto action: menu->actions())
 	{
 		if (action->menu() != nullptr)
@@ -69,6 +73,20 @@ void ActionSearch::readMenuActions(QMenu* menu)
 		if (actionName.isEmpty() || !action->isEnabled())
 			continue;
 
+		// Currently disabled: the /home/.../ string can only happen in a unix path
+		// Paths can be long: replace /home/.../ by ~
+		// if (isRecentDocument)
+		// {
+		actionName = actionName.replace(QRegularExpression("/home/[^/]+/"), "~/");
+		// }
+		// If the actionName is longer than 40 chars remove chars from the middle
+		// and replace them with an ellipse sign.
+		// (There should be no action name that is longer than 40 chars.
+		// only paths are affected.)
+		if (actionName.length() > 50) {
+			actionName = actionName.left(25) + "…" + actionName.right(25);
+		}
+
 		// TODO: we might want to have a multilevel menuName
 		if (!menuName.isEmpty())
 			actionName += " (" + menuName +")";
