luisbocanegra / kde-material-you-colors

Automatic color scheme generator from your wallpaper for KDE Plasma powered by Material You
https://store.kde.org/p/2136963
GNU General Public License v3.0
346 stars 6 forks source link

icon set isn't found #212

Closed chrostino closed 2 weeks ago

chrostino commented 2 weeks ago

Describe the bug I have two icon set installed: Tela and Qogir, but Tela is listed in the widget advanced settings (together with Breeze) while Qogir no image

Also some programs like spotify or vscode don't get themed as shown in the example

Desktop

luisbocanegra commented 2 weeks ago

This is because that icon theme also includes cursors. In the widget (FullRepresentation.qml#L91) I use the command bellow to get the icons but since I was also getting cursor themes I filtered them out.

find /usr/share/icons ~/.local/share/icons -maxdepth 2 -type f -path '*/icons/*/index.theme' ! -path '*/share/icons' ! -exec grep -q '^Hidden=true' {} \; ! -execdir test -d cursors \; -printf '%p\n' | while read line; do echo "$(basename $(dirname $line)),$(grep '^Name=' $line | sed 's/^Name=//')"; done

I will replace that with this one. Can you confirm it works?

find /usr/share/icons ~/.local/share/icons -maxdepth 1 -type d -exec test -f "{}/index.theme" \; ! -exec grep -q '^Hidden=true' {}/index.theme \; -exec sh -c 'test "$(find "$1" -maxdepth 1 -type d | wc -l)" -gt 2' _ {} \; -printf '%p\n' | while read line; do echo "$(basename $line),$(grep '^Name=' $line/index.theme | sed 's/^Name=//')"; done | sort --field-separator=, --key=2n -k2,2

In the widget would be property string getIconThemesCommand: "find /usr/share/icons " +homeDir+"/.local/share/icons -maxdepth 1 -type d -exec test -f \"{}/index.theme\" \\; ! -exec grep -q '^Hidden=true' {}/index.theme \\; -exec sh -c 'test \"$(find \"$1\" -maxdepth 1 -type d | wc -l)\" -gt 2' _ {} \\; -printf '%p\\n' | while read line; do echo \"$(basename $line),$(grep '^Name=' $line/index.theme | sed 's/^Name=//')\"; done | sort --field-separator=, --key=2n -k2,2"

I think it would be better to either make it a separate shell script or move that to the backend but that should do for now

luisbocanegra commented 2 weeks ago

Also some programs like spotify or vscode don't get themed as shown in the example

Vscode requires pywal + https://github.com/dlasagno/vscode-wal-theme, spotify requires spicetify + a configuration that loads colors from either pywal cache or the json. In the screenshots I was using this theme I made https://github.com/luisbocanegra/spicetify-kde-material-you but kinda lost interest on fixing it after every update

chrostino commented 2 weeks ago

I will replace that with this one. Can you confirm it works?

find /usr/share/icons ~/.local/share/icons -maxdepth 1 -type d -exec test -f "{}/index.theme" \; ! -exec grep -q '^Hidden=true' {}/index.theme \; -exec sh -c 'test "$(find "$1" -maxdepth 1 -type d | wc -l)" -gt 2' _ {} \; -printf '%p\n' | while read line; do echo "$(basename $line),$(grep '^Name=' $line/index.theme | sed 's/^Name=//')"; done | sort --field-separator=, --key=2n -k2,2

works like a charm

Vscode requires pywal + https://github.com/dlasagno/vscode-wal-theme, spotify requires spicetify + a configuration that loads colors from either pywal cache or the json. In the screenshots I was using this theme I made https://github.com/luisbocanegra/spicetify-kde-material-you but kinda lost interest on fixing it after every update

thanks for the vscode extension and the spicetify theme looks really cool, it's a shame no one has the time to maintain it