Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
adf5595203 | ||
|
|
d512394d39 | ||
|
|
3ab7c5cd9e |
No files matched your search
@@ -4,7 +4,7 @@ permalink: /
|
|||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
[](public/demo/frontpage.jpg)
|
[<img src="public/demo/frontpage.jpg" alt="Screenshot" width="1440" height="900" style="width:100%; height:auto;" />](public/demo/frontpage.jpg)
|
||||||
|
|
||||||
**AltTab** brings the power of Windows’s "alt-tab" window switcher to macOS.
|
**AltTab** brings the power of Windows’s "alt-tab" window switcher to macOS.
|
||||||
|
|
||||||
@@ -51,9 +51,9 @@ AltTab is available in: Bahasa Indonesia, Català, Dansk, Deutsch, Eesti keel, E
|
|||||||
|
|
||||||
Change the shortcut keys, switch to a Windows theme and more, using the Preferences window:
|
Change the shortcut keys, switch to a Windows theme and more, using the Preferences window:
|
||||||
|
|
||||||
| [](public/demo/preferences-appearance.jpg) | [](public/demo/preferences-controls.jpg) |
|
| [<img loading="lazy" src="public/demo/preferences-appearance.jpg" alt="Screenshot1" width="1064" height="1280" style="width:100%; height:auto;" />](public/demo/preferences-appearance.jpg) | [<img loading="lazy" src="public/demo/preferences-controls.jpg" alt="Screenshot 2" width="1081" height="1280" style="width:100%; height:auto;" />](public/demo/preferences-controls.jpg) |
|
||||||
| [](public/demo/preferences-blacklist.jpg) | [](public/demo/preferences-policies.jpg) |
|
| [<img loading="lazy" src="public/demo/preferences-blacklist.jpg" alt="Screenshot3" width="1280" height="1161" style="width:100%; height:auto;" />](public/demo/preferences-blacklist.jpg) | [<img loading="lazy" src="public/demo/preferences-policies.jpg" alt="Screenshot 4" width="1280" height="786" style="width:100%; height:auto;" />](public/demo/preferences-policies.jpg) |
|
||||||
| [](public/demo/preferences-general.jpg) | |
|
| [<img loading="lazy" src="public/demo/preferences-general.jpg" alt="Screenshot5" width="1280" height="640" style="width:100%; height:auto;" />](public/demo/preferences-general.jpg) | |
|
||||||
|
|
||||||
## Alternatives
|
## Alternatives
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ There are also related apps which don’t really overlap in functionality, but t
|
|||||||
|
|
||||||
| 1 row | 2 rows | Windows theme |
|
| 1 row | 2 rows | Windows theme |
|
||||||
|-------|---------|-------|
|
|-------|---------|-------|
|
||||||
| [](public/demo/1-row.jpg) | [](public/demo/2-rows.jpg) | [](public/demo/windows-theme.jpg) |
|
| [<img loading="lazy" src="public/demo/1-row.jpg" alt="Screenshot" width="1440" height="900" style="width:100%; height:auto;" />](public/demo/1-row.jpg) | [<img loading="lazy" src="public/demo/2-rows.jpg" alt="Screenshot" width="1440" height="900" style="width:100%; height:auto;" />](public/demo/2-rows.jpg) | [<img loading="lazy" src="public/demo/windows-theme.jpg" alt="Screenshot" width="1440" height="900" style="width:100%; height:auto;" />](public/demo/windows-theme.jpg) |
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,8 @@ nav {
|
|||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
max-width: 100%;
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
code, pre, tt {
|
code, pre, tt {
|
||||||
|
|||||||
@@ -37,8 +37,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ site.baseurl }}"><img src="{{ site.baseurl }}public/android-chrome-256x256.png" width="100"
|
<a href="{{ site.baseurl }}"><img src="{{ site.baseurl }}public/demo/logo.png" width="100" height="100"/></a>
|
||||||
height="100"/></a>
|
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="{{ site.baseurl }}">{{ site.title }}</a></h1>
|
<h1><a href="{{ site.baseurl }}">{{ site.title }}</a></h1>
|
||||||
<p>{{ site.github.project_tagline }}</p>
|
<p>{{ site.github.project_tagline }}</p>
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -15,7 +15,7 @@ function convert() {
|
|||||||
# -resize 24x24 \
|
# -resize 24x24 \
|
||||||
# "resources/icons/window-controls/$1.svg" \
|
# "resources/icons/window-controls/$1.svg" \
|
||||||
# "resources/icons/window-controls/$1-magik.png"
|
# "resources/icons/window-controls/$1-magik.png"
|
||||||
/Applications/Inkscape.app/Contents/Resources/bin/inkscape \
|
/Applications/Inkscape.app/Contents/MacOS/inkscape \
|
||||||
-z \
|
-z \
|
||||||
-w "$((size * 2))" -h "$((size * 2))" \
|
-w "$((size * 2))" -h "$((size * 2))" \
|
||||||
"$currentDir/resources/icons/window-controls/$1.svg" \
|
"$currentDir/resources/icons/window-controls/$1.svg" \
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import Foundation
|
|||||||
class MissionControl {
|
class MissionControl {
|
||||||
static func isActive() -> Bool {
|
static func isActive() -> Bool {
|
||||||
// when Mission Control is active, the Dock process spawns some windows. We observe this side-effect and infer
|
// when Mission Control is active, the Dock process spawns some windows. We observe this side-effect and infer
|
||||||
var missionControlHint = false
|
|
||||||
for window in CGWindow.windows(.optionOnScreenOnly) {
|
for window in CGWindow.windows(.optionOnScreenOnly) {
|
||||||
// ownerName == "Dock" && title == nil is a sign that Mission Control may be active
|
// ownerName == "Dock" && title == nil is a sign that Mission Control may be active
|
||||||
if window.ownerName() == "Dock" && window.title() == nil
|
if window.ownerName() == "Dock" && window.title() == nil
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ class Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sortByAppNameThenWindowTitle(_ w1: Window, _ w2: Window) -> ComparisonResult {
|
func sortByAppNameThenWindowTitle(_ w1: Window, _ w2: Window) -> ComparisonResult {
|
||||||
var order = w1.application.runningApplication.localizedName.localizedStandardCompare(w2.application.runningApplication.localizedName)
|
let order = w1.application.runningApplication.localizedName.localizedStandardCompare(w2.application.runningApplication.localizedName)
|
||||||
if order == .orderedSame {
|
if order == .orderedSame {
|
||||||
return w1.title.localizedStandardCompare(w2.title)
|
return w1.title.localizedStandardCompare(w2.title)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user