forked from Shinonome/dots-hyprland
waffles: context menus for app buttons
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
@@ -8,8 +8,12 @@ import Quickshell.Wayland
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
function isPinned(appId) {
|
||||
return Config.options.dock.pinnedApps.indexOf(appId) !== -1;
|
||||
}
|
||||
|
||||
function togglePin(appId) {
|
||||
if (Config.options.dock.pinnedApps.indexOf(appId) !== -1) {
|
||||
if (root.isPinned(appId)) {
|
||||
Config.options.dock.pinnedApps = Config.options.dock.pinnedApps.filter(id => id !== appId)
|
||||
} else {
|
||||
Config.options.dock.pinnedApps = Config.options.dock.pinnedApps.concat([appId])
|
||||
|
||||
Reference in New Issue
Block a user