forked from Shinonome/dots-hyprland
wbar: drag to pin tray item
This commit is contained in:
@@ -8,11 +8,11 @@ import Quickshell.Services.SystemTray
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property bool smartTray: Config.options.bar.tray.filterPassive
|
||||
property list<var> itemsInUserList: SystemTray.items.values.filter(i => (Config.options.bar.tray.pinnedItems.includes(i.id) && (!smartTray || i.status !== Status.Passive)))
|
||||
property list<var> itemsNotInUserList: SystemTray.items.values.filter(i => (!Config.options.bar.tray.pinnedItems.includes(i.id) && (!smartTray || i.status !== Status.Passive)))
|
||||
property bool smartTray: Config.options.tray.filterPassive
|
||||
property list<var> itemsInUserList: SystemTray.items.values.filter(i => (Config.options.tray.pinnedItems.includes(i.id) && (!smartTray || i.status !== Status.Passive)))
|
||||
property list<var> itemsNotInUserList: SystemTray.items.values.filter(i => (!Config.options.tray.pinnedItems.includes(i.id) && (!smartTray || i.status !== Status.Passive)))
|
||||
|
||||
property bool invertPins: Config.options.bar.tray.invertPinnedItems
|
||||
property bool invertPins: Config.options.tray.invertPinnedItems
|
||||
property list<var> pinnedItems: invertPins ? itemsNotInUserList : itemsInUserList
|
||||
property list<var> unpinnedItems: invertPins ? itemsInUserList : itemsNotInUserList
|
||||
|
||||
@@ -20,7 +20,26 @@ Singleton {
|
||||
var result = item.tooltipTitle.length > 0 ? item.tooltipTitle
|
||||
: (item.title.length > 0 ? item.title : item.id);
|
||||
if (item.tooltipDescription.length > 0) result += " • " + item.tooltipDescription;
|
||||
if (Config.options.bar.tray.showItemId) result += "\n[" + item.id + "]";
|
||||
if (Config.options.tray.showItemId) result += "\n[" + item.id + "]";
|
||||
return result;
|
||||
}
|
||||
|
||||
// Pinning
|
||||
function pin(itemId) {
|
||||
var pins = Config.options.tray.pinnedItems;
|
||||
if (pins.includes(itemId)) return;
|
||||
Config.options.tray.pinnedItems.push(itemId);
|
||||
}
|
||||
function unpin(itemId) {
|
||||
Config.options.tray.pinnedItems = Config.options.tray.pinnedItems.filter(id => id !== itemId);
|
||||
}
|
||||
function togglePin(itemId) {
|
||||
var pins = Config.options.tray.pinnedItems;
|
||||
if (pins.includes(itemId)) {
|
||||
unpin(itemId)
|
||||
} else {
|
||||
pin(itemId)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user