mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-11-22 07:30:24 +00:00
Various fixes
This commit is contained in:
parent
542e535e42
commit
c1b5fbfa5f
4 changed files with 15 additions and 27 deletions
|
@ -21,23 +21,22 @@ public class AppDesktopIntegration {
|
||||||
if (Desktop.isDesktopSupported()) {
|
if (Desktop.isDesktopSupported()) {
|
||||||
Desktop.getDesktop().addAppEventListener(new SystemSleepListener() {
|
Desktop.getDesktop().addAppEventListener(new SystemSleepListener() {
|
||||||
@Override
|
@Override
|
||||||
public void systemAboutToSleep(SystemSleepEvent e) {
|
public void systemAboutToSleep(SystemSleepEvent e) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void systemAwoke(SystemSleepEvent e) {
|
||||||
if (AppPrefs.get() != null
|
if (AppPrefs.get() != null
|
||||||
&& AppPrefs.get().lockVaultOnHibernation().get()
|
&& AppPrefs.get().lockVaultOnHibernation().get()
|
||||||
&& AppPrefs.get().getLockCrypt().get() != null
|
&& AppPrefs.get().getLockCrypt().get() != null
|
||||||
&& !AppPrefs.get().getLockCrypt().get().isBlank()) {
|
&& !AppPrefs.get().getLockCrypt().get().isBlank()) {
|
||||||
// If we run this at the same time as the system is sleeping, there might be exceptions
|
// If we run this at the same time as the system is sleeping, there might be exceptions
|
||||||
// because the platform does not like being shut down while sleeping
|
// because the platform does not like being shut down while sleeping
|
||||||
// This hopefully assures that it will be run later, probably on system wake
|
// This assures that it will be run later, on system wake
|
||||||
ThreadHelper.runAsync(() -> {
|
ThreadHelper.runAsync(() -> {
|
||||||
ThreadHelper.sleep(1000);
|
ThreadHelper.sleep(1000);
|
||||||
OperationMode.close();
|
OperationMode.close();
|
||||||
});
|
});
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void systemAwoke(SystemSleepEvent e) {}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class NativeMacOsWindowControl {
|
||||||
try {
|
try {
|
||||||
lib.get().setAppearance(new NativeLong(nsWindow), seamlessFrame, darkMode);
|
lib.get().setAppearance(new NativeLong(nsWindow), seamlessFrame, darkMode);
|
||||||
if (seamlessFrame) {
|
if (seamlessFrame) {
|
||||||
ThreadHelper.sleep(150);
|
ThreadHelper.sleep(200);
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
ErrorEvent.fromThrowable(e).handle();
|
ErrorEvent.fromThrowable(e).handle();
|
||||||
|
|
|
@ -5,19 +5,13 @@ import io.xpipe.app.core.AppI18n;
|
||||||
import io.xpipe.app.core.AppProperties;
|
import io.xpipe.app.core.AppProperties;
|
||||||
import io.xpipe.app.core.mode.OperationMode;
|
import io.xpipe.app.core.mode.OperationMode;
|
||||||
import io.xpipe.app.core.window.AppWindowHelper;
|
import io.xpipe.app.core.window.AppWindowHelper;
|
||||||
import io.xpipe.app.issue.ErrorEvent;
|
|
||||||
import io.xpipe.app.util.*;
|
import io.xpipe.app.util.*;
|
||||||
import io.xpipe.core.process.OsType;
|
import io.xpipe.core.process.OsType;
|
||||||
import io.xpipe.core.util.XPipeInstallation;
|
import io.xpipe.core.util.XPipeInstallation;
|
||||||
|
|
||||||
import javafx.beans.property.SimpleObjectProperty;
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.scene.control.ButtonType;
|
import javafx.scene.control.ButtonType;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
|
|
||||||
import java.nio.file.Files;
|
|
||||||
|
|
||||||
public class WorkspaceCreationAlert {
|
public class WorkspaceCreationAlert {
|
||||||
|
|
||||||
public static void showAsync() {
|
public static void showAsync() {
|
||||||
|
@ -53,13 +47,6 @@ public class WorkspaceCreationAlert {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Files.exists(path.get()) && !FileUtils.isEmptyDirectory(path.get().toFile())) {
|
|
||||||
ErrorEvent.fromMessage("New workspace directory is not empty")
|
|
||||||
.expected()
|
|
||||||
.handle();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var shortcutName = (AppProperties.get().isStaging() ? "XPipe PTB" : "XPipe") + " (" + name.get() + ")";
|
var shortcutName = (AppProperties.get().isStaging() ? "XPipe PTB" : "XPipe") + " (" + name.get() + ")";
|
||||||
var file =
|
var file =
|
||||||
switch (OsType.getLocal()) {
|
switch (OsType.getLocal()) {
|
||||||
|
|
14
dist/changelogs/11.0.md
vendored
14
dist/changelogs/11.0.md
vendored
|
@ -4,7 +4,7 @@ The scripting system has been reworked in order to make it more intuitive and po
|
||||||
|
|
||||||
The script execution types have been renamed, the documentation has been improved, and a new execution type has been added. The new runnable execution type will allow you to call a script from the connection hub directly in a dropdown for each connection when the script is active. This will also replace the current terminal command functionality, which has been removed.
|
The script execution types have been renamed, the documentation has been improved, and a new execution type has been added. The new runnable execution type will allow you to call a script from the connection hub directly in a dropdown for each connection when the script is active. This will also replace the current terminal command functionality, which has been removed.
|
||||||
|
|
||||||
Any file browser scripts are now grouped by the scripts groups they are in, improving the overview when having many file browser scripts. Furthermore, you can now launch these scripts in the file browser either in the background if they are quiet or in a terminal if they are intended to be interactive. When multiple files are selected, a script is now called only once with all the selected files as arguments.
|
Any file browser scripts are now grouped by the scripts groups they are in, improving the overview when having many file browser scripts. Furthermore, you can now launch these scripts in the file browser either in the background or in a terminal if they are intended to be interactive. When multiple files are selected, a script is now called only once with all the selected files as arguments.
|
||||||
|
|
||||||
## More terminal support
|
## More terminal support
|
||||||
|
|
||||||
|
@ -18,29 +18,31 @@ These work via a local SSH bridge that is managed by XPipe.
|
||||||
|
|
||||||
## Teleport support
|
## Teleport support
|
||||||
|
|
||||||
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. This is a separate integration from SSH, SSH config entries for teleport proxies do not work and are automatically filtered out. It solely works through the tsh tool.
|
There is now support to add teleport connections that are available via tsh. You can do that by searching for available connections on any system which has tsh installed. This is a separate integration from SSH, SSH config entries for teleport proxies do not work and are automatically filtered out. It solely works through the tsh tool.
|
||||||
|
|
||||||
This feature is available in the Professional edition and is freely available to anyone for two weeks after this release using the Pro Preview.
|
This feature is available in the Professional edition and is freely available to anyone for two weeks after this release using the Pro Preview.
|
||||||
|
|
||||||
## 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. Having multiple workspaces is useful if you want to separate your personal and work environments for example.
|
||||||
|
|
||||||
This feature is available in the Professional edition and is freely available to anyone for two weeks after this release using the Pro Preview.
|
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 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 and proxies. In XPipe 11, there has been a ground up rework of the shell initialization code which will allow for a 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
|
## 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.
|
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.
|
Note that this feature is untested due to me not having physical serial devices around. The plan for this feature is to evolve over time with user feedback and issue reports. It is not expected that this will actually work at the initial release. You can help the development of this feature by reporting any issues and testing it with various devices you have.
|
||||||
|
|
||||||
## Pricing model updates
|
## 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`.
|
I received plenty of user feedback and had time to observe the inner workings of potential customers, so I changed the old pricing model to one that should capture the demand better. The old pricing model was created at a time when XPipe had no customers at all and did not reflect the actual user demand. The main changes are the addition of a homelab plan, a monthly subscription, and some changes to the one-year professional edition.
|
||||||
|
|
||||||
|
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, you can read about the changes in detail at `https://xpipe.io/blog/pricing-updates`.
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue