feat: improve blacklist ux (closes #539)

This commit is contained in:
Louis Pontoise committed 2022-06-14 15:59:21 +09:00
1 parent 51336412c5
commit 892a168ee7
46 files changed
+993 -72

No files matched your search

+4
View File
@@ -55,6 +55,7 @@
BF0C8D1C57D74106018D073C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BF0C87F5D4AD51D6950C98B0 /* InfoPlist.strings */; };
BF0C8D610C93D48F572937F8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = BF0C8FBA6B0F4DEB510C71CB /* Localizable.strings */; };
BF0C8DD7EBC3BA1E86BF4BDB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BF0C841E403C1C6E8C65727E /* InfoPlist.strings */; };
BF0C8E16F38203AEC71E062B /* TableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF0C8343C1F6FCA82552DCB7 /* TableView.swift */; };
BF0C8EA4654F8059F0AED40E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BF0C82992C31AA542EF9E638 /* InfoPlist.strings */; };
BF0C8EF58A07D9752A6392FC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = BF0C8D928E2ABECB92738113 /* Localizable.strings */; };
BF0C8F3526BC393290D5BE59 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BF0C81EC1C5F3052A75C7D7B /* InfoPlist.strings */; };
@@ -178,6 +179,7 @@
BF0C831AA76CF82EAC7B60B3 /* gl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = gl; path = Localizable.strings; sourceTree = "<group>"; };
BF0C83258B2873D9CDC74EA5 /* preferences-controls.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preferences-controls.jpg"; sourceTree = "<group>"; };
BF0C833D471343CEA3DEFE56 /* icon_512x512@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_512x512@2x.png"; sourceTree = "<group>"; };
BF0C8343C1F6FCA82552DCB7 /* TableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableView.swift; sourceTree = "<group>"; };
BF0C83FC3C53FFB41A3832FD /* fa */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = fa; path = InfoPlist.strings; sourceTree = "<group>"; };
BF0C843C2EDF4EF3A7A2C64A /* app.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; path = app.svg; sourceTree = "<group>"; };
BF0C8465A0A9EA2814A22C35 /* SF-Pro-Text-Regular-Full.otf */ = {isa = PBXFileReference; lastKnownFileType = file.otf; path = "SF-Pro-Text-Regular-Full.otf"; sourceTree = "<group>"; };
@@ -815,6 +817,7 @@
D04BA8AC77465E1B2BC947CF /* StackView.swift */,
BF0C8DF400A1AF64EB0CD0B3 /* TrafficLightButton.swift */,
BF0C8B2C057099EDABE46779 /* Button.swift */,
BF0C8343C1F6FCA82552DCB7 /* TableView.swift */,
);
path = "generic-components";
sourceTree = "<group>";
@@ -1606,6 +1609,7 @@
BF0C8CC5057406014FD612CC /* ATShortcut.swift in Sources */,
BF0C8C7E96DB48120462DA00 /* TrafficLightButton.swift in Sources */,
BF0C898511686611E4D7D81E /* Button.swift in Sources */,
BF0C8E16F38203AEC71E062B /* TableView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
+2
View File
@@ -110,6 +110,7 @@ They helped [localize the app](https://poeditor.com/join/project/8AOEZ0eAZE):
* Mwolfinspace
* Nathancodes
* Nikola Rajić
* Nils Fahldieck
* Nilton Souza
* Nmolham
* Ori
@@ -119,6 +120,7 @@ They helped [localize the app](https://poeditor.com/join/project/8AOEZ0eAZE):
* ponchik
* Raphaël
* Rasmus
* Raymonf
* rbnis
* sawtooth
* Seyedparsa Mirtaheri
+16 -7
View File
@@ -43,12 +43,18 @@
/* No comment provided by engineer. */
"AltTab needs some permissions" = "AltTab needs some permissions";
/* No comment provided by engineer. */
"Always" = "Always";
/* No comment provided by engineer. */
"Always send crash reports" = "Always send crash reports";
/* No comment provided by engineer. */
"and press:" = "and press:";
/* No comment provided by engineer. */
"App (BundleID starting with)" = "App (BundleID starting with)";
/* No comment provided by engineer. */
"App is hidden" = "App is hidden";
@@ -118,9 +124,6 @@
/* No comment provided by engineer. */
"Don’t send" = "Don’t send";
/* No comment provided by engineer. */
"Don’t show windows from these apps" = "Don’t show windows from these apps";
/* No comment provided by engineer. */
"End" = "End";
@@ -154,6 +157,9 @@
/* No comment provided by engineer. */
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/* %@ is AltTab */
"Hide in %@" = "Hide in %@";
/* No comment provided by engineer. */
"Hide Space number labels:" = "Hide Space number labels:";
@@ -173,7 +179,7 @@
"I think the app could be improved with…" = "I think the app could be improved with…";
/* No comment provided by engineer. */
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/* No comment provided by engineer. */
"Latest releases" = "Latest releases";
@@ -211,9 +217,6 @@
/* No comment provided by engineer. */
"Not allowed" = "Not allowed";
/* No comment provided by engineer. */
"Only if the window is fullscreen" = "Only if the window is fullscreen";
/* No comment provided by engineer. */
"Open Accessibility Preferences…" = "Open Accessibility Preferences…";
@@ -346,6 +349,12 @@
/* No comment provided by engineer. */
"Visible Spaces" = "Visible Spaces";
/* No comment provided by engineer. */
"When fullscreen" = "When fullscreen";
/* No comment provided by engineer. */
"When no open window" = "When no open window";
/* No comment provided by engineer. */
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab بحتاج لبعض الأذونات";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "أرسل بلاغات التعطل دائماً";
/*No comment provided by engineer.*/
"and press:" = "واضغط:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "أخفاء الدوائر الملونة عند تحويم الفأرة:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "إخفاء مساحة الأرقام:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "أعتقد أنه بالإمكان تطوير البرنامج بـ…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "لا تفعّل الإختصارات عندما تكن نافذة من أحد هذه التطبيقات مفعّلة";
@@ -356,6 +368,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "المسافات الظاهرة";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "عندما تكون مفتوحة، إضغط:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab има нужда от разрешения";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Винаги пращай отчет";
/*No comment provided by engineer.*/
"and press:" = "и натискане на";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Не показвай контроли на прозореца при преминаване с мишка";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Скрий номера на пространството:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Предлагам подобрение на приложението...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Игнорирай шорткъта в следните приложения:";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "видимите пространства";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "С бутон";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "L'AltTab necessita alguns permisos";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Enviar automàticament";
/*No comment provided by engineer.*/
"and press:" = "i prémer:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Amagar cercles de colors en passar el cursor:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "No mostrar número de l'espai:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Crec que l'aplicació milloraria si...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorar dreceres si una finestra d'aquestes aplicacions està activa";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Espais visibles";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Mentre es mostren les miniatures:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab potřebuje některá oprávnění";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Vždy odesílat hlášení o pádu";
/*No comment provided by engineer.*/
"and press:" = "a stiskněte:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -160,6 +166,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Skrýt barevná kolečka při najetí myši";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Skrýt čísla Ploch";
@@ -178,6 +187,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Myslím, že aplikace by mohla být vylepšena tak, že...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorovat klávesové zkratky, když jsou aktivní okna následujících programů";
@@ -358,6 +370,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Viditelné Plochy";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Při otevření stiskněte";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "I think the app could be improved with…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
+16 -1
View File
@@ -47,6 +47,9 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab braucht einige Berechtigungen";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Immer absenden";
@@ -54,7 +57,7 @@
"and press:" = "und drücke:";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App ist versteckt";
@@ -161,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Bunte Kreise beim Markieren mit Maus verbergen:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Space Nummer ausblenden:";
@@ -179,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Ich denke so könnte die Anwendung verbessert werden…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Tastenkürzel ignorieren wenn ein Fenster dieser Applikationen aktiv ist";
@@ -356,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Sichtbare Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Während geöffnet, drücke:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "Το AltTab χρειάζεται κάποιες ";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "και πατήστε:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Πιστεύω ότι η εφαρμογή θα μπορούσε να βελτιωθεί με...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Ορατοί Χώροι";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "I think the app could be improved with…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab necesita algunos permisos";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Siempre enviar informes de error";
/*No comment provided by engineer.*/
"and press:" = "y pulsar:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Ocultar círculos con color al pasar el ratón:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Ocultar etiquetas de número de espacio:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Creo que la aplicación podría mejorarse con…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorar atajos mientras una ventana de estas aplicaciones está activa";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Spaces visible";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Mientras esté abierto, pulsar:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "I think the app could be improved with…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "من گمان می‌کنم این نرم‌افزار می‌تواند بهتر شود به طریق...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab tarvitsee joitakin oikeuksia";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Lähetä vikaraportit aina";
/*No comment provided by engineer.*/
"and press:" = "ja paina:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Piilota väriympyrät hiirellä liikuttaessa:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Piilota tilojen numerot:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Ohjelmaa voisi mielestäni parantaa…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Älä käsittele pikanäppäimiä näiden ohjelmien ollessa aktiivisia";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Kun auki, paina:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab a besoin de permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Toujours envoyer un rapport d’erreur";
/*No comment provided by engineer.*/
"and press:" = "puis presser :";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Masquer les cercles colorés au survol de la souris :";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Cacher les numéros des Espaces :";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Je pense que AltTab pourrait être améliorée avec…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorer les raccourcis si une fenêtre de ces Apps est active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Espaces visibles";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Une fois visible, presser :";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab require algúns permisos";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Sempre enviar informes de erro";
/*No comment provided by engineer.*/
"and press:" = "e pulsar:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Ocultar círculos con cor ao pasar o rato:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Ocultar etiquetas de número de espazo:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Acho que a aplicación podría mellorarse con...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorar atallos mentras unha ventá destas aplicacións estea activa";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Spaces visible";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Mentras este aberto, pulsar:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "התוכנה AltTab צריכה כמה הרשאות";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "תמיד שלח דיווחי קריסה";
/*No comment provided by engineer.*/
"and press:" = "ולחץ:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "הסתר עיגולים צבועים בריחוף עכבר:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "הסתר תגיות מספר של איזור:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "אני חושב שהתוכנה יכולה להשתפר באמצעות";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "התעלם מקיצורי דרך כאשר חלון מתכנה זו פעילה";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "איזורים גלויים";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "כאשר פתוח, לחץ:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "ऑल्टटैब को कुछ अनुमतियों की आवश्यकता है";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "हमेशा दुर्घटना की रिपोर्ट भेजें";
/*No comment provided by engineer.*/
"and press:" = "और दबाओ:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "माउस मँडराने पर पर रंगीन वृत्त छिपाएँ:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "स्पेस नंबर लेबल छुपाओ:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "मुझे लगता है कि इससे ऐप को बेहतर बनाया जा सकता है...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "इन ऐप्स की खिड़की सक्रिय होने पर शॉर्टकट पर ध्यान न दें";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "दृश्यत स्पेस";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "खुला होने पर, दबाओ:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "Az AltTab-nak néhány jogosultságra van szüksége";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Mindig küldjön hiba-jelentést";
/*No comment provided by engineer.*/
"and press:" = "majd nyomjon:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "A színes körök elrejtése amikor az egeret fölé viszi:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Számok elrejtése a terület cimkékben:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Azt gondolom hasznos lenne az app bővítése ezzel…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Parancsikonok kihagyása amikor van aktív ablak ezekből az alkalmazásokból";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Megnyitás közben nyomjon:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab membutuhkan beberapa izin";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Selalu kirim laporan kerusakan";
/*No comment provided by engineer.*/
"and press:" = "lalu tekan:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Sembunyikan lingkaran berwarna pada mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Sembunyikan label nomor ruang:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Saya pikir aplikasi dapat ditingkatkan dengan…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Abaikan pintasan saat jendela dari aplikasi ini aktif";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Ketika terbuka, tekan:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab richiede alcuni permessi";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Invia sempre rapporto crash";
/*No comment provided by engineer.*/
"and press:" = "e premi:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Nascondi cerchi colorati al passaggio del mouse:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Nascondi etichette numero spazi:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Credo che l’applicazione possa essere migliorata con…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignora combinazioni tasti mentre è attiva una finestra di queste app";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Spazi visibili";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Mentre apri, premi:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTabが許可を求めています。";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "常にクラッシュレポートを送信する";
/*No comment provided by engineer.*/
"and press:" = "押しながら、次のキーを押す:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "マウスホバーした際、ウィンドウ設定を表示しない:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "デスクトップ番号ラベルを表示しない:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "アプリの◯◯を改善したい…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "これらのアプリのウィンドウがアクティブの間はショートカットを無効にする";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "現在のスペース";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "ウィンドウが表示中、次のボタンを押す:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab이 권한을 필요로 합니다";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "항상 충돌 리포트 보내기";
/*No comment provided by engineer.*/
"and press:" = "와 다음을 누르면:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "마우스를 올릴 때 색칠된 원들 숨기기:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Space 번호 숨기기:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "이 앱의 개선방안은…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "다음 앱들이 활성화되면 단축키를 무시합니다";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "보이는 Space";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "켜져 있을 때, 다음을 누르면:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "I think the app could be improved with…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab heeft wat permissies nodig";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Verstuur altijd crashrapportages";
/*No comment provided by engineer.*/
"and press:" = "ingedrukt en druk:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Verberg gekleurde cirkels wanneer de muis erover zweeft:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Verberg space-nummer labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Ik denk dat het programma verbeterd kan worden door…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Negeer snelkoppeling als één van deze vensters actief is";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Zichtbare spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Druk terwijl het geopend is:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab trenger noen tillatelser";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Send alltid krasjrapporter";
/*No comment provided by engineer.*/
"and press:" = "og trykk:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Skjul fargede sirkler når musa er over:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Skjul merking av områdenummer:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Jeg synes appen kunne vært forbedret med…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorér hurtigtaster mens et vindu fra disse appene er aktivt";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Når åpen, trykk:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab potrzebuje niektórych uprawnień";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Zawsze wysyłaj raporty crashów";
/*No comment provided by engineer.*/
"and press:" = "i wciśnij:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Nie pokazuj kolorowych kółek po najechaniu myszką:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Ukryj etykiety numerów przestrzeni:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Myślę, że aplikacja może zostać ulepszona dzięki…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignoruj skróty podczas gdy jedna z tych aplikacji jest aktywna";
@@ -354,6 +366,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Widocznych przestrzeni";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Podczas gdy otwarty, wciśnij:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab precisa de algumas permissões";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Sempre enviar relatórios de falha";
/*No comment provided by engineer.*/
"and press:" = "e pressionar:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Não exibir os círculos coloridos ao passar o mouse:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Não exibir o número do desktop:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Eu acho que a aplicação poderia ser melhorada com…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorar atalhos enquanto uma janela destes aplicativos estiver ativa";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Desktops visíveis";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Enquanto aberto, pressionar:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab necessita de algumas permissões";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Enviar sempre relatórios de falha";
/*No comment provided by engineer.*/
"and press:" = "e carregar:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Esconder círculos coloridos onde o rato passar:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Não exibir número do space:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Eu acho que a aplicação poderia ser melhorada se…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorar atalhos sempre que uma destas janelas esteja activa";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Spaces Visíveis";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Enquanto activa, carregar:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab требуются некоторые разрешения";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Всегда отправлять отчеты о вылетах";
/*No comment provided by engineer.*/
"and press:" = "и нажать:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Скрыть цветные круги при наведении мышью:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Скрыть номера рабочих столов:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Я думаю, что приложение может быть улучшено…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Игнорировать комбинации клавиш пока окно приложения из этого списка активно";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Видимые пространства";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Когда открыто, нажать:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab potrebuje nasledovné povolenia";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Vždy zasielajte správy o zlyhaní";
/*No comment provided by engineer.*/
"and press:" = "a stlačiť:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Skryť farebné kruhy pri umiestnení kurzora myši:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Skryť číslo plochy:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Myslím si, že by aplikácia mohla byť nasledovne vylepšená…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorovať skratky, kým je aktívne okno niektorej z týchto aplikácií";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Viditeľné plochy";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Kým otvorené, stlačiť:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Menim, da bi lahko aplikacijo izboljšali z…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab ka nevojë për disa leje";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Gjithmonë dërgo raportime të dështimeve";
/*No comment provided by engineer.*/
"and press:" = "dhe prekni:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Fshih rrathët e ngjyrosur përmbi kursor:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Fshih etiketat e numrit:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Mendoj se aplikacioni mund të përmirësohet me…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Injoro shkurtesat kur një dritare nga këto aplikacione është aktive";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Hapësirat e dukshme";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Duke qenë hapur, prekni:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab needs some permissions";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Always send crash reports";
/*No comment provided by engineer.*/
"and press:" = "and press:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Hide colored circles on mouse hover:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Hide Space number labels:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Smatram da bi se aplikacija mogla unaprediti sa...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignore shortcuts while a window from these apps is active";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Visible Spaces";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "While open, press:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab behöver behörigheter";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Skicka alltid felrapporter";
/*No comment provided by engineer.*/
"and press:" = "och tryck:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Dölj fönsterradsknappar när musen hålls över:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Dölj nummeretiketter för Spaces-fönster:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Jag tror appen skulle kunna förbättras genom...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ignorera kortkommandon när dessa appars fönster är aktiva";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Synliga Spaces-fönster";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "När öppet, tryck:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab'ın bir kaç izine ihtiyacı var";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Çökme raporlarını her zaman gönder";
/*No comment provided by engineer.*/
"and press:" = "ve basın:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Fare üzerindeyken renkli pencere düğmelerini gizle:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Masaüstü numaralarını gizle:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Bence uygulama şu şekilde iyileştirilebilir";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Bu uygulama aktifken kısayolları devredışı bırak";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Görünen Boşluklar";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Açıkken basın:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab потребує деяких дозволів";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Завжди надсилати звіти про збій";
/*No comment provided by engineer.*/
"and press:" = "та натисніть:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Сховати кольорові круги при наведені миші:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Сховати заголовки з номерами простору";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Я думаю додаток може бути покращено з...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Ігнорувати ярлики поки вікна цих програм активні";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Видимі Простори";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Доки відкрито, натисніть:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab cần một vài quyền truy cập";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "Luôn gửi các báo cáo sự cố";
/*No comment provided by engineer.*/
"and press:" = "và nhấn:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "Ẩn các nút cửa sổ khi di chuyển chuột lên:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "Ẩn nhãn không gian số:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "Tôi nghĩ app có thể được cải thiện về mặt...";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "Bỏ qua phím tắt khi một cửa sổ trong các ứng dụng sau đang bật";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "Khoảng trống thấy được";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "Khi mở, nhấn:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab 需要获取一些隐私权限";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "总是发送崩溃报告";
/*No comment provided by engineer.*/
"and press:" = "并点击:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "鼠标悬停时隐藏彩色圆圈:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "隐藏桌面编号:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "我认为该应用程序可以这样改进…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "这些应用程序的窗口处于活动状态时,忽略快捷键";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "可见桌面";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "在打开时按:";
@@ -47,12 +47,18 @@
/*No comment provided by engineer.*/
"AltTab needs some permissions" = "AltTab 需要取得權限";
/*No comment provided by engineer.*/
"Always" = "Always";
/*No comment provided by engineer.*/
"Always send crash reports" = "總是送出當機報告";
/*No comment provided by engineer.*/
"and press:" = "然後按下:";
/*No comment provided by engineer.*/
"App (BundleID starting with)" = "App (BundleID starting with)";
/*No comment provided by engineer.*/
"App is hidden" = "App is hidden";
@@ -158,6 +164,9 @@
/*No comment provided by engineer.*/
"Hide colored circles on mouse hover:" = "隱藏滑鼠懸停時顯示的視窗控制鈕:";
/*%@ is AltTab*/
"Hide in %@" = "Hide in %@";
/*No comment provided by engineer.*/
"Hide Space number labels:" = "隱藏空間編號的標籤:";
@@ -176,6 +185,9 @@
/*No comment provided by engineer.*/
"I think the app could be improved with…" = "我認為這個程式可以改善在…";
/*No comment provided by engineer.*/
"Ignore shortcuts when active" = "Ignore shortcuts when active";
/*No comment provided by engineer.*/
"Ignore shortcuts while a window from these apps is active" = "當這些程式的視窗活躍時,忽略快速鍵";
@@ -353,6 +365,12 @@
/*No comment provided by engineer.*/
"Visible Spaces" = "可見空間";
/*No comment provided by engineer.*/
"When fullscreen" = "When fullscreen";
/*No comment provided by engineer.*/
"When no open window" = "When no open window";
/*No comment provided by engineer.*/
"While open, press:" = "當打開時,按下:";
+122 -45
View File
@@ -49,9 +49,7 @@ class Preferences {
"hideStatusIcons": "false",
"startAtLogin": "true",
"menubarIcon": MenubarIconPreference.outlined.rawValue,
"dontShowBlacklist": ["com.McAfee.McAfeeSafariHost"].joined(separator: "\n"),
"disableShortcutsBlacklist": ["com.realvnc.vncviewer", "com.microsoft.rdc.macos", "com.teamviewer.TeamViewer", "org.virtualbox.app.VirtualBoxVM", "com.parallels.", "com.citrix.XenAppViewer", "com.citrix.receiver.icaviewer.mac", "com.nicesoftware.dcvviewer", "com.vmware.fusion", "com.apple.ScreenSharing"].joined(separator: "\n"),
"disableShortcutsBlacklistOnlyFullscreen": "true",
"blacklist": defaultBlacklist(),
"updatePolicy": UpdatePolicyPreference.autoCheck.rawValue,
"crashPolicy": CrashPolicyPreference.ask.rawValue,
"rowsCount": rowCountDependingOnScreenRatio(),
@@ -105,9 +103,7 @@ class Preferences {
static var hideWindowlessApps: Bool { defaults.bool("hideWindowlessApps") }
static var hideThumbnails: Bool { defaults.bool("hideThumbnails") }
static var startAtLogin: Bool { defaults.bool("startAtLogin") }
static var dontShowBlacklist: [String] { blacklistStringToArray(defaults.string("dontShowBlacklist")) }
static var disableShortcutsBlacklist: [String] { blacklistStringToArray(defaults.string("disableShortcutsBlacklist")) }
static var disableShortcutsBlacklistOnlyFullscreen: Bool { defaults.bool("disableShortcutsBlacklistOnlyFullscreen") }
static var blacklist: [BlacklistEntry] { jsonDecode([BlacklistEntry].self, defaults.string("blacklist")) }
// macro values
static var theme: ThemePreference { defaults.macroPref("theme", ThemePreference.allCases) }
@@ -160,8 +156,8 @@ class Preferences {
defaults.string(forKey: key)
}
static func set(_ key: String, _ value: String) {
defaults.set(value, forKey: key)
static func set<T>(_ key: String, _ value: T) where T: Encodable {
defaults.set(key == "blacklist" ? jsonEncode(value) : value, forKey: key)
UserDefaults.cache.removeValue(forKey: key)
}
@@ -178,31 +174,61 @@ class Preferences {
}
private static func updateToNewPreferences(_ currentVersion: String) {
if currentVersion.compare("6.28.1", options: .numeric) != .orderedDescending {
migrateMinMaxWindowsWidthInRow()
if currentVersion.compare("6.27.1", options: .numeric) != .orderedDescending {
// "Start at login" new implem doesn't use Login Items; we remove the entry from previous versions
migrateLoginItem()
if currentVersion.compare("6.23.0", options: .numeric) != .orderedDescending {
// "Show windows from:" got the "Active Space" option removed
migrateShowWindowsFrom()
if currentVersion.compare("6.18.1", options: .numeric) != .orderedDescending {
// nextWindowShortcut used to be able to have modifiers already present in holdShortcut; we remove these
migrateNextWindowShortcuts()
// dropdowns preferences used to store English text; now they store indexes
migrateDropdownsFromTextToIndexes()
// the "Hide menubar icon" checkbox was replaced with a dropdown of: icon1, icon2, hidden
migrateMenubarIconFromCheckboxToDropdown()
// "Show minimized/hidden/fullscreen windows" checkboxes were replaced with dropdowns
migrateShowWindowsCheckboxToDropdown()
// "Max size on screen" was split into max width and max height
migrateMaxSizeOnScreenToWidthAndHeight()
if currentVersion.compare("6.42.0", options: .numeric) != .orderedDescending {
migrateBlacklists()
if currentVersion.compare("6.28.1", options: .numeric) != .orderedDescending {
migrateMinMaxWindowsWidthInRow()
if currentVersion.compare("6.27.1", options: .numeric) != .orderedDescending {
// "Start at login" new implem doesn't use Login Items; we remove the entry from previous versions
migrateLoginItem()
if currentVersion.compare("6.23.0", options: .numeric) != .orderedDescending {
// "Show windows from:" got the "Active Space" option removed
migrateShowWindowsFrom()
if currentVersion.compare("6.18.1", options: .numeric) != .orderedDescending {
// nextWindowShortcut used to be able to have modifiers already present in holdShortcut; we remove these
migrateNextWindowShortcuts()
// dropdowns preferences used to store English text; now they store indexes
migrateDropdownsFromTextToIndexes()
// the "Hide menubar icon" checkbox was replaced with a dropdown of: icon1, icon2, hidden
migrateMenubarIconFromCheckboxToDropdown()
// "Show minimized/hidden/fullscreen windows" checkboxes were replaced with dropdowns
migrateShowWindowsCheckboxToDropdown()
// "Max size on screen" was split into max width and max height
migrateMaxSizeOnScreenToWidthAndHeight()
}
}
}
}
}
}
private static func migrateBlacklists() {
var entries = [BlacklistEntry]()
if let old = defaults.string(forKey: "dontShowBlacklist") {
entries.append(contentsOf: oldBlacklistEntriesToNewOnes(old, .always, .none))
}
if let old = defaults.string(forKey: "disableShortcutsBlacklist") {
let onlyFullscreen = defaults.bool(forKey: "disableShortcutsBlacklistOnlyFullscreen")
entries.append(contentsOf: oldBlacklistEntriesToNewOnes(old, .none, onlyFullscreen ? .whenFullscreen : .always))
}
if entries.count > 0 {
defaults.set(Preferences.jsonEncode(entries), forKey: "blacklist")
["dontShowBlacklist", "disableShortcutsBlacklist", "disableShortcutsBlacklistOnlyFullscreen"].forEach {
defaults.removeObject(forKey: $0)
}
}
}
private static func oldBlacklistEntriesToNewOnes(_ old: String, _ hide: BlacklistHidePreference, _ ignore: BlacklistIgnorePreference) -> [BlacklistEntry] {
old.split(separator: "\n").compactMap { (e) -> BlacklistEntry? in
let line = e.trimmingCharacters(in: .whitespaces)
if line.isEmpty {
return nil
}
return BlacklistEntry(bundleIdentifier: line, hide: hide, ignore: ignore)
}
}
private static func migrateMinMaxWindowsWidthInRow() {
["windowMinWidthInRow", "windowMaxWidthInRow"].forEach {
if let old = defaults.string(forKey: $0) {
@@ -267,16 +293,16 @@ class Preferences {
private static func migrateShowWindowsCheckboxToDropdown() {
["showMinimizedWindows", "showHiddenWindows", "showFullscreenWindows"]
.flatMap { [$0, $0 + "2"] }
.forEach {
if let old = defaults.string(forKey: $0) {
if old == "true" {
defaults.set(ShowHowPreference.show.rawValue, forKey: $0)
} else if old == "false" {
defaults.set(ShowHowPreference.hide.rawValue, forKey: $0)
.flatMap { [$0, $0 + "2"] }
.forEach {
if let old = defaults.string(forKey: $0) {
if old == "true" {
defaults.set(ShowHowPreference.show.rawValue, forKey: $0)
} else if old == "false" {
defaults.set(ShowHowPreference.hide.rawValue, forKey: $0)
}
}
}
}
}
private static func migrateDropdownsFromTextToIndexes() {
@@ -304,16 +330,6 @@ class Preferences {
}
}
static func blacklistStringToArray(_ blacklist: String) -> [String] {
return blacklist.components(separatedBy: "\n").compactMap {
let line = $0.trimmingCharacters(in: .whitespaces)
if line.isEmpty {
return nil
}
return line
}
}
static func rowCountDependingOnScreenRatio() -> String {
// landscape; tested with 4/3, 16/10, 16/9
if NSScreen.main!.ratio() > 1 {
@@ -326,6 +342,33 @@ class Preferences {
static func keyAboveTabDependingOnInputSource() -> String {
return LiteralKeyCodeTransformer.shared.transformedValue(NSNumber(value: kVK_ANSI_Grave)) ?? "`"
}
static func defaultBlacklist() -> String {
return jsonEncode([
BlacklistEntry(bundleIdentifier: "com.McAfee.McAfeeSafariHost", hide: .always, ignore: .none),
BlacklistEntry(bundleIdentifier: "com.apple.finder", hide: .whenNoOpenWindow, ignore: .none),
] + [
"com.microsoft.rdc.macos",
"com.teamviewer.TeamViewer",
"org.virtualbox.app.VirtualBoxVM",
"com.parallels.",
"com.citrix.XenAppViewer",
"com.citrix.receiver.icaviewer.mac",
"com.nicesoftware.dcvviewer",
"com.vmware.fusion",
"com.apple.ScreenSharing"
].map {
BlacklistEntry(bundleIdentifier: $0, hide: .none, ignore: .whenFullscreen)
})
}
static func jsonDecode<T>(_ type: T.Type, _ value: String) -> T where T: Decodable {
return try! JSONDecoder().decode(type, from: value.data(using: .utf8)!)
}
static func jsonEncode<T>(_ value: T) -> String where T: Encodable {
return String(data: try! JSONEncoder().encode(value), encoding: .utf8)!
}
}
// MacroPreference are collection of values derived from a single key
@@ -511,6 +554,40 @@ enum CrashPolicyPreference: String, CaseIterable, MacroPreference {
}
}
enum BlacklistHidePreference: String, CaseIterable, MacroPreference, Codable {
case none = "0"
case always = "1"
case whenNoOpenWindow = "2"
var localizedString: LocalizedString {
switch self {
case .none: return ""
case .always: return NSLocalizedString("Always", comment: "")
case .whenNoOpenWindow: return NSLocalizedString("When no open window", comment: "")
}
}
}
enum BlacklistIgnorePreference: String, CaseIterable, MacroPreference, Codable {
case none = "0"
case always = "1"
case whenFullscreen = "2"
var localizedString: LocalizedString {
switch self {
case .none: return ""
case .always: return NSLocalizedString("Always", comment: "")
case .whenFullscreen: return NSLocalizedString("When fullscreen", comment: "")
}
}
}
struct BlacklistEntry: Codable {
var bundleIdentifier: String
var hide: BlacklistHidePreference
var ignore: BlacklistIgnorePreference
}
extension UserDefaults {
static var cache = [String: String]()
+6 -1
View File
@@ -227,7 +227,12 @@ class Windows {
static func refreshIfWindowShouldBeShownToTheUser(_ window: Window, _ screen: NSScreen) {
window.shouldShowTheUser =
!(window.application.runningApplication.bundleIdentifier.flatMap { id in Preferences.dontShowBlacklist.contains { id.hasPrefix($0) } } ?? false) &&
!(window.application.runningApplication.bundleIdentifier.flatMap { id in
Preferences.blacklist.contains {
id.hasPrefix($0.bundleIdentifier) &&
($0.hide == .always || (window.isWindowlessApp && $0.hide != .none))
}
} ?? false) &&
!(Preferences.appsToShow[App.app.shortcutIndex] == .active && window.application.runningApplication.processIdentifier != NSWorkspace.shared.frontmostApplication?.processIdentifier) &&
!(!(Preferences.showHiddenWindows[App.app.shortcutIndex] != .hide) && window.isHidden) &&
((!Preferences.hideWindowlessApps && window.isWindowlessApp) ||
+7 -7
View File
@@ -295,13 +295,13 @@ class App: AppCenterApplication, NSApplicationDelegate {
func checkIfShortcutsShouldBeDisabled(_ activeWindow: Window?, _ activeApp: NSRunningApplication?) {
let app = activeWindow?.application.runningApplication ?? activeApp
let shortcutsShouldBeDisabled = (!Preferences.disableShortcutsBlacklistOnlyFullscreen || (activeWindow?.isFullscreen ?? false)) &&
(Preferences.disableShortcutsBlacklist.first { blacklistedId in
if let id = app?.bundleIdentifier {
return id.hasPrefix(blacklistedId)
}
return false
} != nil)
let shortcutsShouldBeDisabled = Preferences.blacklist.contains { blacklistedId in
if let id = app?.bundleIdentifier {
return id.hasPrefix(blacklistedId.bundleIdentifier) &&
(blacklistedId.ignore == .always || (blacklistedId.ignore == .whenFullscreen && (activeWindow?.isFullscreen ?? false)))
}
return false
}
KeyboardEvents.toggleGlobalShortcuts(shortcutsShouldBeDisabled)
if shortcutsShouldBeDisabled && App.app.appIsBeingUsed {
App.app.hideUi()
+134
View File
@@ -0,0 +1,134 @@
import Cocoa
class BlacklistView: NSScrollView {
convenience init() {
self.init(frame: .zero)
translatesAutoresizingMaskIntoConstraints = false
borderType = .bezelBorder
hasHorizontalScroller = false
hasVerticalScroller = true
documentView = TableView(nil)
fit(520, 360)
}
}
class TableView: NSTableView, NSTableViewDelegate, NSTableViewDataSource {
var items = Preferences.blacklist
convenience init(_ dummy: Int?) {
self.init()
translatesAutoresizingMaskIntoConstraints = false
delegate = self
dataSource = self
usesAlternatingRowBackgroundColors = true
intercellSpacing = NSSize(width: 10, height: 5)
allowsColumnReordering = false
allowsEmptySelection = false
backgroundColor = NSColor.white
rowSizeStyle = .medium
addHeaders([
NSLocalizedString("App (BundleID starting with)", comment: ""),
String(format: NSLocalizedString("Hide in %@", comment: "%@ is AltTab"), App.name),
NSLocalizedString("Ignore shortcuts when active", comment: "")
])
reloadData()
}
func addHeaders(_ columnHeaders: [String]) {
columnHeaders.enumerated().forEach { (i, header: String) in
let column = NSTableColumn(identifier: NSUserInterfaceItemIdentifier("col\(i + 1)"))
column.headerToolTip = header
column.headerCell = TableHeaderCell(header)
if i == 0 {
column.width = 206
}
addTableColumn(column)
}
}
func numberOfRows(in tableView: NSTableView) -> Int {
return items.count
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let item = items[row]
return tableColumn!.identifier.rawValue == "col1" ? text(row, item) : dropdown(row, item, tableColumn!.identifier.rawValue)
}
func text(_ row: Int, _ item: BlacklistEntry) -> NSView {
let text = TextField(item.bundleIdentifier)
text.isEditable = true
text.allowsExpansionToolTips = true
text.drawsBackground = false
text.isBordered = false
text.lineBreakMode = .byTruncatingTail
text.usesSingleLineMode = true
text.cell!.sendsActionOnEndEditing = true
text.onAction = { self.wasUpdated(row, "col1", $0) }
let parent = NSView()
parent.addSubview(text)
text.centerYAnchor.constraint(equalTo: parent.centerYAnchor).isActive = true
text.widthAnchor.constraint(equalTo: parent.widthAnchor).isActive = true
return parent
}
func dropdown(_ row: Int, _ item: BlacklistEntry, _ colId: String) -> NSView {
let isHidePref = colId == "col2"
let button = NSPopUpButton()
button.translatesAutoresizingMaskIntoConstraints = false
button.allowsExpansionToolTips = true
button.lineBreakMode = .byTruncatingTail
let cases: [MacroPreference] = isHidePref ? BlacklistHidePreference.allCases : BlacklistIgnorePreference.allCases
button.addItems(withTitles: cases.map { $0.localizedString })
button.selectItem(at: Int(isHidePref ? item.hide.rawValue : item.ignore.rawValue)!)
button.onAction = { self.wasUpdated(row, colId, $0) }
let parent = NSView()
parent.addSubview(button)
button.centerYAnchor.constraint(equalTo: parent.centerYAnchor).isActive = true
button.widthAnchor.constraint(equalTo: parent.widthAnchor).isActive = true
return parent
}
func wasUpdated(_ row: Int, _ colId: String, _ control: NSControl) {
if colId == "col1" {
items[row].bundleIdentifier = LabelAndControl.getControlValue(control, nil)!
} else if colId == "col2" {
items[row].hide = BlacklistHidePreference(rawValue: LabelAndControl.getControlValue(control, nil)!)!
} else {
items[row].ignore = BlacklistIgnorePreference(rawValue: LabelAndControl.getControlValue(control, nil)!)!
}
savePreferences()
}
func removeSelectedRow() {
if selectedRow != -1 {
items.remove(at: selectedRow)
removeRows(at: [selectedRow])
savePreferences()
}
}
func insertRow(_ bundleId: String) {
if !(items.contains { $0.bundleIdentifier == bundleId }) {
items.append(BlacklistEntry(bundleIdentifier: bundleId, hide: .always, ignore: .none))
insertRows(at: [numberOfRows])
savePreferences()
}
}
func savePreferences() {
Preferences.set("blacklist", items)
}
}
class TableHeaderCell: NSTableHeaderCell {
convenience init(_ textCell: String) {
self.init(textCell: textCell)
lineBreakMode = .byTruncatingTail
}
override func drawInterior(withFrame cellFrame: NSRect, in controlView: NSView) {
// add some padding so the headers can breath; get closer to what Finder does
super.drawInterior(withFrame: cellFrame.insetBy(dx: CGFloat(5), dy: CGFloat(0)), in: controlView)
}
}
@@ -3,20 +3,29 @@ import Sparkle
class BlacklistsTab {
static func initTab() -> NSView {
let dontShowBlacklistLabel = NSTextField(labelWithString: NSLocalizedString("Don’t show windows from these apps", comment: ""))
let dontShowBlacklist = LabelAndControl.makeTextArea(50, 6, Preferences.dontShowBlacklist.joined(separator: "\n"), "dontShowBlacklist")
let disableShortcutsBlacklistLabel = NSTextField(labelWithString: NSLocalizedString("Ignore shortcuts while a window from these apps is active", comment: ""))
let disableShortcutsBlacklistCheckbox = LabelAndControl.makeLabelWithCheckbox(NSLocalizedString("Only if the window is fullscreen", comment: ""), "disableShortcutsBlacklistOnlyFullscreen", labelPosition: .right)
let disableShortcutsBlacklist = LabelAndControl.makeTextArea(50, 6, Preferences.disableShortcutsBlacklist.joined(separator: "\n"), "disableShortcutsBlacklist")
let blacklist = BlacklistView()
let add = NSSegmentedControl.init(images: [NSImage(named: NSImage.addTemplateName)!, NSImage(named: NSImage.removeTemplateName)!], trackingMode: .momentary, target: nil, action: nil)
add.onAction = {
let tableView = blacklist.documentView as! TableView
if ($0 as! NSSegmentedControl).selectedSegment == 0 {
let dialog = NSOpenPanel()
dialog.allowsMultipleSelection = false
dialog.allowedFileTypes = ["app"]
dialog.canChooseDirectories = false
dialog.beginSheetModal(for: App.app.preferencesWindow) {
if $0 == .OK, let url = dialog.url, let bundleId = Bundle(url: url)?.bundleIdentifier {
tableView.insertRow(bundleId)
}
}
} else {
tableView.removeSelectedRow()
}
}
let grid = GridView([
[dontShowBlacklistLabel],
dontShowBlacklist,
[disableShortcutsBlacklistLabel],
disableShortcutsBlacklistCheckbox,
disableShortcutsBlacklist,
[blacklist],
[add]
])
grid.row(at: 2).topPadding = GridView.interPadding * 1.5
grid.fit()
return grid