From 5365846ba4fb72e4f452a311a9a875fed2e5ff23 Mon Sep 17 00:00:00 2001 From: casglistro Date: Thu, 18 Apr 2024 17:39:44 +0800 Subject: [PATCH] move config into new category --- .config/ags/modules/dock/dock.js | 21 +++++++-------------- .config/ags/modules/dock/icons.js | 6 +++--- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/.config/ags/modules/dock/dock.js b/.config/ags/modules/dock/dock.js index 150d7e5e9..06a5cef94 100644 --- a/.config/ags/modules/dock/dock.js +++ b/.config/ags/modules/dock/dock.js @@ -12,12 +12,7 @@ import { setupCursorHover } from '../.widgetutils/cursorhover.js'; import { getAllFiles, searchIcons } from './icons.js' import { MaterialIcon } from '../.commonwidgets/materialicon.js'; -const icon_files = userOptions.dock.iconSearchPaths.map(e => getAllFiles(e)).flat(1) - -const pinnedApps = [ - 'firefox', - 'org.gnome.Nautilus', -]; +const icon_files = userOptions.icon.searchPaths.map(e => getAllFiles(e)).flat(1) let isPinned = false let cachePath = new Map() @@ -147,10 +142,10 @@ const Taskbar = (monitor) => Widget.Box({ const client = Hyprland.clients[i]; if (client["pid"] == -1) return; const appClass = substitute(client.class); - for (const appName of pinnedApps) { - if (appClass.includes(appName.toLowerCase())) - return null; - } + // for (const appName of userOptions.dock.pinnedApps) { + // if (appClass.includes(appName.toLowerCase())) + // return null; + // } let appClassLower = appClass.toLowerCase() let path = '' if (cachePath[appClassLower]) { path = cachePath[appClassLower] } @@ -222,14 +217,14 @@ const Taskbar = (monitor) => Widget.Box({ const PinnedApps = () => Widget.Box({ class_name: 'dock-apps', homogeneous: true, - children: pinnedApps + children: userOptions.dock.pinnedApps .map(term => ({ app: Applications.query(term)?.[0], term })) .filter(({ app }) => app) .map(({ app, term = true }) => { const newButton = AppButton({ // different icon, emm... icon: userOptions.dock.searchPinnedAppIcons ? - searchIcons(app.icon_name, icon_files) : + searchIcons(app.name, icon_files) : app.icon_name, onClicked: () => { for (const client of Hyprland.clients) { @@ -367,8 +362,6 @@ export default (monitor = 0) => { setup: self => self.on("leave-notify-event", () => { if (!isPinned) dockRevealer.revealChild = false; clearTimes() - }).on('key-press-event', (self, event) => { - console.log(self, event) }) }) } diff --git a/.config/ags/modules/dock/icons.js b/.config/ags/modules/dock/icons.js index a16e8ff0e..60f01a3a1 100644 --- a/.config/ags/modules/dock/icons.js +++ b/.config/ags/modules/dock/icons.js @@ -1,6 +1,4 @@ const { Gio, GLib } = imports.gi -import { lookUpIcon, timeout } from 'resource:///com/github/Aylur/ags/utils.js'; -import Applications from 'resource:///com/github/Aylur/ags/service/applications.js'; const exists = (path) => Gio.File.new_for_path(path).query_exists(null); @@ -45,13 +43,15 @@ export const getAllFiles = (dir, files = []) => { } export const searchIcons = (appClass, files) => { + appClass = appClass.toLowerCase() + if (!files.length) { return "" } let appro = 0x3f3f3f3f let path = "" for (const item of files) { - let score = levenshteinDistance(item.split("/").pop(), appClass) + let score = levenshteinDistance(item.split("/").pop().toLowerCase().split(".")[0], appClass) if (score < appro) { appro = score