1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

Fedora compatibility & Icon theme updates

This commit is contained in:
purian23
2025-07-30 19:10:46 -04:00
parent 7b14094155
commit b26d83d301
4 changed files with 33 additions and 10 deletions

View File

@@ -423,22 +423,44 @@ Singleton {
// Update icon theme via dconf/gsettings AND settings.ini files
if (gtkThemeName !== "System Default" && gtkThemeName !== "") {
var script =
"# Update dconf/gsettings\n" +
"if command -v dconf >/dev/null 2>&1; then\n" +
" dconf write /org/gnome/desktop/interface/icon-theme \\\"" + gtkThemeName + "\\\"\n" +
"elif command -v gsettings >/dev/null 2>&1; then\n" +
"# Update dconf/gsettings with multiple fallbacks for Fedora\n" +
"if command -v gsettings >/dev/null 2>&1 && gsettings list-schemas | grep -q org.gnome.desktop.interface; then\n" +
" gsettings set org.gnome.desktop.interface icon-theme '" + gtkThemeName + "'\n" +
" echo 'Updated via gsettings'\n" +
"elif command -v dconf >/dev/null 2>&1; then\n" +
" dconf write /org/gnome/desktop/interface/icon-theme \\\"" + gtkThemeName + "\\\"\n" +
" echo 'Updated via dconf'\n" +
"fi\n" +
"\n" +
"# Ensure config directories exist\n" +
"mkdir -p ~/.config/gtk-3.0 ~/.config/gtk-4.0\n" +
"\n" +
"# Update settings.ini files (keep existing gtk-theme-name)\n" +
"for config_dir in ~/.config/gtk-3.0 ~/.config/gtk-4.0; do\n" +
" if [ -f \"$config_dir/settings.ini\" ]; then\n" +
" sed -i 's/^gtk-icon-theme-name=.*/gtk-icon-theme-name=" + gtkThemeName + "/' \"$config_dir/settings.ini\"\n" +
" settings_file=\"$config_dir/settings.ini\"\n" +
" if [ -f \"$settings_file\" ]; then\n" +
" # Update existing icon-theme-name line or add it\n" +
" if grep -q '^gtk-icon-theme-name=' \"$settings_file\"; then\n" +
" sed -i 's/^gtk-icon-theme-name=.*/gtk-icon-theme-name=" + gtkThemeName + "/' \"$settings_file\"\n" +
" else\n" +
" # Add icon theme setting to [Settings] section or create it\n" +
" if grep -q '\\[Settings\\]' \"$settings_file\"; then\n" +
" sed -i '/\\[Settings\\]/a gtk-icon-theme-name=" + gtkThemeName + "' \"$settings_file\"\n" +
" else\n" +
" echo -e '\\n[Settings]\\ngtk-icon-theme-name=" + gtkThemeName + "' >> \"$settings_file\"\n" +
" fi\n" +
" fi\n" +
" else\n" +
" # Create new settings.ini file\n" +
" echo -e '[Settings]\\ngtk-icon-theme-name=" + gtkThemeName + "' > \"$settings_file\"\n" +
" fi\n" +
" echo \"Updated $settings_file\"\n" +
"done\n" +
"\n" +
"# Clear icon cache\n" +
"rm -rf ~/.cache/icon-cache ~/.cache/thumbnails 2>/dev/null || true\n";
"# Clear icon cache and force refresh\n" +
"rm -rf ~/.cache/icon-cache ~/.cache/thumbnails 2>/dev/null || true\n" +
"# Send SIGHUP to running GTK applications to reload themes (Fedora-specific)\n" +
"pkill -HUP -f 'gtk' 2>/dev/null || true\n";
Quickshell.execDetached(["sh", "-lc", script]);
}

View File

@@ -102,7 +102,7 @@ GridView {
id: iconImg
anchors.fill: parent
source: (model.icon) ? Quickshell.iconPath(model.icon, "") : ""
source: (model.icon) ? Quickshell.iconPath(model.icon, Prefs.iconTheme === "System Default" ? "" : Prefs.iconTheme) : ""
smooth: true
asynchronous: true
visible: status === Image.Ready

View File

@@ -89,7 +89,7 @@ ListView {
id: iconImg
anchors.fill: parent
source: (model.icon) ? Quickshell.iconPath(model.icon, "") : ""
source: (model.icon) ? Quickshell.iconPath(model.icon, Prefs.iconTheme === "System Default" ? "" : Prefs.iconTheme) : ""
smooth: true
asynchronous: true
visible: status === Image.Ready

View File

@@ -3,6 +3,7 @@
import QtQuick
import Quickshell
import Quickshell.Io
import Quickshell.Widgets
import qs.Modules
import qs.Modules.TopBar
import qs.Modules.AppDrawer