Files
illogical-impulse/dots/.config/quickshell/ii/services/LauncherApps.qml
T
2025-12-07 00:04:24 +01:00

42 lines
1.5 KiB
QML

pragma Singleton
import qs.modules.common
import QtQuick
import Quickshell
Singleton {
id: root
function isPinned(appId) {
return Config.options.launcher.pinnedApps.indexOf(appId) !== -1;
}
function togglePin(appId) {
if (root.isPinned(appId)) {
Config.options.launcher.pinnedApps = Config.options.launcher.pinnedApps.filter(id => id !== appId)
} else {
Config.options.launcher.pinnedApps = Config.options.launcher.pinnedApps.concat([appId])
}
}
function moveToFront(appId) {
if (!root.isPinned(appId)) return;
const pinnedApps = Config.options.launcher.pinnedApps;
Config.options.launcher.pinnedApps = [appId].concat(pinnedApps.filter(id => id !== appId));
}
function moveLeft(appId) {
const pinnedApps = Config.options.launcher.pinnedApps;
const index = pinnedApps.indexOf(appId);
if (index === -1 || index === 0) return;
Config.options.launcher.pinnedApps = pinnedApps.slice(0, index - 1).concat([appId]).concat(pinnedApps[index - 1]).concat(pinnedApps.slice(index + 1));
}
function moveRight(appId) {
const pinnedApps = Config.options.launcher.pinnedApps;
const index = pinnedApps.indexOf(appId);
if (index === -1 || index === pinnedApps.length - 1) return;
Config.options.launcher.pinnedApps = pinnedApps.slice(0, index).concat(pinnedApps[index + 1]).concat([appId]).concat(pinnedApps.slice(index + 2));
}
}