HN Açık: FlashSpace – hızlı ve açık kaynaklı bir macOS Spaces alternatifi
(github.com/wojciech-kulik)- FlashSpace, macOS’un yerleşik Spaces özelliğini geliştiren veya onun yerine geçebilen bir sanal çalışma alanı yöneticisidir; amacı macOS animasyonlarını beklemeden hızlı çalışma alanı geçişi sağlamaktır
- Her çalışma alanına uygulamalar ve ekranlar atanabilir; geçiş sırasında ilgili ekrandaki atanmış uygulamalar gösterilir, diğerleri gizlenir ve böylece bağımsız çoklu ekran geçişi desteklenir
- Space Control,
Option + Tabtabanlı Workspace Switcher, Focus Manager, profiller, kaydırma hareketleri, Floating Apps, JSON/YAML/TOML yapılandırması, CLI, SketchyBar ve Raycast entegrasyonu sunar - macOS 14.0 veya üstü ve “Displays have separate Spaces” ayarı gerekir; Homebrew kurulumu, ikili dosya indirme ve kaynaktan derleme desteklenir
- Tek tek pencere düzeyinde çalışma alanı ve düzen yönetimi desteklenmez; macOS’ta belirli pencereleri gizlemeye yönelik herkese açık API olmaması ve sadelik·performans gerekçesiyle uygulama gösterme/gizleme merkezli tasarım korunur
FlashSpace ne yapar
- FlashSpace, macOS için tasarlanmış bir sanal çalışma alanı yöneticisidir; varsayılan macOS Spaces’i geliştirmek ve onun yerini almak üzere tasarlanmıştır
- Hedefi, macOS animasyonlarını beklemeyi gerektirmeyen hızlı çalışma alanı geçişi sağlamaktır
- Her çalışma alanına uygulamalar atanır ve çalışma alanının kendisi belirli bir ekrana atanır
- Bir çalışma alanına geçildiğinde atanmış uygulamalar otomatik olarak gösterilir, aynı ekrandaki diğer uygulamalar gizlenir
- Birden çok ekranda çalışma alanları bağımsız olarak değiştirilebilir
Kurulum ve temel kullanım akışı
- Gereksinimler macOS 14.0 veya üstü ve sistem ayarlarındaki
Desktop & Dockaltında “Displays have separate Spaces” seçeneğinin etkin olmasıdır - Kurulum yöntemleri olarak Homebrew, sürüm ikili dosyası indirme ve kaynaktan derleme desteklenir
- Homebrew kurulum komutu:
brew install flashspace - İkili dosyalar Releases Page üzerinden indirilebilir
- Homebrew kurulum komutu:
- Temel kullanım akışı şöyledir
- Tüm uygulamaları ekran başına tek bir macOS Space’e taşıma
- Çalışma alanı oluşturma
- Uygulama atama
- Çalışma alanına ekran atama veya dinamik mod kullanma
- Hızlı etkinleştirme için kısayol ayarlama
- Aynı işlemleri diğer çalışma alanları için de uygulama
- Kısayollarla ayarlanmış çalışma alanları arasında geçiş yapma
- Aynı uygulamayı birden fazla çalışma alanında tutmak için uygulama ayarlarındaki Floating Apps özelliğini kullanabilir veya ana uygulama penceresinden uygulamayı birden fazla çalışma alanına ekleyebilirsiniz
Başlıca özellikler
- Hızlı çalışma alanı geçişi ve çoklu ekran desteği sunar
- Space Control, tüm çalışma alanlarını ızgara görünümünde önizleyip aralarında geçiş yapmayı sağlar
0-9ve yön tuşlarıyla çalışma alanları arasında geçiş yapılabilir
- Workspace Switcher, varsayılan olarak
Option + Tabile çalışma alanı listesini açar ve geçiş yapar- macOS uygulama değiştiricisi
CMD + Tabile benzer şekilde çalışır
- macOS uygulama değiştiricisi
- Focus Manager, kısayollarla pencereler arasındaki odağı istenen yöne taşır ve ekranlar arası sıçramayı da destekler
- Diğer özellikler şunları içerir
- Uygulama odağı algılandıktan sonra çalışma alanını etkinleştirme
- İmleci etkin pencerenin merkezine otomatik hizalayan Cursor manager
- Birden çok ayarı hızlıca değiştirmek için Profiles
- Çalışma alanı başına simge ve metin ayarlanabilen menü çubuğu
- Trackpad kaydırma hareketlerinin özelleştirilmesi
- GUI ve yapılandırma dosyası tabanlı kurulum
- JSON, YAML, TOML yapılandırma dosyası formatı desteği
- CLI üzerinden uygulama kontrolü
- Picture-in-Picture desteği
- SketchyBar entegrasyonu
- Raycast extension desteği
Ekran atama yöntemleri
- FlashSpace, iki ekran atama yöntemini destekler: statik mod ve dinamik mod
- Statik mod varsayılandır ve her çalışma alanını belirli bir ekrana atar
- macOS Spaces gibi ekran başına ayrılmış çalışma alanı isteyen kullanıcılar için uygundur
- Birden çok ekran kullanıp düzeni sık sık değiştiriyorsanız zorlayıcı olabilir
- Dinamik mod, her çalışma alanını o çalışma alanındaki uygulamaların bulunduğu ekrana otomatik olarak atar
- Tek bir çalışma alanı aynı anda birden fazla ekranda gösterilebilir
- Uygulamaları ekranlar arasında taşıyarak çalışma alanlarını yeniden düzenlemek istediğinizde kullanışlıdır
- Bu modda boş çalışma alanları gösterilemez
- Ekran atama modu, uygulama ayarlarındaki Workspaces bölümünden değiştirilebilir
Picture-in-Picture desteği ve kısıtlamalar
- FlashSpace, Picture-in-Picture modunu destekler ancak bu özellik deneyseldir
- Bu özellik
App Settings -> Workspacesüzerinden devre dışı bırakılabilir - macOS, yalnızca belirli bir pencereyi gizlemeye yönelik herkese açık bir API sunmaz ve bir uygulama gizlenirse PiP penceresi de onunla birlikte gizlenir
- FlashSpace, bu sorunu aşmak için uygulamanın PiP desteğini tespit eder ve PiP penceresi dışındaki tüm pencereleri ekran köşesine gizler
- PiP penceresi görünmüyorsa standart davranış uygulanır
- Desteklenen tarayıcılar Safari, Zen Browser, Chrome, Firefox, Brave, Vivaldi, Arc, Dia, Opera, Microsoft Edge ve Comet’tir
- Tarayıcı dili English olarak ayarlı değilse bu özellik çalışmayabilir
Tasarım ilkeleri ve bilinçli olarak desteklenmeyenler
- Projenin değerleri performans, sadelik, kararlılık, rahatsız etmeyen davranış ve UNIX felsefesidir
- FlashSpace, çalışma alanı yönetimini tek bir iş olarak görür ve bunu iyi yapmaya odaklanır
-
Rahatsız etmeyen davranış
- FlashSpace, pencereleri agresif biçimde yönetmez
- Bir çalışma alanına geçtikten sonra o çalışma alanına atanmış olmayan bir uygulamayı çağırırsanız, bu uygulama çalışma alanı uygulamalarının üzerinde görünür
- Bu davranış, diğer uygulamalara hızlı erişim sağlarken görsel hataları veya çalışma alanı geçişlerini önlemeye yardımcı olur
- Döşemeli pencere yöneticilerinde, ayarlanmamış açılır pencereler veya iletişim kutuları nedeniyle görsel hatalar sık görülebilir
- FlashSpace, atanmamış pencereleri ve uygulamaları yönetmeyerek sistemle çakışmadan etkileşim kurar
-
Uygulama penceresi bazında çalışma alanı desteği yok
- FlashSpace, bir uygulamanın tek tek pencerelerini çalışma alanlarına göre ayırma fikrini desteklemez
- Bu, basit ve hızlı kalmak için verilmiş bilinçli bir karardır
- Yerel gösterme/gizleme işlevlerine dayanarak çalışma alanı yönetimini ve geçişini verimli biçimde gerçekleştirir
- Bu yaklaşım pil için avantajlıdır ve Mission Control gibi sistem özelliklerini bozmaz
- Tek tek pencere desteği büyük bir karmaşıklık yaratabilir ve performansı olumsuz etkileyebilir
- macOS’ta belirli pencereleri gizlemeye yönelik herkese açık bir API yoktur; mevcut seçenekler pencereyi ekran köşesine taşımak veya simge durumuna küçültmektir ve ikisi de ideal bir kullanıcı deneyimi sunmaz
-
Düzen desteği yok
- FlashSpace, pencere taşıma, yeniden boyutlandırma veya düzen değiştirme işlemlerini desteklemez
- Bu özellik karmaşıklığı ciddi ölçüde artırabilir ve performansı olumsuz etkileyebilir
- Tüm uç durumları ve görsel hataları desteklemek çok iş gerektirir
- Magnet, Rectangle, Raycast gibi pencere yönetim uygulamalarıyla birlikte kullanılabildiği için bu işlevi tekrar etmez
Entegrasyon, CLI ve derleme
- SketchyBar gibi araçlarla entegre olabilir ve çalışma alanı değiştiğinde yapılandırılabilir betikler çalıştırır
- CLI, çalışma alanı, uygulama ve profil yönetimini destekler
- Önce uygulama ayarlarındaki CLI bölümünden kurulmalıdır
- Kullanılabilir komutları görmek için
flashspace --helpçalıştırılabilir
- Kaynaktan derleme, XcodeGen ile
project.ymldosyasından Xcode projesi üretir- Depoyu klonladıktan sonra bağımlılıkları
brew bundleile kurun xcodegen generatekomutunu çalıştırdıktan sonraFlashSpace.xcodeprojdosyasını Xcode’da açıp derleyin- Dal değiştirdiğinizde veya değişiklikleri çektiğinizde
xcodegen generatekomutunu yeniden çalıştırmanız gerekir - İmzalama ayarlarını da içeren bir proje oluşturmak için
XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generatekullanılabilir
- Depoyu klonladıktan sonra bağımlılıkları
Kullanım ipuçları
- macOS’ta uyku sonrasında uygulamaların yanlış ekranda görünmesine yol açan bir hata vardır
- Bu durum, uygulamalar uyku sırasında gizlenmişse ortaya çıkar
- Uyandıktan sonra giriş yapmadan önce tüm ekranları açarsanız uygulamalar doğru ekranda görünebilir
- macOS 15, üçüncü taraf uygulama olmadan pencere taşıma ve yeniden boyutlandırma işlevleri sunar
- Menü çubuğundaki
WindowaltındaMove & Resizealt menüsüne bakabilirsiniz - Kısayol özelleştirmesi sınırlıdır; daha esnek bir yaklaşım için Raycast, Magnet gibi pencere yönetim uygulamaları kullanılabilir
- Menü çubuğundaki
- Aynı uygulamanın pencereleri arasında odak değiştirmek için macOS’un
Cmd + `kısayolu kullanılabilir - SKHD, özel global kısayollar tanımlayan bir CLI aracıdır ve FlashSpace CLI ile birlikte kullanılabilir
- Raycast kullanıcıları, Raycast extension ile klavyeden ayrılmadan FlashSpace’i yönetebilir
1 yorum
Amethyst ile uyumlu olup olmadığını merak ediyorum. Tiling pencere düzeni istiyorum ama alan geçişlerindeki gecikmeyi istemiyorum
Çok iyi! Çalışma alanları için ızgara görünümü eklenebilmesini umuyorum. TotalSpaces'ı özlüyorum
Tam zamanı. Bu alandaki seçenekleri yeniden inceliyordum ve Aerospace'te karar kıldım. Bunu da deneyeceğim
Teşekkürler! Az önce kurdum, şu ana kadar iyi çalışıyor
Bir yılı aşkın süredir bu amaç için AeroSpace kullanıyorum. Ayarlarda tüm tiling özelliklerini devre dışı bırakıp yalnızca iki kısayol kullanıyorum: çalışma alanına geç ve mevcut pencereyi çalışma alanına taşı. Küçük ekranda çalışırken vazgeçilmez