Skip to content

Commit

Permalink
Autodetect Linux Mint with Nemo correctly. Closes #36.
Browse files Browse the repository at this point in the history
  • Loading branch information
basti1302 committed Oct 18, 2013
1 parent e321c59 commit 50903d0
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 15 deletions.
2 changes: 2 additions & 0 deletions plugin/src/de/bastiankrol/startexplorer/PluginContext.java
Expand Up @@ -121,6 +121,8 @@ private IRuntimeExecCalls chooseRuntimeExecCalls(
return RuntimeExecCallsFactory.windowsGitBash();
case LINUX_GNOME:
return RuntimeExecCallsFactory.linuxGnome();
case LINUX_MINT:
return RuntimeExecCallsFactory.linuxMint();
case LINUX_KDE:
return RuntimeExecCallsFactory.linuxKde();
case LINUX_XFCE:
Expand Down
Expand Up @@ -24,7 +24,8 @@ abstract class AbstractRuntimeExecCalls implements IRuntimeExecCalls
{
IRuntimeExecDelegate runtimeExecDelegate;

private final Capabilities defaultCapabilities = Capabilities.create()
private static final Capabilities DEFAULT_CAPABILITIES = Capabilities
.create()
.build();

/**
Expand Down Expand Up @@ -301,7 +302,7 @@ public String[] convertCommandStringToArray(String command)
@Override
public Capabilities getCapabilities()
{
return defaultCapabilities;
return DEFAULT_CAPABILITIES;
}

VariableManager getVariableManager()
Expand Down
Expand Up @@ -28,8 +28,8 @@ abstract class AbstractRuntimeExecCallsWindows extends AbstractRuntimeExecCalls
* http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6468220
*/

private final Capabilities windowsCapabilities = Capabilities.create()
.withFileSelectionSupport().withUrlSupport().build();
private static final Capabilities WINDOWS_CAPABILITIES = Capabilities
.create().withFileSelectionSupport().withUrlSupport().build();

/**
* Creates a new instance and initializes the {@link RuntimeExecDelegate}.
Expand Down Expand Up @@ -101,7 +101,7 @@ File getWorkingDirectoryForCustomCommand(File file)
@Override
public Capabilities getCapabilities()
{
return windowsCapabilities;
return WINDOWS_CAPABILITIES;
}

@Override
Expand Down
Expand Up @@ -11,6 +11,7 @@ public enum DesktopEnvironment
WINDOWS_CYGWIN(OperatingSystem.WINDOWS, "Cygwin"), //
WINDOWS_GIT_BASH(OperatingSystem.WINDOWS, "Git Bash"), //
LINUX_GNOME(OperatingSystem.LINUX, "Gnome"), //
LINUX_MINT(OperatingSystem.LINUX, "Mint"), //
LINUX_KDE(OperatingSystem.LINUX, "KDE"), //
LINUX_XFCE(OperatingSystem.LINUX, "Xfce"), //
LINUX_LXDE(OperatingSystem.LINUX, "LXDE"), //
Expand Down
Expand Up @@ -92,12 +92,7 @@ private static DesktopEnvironment findLinuxDesktopEnvironment()
{
if (checkProcessNames("gnome-session"))
{
// TODO How to check for gnome variants like cinnamon that do not have
// nautilus (but nemo)? Maybe something like feature detection would be
// a better approach. Like this:
// Is there an executable named nautilus? No? Maybe nemo? No? Maybe
// thunar or konqueror....?
return DesktopEnvironment.LINUX_GNOME;
return isItLinuxMintOrUbuntuOrWhat();
}
if (checkProcessNames("ksmserver"))
{
Expand Down Expand Up @@ -140,6 +135,20 @@ private static DesktopEnvironment findLinuxDesktopEnvironment()
}
}

private static DesktopEnvironment isItLinuxMintOrUbuntuOrWhat()
throws IOException, InterruptedException
{
if (checkProcessNames("nemo"))
{
return DesktopEnvironment.LINUX_MINT;
}
// else if (checkProcessNames("nautilus"))
else
{
return DesktopEnvironment.LINUX_GNOME;
}
}

private static boolean checkProcessNames(String... processNames)
throws IOException, InterruptedException
{
Expand Down
Expand Up @@ -27,6 +27,11 @@ public static RuntimeExecCallsGnome linuxGnome()
return new RuntimeExecCallsGnome();
}

public static RuntimeExecCallsMint linuxMint()
{
return new RuntimeExecCallsMint();
}

public static RuntimeExecCallsKde linuxKde()
{
return new RuntimeExecCallsKde();
Expand Down
Expand Up @@ -11,7 +11,7 @@
class RuntimeExecCallsMacOs extends AbstractRuntimeExecCalls
{

private final Capabilities macOsCapabilities = Capabilities.create()
private static final Capabilities MAC_OS_CAPABILITIES = Capabilities.create()
.withFileSelectionSupport().build();

/**
Expand Down Expand Up @@ -91,7 +91,7 @@ File getWorkingDirectoryForCustomCommand(File file)
@Override
public Capabilities getCapabilities()
{
return macOsCapabilities;
return MAC_OS_CAPABILITIES;
}

@Override
Expand Down
@@ -0,0 +1,21 @@
package de.bastiankrol.startexplorer.crossplatform;

import java.io.File;

public class RuntimeExecCallsMint extends RuntimeExecCallsGnome
{
private static final Capabilities MINT_CAPABILITIES = Capabilities.create()
.withFileSelectionSupport().build();

@Override
String[] getCommandForStartFileManager(File file, boolean selectFile)
{
return new String[] { "nemo", getPath(file) };
}

@Override
public Capabilities getCapabilities()
{
return MINT_CAPABILITIES;
}
}
Expand Up @@ -15,7 +15,7 @@
class RuntimeExecCallsUnsupported implements IRuntimeExecCalls
{

private final Capabilities capabilities = Capabilities.create()
private static final Capabilities CAPABILITIES = Capabilities.create()
.build();

private MessageDialogHelper messageDialogHelper;
Expand Down Expand Up @@ -100,7 +100,7 @@ public String[] convertCommandStringToArray(String command)
@Override
public Capabilities getCapabilities()
{
return capabilities;
return CAPABILITIES;
}

private void annoyUser()
Expand Down

0 comments on commit 50903d0

Please sign in to comment.