From 4b515ef6c80e0e6cebf22e8b5124235aa3e3c816 Mon Sep 17 00:00:00 2001 From: Mark Johnson Date: Wed, 15 Dec 2021 21:57:49 +0000 Subject: [PATCH] Check for supported terminal emulators before activating SSH button. --- lib/src/pages/manager.dart | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/lib/src/pages/manager.dart b/lib/src/pages/manager.dart index 95f4ebb..082702e 100644 --- a/lib/src/pages/manager.dart +++ b/lib/src/pages/manager.dart @@ -29,6 +29,24 @@ class _ManagerState extends State with PreferencesMixin { bool _spicy = false; final List _sshVms = []; String? _terminalEmulator; + final List _supportedTerminalEmulators = [ + 'cool-retro-term', + 'gnome-terminal', + 'guake', + 'mate-terminal', + 'konsole', + 'lxterm', + 'lxterminal', + 'pterm', + 'sakura', + 'terminator', + 'tilix', + 'uxterm', + 'uxrvt', + 'xfce4-terminal', + 'xrvt', + 'xterm' + ]; Timer? refreshTimer; @override @@ -61,10 +79,12 @@ class _ManagerState extends State with PreferencesMixin { ProcessResult result = await Process.run('which', ['x-terminal-emulator']); if (result.exitCode == 0) { String terminalEmulator = await File(result.stdout.toString().trim()).resolveSymbolicLinks(); - stdout.writeln(terminalEmulator); - setState(() { - _terminalEmulator = path.basename(terminalEmulator); - }); + terminalEmulator = path.basenameWithoutExtension(terminalEmulator); + if (_supportedTerminalEmulators.contains(terminalEmulator)) { + setState(() { + _terminalEmulator = path.basename(terminalEmulator); + }); + } } }