Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nwg-look for openSUSE:Factory 
checked in at 2026-05-07 17:32:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nwg-look (Old)
 and      /work/SRC/openSUSE:Factory/.nwg-look.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nwg-look"

Thu May  7 17:32:22 2026 rev:3 rq:1351430 version:1.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/nwg-look/nwg-look.changes        2026-04-29 
19:19:42.209652311 +0200
+++ /work/SRC/openSUSE:Factory/.nwg-look.new.1966/nwg-look.changes      
2026-05-07 17:32:23.317277935 +0200
@@ -1,0 +2,14 @@
+Thu May 07 12:54:24 UTC 2026 - Khang Lê <[email protected]>
+
+- Update to version 1.1.0:
+  * update dependencies
+  * fix: Give up on bundling gtk themes in favor of a much simpler mount 
strategy
+  * feat: Add option to install selected gtk theme to flatpak
+  * Include Spanish lang and keywords on nwg-look.desktop
+  * Create es_ES.yml
+  * fix: Only consider/show flatpak options if flatpak is installed
+  * feat: Add option to override flatpak GTK and icon themes
+  * pt_BR language file added.
+  * fix #107
+
+-------------------------------------------------------------------

Old:
----
  nwg-look-1.0.6.tar.gz

New:
----
  nwg-look-1.1.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nwg-look.spec ++++++
--- /var/tmp/diff_new_pack.N1mjmG/_old  2026-05-07 17:32:24.469325463 +0200
+++ /var/tmp/diff_new_pack.N1mjmG/_new  2026-05-07 17:32:24.469325463 +0200
@@ -16,7 +16,7 @@
 #
 
 Name:           nwg-look
-Version:        1.0.6
+Version:        1.1.0
 Release:        0
 Summary:        GTK3 settings editor adapted to work in sway/wlroots 
environment
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.N1mjmG/_old  2026-05-07 17:32:24.517327443 +0200
+++ /var/tmp/diff_new_pack.N1mjmG/_new  2026-05-07 17:32:24.521327608 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/nwg-piotr/nwg-look.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">@PARENT_TAG@</param>
+    <param name="revision">v1.1.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.N1mjmG/_old  2026-05-07 17:32:24.557329092 +0200
+++ /var/tmp/diff_new_pack.N1mjmG/_new  2026-05-07 17:32:24.561329258 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/nwg-piotr/nwg-look.git</param>
-              <param 
name="changesrevision">1282e6422491ea912ac22c5f532277eb011cc5bb</param></service></servicedata>
+              <param 
name="changesrevision">38d177b00f3eeec2652578d4398b32db9a3ea6bc</param></service></servicedata>
 (No newline at EOF)
 

++++++ nwg-look-1.0.6.tar.gz -> nwg-look-1.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/go.mod new/nwg-look-1.1.0/go.mod
--- old/nwg-look-1.0.6/go.mod   2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/go.mod   2026-05-07 03:12:54.000000000 +0200
@@ -1,12 +1,10 @@
 module github.com/nwg-piotr/nwg-look
 
-go 1.23.0
-
-toolchain go1.24.1
+go 1.25.0
 
 require (
        github.com/gotk3/gotk3 v0.6.5-0.20240618185848-ff349ae13f56
-       github.com/sirupsen/logrus v1.9.3
+       github.com/sirupsen/logrus v1.9.4
 )
 
-require golang.org/x/sys v0.33.0 // indirect
+require golang.org/x/sys v0.43.0 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/go.sum new/nwg-look-1.1.0/go.sum
--- old/nwg-look-1.0.6/go.sum   2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/go.sum   2026-05-07 03:12:54.000000000 +0200
@@ -7,9 +7,12 @@
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/sirupsen/logrus v1.9.3 
h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
 github.com/sirupsen/logrus v1.9.3/go.mod 
h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
+github.com/sirupsen/logrus v1.9.4 
h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
+github.com/sirupsen/logrus v1.9.4/go.mod 
h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/testify v1.7.0 
h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.10.0 
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
 golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
@@ -17,6 +20,9 @@
 golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
 golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
+golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c 
h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/cs_CZ.json 
new/nwg-look-1.1.0/langs/cs_CZ.json
--- old/nwg-look-1.0.6/langs/cs_CZ.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/cs_CZ.json 2026-05-07 03:12:54.000000000 +0200
@@ -50,5 +50,9 @@
   "toolbar-style": "Styl panelu nástrojů",
   "ui-settings": "Nastevení uživatelského rozhranní",
   "widgets": "Nástroje",
-  "widget-style-preview": "Náhled stylu nástroje"
+  "widget-style-preview": "Náhled stylu nástroje",
+  "flatpak-settings": "Nastavení Flatpaku",
+  "flatpak-override-flatpak-gtk-theme": "Přepsat GTK motiv Flatpaku",
+  "flatpak-override-flatpak-icon-theme": "Přepsat motiv ikon Flatpaku",
+  "flatpak-install-current-gtk-theme": "Nainstalovat aktuální GTK motiv"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/en_US.json 
new/nwg-look-1.1.0/langs/en_US.json
--- old/nwg-look-1.0.6/langs/en_US.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/en_US.json 2026-05-07 03:12:54.000000000 +0200
@@ -51,5 +51,9 @@
   "toolbar-style": "Toolbar style",
   "ui-settings": "UI settings",
   "widgets": "Widgets",
-  "widget-style-preview": "Widget style preview"
+  "widget-style-preview": "Widget style preview",
+  "flatpak-settings": "Flatpak settings",
+  "flatpak-override-flatpak-gtk-theme": "Override flatpak GTK theme",
+  "flatpak-override-flatpak-icon-theme": "Override flatpak icon theme",
+  "flatpak-install-current-gtk-theme": "Install current GTK theme"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/es_ES.yml 
new/nwg-look-1.1.0/langs/es_ES.yml
--- old/nwg-look-1.0.6/langs/es_ES.yml  1970-01-01 01:00:00.000000000 +0100
+++ new/nwg-look-1.1.0/langs/es_ES.yml  2026-05-07 03:12:54.000000000 +0200
@@ -0,0 +1,59 @@
+{
+  "apply": "Aplicar",
+  "button": "Botón",
+  "check-button": "Botón de selección",
+  "clear": "Limpiar",
+  "clear-gtk4-tooltip": "Limpiar enlaces simbólicos de GTK4 y settings.ini",
+  "close": "Cerrar",
+  "color-scheme": "Esquema de colores",
+  "cursor-size": "Tamaño del cursor",
+  "cursor-theme-preview": "Vista previa del tema de cursores",
+  "default": "Predeterminado",
+  "default-font": "Fuente predeterminada",
+  "deprecated": "obsoleto",
+  "deprecated-since-gtk-310": "Obsoleto desde GTK 3.10",
+  "enable-event-sounds": "Activar sonidos de eventos",
+  "enable-input-feedback-sounds": "Activar sonidos de respuesta de entrada",
+  "entry": "Entrada de texto",
+  "files-to-export": "Archivos a exportar",
+  "font": "Fuente",
+  "font-antialiasing": "Suavizado de fuente (Antialiasing)",
+  "font-hinting": "Optimización de fuente (Hinting)",
+  "font-rgba-order": "Orden RGBA de la fuente",
+  "font-settings": "Ajustes de fuentes",
+  "full": "Completo",
+  "grayscale": "Escala de grises",
+  "icon-theme": "Tema de iconos",
+  "icon-theme-preview": "Vista previa del tema de iconos",
+  "icons": "Iconos",
+  "ignored": "ignorado",
+  "large": "Grande",
+  "medium": "Mediano",
+  "mouse-cursor": "Cursor del ratón",
+  "none": "Ninguno",
+  "other": "Otro",
+  "other-settings": "Otros ajustes",
+  "prefer-dark": "Preferir oscuro",
+  "prefer-light": "Preferir claro",
+  "preferences": "Preferencias",
+  "program-settings": "Ajustes del programa",
+  "radio-button": "Botón de opción",
+  "show-button-images": "Mostrar imágenes en botones",
+  "show-menu-images": "Mostrar imágenes en menús",
+  "slight": "Ligero",
+  "small": "Pequeño",
+  "sound-effects": "Efectos de sonido",
+  "text": "Texto",
+  "text-below-icons": "Texto debajo de los iconos",
+  "text-next-to-icons": "Texto junto a los iconos",
+  "text-scaling-factor": "Factor de escala del texto",
+  "toolbar-icon-size": "Tamaño de iconos de barra de herramientas",
+  "toolbar-style": "Estilo de barra de herramientas",
+  "ui-settings": "Ajustes de interfaz",
+  "widgets": "Widgets",
+  "widget-style-preview": "Vista previa del estilo de widgets",
+  "flatpak-settings": "Configuración de Flatpak",
+  "flatpak-override-flatpak-gtk-theme": "Sobrescribir el tema GTK de Flatpak",
+  "flatpak-override-flatpak-icon-theme": "Sobrescribir el tema de iconos de 
Flatpak",
+  "flatpak-install-current-gtk-theme": "Instalar el tema GTK actual",
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/ja_JP.json 
new/nwg-look-1.1.0/langs/ja_JP.json
--- old/nwg-look-1.0.6/langs/ja_JP.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/ja_JP.json 2026-05-07 03:12:54.000000000 +0200
@@ -50,5 +50,9 @@
   "toolbar-style": "ツールバーのスタイル",
   "ui-settings": "UI 設定",
   "widgets": "ウィジェット",
-  "widget-style-preview": "ウィジェットスタイル プレビュー"
+  "widget-style-preview": "ウィジェットスタイル プレビュー",
+  "flatpak-settings": "Flatpakの設定",
+  "flatpak-override-flatpak-gtk-theme": "FlatpakのGTKテーマを上書きする",
+  "flatpak-override-flatpak-icon-theme": "Flatpakのアイコンテーマを上書きする",
+  "flatpak-install-current-gtk-theme": "現在のGTKテーマをインストールする"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/pl_PL.json 
new/nwg-look-1.1.0/langs/pl_PL.json
--- old/nwg-look-1.0.6/langs/pl_PL.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/pl_PL.json 2026-05-07 03:12:54.000000000 +0200
@@ -51,5 +51,9 @@
   "toolbar-style": "Styl paska narzędzi",
   "ui-settings": "Ustawienia interfejsu użytkownika",
   "widgets": "Widżety",
-  "widget-style-preview": "Podgląd stylu widżetów"
+  "widget-style-preview": "Podgląd stylu widżetów",
+  "flatpak-settings": "Ustawienia Flatpaka",
+  "flatpak-override-flatpak-gtk-theme": "Nadpisz motyw GTK Flatpaka",
+  "flatpak-override-flatpak-icon-theme": "Nadpisz motyw ikon Flatpaka",
+  "flatpak-install-current-gtk-theme": "Zainstaluj bieżący motyw GTK"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/pt_BR.json 
new/nwg-look-1.1.0/langs/pt_BR.json
--- old/nwg-look-1.0.6/langs/pt_BR.json 1970-01-01 01:00:00.000000000 +0100
+++ new/nwg-look-1.1.0/langs/pt_BR.json 2026-05-07 03:12:54.000000000 +0200
@@ -0,0 +1,55 @@
+{
+  "apply": "Aplicar",
+  "button": "Botão",
+  "check-button": "Botão de marcação",
+  "clear": "Limpar",
+  "clear-gtk4-tooltip": "Limpar links simbólicos do GTK4 e settings.ini",
+  "close": "Fechar",
+  "color-scheme": "Esquema de cores",
+  "cursor-size": "Tamanho do cursor",
+  "cursor-theme-preview": "Pré-visualização do tema do cursor",
+  "default": "Padrão",
+  "default-font": "Fonte padrão",
+  "deprecated": "Obsoleto",
+  "deprecated-since-gtk-310": "Obsoleto desde o GTK 3.10",
+  "enable-event-sounds": "Habilitar sons de eventos",
+  "enable-input-feedback-sounds": "Habilitar sons de feedback de entrada",
+  "entry": "Entrada",
+  "files-to-export": "Arquivos para exportar",
+  "font": "Fonte",
+  "font-antialiasing": "Suavização de fontes",
+  "font-hinting": "Ajuste de fonte",
+  "font-rgba-order": "Ordem RGBA da fonte",
+  "font-settings": "Configurações da fonte",
+  "full": "Completo",
+  "grayscale": "Escala de cinza",
+  "icon-theme": "Tema de ícones",
+  "icon-theme-preview": "Prévia do tema de ícones",
+  "icons": "Ícones",
+  "ignored": "Ignorar",
+  "large": "Grande",
+  "medium": "Médio",
+  "mouse-cursor": "Cursor do mouse",
+  "none": "Nenhum",
+  "other": "Outro",
+  "other-settings": "Outras configurações",
+  "prefer-dark": "Preferir escuro",
+  "prefer-light": "Preferir claro",
+  "preferences": "Preferências",
+  "program-settings": "Configurações do programa",
+  "radio-button": "Botão de opção",
+  "show-button-images": "Mostrar imagens dos botões",
+  "show-menu-images": "Mostrar imagens do menu",
+  "slight": "Leve",
+  "small": "Pequeno",
+  "sound-effects": "Efeitos sonoros",
+  "text": "Texto",
+  "text-below-icons": "Texto abaixo dos ícones",
+  "text-next-to-icons": "Texto ao lado dos ícones",
+  "text-scaling-factor": "Fator de escala do texto",
+  "toolbar-icon-size": "Tamanho do ícone da barra de ferramentas",
+  "toolbar-style": "Estilo da barra de ferramentas",
+  "ui-settings": "Configurações da interface do usuário",
+  "widgets": "Widgets",
+  "widget-style-preview": "Pré-visualização do estilo do widget"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/ru_RU.json 
new/nwg-look-1.1.0/langs/ru_RU.json
--- old/nwg-look-1.0.6/langs/ru_RU.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/ru_RU.json 2026-05-07 03:12:54.000000000 +0200
@@ -50,5 +50,9 @@
   "toolbar-style": "Стиль панели инструментов",
   "ui-settings": "Настройки интерфейса",
   "widgets": "Виджеты",
-  "widget-style-preview": "Предпросмотр стиля виджетов"
+  "widget-style-preview": "Предпросмотр стиля виджетов",
+  "flatpak-settings": "Настройки Flatpak",
+  "flatpak-override-flatpak-gtk-theme": "Переопределить тему GTK для Flatpak",
+  "flatpak-override-flatpak-icon-theme": "Переопределить тему значков Flatpak",
+  "flatpak-install-current-gtk-theme": "Установить текущую тему GTK"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/tr_TR.json 
new/nwg-look-1.1.0/langs/tr_TR.json
--- old/nwg-look-1.0.6/langs/tr_TR.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/tr_TR.json 2026-05-07 03:12:54.000000000 +0200
@@ -1,54 +1,58 @@
 {
-    "apply": "Uygula",
-    "button": "Buton",
-    "check-button": "Kontrol butonu",
-    "clear": "Temizle",
-    "close": "Kapat",
-    "color-scheme": "Renk şeması",
-    "cursor-size": "İmleç boyutu",
-    "cursor-theme-preview": "İmleç teması önizlemesi",
-    "default": "Varsayılan",
-    "default-font": "Varsayılan yazı tipi",
-    "deprecated": "Terkedilmiş",
-    "deprecated-since-gtk-310": "Deprecated since GTK 3.10",
-    "enable-event-sounds": "Olay seslerini etkinleştir",
-    "enable-input-feedback-sounds": "Giriş geri bildirim seslerini 
etkinleştir",
-    "entry": "Girdi",
-    "files-to-export": "Dışa aktarılacak dosyalar",
-    "font": "Yazı tipi",
-    "font-antialiasing": "Yazı tipi kenar yumuşatma",
-    "font-hinting": "Yazı tipi ipucu",
-    "font-rgba-order": "Yazı tipi RGBA düzeni",
-    "font-settings": "Yazı tipi ayarları",
-    "full": "Tam",
-    "grayscale": "Gri tonlama",
-    "icon-theme": "İkon teması",
-    "icon-theme-preview": "İkon teması önizlemesi",
-    "icons": "İkonlar",
-    "ignored": "Yok say",
-    "large": "Geniş",
-    "medium": "Orta",
-    "mouse-cursor": "Fare imleci",
-    "none": "Hiçbiri",
-    "other": "Diğer",
-    "other-settings": "Diğer ayarlar",
-    "prefer-dark": "Karanlığı tercih et",
-    "prefer-light": "Aydınlığı tercih et",
-    "preferences": "Tercihler",
-    "program-settings": "Program ayarları",
-    "radio-button": "Radyo butonu",
-    "show-button-images": "Buton görsellerini göster",
-    "show-menu-images": "Menü görsellerini göster",
-    "slight": "Hafif",
-    "small": "Küçük",
-    "sound-effects": "Ses efektleri",
-    "text": "Metin",
-    "text-below-icons": "İkonların altındaki metinler",
-    "text-next-to-icons": "İkonların yanındaki metinler",
-    "text-scaling-factor": "Metin ölçeklendirme faktörü",
-    "toolbar-icon-size": "Araç çubuğu ikon boyutu",
-    "toolbar-style": "Araç çubuğu tarzı",
-    "ui-settings": "UI ayarları",
-    "widgets": "Widgetlar",
-    "widget-style-preview": "Widget tarzı önizlemesi"
-}
\ No newline at end of file
+  "apply": "Uygula",
+  "button": "Buton",
+  "check-button": "Kontrol butonu",
+  "clear": "Temizle",
+  "close": "Kapat",
+  "color-scheme": "Renk şeması",
+  "cursor-size": "İmleç boyutu",
+  "cursor-theme-preview": "İmleç teması önizlemesi",
+  "default": "Varsayılan",
+  "default-font": "Varsayılan yazı tipi",
+  "deprecated": "Terkedilmiş",
+  "deprecated-since-gtk-310": "Deprecated since GTK 3.10",
+  "enable-event-sounds": "Olay seslerini etkinleştir",
+  "enable-input-feedback-sounds": "Giriş geri bildirim seslerini etkinleştir",
+  "entry": "Girdi",
+  "files-to-export": "Dışa aktarılacak dosyalar",
+  "font": "Yazı tipi",
+  "font-antialiasing": "Yazı tipi kenar yumuşatma",
+  "font-hinting": "Yazı tipi ipucu",
+  "font-rgba-order": "Yazı tipi RGBA düzeni",
+  "font-settings": "Yazı tipi ayarları",
+  "full": "Tam",
+  "grayscale": "Gri tonlama",
+  "icon-theme": "İkon teması",
+  "icon-theme-preview": "İkon teması önizlemesi",
+  "icons": "İkonlar",
+  "ignored": "Yok say",
+  "large": "Geniş",
+  "medium": "Orta",
+  "mouse-cursor": "Fare imleci",
+  "none": "Hiçbiri",
+  "other": "Diğer",
+  "other-settings": "Diğer ayarlar",
+  "prefer-dark": "Karanlığı tercih et",
+  "prefer-light": "Aydınlığı tercih et",
+  "preferences": "Tercihler",
+  "program-settings": "Program ayarları",
+  "radio-button": "Radyo butonu",
+  "show-button-images": "Buton görsellerini göster",
+  "show-menu-images": "Menü görsellerini göster",
+  "slight": "Hafif",
+  "small": "Küçük",
+  "sound-effects": "Ses efektleri",
+  "text": "Metin",
+  "text-below-icons": "İkonların altındaki metinler",
+  "text-next-to-icons": "İkonların yanındaki metinler",
+  "text-scaling-factor": "Metin ölçeklendirme faktörü",
+  "toolbar-icon-size": "Araç çubuğu ikon boyutu",
+  "toolbar-style": "Araç çubuğu tarzı",
+  "ui-settings": "UI ayarları",
+  "widgets": "Widgetlar",
+  "widget-style-preview": "Widget tarzı önizlemesi",
+  "flatpak-settings": "Flatpak ayarları",
+  "flatpak-override-flatpak-gtk-theme": "Flatpak GTK temasını geçersiz kıl",
+  "flatpak-override-flatpak-icon-theme": "Flatpak simge temasını geçersiz kıl",
+  "flatpak-install-current-gtk-theme": "Mevcut GTK temasını yükle"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/langs/zh_CN.json 
new/nwg-look-1.1.0/langs/zh_CN.json
--- old/nwg-look-1.0.6/langs/zh_CN.json 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/langs/zh_CN.json 2026-05-07 03:12:54.000000000 +0200
@@ -1,54 +1,58 @@
 {
-    "apply": "应用",
-    "button": "按钮",
-    "check-button": "复选按钮",
-    "clear": "清除设置",
-    "close": "关闭",
-    "color-scheme": "颜色方案",
-    "cursor-size": "光标大小",
-    "cursor-theme-preview": "光标样式预览",
-    "default": "默认",
-    "default-font": "默认字体",
-    "deprecated": "已弃用",
-    "deprecated-since-gtk-310": "自 GTK 3.10 起已弃用",
-    "enable-event-sounds": "启用事件声音",
-    "enable-input-feedback-sounds": "启用输入反馈声音",
-    "entry": "输入框",
-    "files-to-export": "要导出的文件",
-    "font": "字体",
-    "font-antialiasing": "字体抗锯齿",
-    "font-hinting": "字体微调",
-    "font-rgba-order": "字体 RGBA 顺序",
-    "font-settings": "字体设置",
-    "full": "完全",
-    "grayscale": "灰度",
-    "icon-theme": "图标主题",
-    "icon-theme-preview": "图标主题预览",
-    "icons": "图标",
-    "ignored": "已忽略",
-    "large": "大",
-    "medium": "中等",
-    "mouse-cursor": "鼠标光标",
-    "none": "无",
-    "other": "其他",
-    "other-settings": "其他设置",
-    "prefer-dark": "倾向暗色",
-    "prefer-light": "倾向亮色",
-    "preferences": "偏好设置",
-    "program-settings": "程序设置",
-    "radio-button": "单选按钮",
-    "show-button-images": "显示按钮图片",
-    "show-menu-images": "显示菜单图片",
-    "slight": "轻微",
-    "small": "小",
-    "sound-effects": "声音效果",
-    "text": "文本",
-    "text-below-icons": "文本在图标下方",
-    "text-next-to-icons": "文本在图标侧面",
-    "text-scaling-factor": "文本缩放因子",
-    "toolbar-icon-size": "工具栏图标大小",
-    "toolbar-style": "工具栏样式",
-    "ui-settings": "界面设置",
-    "widgets": "组件",
-    "widget-style-preview": "组件风格预览"
-  }
+  "apply": "应用",
+  "button": "按钮",
+  "check-button": "复选按钮",
+  "clear": "清除设置",
+  "close": "关闭",
+  "color-scheme": "颜色方案",
+  "cursor-size": "光标大小",
+  "cursor-theme-preview": "光标样式预览",
+  "default": "默认",
+  "default-font": "默认字体",
+  "deprecated": "已弃用",
+  "deprecated-since-gtk-310": "自 GTK 3.10 起已弃用",
+  "enable-event-sounds": "启用事件声音",
+  "enable-input-feedback-sounds": "启用输入反馈声音",
+  "entry": "输入框",
+  "files-to-export": "要导出的文件",
+  "font": "字体",
+  "font-antialiasing": "字体抗锯齿",
+  "font-hinting": "字体微调",
+  "font-rgba-order": "字体 RGBA 顺序",
+  "font-settings": "字体设置",
+  "full": "完全",
+  "grayscale": "灰度",
+  "icon-theme": "图标主题",
+  "icon-theme-preview": "图标主题预览",
+  "icons": "图标",
+  "ignored": "已忽略",
+  "large": "大",
+  "medium": "中等",
+  "mouse-cursor": "鼠标光标",
+  "none": "无",
+  "other": "其他",
+  "other-settings": "其他设置",
+  "prefer-dark": "倾向暗色",
+  "prefer-light": "倾向亮色",
+  "preferences": "偏好设置",
+  "program-settings": "程序设置",
+  "radio-button": "单选按钮",
+  "show-button-images": "显示按钮图片",
+  "show-menu-images": "显示菜单图片",
+  "slight": "轻微",
+  "small": "小",
+  "sound-effects": "声音效果",
+  "text": "文本",
+  "text-below-icons": "文本在图标下方",
+  "text-next-to-icons": "文本在图标侧面",
+  "text-scaling-factor": "文本缩放因子",
+  "toolbar-icon-size": "工具栏图标大小",
+  "toolbar-style": "工具栏样式",
+  "ui-settings": "界面设置",
+  "widgets": "组件",
+  "widget-style-preview": "组件风格预览",
+  "flatpak-settings": "Flatpak 设置",
+  "flatpak-override-flatpak-gtk-theme": "覆盖 Flatpak GTK 主题",
+  "flatpak-override-flatpak-icon-theme": "覆盖 Flatpak 图标主题",
+  "flatpak-install-current-gtk-theme": "安装当前 GTK 主题"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/main.go new/nwg-look-1.1.0/main.go
--- old/nwg-look-1.0.6/main.go  2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/main.go  2026-05-07 03:12:54.000000000 +0200
@@ -15,6 +15,7 @@
        "path/filepath"
        "strings"
 
+       "github.com/nwg-piotr/nwg-look/stylepak"
        log "github.com/sirupsen/logrus"
 
        "github.com/gotk3/gotk3/gdk"
@@ -46,11 +47,14 @@
 )
 
 type programSettings struct {
-       ExportSettingsIni  bool `json:"export-settings-ini"`
-       ExportGtkRc20      bool `json:"export-gtkrc-20"`
-       ExportIndexTheme   bool `json:"export-index-theme"`
-       ExportXsettingsd   bool `json:"export-xsettingsd"`
-       ExportGtk4Symlinks bool `json:"export-gtk4-symlinks"`
+       ExportSettingsIni              bool `json:"export-settings-ini"`
+       ExportGtkRc20                  bool `json:"export-gtkrc-20"`
+       ExportIndexTheme               bool `json:"export-index-theme"`
+       ExportXsettingsd               bool `json:"export-xsettingsd"`
+       ExportGtk4Symlinks             bool `json:"export-gtk4-symlinks"`
+       FlatpakExportGTKThemeOverride  bool 
`json:"flatpak-export-gtk-theme-override"`
+       FlatpakExportIconThemeOverride bool 
`json:"flatpak-export-icon-theme-override"`
+       FlatpakInstallCurrentGTKTheme  bool 
`json:"flatpak-install-current-gtk-theme"`
 }
 
 func programSettingsNewWithDefaults() programSettings {
@@ -61,6 +65,10 @@
        p.ExportXsettingsd = true
        p.ExportGtk4Symlinks = true
 
+       p.FlatpakExportGTKThemeOverride = false
+       p.FlatpakExportIconThemeOverride = false
+       p.FlatpakInstallCurrentGTKTheme = false
+
        return p
 }
 
@@ -284,6 +292,7 @@
        lang := detectLang()
        log.Infof("lang: %s", lang)
 
+       dataDirs = getDataDirs()
        voc = loadVocabulary(lang)
 
        // initialize gsettings type with default gtk values
@@ -314,6 +323,7 @@
                                saveXsettingsd()
                        }
                        if preferences.ExportGtk4Symlinks {
+                               _, gtkThemePaths = getThemeNames()
                                linkGtk4Stuff()
                                saveGtkIni4()
                        } else {
@@ -351,7 +361,6 @@
                os.Exit(0)
        }
 
-       dataDirs = getDataDirs()
        cursorThemes, cursorThemeNames = getCursorThemes()
 
        gtk.Init(nil)
@@ -445,6 +454,22 @@
                        linkGtk4Stuff()
                        saveGtkIni4()
                }
+               if preferences.FlatpakExportGTKThemeOverride {
+                       overrideFlatpakGTKTheme()
+               } else if flatpakAvailable() {
+                       unsetFlatpakGTKTheme()
+               }
+               if preferences.FlatpakExportIconThemeOverride {
+                       overrideFlatpakIconTheme()
+               } else if flatpakAvailable() {
+                       unsetFlatpakIconTheme()
+               }
+
+               if preferences.FlatpakInstallCurrentGTKTheme {
+                       if err := stylepak.InstallUserTheme("", nil); err != 
nil {
+                               log.Warnf("failed to install flatpak theme: 
%s", err)
+                       }
+               }
                savePreferences()
        })
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/stuff/nwg-look.desktop 
new/nwg-look-1.1.0/stuff/nwg-look.desktop
--- old/nwg-look-1.0.6/stuff/nwg-look.desktop   2025-06-17 01:16:22.000000000 
+0200
+++ new/nwg-look-1.1.0/stuff/nwg-look.desktop   2026-05-07 03:12:54.000000000 
+0200
@@ -2,12 +2,16 @@
 Type=Application
 Name=GTK Settings
 Name[pl]=Ustawienia GTK
+Name[es]=Ajustes de GTK
 GenericName=Adjust Look and Feel
 GenericName[pl]=Dopasuj ustawienia wyglądu
+GenericName[es]=Personalizar apariencia
 Comment=Customizes GTK3 look and feel settings
 Comment[pl]=Dostosowuje ustawienia środowiska graficznego GTK3
+Comment[es]=Personaliza la apariencia y el comportamiento de GTK3
 Keywords=windows;preferences;settings;theme;style;appearance;look;
 Keywords[pl]=okna;preferencje;ustawienia;motyw;styl;wygląd;
+Keywords[es]=ventanas;preferencias;ajustes;tema;estilo;apariencia;aspecto;
 Icon=nwg-look
 Exec=nwg-look
 NotShowIn=GNOME;KDE;XFCE;MATE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/stylepak/helpers.go 
new/nwg-look-1.1.0/stylepak/helpers.go
--- old/nwg-look-1.0.6/stylepak/helpers.go      1970-01-01 01:00:00.000000000 
+0100
+++ new/nwg-look-1.1.0/stylepak/helpers.go      2026-05-07 03:12:54.000000000 
+0200
@@ -0,0 +1,172 @@
+package stylepak
+
+import (
+       "errors"
+       "fmt"
+       "io"
+       "os"
+       "path/filepath"
+       "regexp"
+       "sort"
+       "strings"
+)
+
+func getenvDefault(key, def string) string {
+       if v := os.Getenv(key); v != "" {
+               return v
+       }
+       return def
+}
+
+func validateTheme(theme string) error {
+       re := regexp.MustCompile(`^[A-Za-z0-9._\-]+$`)
+       if !re.MatchString(theme) {
+               return fmt.Errorf("invalid theme name %q (allowed: letters, 
digits, '.', '_', '-')", theme)
+       }
+       return nil
+}
+
+func clean(paths ...string) error {
+       for _, p := range paths {
+               if err := os.RemoveAll(p); err != nil {
+                       return fmt.Errorf("remove path %q: %w", p, err)
+               }
+       }
+       return nil
+}
+
+func getCurrentGTKTheme(r Runner) (string, error) {
+       out, err := r.Output("gsettings", "get", "org.gnome.desktop.interface", 
"gtk-theme")
+       if err != nil {
+               return "", fmt.Errorf("failed to get current GTK theme: %w", 
err)
+       }
+       return strings.Trim(string(out), "'\n "), nil
+}
+
+func findThemePath(theme, dataHome, home string) (string, error) {
+       paths := []string{
+               filepath.Join(dataHome, "themes"),
+               filepath.Join(home, ".themes"),
+               "/usr/share/themes",
+       }
+
+       for _, base := range paths {
+               full := filepath.Join(base, theme)
+               if fi, err := os.Stat(full); err == nil && fi.IsDir() {
+                       return full, nil
+               }
+       }
+       return "", errors.New("theme directory not found in known locations")
+}
+
+func detectGTKVersion(themePath string) (string, error) {
+       entries, err := os.ReadDir(themePath)
+       if err != nil {
+               return "", fmt.Errorf("read theme dir %q: %w", themePath, err)
+       }
+
+       re := regexp.MustCompile(`gtk-3\.(\d+)$`)
+       var versions []int
+
+       for _, e := range entries {
+               if m := re.FindStringSubmatch(e.Name()); len(m) == 2 {
+                       var v int
+                       fmt.Sscanf(m[1], "%d", &v)
+                       versions = append(versions, v)
+               }
+       }
+
+       if len(versions) == 0 {
+               return "", errors.New("no GTK 3.x directories found")
+       }
+
+       sort.Sort(sort.Reverse(sort.IntSlice(versions)))
+       return fmt.Sprintf("%d", versions[0]), nil
+}
+
+func getFlatpakArchitectures(r Runner) ([]string, error) {
+       out, err := r.Output("flatpak", "list", "--runtime", "--columns=arch")
+       if err != nil {
+               return nil, err
+       }
+
+       lines := strings.Split(string(out), "\n")
+       set := make(map[string]struct{})
+
+       for _, l := range lines {
+               l = strings.TrimSpace(l)
+               if l != "" {
+                       set[l] = struct{}{}
+               }
+       }
+
+       if len(set) == 0 {
+               return nil, errors.New("no flatpak architectures detected")
+       }
+
+       var arches []string
+       for k := range set {
+               arches = append(arches, k)
+       }
+       sort.Strings(arches)
+
+       return arches, nil
+}
+
+func copyDir(src, dst string) error {
+       return filepath.Walk(src, func(path string, info os.FileInfo, err 
error) error {
+               if err != nil {
+                       return fmt.Errorf("walk path %q: %w", path, err)
+               }
+
+               rel, err := filepath.Rel(src, path)
+               if err != nil {
+                       return fmt.Errorf("compute relative path: %w", err)
+               }
+
+               target := filepath.Join(dst, rel)
+
+               switch {
+               case info.Mode()&os.ModeSymlink != 0:
+                       link, err := os.Readlink(path)
+                       if err != nil {
+                               return fmt.Errorf("read symlink %q: %w", path, 
err)
+                       }
+                       if err := os.Symlink(link, target); err != nil {
+                               return fmt.Errorf("create symlink %q: %w", 
target, err)
+                       }
+
+               case info.IsDir():
+                       if err := os.MkdirAll(target, info.Mode()); err != nil {
+                               return fmt.Errorf("create dir %q: %w", target, 
err)
+                       }
+
+               default:
+                       if err := copyFile(path, target, info.Mode()); err != 
nil {
+                               return err
+                       }
+               }
+
+               return nil
+       })
+}
+
+func copyFile(src, dst string, perm os.FileMode) error {
+       in, err := os.Open(src)
+       if err != nil {
+               return fmt.Errorf("open source file %q: %w", src, err)
+       }
+       defer in.Close()
+
+       out, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, perm)
+       if err != nil {
+               return fmt.Errorf("open destination file %q: %w", dst, err)
+       }
+       defer out.Close()
+
+       if _, err := io.Copy(out, in); err != nil {
+               return fmt.Errorf("copy file %q -> %q: %w", src, dst, err)
+       }
+
+       return nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/stylepak/stylepak.go 
new/nwg-look-1.1.0/stylepak/stylepak.go
--- old/nwg-look-1.0.6/stylepak/stylepak.go     1970-01-01 01:00:00.000000000 
+0100
+++ new/nwg-look-1.1.0/stylepak/stylepak.go     2026-05-07 03:12:54.000000000 
+0200
@@ -0,0 +1,213 @@
+// This file is derived from stylepak (https://github.com/refi64/stylepak)
+// Original work licensed under the Mozilla Public License 2.0.
+// Modifications and Go translation by Eslam Allam [email protected].
+
+package stylepak
+
+import (
+       "fmt"
+       "os"
+       "os/exec"
+       "path/filepath"
+       "strings"
+
+       log "github.com/sirupsen/logrus"
+)
+
+
+const (
+       nwgLookMarker = ".nwg-look"
+)
+
+type themeInstallAction int
+
+const (
+       themeActionFreshInstall themeInstallAction = iota
+       themeActionUpdate
+       themeActionSkip // user-managed, don't touch
+)
+
+// Runner abstracts command execution (useful for testing/mocking)
+type Runner interface {
+       Run(name string, args ...string) error
+       Output(name string, args ...string) ([]byte, error)
+}
+
+type ExecRunner struct{}
+
+func (r ExecRunner) Run(name string, args ...string) error {
+       cmd := exec.Command(name, args...)
+
+       if err := cmd.Run(); err != nil {
+               return fmt.Errorf("command failed: %s %v: %w", name, args, err)
+       }
+       return nil
+}
+
+func (r ExecRunner) Output(name string, args ...string) ([]byte, error) {
+       cmd := exec.Command(name, args...)
+       out, err := cmd.Output()
+       if err != nil {
+               return nil, fmt.Errorf("command output failed: %s %v: %w", 
name, args, err)
+       }
+       return out, nil
+}
+
+func determineInstallAction(themeDir string) (themeInstallAction, error) {
+       if _, err := os.Stat(themeDir); os.IsNotExist(err) {
+               return themeActionFreshInstall, nil
+       } else if err != nil {
+               return 0, fmt.Errorf("stat theme dir %q: %w", themeDir, err)
+       }
+
+       markerPath := filepath.Join(themeDir, nwgLookMarker)
+       if _, err := os.Stat(markerPath); os.IsNotExist(err) {
+               return themeActionSkip, nil
+       } else if err != nil {
+               return 0, fmt.Errorf("stat marker %q: %w", markerPath, err)
+       }
+
+       return themeActionUpdate, nil
+}
+
+func removeStaleThemes(themesDir, currentTheme string) error {
+       entries, err := os.ReadDir(themesDir)
+       if os.IsNotExist(err) {
+               return nil
+       }
+       if err != nil {
+               return fmt.Errorf("read themes dir %q: %w", themesDir, err)
+       }
+
+       for _, entry := range entries {
+               if !entry.IsDir() || entry.Name() == currentTheme {
+                       continue
+               }
+               markerPath := filepath.Join(themesDir, entry.Name(), 
nwgLookMarker)
+               if _, err := os.Stat(markerPath); err != nil {
+                       continue
+               }
+               log.Infof("Removing previously managed theme: %s", entry.Name())
+               if err := os.RemoveAll(filepath.Join(themesDir, entry.Name())); 
err != nil {
+                       return fmt.Errorf("remove previous theme %q: %w", 
entry.Name(), err)
+               }
+       }
+       return nil
+}
+
+func copyThemeFiles(src, dst string) error {
+       entries, err := os.ReadDir(src)
+       if err != nil {
+               return fmt.Errorf("read theme dir %q: %w", src, err)
+       }
+
+       copied := 0
+       for _, entry := range entries {
+               if !entry.IsDir() || !strings.HasPrefix(entry.Name(), "gtk-") {
+                       continue
+               }
+               entryDst := filepath.Join(dst, entry.Name())
+               if err := os.MkdirAll(entryDst, 0o755); err != nil {
+                       return fmt.Errorf("create dir %q: %w", entryDst, err)
+               }
+               if err := copyDir(filepath.Join(src, entry.Name()), entryDst); 
err != nil {
+                       return fmt.Errorf("copy theme dir %q: %w", 
entry.Name(), err)
+               }
+               copied++
+               log.Info("Copied theme dir:", entry.Name())
+       }
+
+       if copied == 0 {
+               return fmt.Errorf("no gtk-* directories found in theme %q", src)
+       }
+
+       if data, err := os.ReadFile(filepath.Join(src, "index.theme")); err == 
nil {
+               if err := os.WriteFile(filepath.Join(dst, "index.theme"), data, 
0o644); err != nil {
+                       return fmt.Errorf("write index.theme: %w", err)
+               }
+               log.Info("Copied index.theme")
+       }
+
+       return nil
+}
+
+func InstallUserTheme(theme string, runner Runner) error {
+       if runner == nil {
+               runner = ExecRunner{}
+       }
+
+       home, err := os.UserHomeDir()
+       if err != nil {
+               return fmt.Errorf("resolve home directory: %w", err)
+       }
+
+       dataHome := getenvDefault("XDG_DATA_HOME", filepath.Join(home, 
".local", "share"))
+
+       if theme == "" {
+               theme, err = getCurrentGTKTheme(runner)
+               if err != nil {
+                       return fmt.Errorf("resolve current GTK theme: %w", err)
+               }
+       }
+
+       if err := validateTheme(theme); err != nil {
+               return err
+       }
+
+       log.Info("Converting theme:", theme)
+
+       themesDir := filepath.Join(home, ".themes")
+       userThemeDir := filepath.Join(themesDir, theme)
+       markerPath := filepath.Join(userThemeDir, nwgLookMarker)
+
+       // Find system theme path, explicitly excluding ~/.themes to avoid
+       // copying a theme into itself
+       themePath, err := findThemePath(theme, dataHome, home)
+       if err != nil {
+               return fmt.Errorf("locate theme %q: %w", theme, err)
+       }
+       if themePath == userThemeDir {
+               return fmt.Errorf("theme %q is already in ~/.themes and was not 
installed by nwg-look", theme)
+       }
+       log.Info("Found theme located at:", themePath)
+
+       if err := removeStaleThemes(themesDir, theme); err != nil {
+               return fmt.Errorf("remove stale themes: %w", err)
+       }
+
+       action, err := determineInstallAction(userThemeDir)
+       if err != nil {
+               return err
+       }
+
+       switch action {
+       case themeActionFreshInstall:
+               log.Infof("Installing theme to ~/.themes/%s", theme)
+               if err := os.MkdirAll(userThemeDir, 0o755); err != nil {
+                       return fmt.Errorf("create ~/.themes/%s: %w", theme, err)
+               }
+               if err := copyThemeFiles(themePath, userThemeDir); err != nil {
+                       return err
+               }
+               if err := os.WriteFile(markerPath, []byte("managed by 
nwg-look\n"), 0o644); err != nil {
+                       return fmt.Errorf("write nwg-look marker: %w", err)
+               }
+       case themeActionUpdate:
+               log.Infof("Updating existing nwg-look-managed theme at 
~/.themes/%s", theme)
+               if err := copyThemeFiles(themePath, userThemeDir); err != nil {
+                       return err
+               }
+       case themeActionSkip:
+               log.Infof("~/.themes/%s already exists and was not created by 
nwg-look, skipping copy", theme)
+       }
+
+       if err := runner.Run("flatpak", "override", "--user",
+               "--filesystem="+themesDir+":ro",
+       ); err != nil {
+               return fmt.Errorf("flatpak override ~/.themes: %w", err)
+       }
+       log.Info("Configured flatpak to access ~/.themes")
+
+       log.Infof("Successfully installed theme %s", theme)
+       return nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/tools.go new/nwg-look-1.1.0/tools.go
--- old/nwg-look-1.0.6/tools.go 2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/tools.go 2026-05-07 03:12:54.000000000 +0200
@@ -963,6 +963,39 @@
                }
        }
 }
+func overrideFlatpakGTKTheme() {
+       theme := gsettings.gtkTheme
+       log.Infof("Overriding flatpak GTK theme to %s...", theme)
+       cmd := exec.Command("flatpak", "override", "--user", "--env", 
fmt.Sprintf("GTK_THEME=%s", theme))
+       if _, err := cmd.CombinedOutput(); err != nil {
+               log.Warnf("failed to override flatpak gtk theme to %s: %s", 
theme, err)
+       }
+}
+
+func unsetFlatpakGTKTheme() {
+       log.Info("Removing Flatpak GTK Theme override...")
+       cmd := exec.Command("flatpak", "override", "--user", "--unset-env", 
"GTK_THEME")
+       if _, err := cmd.CombinedOutput(); err != nil {
+               log.Warnf("failed to unset flatpak gtk theme override: %s", err)
+       }
+}
+
+func overrideFlatpakIconTheme() {
+       theme := gsettings.iconTheme
+       log.Infof("Overriding flatpak Icon theme to %s...", theme)
+       cmd := exec.Command("flatpak", "override", "--user", "--env", 
fmt.Sprintf("ICON_THEME=%s", theme))
+       if _, err := cmd.CombinedOutput(); err != nil {
+               log.Warnf("failed to override flatpak icon theme to %s: %s", 
theme, err)
+       }
+}
+
+func unsetFlatpakIconTheme() {
+       log.Info("Removing Flatpak Icon Theme override...")
+       cmd := exec.Command("flatpak", "override", "--user", "--unset-env", 
"ICON_THEME")
+       if _, err := cmd.CombinedOutput(); err != nil {
+               log.Warnf("failed to unset flatpak icon theme override: %s", 
err)
+       }
+}
 
 func saveIndexTheme() {
        home := os.Getenv("HOME")
@@ -1421,9 +1454,14 @@
        return lang
 }
 
+func flatpakAvailable() bool {
+       if _, err := exec.LookPath("flatpak"); err != nil {
+               return false
+       }
+       return true
+}
+
 func loadVocabulary(lang string) map[string]string {
-       var dataDirs []string
-       dataDirs = getDataDirs()
        for _, d := range dataDirs {
                langsDir := filepath.Join(d, "/nwg-look/langs/")
                enUSFile := filepath.Join(langsDir, "en_US.json")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-look-1.0.6/uicomponents.go 
new/nwg-look-1.1.0/uicomponents.go
--- old/nwg-look-1.0.6/uicomponents.go  2025-06-17 01:16:22.000000000 +0200
+++ new/nwg-look-1.1.0/uicomponents.go  2026-05-07 03:12:54.000000000 +0200
@@ -640,51 +640,90 @@
        g.SetProperty("vexpand", true)
        frame.Add(g)
 
+       var row int
+
        lbl, _ := gtk.LabelNew("")
        lbl.SetMarkup(fmt.Sprintf("<b>%s</b>", voc["files-to-export"]))
        lbl.SetProperty("halign", gtk.ALIGN_START)
-       g.Attach(lbl, 0, 0, 1, 1)
+       g.Attach(lbl, 0, row, 1, 1)
+       row++
 
        cb1, _ := gtk.CheckButtonNewWithLabel("~/.config/gtk-3.0/settings.ini")
        cb1.SetActive(preferences.ExportSettingsIni)
        cb1.Connect("toggled", func() {
                preferences.ExportSettingsIni = cb1.GetActive()
        })
-       g.Attach(cb1, 0, 1, 1, 1)
+       g.Attach(cb1, 0, row, 1, 1)
+       row++
 
        cb2, _ := gtk.CheckButtonNewWithLabel("~/.gtkrc-2.0")
        cb2.SetActive(preferences.ExportGtkRc20)
        cb2.Connect("toggled", func() {
                preferences.ExportGtkRc20 = cb2.GetActive()
        })
-       g.Attach(cb2, 0, 2, 1, 1)
+       g.Attach(cb2, 0, row, 1, 1)
+       row++
 
        cb3, _ := gtk.CheckButtonNewWithLabel("~/.icons/default/index.theme")
        cb3.SetActive(preferences.ExportIndexTheme)
        cb3.Connect("toggled", func() {
                preferences.ExportIndexTheme = cb3.GetActive()
        })
-       g.Attach(cb3, 0, 3, 1, 1)
+       g.Attach(cb3, 0, row, 1, 1)
+       row++
 
        cb4, _ := 
gtk.CheckButtonNewWithLabel("~/.config/xsettingsd/xsettingsd.conf")
        cb4.SetActive(preferences.ExportXsettingsd)
        cb4.Connect("toggled", func() {
                preferences.ExportXsettingsd = cb4.GetActive()
        })
-       g.Attach(cb4, 0, 4, 1, 1)
+       g.Attach(cb4, 0, row, 1, 1)
+       row++
 
        cb5, _ := gtk.CheckButtonNewWithLabel("~/.config/gtk-4.0/*")
        cb5.SetActive(preferences.ExportGtk4Symlinks)
        cb5.Connect("toggled", func() {
                preferences.ExportGtk4Symlinks = cb5.GetActive()
        })
-       g.Attach(cb5, 0, 5, 1, 1)
+       g.Attach(cb5, 0, row, 1, 1)
 
        btn, _ := gtk.ButtonNewWithLabel(voc["clear"])
        btn.Connect("clicked", clearGtk4Symlinks)
-       fmt.Println(voc)
        btn.SetTooltipText(voc["clear-gtk4-tooltip"])
-       g.Attach(btn, 1, 5, 1, 1)
+       g.Attach(btn, 1, row, 1, 1)
+       row++
+
+       if flatpakAvailable() {
+               lbl2, _ := gtk.LabelNew("")
+               lbl2.SetMarkup(fmt.Sprintf("<b>%s</b>", 
voc["flatpak-settings"]))
+               lbl2.SetProperty("halign", gtk.ALIGN_START)
+               g.Attach(lbl2, 0, row, 1, 1)
+               row++
+
+               cb6, _ := 
gtk.CheckButtonNewWithLabel(voc["flatpak-override-flatpak-gtk-theme"])
+               cb6.SetActive(preferences.FlatpakExportGTKThemeOverride)
+               cb6.Connect("toggled", func() {
+                       preferences.FlatpakExportGTKThemeOverride = 
cb6.GetActive()
+               })
+               g.Attach(cb6, 0, row, 1, 1)
+               row++
+
+               cb7, _ := 
gtk.CheckButtonNewWithLabel(voc["flatpak-override-flatpak-icon-theme"])
+               cb7.SetActive(preferences.FlatpakExportIconThemeOverride)
+               cb7.Connect("toggled", func() {
+                       preferences.FlatpakExportIconThemeOverride = 
cb7.GetActive()
+               })
+               g.Attach(cb7, 0, row, 1, 1)
+               row++
+
+               cb8, _ := 
gtk.CheckButtonNewWithLabel(voc["flatpak-install-current-gtk-theme"])
+               cb8.SetActive(preferences.FlatpakInstallCurrentGTKTheme)
+               cb8.Connect("toggled", func() {
+                       preferences.FlatpakInstallCurrentGTKTheme = 
cb8.GetActive()
+               })
+               g.Attach(cb8, 0, row, 1, 1)
+               row++
+       }
 
        return frame
 }

++++++ vendor.tar.gz ++++++
++++ 8631 lines of diff (skipped)

Reply via email to