mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-30 00:12:50 -05:00
Fedora compatibility & Icon theme updates
This commit is contained in:
@@ -423,22 +423,44 @@ Singleton {
|
|||||||
// Update icon theme via dconf/gsettings AND settings.ini files
|
// Update icon theme via dconf/gsettings AND settings.ini files
|
||||||
if (gtkThemeName !== "System Default" && gtkThemeName !== "") {
|
if (gtkThemeName !== "System Default" && gtkThemeName !== "") {
|
||||||
var script =
|
var script =
|
||||||
"# Update dconf/gsettings\n" +
|
"# Update dconf/gsettings with multiple fallbacks for Fedora\n" +
|
||||||
"if command -v dconf >/dev/null 2>&1; then\n" +
|
"if command -v gsettings >/dev/null 2>&1 && gsettings list-schemas | grep -q org.gnome.desktop.interface; then\n" +
|
||||||
" dconf write /org/gnome/desktop/interface/icon-theme \\\"" + gtkThemeName + "\\\"\n" +
|
|
||||||
"elif command -v gsettings >/dev/null 2>&1; then\n" +
|
|
||||||
" gsettings set org.gnome.desktop.interface icon-theme '" + gtkThemeName + "'\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" +
|
"fi\n" +
|
||||||
"\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" +
|
"# Update settings.ini files (keep existing gtk-theme-name)\n" +
|
||||||
"for config_dir in ~/.config/gtk-3.0 ~/.config/gtk-4.0; do\n" +
|
"for config_dir in ~/.config/gtk-3.0 ~/.config/gtk-4.0; do\n" +
|
||||||
" if [ -f \"$config_dir/settings.ini\" ]; then\n" +
|
" settings_file=\"$config_dir/settings.ini\"\n" +
|
||||||
" sed -i 's/^gtk-icon-theme-name=.*/gtk-icon-theme-name=" + gtkThemeName + "/' \"$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" +
|
" fi\n" +
|
||||||
|
" echo \"Updated $settings_file\"\n" +
|
||||||
"done\n" +
|
"done\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"# Clear icon cache\n" +
|
"# Clear icon cache and force refresh\n" +
|
||||||
"rm -rf ~/.cache/icon-cache ~/.cache/thumbnails 2>/dev/null || true\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]);
|
Quickshell.execDetached(["sh", "-lc", script]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ GridView {
|
|||||||
id: iconImg
|
id: iconImg
|
||||||
|
|
||||||
anchors.fill: parent
|
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
|
smooth: true
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
visible: status === Image.Ready
|
visible: status === Image.Ready
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ ListView {
|
|||||||
id: iconImg
|
id: iconImg
|
||||||
|
|
||||||
anchors.fill: parent
|
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
|
smooth: true
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
visible: status === Image.Ready
|
visible: status === Image.Ready
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
|
import Quickshell.Widgets
|
||||||
import qs.Modules
|
import qs.Modules
|
||||||
import qs.Modules.TopBar
|
import qs.Modules.TopBar
|
||||||
import qs.Modules.AppDrawer
|
import qs.Modules.AppDrawer
|
||||||
|
|||||||
Reference in New Issue
Block a user