diff --git a/scribus/actionsearch.cpp b/scribus/actionsearch.cpp
index 4eca79ba2..cde2b0d0d 100644
--- a/scribus/actionsearch.cpp
+++ b/scribus/actionsearch.cpp
@@ -15,6 +15,7 @@
 #include <QMenuBar>
 #include <QMenu>
 #include <QStringList>
+#include <QDir>
 
 ActionSearch::ActionSearch(QMenuBar *menuBar)
 	: menuBar{menuBar}
@@ -69,6 +70,18 @@ void ActionSearch::readMenuActions(QMenu* menu)
 		if (actionName.isEmpty() || !action->isEnabled())
 			continue;
 
+#ifdef Q_OS_LINUX
+		// Paths can be long: replace /home/.../ by ~
+		actionName = actionName.replace(QDir::homePath() + QDir::separator(), "~/");
+#endif
+		// If the actionName is still longer than 50 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 +")";
