diff --git a/src/public/app/components/root_command_executor.js b/src/public/app/components/root_command_executor.js
index 63d86ae46..2f46e0bb7 100644
--- a/src/public/app/components/root_command_executor.js
+++ b/src/public/app/components/root_command_executor.js
@@ -54,13 +54,11 @@ export default class RootCommandExecutor extends Component {
             openService.openNoteExternally(noteId, mime);
         }
     }
-    
+
     openNoteCustomCommand() {
         const noteId = appContext.tabManager.getActiveContextNoteId();
-        const mime = appContext.tabManager.getActiveContextNoteMime()
-
         if (noteId) {
-            openService.openNoteCustom(noteId, mime);
+            openService.openNoteCustom(noteId);
         }
     }
 
diff --git a/src/public/app/services/open.js b/src/public/app/services/open.js
index 9d6f3c931..177db6459 100644
--- a/src/public/app/services/open.js
+++ b/src/public/app/services/open.js
@@ -47,61 +47,66 @@ async function openNoteExternally(noteId, mime) {
     }
 }
 
-async function openNoteCustom(noteId, mime) {
-    if (utils.isElectron()) {
-      const resp = await server.post(`notes/${noteId}/save-to-tmp-dir`);
-      const filePath = resp.tmpFilePath;
-      const { exec } = utils.dynamicRequire('child_process');
-      const platform = process.platform;
-      if (platform === 'linux') {        
-        const terminals = ['gnome-terminal', 'konsole', 'xterm', 'xfce4-terminal', 'mate-terminal', 'rxvt', 'terminator', 'terminology'];
+async function openNoteCustom(noteId) {
+    if (!utils.isElectron() || utils.isMac()) {
+        return;
+    }
+
+    const resp = await server.post(`notes/${noteId}/save-to-tmp-dir`);
+    let filePath = resp.tmpFilePath;
+    const {exec} = utils.dynamicRequire('child_process');
+    const platform = process.platform;
+
+    if (platform === 'linux') {
+        // we don't know which terminal is available, try in succession
+        const terminals = ['x-terminal-emulator', 'gnome-terminal', 'konsole', 'xterm', 'xfce4-terminal', 'mate-terminal', 'rxvt', 'terminator', 'terminology'];
         const openFileWithTerminal = (terminal) => {
-          const command = `${terminal} -e 'mimeopen -d "${filePath}"'`;
-          console.log(`Open Note custom: ${command} `);
-          exec(command, (error, stdout, stderr) => {
-            if (error) {
-              console.error(`Open Note custom: Failed to open file with ${terminal}: ${error}`);
-              searchTerminal(terminals.indexOf(terminal) + 1);
-            } else {
-              console.log(`Open Note custom: File opened with ${terminal}. ${stdout}`);
-            }
-          });
+            const command = `${terminal} -e 'mimeopen -d "${filePath}"'`;
+            console.log(`Open Note custom: ${command} `);
+            exec(command, (error, stdout, stderr) => {
+                if (error) {
+                    console.error(`Open Note custom: Failed to open file with ${terminal}: ${error}`);
+                    searchTerminal(terminals.indexOf(terminal) + 1);
+                } else {
+                    console.log(`Open Note custom: File opened with ${terminal}: ${stdout}`);
+                }
+            });
         };
+
         const searchTerminal = (index) => {
-          const terminal = terminals[index];
-          if (!terminal) {
-            console.error('Open Note custom: No terminal found!');
-            open(getFileUrl(noteId), { url: true });
-            return;
-          }
-          exec(`which ${terminal}`, (error, stdout, stderr) => {
-            if (stdout.trim()) {
-              openFileWithTerminal(terminal);
-            } else {
-              searchTerminal(index + 1);
+            const terminal = terminals[index];
+            if (!terminal) {
+                console.error('Open Note custom: No terminal found!');
+                open(getFileUrl(noteId), {url: true});
+                return;
             }
-          });
+            exec(`which ${terminal}`, (error, stdout, stderr) => {
+                if (stdout.trim()) {
+                    openFileWithTerminal(terminal);
+                } else {
+                    searchTerminal(index + 1);
+                }
+            });
         };
         searchTerminal(0);
-      } else if (platform === 'win32') {
+    } else if (platform === 'win32') {
         if (filePath.indexOf("/") !== -1) {
-          //Note that the path separator must be \ instead of /
-          filePath = filePath.replace(/\//g, "\\");
+            // Note that the path separator must be \ instead of /
+            filePath = filePath.replace(/\//g, "\\");
         }
         const command = `rundll32.exe shell32.dll,OpenAs_RunDLL ` + filePath;
         exec(command, (err, stdout, stderr) => {
-          if (err) {
-            console.error("Open Note custom: ", err);
-            open(getFileUrl(noteId), { url: true });
-            return;
-          }
+            if (err) {
+                console.error("Open Note custom: ", err);
+                open(getFileUrl(noteId), {url: true});
+                return;
+            }
         });
-      } else {
+    } else {
         console.log('Currently "Open Note custom" only supports linux and windows systems');
-        open(getFileUrl(noteId), { url: true });
-      }
+        open(getFileUrl(noteId), {url: true});
     }
-  }
+}
 
 function downloadNoteRevision(noteId, noteRevisionId) {
     const url = getUrlForDownload(`api/notes/${noteId}/revisions/${noteRevisionId}/download`);
diff --git a/src/public/app/widgets/buttons/note_actions.js b/src/public/app/widgets/buttons/note_actions.js
index de2ad33f9..b660c7da2 100644
--- a/src/public/app/widgets/buttons/note_actions.js
+++ b/src/public/app/widgets/buttons/note_actions.js
@@ -29,7 +29,7 @@ const TPL = `
         Search in note 
          Note source
          Open note externally
-         Open note custom (beta)
+         Open note custom
         Import files
         Export note
         Delete note
@@ -90,7 +90,7 @@ export default class NoteActionsWidget extends NoteContextAwareWidget {
         this.$renderNoteButton.toggle(note.type === 'render');
 
         this.$openNoteExternallyButton.toggle(utils.isElectron());
-        this.$openNoteCustomButton.toggle(utils.isElectron());
+        this.$openNoteCustomButton.toggle(utils.isElectron() && !utils.isMac()); // no implementation for Mac yet
     }
 
     toggleDisabled($el, enable) {