summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-16 00:42:09 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-16 00:42:09 +1000
commita44910d3971b1eb7ce0b755ac98bdd35c6c3574e (patch)
tree953a20970fad86b6bbd545ace51f5c82d3d5a737
parentMerge branch 'main' into betteractions (diff)
downloadcaelestia-shell-a44910d3971b1eb7ce0b755ac98bdd35c6c3574e.tar.gz
caelestia-shell-a44910d3971b1eb7ce0b755ac98bdd35c6c3574e.tar.bz2
caelestia-shell-a44910d3971b1eb7ce0b755ac98bdd35c6c3574e.zip
launcher: completely hide disabled actions
-rw-r--r--config/LauncherConfig.qml2
-rw-r--r--modules/launcher/ActionItem.qml12
-rw-r--r--modules/launcher/Actions.qml39
3 files changed, 16 insertions, 37 deletions
diff --git a/config/LauncherConfig.qml b/config/LauncherConfig.qml
index 1757c7e..ea3c364 100644
--- a/config/LauncherConfig.qml
+++ b/config/LauncherConfig.qml
@@ -4,7 +4,7 @@ JsonObject {
property int maxShown: 8
property int maxWallpapers: 9 // Warning: even numbers look bad
property string actionPrefix: ">"
- property bool allowDangerousActions: false // Allow actions that can change the system state, like shutdown, reboot and logout
+ property bool enableDangerousActions: false // Allow actions that can cause losing data, like shutdown, reboot and logout
property JsonObject sizes: JsonObject {
property int itemWidth: 600
diff --git a/modules/launcher/ActionItem.qml b/modules/launcher/ActionItem.qml
index 720b272..db3242a 100644
--- a/modules/launcher/ActionItem.qml
+++ b/modules/launcher/ActionItem.qml
@@ -31,9 +31,7 @@ Item {
MaterialIcon {
id: icon
- text: root.modelData?.disabled
- ? "disabled_by_default"
- : (root.modelData?.icon ?? "")
+ text: root.modelData?.icon ?? ""
font.pointSize: Appearance.font.size.extraLarge
anchors.verticalCenter: parent.verticalCenter
@@ -50,18 +48,14 @@ Item {
StyledText {
id: name
- text: root.modelData?.disabled
- ? (root.modelData?.name ?? "") + " - Disabled"
- : (root.modelData?.name ?? "")
+ text: root.modelData?.name ?? ""
font.pointSize: Appearance.font.size.normal
}
StyledText {
id: desc
- text: root.modelData?.disabled
- ? (root.modelData?.disabledReason ?? "")
- : (root.modelData?.desc ?? "")
+ text: root.modelData?.desc ?? ""
font.pointSize: Appearance.font.size.small
color: Colours.alpha(Colours.palette.m3outline, true)
diff --git a/modules/launcher/Actions.qml b/modules/launcher/Actions.qml
index 1f6e72b..ae732db 100644
--- a/modules/launcher/Actions.qml
+++ b/modules/launcher/Actions.qml
@@ -71,33 +71,33 @@ Singleton {
name: qsTr("Shutdown")
desc: qsTr("Shutdown the system")
icon: "power_settings_new"
- disabled: !LauncherConfig.allowDangerousActions
- disabledReason: qsTr("Enable dangerous actions in config/LauncherConfig.qml first")
+ disabled: !Config.launcher.enableDangerousActions
function onClicked(list: AppList): void {
- root.handleDangerousAction(list, shutdown);
+ list.visibilities.launcher = false;
+ shutdown.running = true;
}
},
Action {
name: qsTr("Reboot")
desc: qsTr("Reboot the system")
icon: "cached"
- disabled: !LauncherConfig.allowDangerousActions
- disabledReason: qsTr("Enable dangerous actions in config/LauncherConfig.qml first")
+ disabled: !Config.launcher.enableDangerousActions
function onClicked(list: AppList): void {
- root.handleDangerousAction(list, reboot);
+ list.visibilities.launcher = false;
+ reboot.running = true;
}
},
Action {
name: qsTr("Logout")
- desc: qsTr("Logout of the current session")
+ desc: qsTr("Log out of the current session")
icon: "exit_to_app"
- disabled: !LauncherConfig.allowDangerousActions
- disabledReason: qsTr("Enable dangerous actions in config/LauncherConfig.qml first")
+ disabled: !Config.launcher.enableDangerousActions
function onClicked(list: AppList): void {
- root.handleDangerousAction(list, logout);
+ list.visibilities.launcher = false;
+ logout.running = true;
}
},
Action {
@@ -122,7 +122,7 @@ Singleton {
}
]
- readonly property list<var> preppedActions: list.map(a => ({
+ readonly property list<var> preppedActions: list.filter(a => !a.disabled).map(a => ({
name: Fuzzy.prepare(a.name),
desc: Fuzzy.prepare(a.desc),
action: a
@@ -140,21 +140,6 @@ Singleton {
list.search.text = `${Config.launcher.actionPrefix}${text} `;
}
- function handleDangerousAction(list: AppList, process: QtObject): void {
- list.visibilities.launcher = false;
- if (!LauncherConfig.allowDangerousActions) {
- dangerousActions.running = true;
- return;
- }
- process.running = true;
- }
-
- Process {
- id: dangerousActions
-
- command: ["notify-send", "Quickshell", qsTr("Enable dangerous actions in config/LauncherConfig.qml to use this action."), "-i", "dialog-warning"]
- }
-
Process {
id: shutdown
@@ -171,7 +156,7 @@ Singleton {
id: logout
command: ["sh", "-c", "(uwsm stop | grep -q 'Compositor is not running' && loginctl terminate-user $USER) || uwsm stop"]
- }
+ }
Process {
id: lock