mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-11-21 23:20:23 +00:00
Various fixes
This commit is contained in:
parent
4f1ddc6634
commit
a08dba4d06
5 changed files with 35 additions and 15 deletions
|
@ -44,11 +44,15 @@ public class OpenFileSystemCache extends ShellControlCache {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var lines = sc.command(CommandBuilder.of().add("cat").addFile("/etc/passwd")).readStdoutOrThrow();
|
var lines = sc.command(CommandBuilder.of().add("cat").addFile("/etc/passwd")).readStdoutIfPossible().orElse("");
|
||||||
lines.lines().forEach(s -> {
|
lines.lines().forEach(s -> {
|
||||||
var split = s.split(":");
|
var split = s.split(":");
|
||||||
users.putIfAbsent(Integer.parseInt(split[2]), split[0]);
|
users.putIfAbsent(Integer.parseInt(split[2]), split[0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (users.isEmpty()) {
|
||||||
|
users.put(0, "root");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadGroups() throws Exception {
|
private void loadGroups() throws Exception {
|
||||||
|
@ -57,11 +61,15 @@ public class OpenFileSystemCache extends ShellControlCache {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var lines = sc.command(CommandBuilder.of().add("cat").addFile("/etc/group")).readStdoutOrThrow();
|
var lines = sc.command(CommandBuilder.of().add("cat").addFile("/etc/group")).readStdoutIfPossible().orElse("");
|
||||||
lines.lines().forEach(s -> {
|
lines.lines().forEach(s -> {
|
||||||
var split = s.split(":");
|
var split = s.split(":");
|
||||||
groups.putIfAbsent(Integer.parseInt(split[2]), split[0]);
|
groups.putIfAbsent(Integer.parseInt(split[2]), split[0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (groups.isEmpty()) {
|
||||||
|
groups.put(0, "root");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRoot() {
|
public boolean isRoot() {
|
||||||
|
|
|
@ -9,10 +9,10 @@ import io.xpipe.app.util.PlatformState;
|
||||||
import io.xpipe.app.util.ThreadHelper;
|
import io.xpipe.app.util.ThreadHelper;
|
||||||
import io.xpipe.core.process.OsType;
|
import io.xpipe.core.process.OsType;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.desktop.*;
|
import java.awt.desktop.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
|
|
||||||
public class AppDesktopIntegration {
|
public class AppDesktopIntegration {
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ public class AppDesktopIntegration {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will initialize the toolkit on macos and create the dock icon
|
// This will initialize the toolkit on macOS and create the dock icon
|
||||||
// macOS does not like applications that run fully in the background, so always do it
|
// macOS does not like applications that run fully in the background, so always do it
|
||||||
if (OsType.getLocal().equals(OsType.MACOS) && Desktop.isDesktopSupported()) {
|
if (OsType.getLocal().equals(OsType.MACOS) && Desktop.isDesktopSupported()) {
|
||||||
Desktop.getDesktop().setPreferencesHandler(e -> {
|
Desktop.getDesktop().setPreferencesHandler(e -> {
|
||||||
|
@ -68,7 +68,7 @@ public class AppDesktopIntegration {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set dock icon explicitly on mac
|
// Set dock icon explicitly on macOS
|
||||||
// This is necessary in case XPipe was started through a script as it will have no icon otherwise
|
// This is necessary in case XPipe was started through a script as it will have no icon otherwise
|
||||||
if (AppProperties.get().isDeveloperMode()
|
if (AppProperties.get().isDeveloperMode()
|
||||||
&& AppLogs.get().isWriteToSysout()
|
&& AppLogs.get().isWriteToSysout()
|
||||||
|
|
|
@ -3,6 +3,7 @@ package io.xpipe.app.prefs;
|
||||||
import io.xpipe.app.comp.base.ButtonComp;
|
import io.xpipe.app.comp.base.ButtonComp;
|
||||||
import io.xpipe.app.core.AppI18n;
|
import io.xpipe.app.core.AppI18n;
|
||||||
import io.xpipe.app.fxcomps.Comp;
|
import io.xpipe.app.fxcomps.Comp;
|
||||||
|
import io.xpipe.app.util.LicenseProvider;
|
||||||
import io.xpipe.app.util.OptionsBuilder;
|
import io.xpipe.app.util.OptionsBuilder;
|
||||||
|
|
||||||
public class WorkspacesCategory extends AppPrefsCategory {
|
public class WorkspacesCategory extends AppPrefsCategory {
|
||||||
|
@ -15,10 +16,11 @@ public class WorkspacesCategory extends AppPrefsCategory {
|
||||||
@Override
|
@Override
|
||||||
protected Comp<?> create() {
|
protected Comp<?> create() {
|
||||||
return new OptionsBuilder()
|
return new OptionsBuilder()
|
||||||
.addTitle("manageWorkspaces")
|
.addTitle(AppI18n.observable("manageWorkspaces").map(s -> s + (LicenseProvider.get().getFeature("workspaces").isSupported() ? "" : " (Pro)")))
|
||||||
.sub(new OptionsBuilder()
|
.sub(new OptionsBuilder()
|
||||||
.nameAndDescription("workspaceAdd")
|
.nameAndDescription("workspaceAdd")
|
||||||
.addComp(new ButtonComp(AppI18n.observable("addWorkspace"), WorkspaceCreationAlert::showAsync)))
|
.addComp(new ButtonComp(AppI18n.observable("addWorkspace"), WorkspaceCreationAlert::showAsync)))
|
||||||
|
.disable(!LicenseProvider.get().getFeature("workspaces").isSupported())
|
||||||
.buildComp();
|
.buildComp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
26
dist/changelogs/11.0.md
vendored
26
dist/changelogs/11.0.md
vendored
|
@ -20,28 +20,38 @@ These work via a local SSH bridge that is managed by XPipe.
|
||||||
|
|
||||||
There is now support to add your teleport connections that are available via tsh. You can do that by searching for available connections on any system which has tsh installed.
|
There is now support to add your teleport connections that are available via tsh. You can do that by searching for available connections on any system which has tsh installed.
|
||||||
|
|
||||||
## Serial connection support
|
This feature is available in the Professional edition and is freely available to anyone for two weeks after this release using the Pro Preview.
|
||||||
|
|
||||||
There is now support to add serial connections. Note that this feature is untested due to me not having physical serial devices around. If you have some, it would be very helpful if you could quickly try out the serial support and share your feedback.
|
|
||||||
|
|
||||||
## Workspaces
|
## Workspaces
|
||||||
|
|
||||||
You can now create multiple user workspaces in the settings menu. This will create desktop shortcuts that you can use to start XPipe with different workspaces active.
|
You can now create multiple user workspaces in the settings menu. This will create desktop shortcuts that you can use to start XPipe with different workspaces active.
|
||||||
|
|
||||||
|
This feature is available in the Professional edition and is freely available to anyone for two weeks after this release using the Pro Preview.
|
||||||
|
|
||||||
## TTYs and PTYs
|
## TTYs and PTYs
|
||||||
|
|
||||||
Up until now, if you added a connection that always allocated pty, XPipe would complain about a missing stderr. This was usually the case with badly implemented third-party ssh wrappers. In XPipe 11, there has been a ground up rework of the shell initialization code which will in theory allow for better handling of these cases. You can therefore now also launch such connections from the hub in a terminal. More advanced operations, such as the file browser, are not it possible for these connections though.
|
Up until now, if you added a connection that always allocated pty, XPipe would complain about a missing stderr. This was usually the case with badly implemented third-party ssh wrappers. In XPipe 11, there has been a ground up rework of the shell initialization code which will in theory allow for better handling of these cases. You can therefore now also launch such connections from the hub in a terminal. More advanced operations, such as the file browser, are not possible for these connections though.
|
||||||
|
|
||||||
|
## Serial connection support
|
||||||
|
|
||||||
|
There is now support to add serial connections. This is implemented by delegating the serial connection to another installed tool of your choice and opening that in a terminal session.
|
||||||
|
|
||||||
|
Note that this feature is untested due to me not having physical serial devices around. The plan for this feature is for it to evolve over time with user feedback and issue reports. It is not expected that this will actually work at the initial release.
|
||||||
|
|
||||||
|
## Pricing model updates
|
||||||
|
|
||||||
|
I received plenty of user feedback and had time to observe the inner workings of potential customers, so I changed the old model that was created at a time when XPipe had no customers at all. All changes only apply to new orders. If you have previously purchased any XPipe edition, nothing will change for you. Any prices and conditions will stay the same for you. The community edition is also not changed. If you are interested in purchasing XPipe, you can read about the changes in detail at `https://xpipe.io/blog/pricing-updates`.
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
|
|
||||||
- Fix git sync freezing when using key with passphrase on modern ssh clients
|
- Fix git sync freezing when using ssh key with passphrase
|
||||||
- Fix git sync restarting daemon after exit when using key with passphrase
|
- Fix git sync restarting daemon after exit when using git ssh key with passphrase
|
||||||
- Fix git vault readme not being generated on first push when no connections were added
|
- Fix git vault readme not being generated on first push when no connections were added
|
||||||
- Fix terminal exit not working properly in fish
|
- Fix terminal exit not working properly in fish
|
||||||
- Fix renaming a connection clearing all state information
|
- Fix renaming a connection clearing all saved state information
|
||||||
- Fix script enabled status being wrong after editing an enabled script
|
- Fix script enabled status being wrong after editing an enabled script
|
||||||
- Fix download move operation failing when moving a directory that already existed in the downloads folder
|
- Fix download move operation failing when moving a directory that already existed in the downloads folder
|
||||||
- Fix some scrollbars are necessarily showing
|
- Fix some scrollbars unnecessarily showing
|
||||||
- Fix file browser list jumping around on first show
|
- Fix file browser list jumping around on first show
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
|
|
|
@ -44,7 +44,7 @@ rdpFile.displayName=RDP file
|
||||||
rdpFile.displayDescription=Connect to a system via an existing .rdp file
|
rdpFile.displayDescription=Connect to a system via an existing .rdp file
|
||||||
requiredSshServerAlertTitle=Setup SSH server
|
requiredSshServerAlertTitle=Setup SSH server
|
||||||
requiredSshServerAlertHeader=Unable to find an installed SSH server in the VM.
|
requiredSshServerAlertHeader=Unable to find an installed SSH server in the VM.
|
||||||
requiredSshServerAlertContent=To connect to the VM, XPipe is looking for a running SSH server but no available SSH server was detected for the VM..
|
requiredSshServerAlertContent=To connect to the VM, XPipe is looking for a running SSH server but no available SSH server was detected for the VM.
|
||||||
computerName=Computer Name
|
computerName=Computer Name
|
||||||
pssComputerNameDescription=The computer name to connect to. It is assumed that it is already included in your trusted hosts.
|
pssComputerNameDescription=The computer name to connect to. It is assumed that it is already included in your trusted hosts.
|
||||||
credentialUser=Credential User
|
credentialUser=Credential User
|
||||||
|
|
Loading…
Reference in a new issue