示例#1
0
        private void ProbeTerminal()
        {
            if (terminal_probed)
            {
                return;
            }

            terminal_probed = true;

            string fallback_terminal = PropertyService.Get("MonoDevelop.Shell", "xterm");
            string preferred_terminal;
            TerminalRunnerHandler preferred_runner = null;
            TerminalRunnerHandler fallback_runner  = XtermRunner;

            TerminalOpenFolderRunnerHandler preferedOpenFolderRunner = null;
            TerminalOpenFolderRunnerHandler fallbackOpenFolderRunner = XtermOpenFolderRunner;

            if (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("GNOME_DESKTOP_SESSION_ID")))
            {
                preferred_terminal       = "gnome-terminal";
                preferred_runner         = GnomeTerminalRunner;
                preferedOpenFolderRunner = GnomeTerminalOpenFolderRunner;
            }
            else if (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("MATE_DESKTOP_SESSION_ID")))
            {
                preferred_terminal       = "mate-terminal";
                preferred_runner         = MateTerminalRunner;
                preferedOpenFolderRunner = GnomeTerminalOpenFolderRunner;
            }
            else if (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("KDE_SESSION_VERSION")))
            {
                preferred_terminal       = "konsole";
                preferred_runner         = KdeTerminalRunner;
                preferedOpenFolderRunner = KdeTerminalOpenFolderRunner;
            }
            else if ((Environment.GetEnvironmentVariable("XDG_CURRENT_DESKTOP") ?? string.Empty).IndexOf("XFCE", StringComparison.OrdinalIgnoreCase) > -1)
            {
                preferred_terminal       = "xfce4-terminal";
                preferred_runner         = Xfce4TerminalRunner;
                preferedOpenFolderRunner = Xfce4TerminalOpenFolderRunner;
            }
            else
            {
                preferred_terminal       = fallback_terminal;
                preferred_runner         = fallback_runner;
                preferedOpenFolderRunner = fallbackOpenFolderRunner;
            }

            terminal_command = FindExec(preferred_terminal);
            if (terminal_command != null)
            {
                runner = preferred_runner;
                openDirectoryRunner = preferedOpenFolderRunner;
                return;
            }

            terminal_command    = FindExec(fallback_terminal);
            runner              = fallback_runner;
            openDirectoryRunner = fallbackOpenFolderRunner;
        }
示例#2
0
		private void ProbeTerminal ()
		{
			if (terminal_probed) {
				return;
			}
			
			terminal_probed = true;
			
			string fallback_terminal = PropertyService.Get ("MonoDevelop.Shell", "xterm");
			string preferred_terminal;
			TerminalRunnerHandler preferred_runner = null;
			TerminalRunnerHandler fallback_runner = XtermRunner;

			TerminalOpenFolderRunnerHandler preferedOpenFolderRunner = null;
			TerminalOpenFolderRunnerHandler fallbackOpenFolderRunner = XtermOpenFolderRunner;

			if (!String.IsNullOrEmpty (Environment.GetEnvironmentVariable ("GNOME_DESKTOP_SESSION_ID"))) {
				preferred_terminal = "gnome-terminal";
				preferred_runner = GnomeTerminalRunner;
				preferedOpenFolderRunner = GnomeTerminalOpenFolderRunner;
			}
			else if (!String.IsNullOrEmpty (Environment.GetEnvironmentVariable ("MATE_DESKTOP_SESSION_ID"))) {
				preferred_terminal = "mate-terminal";
				preferred_runner = GnomeTerminalRunner;
				preferedOpenFolderRunner = GnomeTerminalOpenFolderRunner;
			} 
			else if (!String.IsNullOrEmpty (Environment.GetEnvironmentVariable ("KDE_SESSION_VERSION"))) { 
				preferred_terminal = "konsole";
				preferred_runner = KdeTerminalRunner;
				preferedOpenFolderRunner = KdeTerminalOpenFolderRunner;
			}
			else {
				preferred_terminal = fallback_terminal;
				preferred_runner = fallback_runner;
				preferedOpenFolderRunner = fallbackOpenFolderRunner;
			}

			terminal_command = FindExec (preferred_terminal);
			if (terminal_command != null) {
				runner = preferred_runner;
				openDirectoryRunner = preferedOpenFolderRunner;
				return;
			}
			
			terminal_command = FindExec (fallback_terminal);
			runner = fallback_runner;
			openDirectoryRunner = fallbackOpenFolderRunner;
		}