diff options
| author | srdusr <trevorgray@srdusr.com> | 2025-08-30 19:22:59 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2025-08-30 19:22:59 +0200 |
| commit | 19120d4f9761c67d99ed1ce3da6084b83f5a49c9 (patch) | |
| tree | f234cad1bdad88114a63c9702144da487024967a /linux/home/.config/ags/lib/iconUtils.js | |
| parent | 5928998af5404ae2be84c6cecc10ebf84bd3f3ed (diff) | |
| download | dotfiles-19120d4f9761c67d99ed1ce3da6084b83f5a49c9.tar.gz dotfiles-19120d4f9761c67d99ed1ce3da6084b83f5a49c9.zip | |
Linux-specific dotfiles
Diffstat (limited to 'linux/home/.config/ags/lib/iconUtils.js')
| -rw-r--r-- | linux/home/.config/ags/lib/iconUtils.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/linux/home/.config/ags/lib/iconUtils.js b/linux/home/.config/ags/lib/iconUtils.js new file mode 100644 index 0000000..baba660 --- /dev/null +++ b/linux/home/.config/ags/lib/iconUtils.js @@ -0,0 +1,46 @@ +const { Gio, Gdk, Gtk } = imports.gi; + +function fileExists(filePath) { + let file = Gio.File.new_for_path(filePath); + return file.query_exists(null); +} + +function cartesianProduct(arrays) { + if (arrays.length === 0) { + return [[]]; + } + + const [head, ...tail] = arrays; + const tailCartesian = cartesianProduct(tail); + const result = []; + + for (const item of head) { + for (const tailItem of tailCartesian) { + result.push([item, ...tailItem]); + } + } + return result; +} +import { HOME } from '../utils.ts'; +export const find_icon = app_class => { + const themPath = [ + [`${HOME}/.local/share/icons/WhiteSur/`, `${HOME}/.local/share//icons/WhiteSur-dark/`], + ['512x512/', '128x128/', '64x64/', '96x96/', '72x72/', '48x48/', '36x36/'], + ['apps/', ''], + [app_class + '.png', app_class + '.svg', app_class + '.xpm'], + ]; + + let real_path = ''; + const all_icon_dir = cartesianProduct(themPath); + + for (let index = 0; index < all_icon_dir.length; index++) { + const pathItem = all_icon_dir[index]; + const icon_path = pathItem.join(''); + if (fileExists(icon_path)) { + real_path = icon_path; + break; + } + } + + return real_path; +}; |
