diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java
index 3b6bae5ef..a3fa7314f 100644
--- a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java
+++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java
@@ -475,6 +475,7 @@ public abstract class StoreEntryComp extends SimpleComp {
event.consume();
});
order.getItems().add(index);
+
order.getItems().add(new SeparatorMenuItem());
var noOrder = new MenuItem(AppI18n.get("none"), new FontIcon("mdi2r-reorder-horizontal"));
@@ -486,7 +487,25 @@ public abstract class StoreEntryComp extends SimpleComp {
order.getItems().add(noOrder);
}
- var top = new MenuItem(AppI18n.get("stickToTop"), new FontIcon("mdi2o-order-bool-descending"));
+ var first = new MenuItem(AppI18n.get("moveToTop"), new FontIcon("mdi2o-order-bool-descending"));
+ first.setOnAction(event -> {
+ DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MIN_VALUE);
+ event.consume();
+ });
+ first.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MIN_VALUE);
+ order.getItems().add(first);
+
+ var last = new MenuItem(AppI18n.get("moveToBottom"), new FontIcon("mdi2o-order-bool-ascending"));
+ last.setOnAction(event -> {
+ DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MAX_VALUE);
+ event.consume();
+ });
+ last.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MAX_VALUE);
+ order.getItems().add(last);
+
+ order.getItems().add(new SeparatorMenuItem());
+
+ var top = new MenuItem(AppI18n.get("stickToTop"), new FontIcon("mdi2o-order-bool-descending-variant"));
top.setOnAction(event -> {
DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MIN_VALUE);
event.consume();
@@ -494,13 +513,16 @@ public abstract class StoreEntryComp extends SimpleComp {
top.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MIN_VALUE);
order.getItems().add(top);
- var bottom = new MenuItem(AppI18n.get("stickToBottom"), new FontIcon("mdi2o-order-bool-ascending"));
+ var bottom = new MenuItem(AppI18n.get("stickToBottom"), new FontIcon("mdi2o-order-bool-ascending-variant"));
bottom.setOnAction(event -> {
DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MAX_VALUE);
event.consume();
});
bottom.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MAX_VALUE);
order.getItems().add(bottom);
+
+ order.getItems().add(new SeparatorMenuItem());
+
items.add(order);
}
}
diff --git a/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css b/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css
index 1db88bf79..729b61bca 100644
--- a/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css
+++ b/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css
@@ -16,6 +16,11 @@
.combo-box-popup .list-cell:hover, .combo-box-popup .list-cell:focused {
-fx-background-color: -color-context-menu;
+ -fx-text-fill: -color-fg-default;
+}
+
+.combo-box-popup .list-cell:hover .graphic, .combo-box-popup .list-cell .graphic {
+ -fx-icon-color: -color-fg-default;
}
.choice-comp-content > .top {
diff --git a/core/src/main/java/io/xpipe/core/process/ShellDialects.java b/core/src/main/java/io/xpipe/core/process/ShellDialects.java
index c5b85ccda..09909cc16 100644
--- a/core/src/main/java/io/xpipe/core/process/ShellDialects.java
+++ b/core/src/main/java/io/xpipe/core/process/ShellDialects.java
@@ -22,6 +22,7 @@ public class ShellDialects {
public static ShellDialect ZSH;
public static ShellDialect CSH;
public static ShellDialect FISH;
+ public static ShellDialect NUSHELL;
public static ShellDialect NO_INTERACTION;
public static ShellDialect CISCO;
@@ -89,6 +90,7 @@ public class ShellDialects {
CSH = byId("csh");
ASH = byId("ash");
SH = byId("sh");
+ NUSHELL = byId("nushell");
NO_INTERACTION = byId("noInteraction");
CISCO = byId("cisco");
MIKROTIK = byId("mikrotik");
diff --git a/img/proc/nushell_icon-dark.svg b/img/proc/nushell_icon-dark.svg
new file mode 100644
index 000000000..5deb148fa
--- /dev/null
+++ b/img/proc/nushell_icon-dark.svg
@@ -0,0 +1,28 @@
+
+
+
+
diff --git a/img/proc/nushell_icon.svg b/img/proc/nushell_icon.svg
new file mode 100644
index 000000000..21819f1f7
--- /dev/null
+++ b/img/proc/nushell_icon.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/lang/strings/translations_en.properties b/lang/strings/translations_en.properties
index 14413c63a..e555c9fda 100644
--- a/lang/strings/translations_en.properties
+++ b/lang/strings/translations_en.properties
@@ -1522,3 +1522,5 @@ appleContainers=Apple containers
changeOrderIndexTitle=Change order index
orderIndex=Index
orderIndexDescription=Explicit index to order this entry relative to others. Lowest indices are shown on top, highest on the bottom
+moveToBottom=Move to bottom
+moveToTop=Move to top