99from configparser import ConfigParser
1010from pathlib import Path
1111
12- from uwp_constants import AOT_HOTKEY , LayoutDefaults
12+ from uwp_constants import AOT_HOTKEY , IGNORED_WINDOWS , LayoutDefaults
1313
1414# Local imports
1515from uwp_utils import clean_window_title , format_coords , match_titles , parse_coords
@@ -143,9 +143,9 @@ def load_config(self, config_path:str)-> ConfigParser | None:
143143 return None
144144
145145
146- def load_settings (self )-> tuple [bool ,bool ,int ,bool , str , dict , dict ]:
146+ def load_settings (self )-> tuple [bool ,bool ,int ,bool , str , dict , dict , list ]:
147147 """Load application settings, layouts, and overrides."""
148- defaults = False , False , 0 , False , AOT_HOTKEY , self .default_layouts , self .layout_overrides
148+ defaults = False , False , 0 , False , AOT_HOTKEY , self .default_layouts , self .layout_overrides , IGNORED_WINDOWS
149149 if Path .exists (self .settings_file ):
150150 with Path .open (self .settings_file ) as f :
151151 try :
@@ -159,9 +159,12 @@ def load_settings(self)-> tuple[bool,bool,int,bool, str, dict, dict]:
159159
160160 layouts = settings .get ("layouts" , self .default_layouts )
161161 overrides = settings .get ("overrides" , self .layout_overrides )
162+ ignored_windows = settings .get ("ignored_windows" , [])
163+
162164 except (json .decoder .JSONDecodeError , AttributeError ):
163165 return defaults
164- return compact , use_images , snap , details , hotkey , layouts , overrides
166+ return compact , use_images , snap , details , hotkey , layouts , overrides , ignored_windows
167+
165168 return defaults
166169
167170
@@ -173,6 +176,7 @@ def save_settings(self, *, # noqa: PLR0913
173176 hotkey :str = AOT_HOTKEY ,
174177 layouts :dict | None = None ,
175178 overrides :dict | None = None ,
179+ ignored_windows :list | None = None ,
176180 )-> bool :
177181 """Save application settings, optionally including layouts and overrides."""
178182 settings = {
@@ -187,6 +191,7 @@ def save_settings(self, *, # noqa: PLR0913
187191
188192 settings ["layouts" ] = layouts or self .default_layouts
189193 settings ["overrides" ] = overrides or self .layout_overrides
194+ settings ["ignored_windows" ] = ignored_windows or []
190195
191196 with Path .open (self .settings_file , "w" ) as f :
192197 json .dump (settings , f , indent = 4 )
0 commit comments